trusty-cms 4.2.1 → 4.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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