trusty-cms 4.2.1 → 4.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +91 -95
  3. data/LICENSE.md +1 -1
  4. data/app/helpers/admin/node_helper.rb +1 -1
  5. data/app/models/asset.rb +3 -3
  6. data/app/models/page.rb +3 -3
  7. data/app/models/standard_tags.rb +3 -3
  8. data/app/models/user.rb +1 -1
  9. data/config/database.mysql.yml +10 -2
  10. data/db/migrate/20210331134718_create_active_storage_tables.active_storage.rb +36 -0
  11. data/lib/generators/extension/templates/test_helper.rb +6 -8
  12. data/lib/login_system.rb +1 -1
  13. data/lib/trusty_cms.rb +1 -1
  14. data/spec/dummy/config/database.yml +6 -2
  15. data/trusty_cms.gemspec +2 -3
  16. data/vendor/extensions/clipped-extension/lib/asset_tags.rb +4 -4
  17. metadata +9 -174
  18. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/base.rb +0 -195
  19. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/check_box.rb +0 -65
  20. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/checkable.rb +0 -18
  21. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/collection_check_boxes.rb +0 -35
  22. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/collection_helpers.rb +0 -118
  23. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/collection_radio_buttons.rb +0 -30
  24. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/collection_select.rb +0 -30
  25. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/color_field.rb +0 -26
  26. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/date_field.rb +0 -14
  27. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/date_select.rb +0 -73
  28. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/datetime_field.rb +0 -31
  29. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/datetime_local_field.rb +0 -20
  30. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/datetime_select.rb +0 -10
  31. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/email_field.rb +0 -10
  32. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/file_field.rb +0 -10
  33. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/grouped_collection_select.rb +0 -31
  34. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/hidden_field.rb +0 -10
  35. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/label.rb +0 -80
  36. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/month_field.rb +0 -14
  37. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/number_field.rb +0 -20
  38. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/password_field.rb +0 -14
  39. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/placeholderable.rb +0 -24
  40. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/radio_button.rb +0 -32
  41. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/range_field.rb +0 -10
  42. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/search_field.rb +0 -27
  43. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/select.rb +0 -42
  44. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/tel_field.rb +0 -10
  45. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/text_area.rb +0 -24
  46. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/text_field.rb +0 -33
  47. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/time_field.rb +0 -14
  48. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/time_select.rb +0 -10
  49. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/time_zone_select.rb +0 -22
  50. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/translator.rb +0 -39
  51. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/url_field.rb +0 -10
  52. data/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.3.4/lib/action_view/helpers/tags/week_field.rb +0 -14
@@ -1,65 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "action_view/helpers/tags/checkable"
4
-
5
- module ActionView
6
- module Helpers
7
- module Tags # :nodoc:
8
- class CheckBox < Base #:nodoc:
9
- include Checkable
10
-
11
- def initialize(object_name, method_name, template_object, checked_value, unchecked_value, options)
12
- @checked_value = checked_value
13
- @unchecked_value = unchecked_value
14
- super(object_name, method_name, template_object, options)
15
- end
16
-
17
- def render
18
- options = @options.stringify_keys
19
- options["type"] = "checkbox"
20
- options["value"] = @checked_value
21
- options["checked"] = "checked" if input_checked?(options)
22
-
23
- if options["multiple"]
24
- add_default_name_and_id_for_value(@checked_value, options)
25
- options.delete("multiple")
26
- else
27
- add_default_name_and_id(options)
28
- end
29
-
30
- include_hidden = options.delete("include_hidden") { true }
31
- checkbox = tag("input", options)
32
-
33
- if include_hidden
34
- hidden = hidden_field_for_checkbox(options)
35
- hidden + checkbox
36
- else
37
- checkbox
38
- end
39
- end
40
-
41
- private
42
- def checked?(value)
43
- case value
44
- when TrueClass, FalseClass
45
- value == !!@checked_value
46
- when NilClass
47
- false
48
- when String
49
- value == @checked_value
50
- else
51
- if value.respond_to?(:include?)
52
- value.include?(@checked_value)
53
- else
54
- value.to_i == @checked_value.to_i
55
- end
56
- end
57
- end
58
-
59
- def hidden_field_for_checkbox(options)
60
- @unchecked_value ? tag("input", options.slice("name", "disabled", "form").merge!("type" => "hidden", "value" => @unchecked_value)) : "".html_safe
61
- end
62
- end
63
- end
64
- end
65
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActionView
4
- module Helpers
5
- module Tags # :nodoc:
6
- module Checkable # :nodoc:
7
- def input_checked?(options)
8
- if options.has_key?("checked")
9
- checked = options.delete "checked"
10
- checked == true || checked == "checked"
11
- else
12
- checked?(value)
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "action_view/helpers/tags/collection_helpers"
4
-
5
- module ActionView
6
- module Helpers
7
- module Tags # :nodoc:
8
- class CollectionCheckBoxes < Base # :nodoc:
9
- include CollectionHelpers
10
-
11
- class CheckBoxBuilder < Builder # :nodoc:
12
- def check_box(extra_html_options = {})
13
- html_options = extra_html_options.merge(@input_html_options)
14
- html_options[:multiple] = true
15
- html_options[:skip_default_ids] = false
16
- @template_object.check_box(@object_name, @method_name, html_options, @value, nil)
17
- end
18
- end
19
-
20
- def render(&block)
21
- render_collection_for(CheckBoxBuilder, &block)
22
- end
23
-
24
- private
25
- def render_component(builder)
26
- builder.check_box + builder.label
27
- end
28
-
29
- def hidden_field_name
30
- "#{super}[]"
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,118 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActionView
4
- module Helpers
5
- module Tags # :nodoc:
6
- module CollectionHelpers # :nodoc:
7
- class Builder # :nodoc:
8
- attr_reader :object, :text, :value
9
-
10
- def initialize(template_object, object_name, method_name, object,
11
- sanitized_attribute_name, text, value, input_html_options)
12
- @template_object = template_object
13
- @object_name = object_name
14
- @method_name = method_name
15
- @object = object
16
- @sanitized_attribute_name = sanitized_attribute_name
17
- @text = text
18
- @value = value
19
- @input_html_options = input_html_options
20
- end
21
-
22
- def label(label_html_options = {}, &block)
23
- html_options = @input_html_options.slice(:index, :namespace).merge(label_html_options)
24
- html_options[:for] ||= @input_html_options[:id] if @input_html_options[:id]
25
-
26
- @template_object.label(@object_name, @sanitized_attribute_name, @text, html_options, &block)
27
- end
28
- end
29
-
30
- def initialize(object_name, method_name, template_object, collection, value_method, text_method, options, html_options)
31
- @collection = collection
32
- @value_method = value_method
33
- @text_method = text_method
34
- @html_options = html_options
35
-
36
- super(object_name, method_name, template_object, options)
37
- end
38
-
39
- private
40
- def instantiate_builder(builder_class, item, value, text, html_options)
41
- builder_class.new(@template_object, @object_name, @method_name, item,
42
- sanitize_attribute_name(value), text, value, html_options)
43
- end
44
-
45
- # Generate default options for collection helpers, such as :checked and
46
- # :disabled.
47
- def default_html_options_for_collection(item, value)
48
- html_options = @html_options.dup
49
-
50
- [:checked, :selected, :disabled, :readonly].each do |option|
51
- current_value = @options[option]
52
- next if current_value.nil?
53
-
54
- accept = if current_value.respond_to?(:call)
55
- current_value.call(item)
56
- else
57
- Array(current_value).map(&:to_s).include?(value.to_s)
58
- end
59
-
60
- if accept
61
- html_options[option] = true
62
- elsif option == :checked
63
- html_options[option] = false
64
- end
65
- end
66
-
67
- html_options[:object] = @object
68
- html_options
69
- end
70
-
71
- def sanitize_attribute_name(value)
72
- "#{sanitized_method_name}_#{sanitized_value(value)}"
73
- end
74
-
75
- def render_collection
76
- @collection.map do |item|
77
- value = value_for_collection(item, @value_method)
78
- text = value_for_collection(item, @text_method)
79
- default_html_options = default_html_options_for_collection(item, value)
80
- additional_html_options = option_html_attributes(item)
81
-
82
- yield item, value, text, default_html_options.merge(additional_html_options)
83
- end.join.html_safe
84
- end
85
-
86
- def render_collection_for(builder_class, &block)
87
- options = @options.stringify_keys
88
- rendered_collection = render_collection do |item, value, text, default_html_options|
89
- builder = instantiate_builder(builder_class, item, value, text, default_html_options)
90
-
91
- if block_given?
92
- @template_object.capture(builder, &block)
93
- else
94
- render_component(builder)
95
- end
96
- end
97
-
98
- # Prepend a hidden field to make sure something will be sent back to the
99
- # server if all radio buttons are unchecked.
100
- if options.fetch("include_hidden", true)
101
- hidden_field + rendered_collection
102
- else
103
- rendered_collection
104
- end
105
- end
106
-
107
- def hidden_field
108
- hidden_name = @html_options[:name] || hidden_field_name
109
- @template_object.hidden_field_tag(hidden_name, "", id: nil)
110
- end
111
-
112
- def hidden_field_name
113
- "#{tag_name(false, @options[:index])}"
114
- end
115
- end
116
- end
117
- end
118
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "action_view/helpers/tags/collection_helpers"
4
-
5
- module ActionView
6
- module Helpers
7
- module Tags # :nodoc:
8
- class CollectionRadioButtons < Base # :nodoc:
9
- include CollectionHelpers
10
-
11
- class RadioButtonBuilder < Builder # :nodoc:
12
- def radio_button(extra_html_options = {})
13
- html_options = extra_html_options.merge(@input_html_options)
14
- html_options[:skip_default_ids] = false
15
- @template_object.radio_button(@object_name, @method_name, @value, html_options)
16
- end
17
- end
18
-
19
- def render(&block)
20
- render_collection_for(RadioButtonBuilder, &block)
21
- end
22
-
23
- private
24
- def render_component(builder)
25
- builder.radio_button + builder.label
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActionView
4
- module Helpers
5
- module Tags # :nodoc:
6
- class CollectionSelect < Base #:nodoc:
7
- def initialize(object_name, method_name, template_object, collection, value_method, text_method, options, html_options)
8
- @collection = collection
9
- @value_method = value_method
10
- @text_method = text_method
11
- @html_options = html_options
12
-
13
- super(object_name, method_name, template_object, options)
14
- end
15
-
16
- def render
17
- option_tags_options = {
18
- selected: @options.fetch(:selected) { value },
19
- disabled: @options[:disabled]
20
- }
21
-
22
- select_content_tag(
23
- options_from_collection_for_select(@collection, @value_method, @text_method, option_tags_options),
24
- @options, @html_options
25
- )
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActionView
4
- module Helpers
5
- module Tags # :nodoc:
6
- class ColorField < TextField # :nodoc:
7
- def render
8
- options = @options.stringify_keys
9
- options["value"] ||= validate_color_string(value)
10
- @options = options
11
- super
12
- end
13
-
14
- private
15
- def validate_color_string(string)
16
- regex = /#[0-9a-fA-F]{6}/
17
- if regex.match?(string)
18
- string.downcase
19
- else
20
- "#000000"
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActionView
4
- module Helpers
5
- module Tags # :nodoc:
6
- class DateField < DatetimeField # :nodoc:
7
- private
8
- def format_date(value)
9
- value.try(:strftime, "%Y-%m-%d")
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,73 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "active_support/core_ext/time/calculations"
4
-
5
- module ActionView
6
- module Helpers
7
- module Tags # :nodoc:
8
- class DateSelect < Base # :nodoc:
9
- def initialize(object_name, method_name, template_object, options, html_options)
10
- @html_options = html_options
11
-
12
- super(object_name, method_name, template_object, options)
13
- end
14
-
15
- def render
16
- error_wrapping(datetime_selector(@options, @html_options).send("select_#{select_type}").html_safe)
17
- end
18
-
19
- class << self
20
- def select_type
21
- @select_type ||= name.split("::").last.sub("Select", "").downcase
22
- end
23
- end
24
-
25
- private
26
- def select_type
27
- self.class.select_type
28
- end
29
-
30
- def datetime_selector(options, html_options)
31
- datetime = options.fetch(:selected) { value || default_datetime(options) }
32
- @auto_index ||= nil
33
-
34
- options = options.dup
35
- options[:field_name] = @method_name
36
- options[:include_position] = true
37
- options[:prefix] ||= @object_name
38
- options[:index] = @auto_index if @auto_index && !options.has_key?(:index)
39
-
40
- DateTimeSelector.new(datetime, options, html_options)
41
- end
42
-
43
- def default_datetime(options)
44
- return if options[:include_blank] || options[:prompt]
45
-
46
- case options[:default]
47
- when nil
48
- Time.current
49
- when Date, Time
50
- options[:default]
51
- else
52
- default = options[:default].dup
53
-
54
- # Rename :minute and :second to :min and :sec
55
- default[:min] ||= default[:minute]
56
- default[:sec] ||= default[:second]
57
-
58
- time = Time.current
59
-
60
- [:year, :month, :day, :hour, :min, :sec].each do |key|
61
- default[key] ||= time.send(key)
62
- end
63
-
64
- Time.utc(
65
- default[:year], default[:month], default[:day],
66
- default[:hour], default[:min], default[:sec]
67
- )
68
- end
69
- end
70
- end
71
- end
72
- end
73
- end
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActionView
4
- module Helpers
5
- module Tags # :nodoc:
6
- class DatetimeField < TextField # :nodoc:
7
- def render
8
- options = @options.stringify_keys
9
- options["value"] ||= format_date(value)
10
- options["min"] = format_date(datetime_value(options["min"]))
11
- options["max"] = format_date(datetime_value(options["max"]))
12
- @options = options
13
- super
14
- end
15
-
16
- private
17
- def format_date(value)
18
- raise NotImplementedError
19
- end
20
-
21
- def datetime_value(value)
22
- if value.is_a? String
23
- DateTime.parse(value) rescue nil
24
- else
25
- value
26
- end
27
- end
28
- end
29
- end
30
- end
31
- end