Skip to content

Commit 3a09baf

Browse files
committed
Merge branch 'develop'
2 parents e2bd4bc + 164ded7 commit 3a09baf

24 files changed

+166
-43
lines changed

app/assets/stylesheets/cortex-plugins-core/application.scss

+1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
@import 'variables/colors';
33
@import 'variables/typography';
44

5+
@import 'components/tags-input';
56
@import 'components/thumbnail-placeholder';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
.bootstrap-tagsinput {
2+
width: 100%;
3+
border-radius: 0 !important;
4+
border-top: none;
5+
border-right: none;
6+
border-left: none;
7+
border-bottom: 1px solid $color-grey-light;
8+
box-shadow: none;
9+
}
10+
.cortex-bootstrap .label {
11+
border-radius: 0.75em;
12+
font-weight: normal;
13+
}
14+
15+
.cortex-bootstrap .label-info {
16+
background-color: $color-grey;
17+
}
18+
19+
.bootstrap-tagsinput .tag {
20+
text-transform: uppercase;
21+
}

app/cells/plugins/core/asset_info/show.haml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
- if asset_is_image?
99
.mdl-card__title
1010
%h2.mdl-card__title-text
11-
= image_tag(asset['versions']['original']['url'], style: 'max-height: 200px;')
11+
= image_tag(asset['versions']['original']['url'], style: 'min-height: 50px; max-height: 200px;')
1212
.mdl-card__supporting-text
1313
%dl
1414
%dt Original Filename
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
= render_label
22
= render_tooltip unless @options[:tooltip].nil?
33

4-
%p
5-
Please select 1-2 Categories.
6-
74
- @options[:metadata]["data"]["tree_array"].each do |node|
85
= render_field_id
96
= cell(Plugins::Core::CheckboxCell, nil, form: @options[:form], node: node, data: data).(:checkbox)

app/models/asset_field_type.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def attacher
8888
end
8989

9090
def host_alias
91-
metadata[:storage][:host_alias] unless metadata[:storage][:host_alias].empty?
91+
metadata&.[](:storage)&.[](:host_alias)
9292
end
9393

9494
def versions_data

app/models/author_field_type.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ def author_name_present
3030
end
3131

3232
def validate_presence?
33-
@validations.key? :presence
33+
validations.key? :presence
3434
end
3535
end

app/models/date_time_field_type.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ def timestamp_is_valid?
3535
end
3636

3737
def validate_presence?
38-
@validations.key? :presence
38+
validations.key? :presence
3939
end
4040
end

app/models/float_field_type.rb

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
class FloatFieldType < FieldType
22
attr_accessor :float
3-
3+
44
validates :float, presence: true, if: Proc.new { |float| validate_key(:presence) }
55
validates_numericality_of :float, unless: "float.nil?"
66
validate :less_than, if: Proc.new { |float| validate_key(:max) }
@@ -27,14 +27,14 @@ def mapping_field_name
2727
end
2828

2929
def validate_key(key)
30-
@validations.key? key
30+
validations.key? key
3131
end
3232

3333
def less_than
34-
errors.add(:float, "must be less_than #{@validations[:max]}") if :float <= @validations[:max]
34+
errors.add(:float, "must be less_than #{validations[:max]}") if :float <= validations[:max]
3535
end
3636

3737
def greater_than
38-
errors.add(:float, "must be greater_than #{@validations[:min]}") if :float >= @validations[:min]
38+
errors.add(:float, "must be greater_than #{validations[:min]}") if :float >= validations[:min]
3939
end
4040
end

app/models/integer_field_type.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ def mapping_field_name
2727
end
2828

2929
def validate_key
30-
@validations.key? key
30+
validations.key? key
3131
end
3232

3333
def less_than
34-
errors.add(:integer, "must be less_than #{@validations[:max]}") if :integer <= @validations[:max]
34+
errors.add(:integer, "must be less_than #{validations[:max]}") if :integer <= validations[:max]
3535
end
3636

3737
def greater_than
38-
errors.add(:integer, "must be greater_than #{@validations[:min]}") if :integer >= @validations[:min]
38+
errors.add(:integer, "must be greater_than #{validations[:min]}") if :integer >= validations[:min]
3939
end
4040
end

app/models/tag_field_type.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ def mapping_field_name
2525
end
2626

2727
def validate_presence?
28-
@validations.key? :presence
28+
validations.key? :presence
2929
end
3030
end

app/models/text_field_type.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ def text_unique
3939
end
4040

4141
def validate_uniqueness?
42-
@validations.key? :uniqueness
42+
validations.key? :uniqueness
4343
end
4444

4545
def validate_presence?
46-
@validations.key? :presence
46+
validations.key? :presence
4747
end
4848

4949
def validate_length?
50-
@validations.key? :length
50+
validations.key? :length
5151
end
5252
end

app/models/tree_field_type.rb

+5-5
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def mapping_field_name
3636
end
3737

3838
def minimum
39-
if !@values.nil? && @values[:values].length >= @validations[:minimum]
39+
if !@values.nil? && @values[:values].length >= validations[:minimum]
4040
true
4141
else
4242
errors.add(:minimum, "You have selected too few values.")
@@ -46,7 +46,7 @@ def minimum
4646

4747
def maximum
4848
unless @values.nil?
49-
if @values[:values].length <= @validations[:maximum]
49+
if @values[:values].length <= validations[:maximum]
5050
true
5151
else
5252
errors.add(:maximum, "You have selected too many values.")
@@ -56,14 +56,14 @@ def maximum
5656
end
5757

5858
def validate_presence?
59-
@validations.key? :presence
59+
validations.key? :presence
6060
end
6161

6262
def validate_minimum?
63-
@validations.key? :minimum
63+
validations.key? :minimum
6464
end
6565

6666
def validate_maximum?
67-
@validations.key? :maximum
67+
validations.key? :maximum
6868
end
6969
end

app/models/user_field_type.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ def valid_user_id?
3434
end
3535

3636
def validate_presence?
37-
@validations.key? :presence
37+
validations.key? :presence
3838
end
3939
end
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module UpdateTags
2+
extend ActiveSupport::Concern
3+
4+
included do
5+
end
6+
end

app/transactions/get_content_item_tags_transaction.rb

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class GetFieldTreeListTransaction < ApplicationTransaction
2+
step :init
3+
step :process
4+
5+
def init(input)
6+
field = Field.find_by_id(input[:args]['field_id'])
7+
8+
field ? Right({ content_item: input[:content_item], field: field }) : Left(:not_found)
9+
end
10+
11+
def process(input)
12+
tree_array = input[:field].metadata['allowed_values']['data']['tree_array']
13+
tree_values = input[:content_item].field_items.find {|field_item| field_item.field_id == input[:field].id}.data['values']
14+
15+
tree_list = tree_values.map {|value| tree_array.find {|node| node['id'] == value.to_i}['node']['name']}.join(',')
16+
Right(tree_list)
17+
end
18+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class NewTagFieldItemTransaction < ApplicationTransaction
2+
step :process
3+
4+
def process(field_item)
5+
Right(field_item)
6+
end
7+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class NewUserFieldItemTransaction < ApplicationTransaction
2+
step :process
3+
4+
def process(field_item)
5+
Right(field_item)
6+
end
7+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class UpdateTagFieldItemTransaction < ApplicationTransaction
2+
step :process
3+
4+
def process(field_item)
5+
Right(field_item)
6+
end
7+
end

app/uploaders/asset_uploader.rb

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
require 'image_processing/mini_magick'
2+
require 'image_optim'
23

34
class AssetUploader < Shrine
45
include ImageProcessing::MiniMagick
6+
include Imageable
57

68
plugin :determine_mime_type
79
plugin :store_dimensions
@@ -25,14 +27,15 @@ class AssetUploader < Shrine
2527
end
2628

2729
process(:store) do |io, context|
28-
# TODO: Perform image optimizations (build plugin), support versions without processors or formatters
30+
# TODO: support versions without processors
2931
context[:generated_hex] = SecureRandom.hex(8)
3032
versions = { original: io.download }
3133

3234
if image?(io)
35+
image_optim = image_optim_for(context[:config][:metadata][:image_optim_config])
3336
versions.merge!(context[:config][:metadata][:versions].transform_values do |version|
3437
processed_version = send("#{version[:process][:method]}!", io.download, *version[:process][:config].values)
35-
convert!(processed_version, version[:format])
38+
optimize_image!(processed_version, image_optim) # TODO: per-version image_optim_config
3639
end)
3740
end
3841

@@ -48,8 +51,4 @@ def generate_location(io, context)
4851

4952
ERB.new(context[:config][:metadata][:path]).result(binding)
5053
end
51-
52-
def image?(io)
53-
MimeMagic.new(io.data['metadata']['mime_type']).mediatype == 'image'
54-
end
5554
end

app/uploaders/concerns/imageable.rb

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
module Imageable
2+
extend ActiveSupport::Concern
3+
4+
included do
5+
def image?(io)
6+
MimeMagic.new(io.data['metadata']['mime_type']).mediatype == 'image'
7+
end
8+
9+
def optimize_image!(image, image_optim)
10+
pathname = image_optim.optimize_image!(image) # TODO: move to ActiveJob
11+
pathname ? pathname.open : image
12+
end
13+
14+
def image_optim_for(image_optim_config)
15+
ImageOptim.new(process_image_optim_config(image_optim_config))
16+
end
17+
18+
def process_image_optim_config(image_optim_config)
19+
processed_image_optim_config = image_optim_config.merge(pngout: false, svgo: false, verbose: true, skip_missing_workers: false)
20+
processed_image_optim_config.extend(Hashie::Extensions::DeepLocate)
21+
quality_range_hashes = processed_image_optim_config.deep_locate -> (key, value, object) { key == :quality_range }
22+
quality_range_hashes.each do |quality_range_hash|
23+
quality_range_hash[:quality] = quality_range_hash[:quality_range][:begin]..quality_range_hash[:quality_range][:end]
24+
quality_range_hash.delete(:quality_range)
25+
end
26+
27+
processed_image_optim_config
28+
end
29+
end
30+
end

cortex-plugins-core.gemspec

+5-3
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@ Gem::Specification.new do |s|
2121
s.add_dependency "cells", "~> 4.1"
2222
s.add_dependency "cells-rails", "~> 0.0"
2323
s.add_dependency "cells-haml", "~> 0.0"
24-
s.add_dependency "jsonb_accessor", "~> 1.0.0.beta"
24+
s.add_dependency "jsonb_accessor", "~> 1.0"
2525

2626
# AssetFieldType
27-
s.add_dependency "shrine", "~> 2.6"
27+
s.add_dependency "shrine", "~> 2.7"
2828
s.add_dependency "mimemagic", "~> 0.3"
2929
s.add_dependency "image_processing", "~> 0.4"
30-
s.add_dependency "mini_magick", "~> 4.7"
30+
s.add_dependency "mini_magick", "~> 4.8"
3131
s.add_dependency "fastimage", "~> 2.1"
32+
s.add_dependency "image_optim", "~> 0.25"
33+
s.add_dependency "image_optim_pack", "~> 0.5"
3234
end

lib/cortex/plugins/core/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module Cortex
22
module Plugins
33
module Core
4-
VERSION = '0.12.4'
4+
VERSION = '1.0.0'
55
end
66
end
77
end

0 commit comments

Comments
 (0)