active_scaffold 3.4.17 → 3.4.18

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 (183) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +12 -1
  3. data/README.md +8 -4
  4. data/app/assets/javascripts/jquery/active_scaffold.js +82 -67
  5. data/app/assets/stylesheets/active_scaffold.scss +1 -1
  6. data/app/assets/stylesheets/active_scaffold_colors.scss +1 -1
  7. data/app/assets/stylesheets/blue-theme.css +1 -1
  8. data/app/views/active_scaffold_overrides/_form_association.html.erb +3 -3
  9. data/app/views/active_scaffold_overrides/_form_association_record.html.erb +3 -3
  10. data/app/views/active_scaffold_overrides/_show_columns.html.erb +1 -1
  11. data/lib/active_scaffold.rb +16 -16
  12. data/lib/active_scaffold/actions/common_search.rb +13 -11
  13. data/lib/active_scaffold/actions/core.rb +85 -78
  14. data/lib/active_scaffold/actions/create.rb +29 -28
  15. data/lib/active_scaffold/actions/delete.rb +17 -17
  16. data/lib/active_scaffold/actions/field_search.rb +18 -19
  17. data/lib/active_scaffold/actions/list.rb +30 -22
  18. data/lib/active_scaffold/actions/mark.rb +1 -1
  19. data/lib/active_scaffold/actions/nested.rb +78 -65
  20. data/lib/active_scaffold/actions/search.rb +13 -10
  21. data/lib/active_scaffold/actions/show.rb +10 -6
  22. data/lib/active_scaffold/actions/subform.rb +1 -2
  23. data/lib/active_scaffold/actions/update.rb +39 -31
  24. data/lib/active_scaffold/active_record_permissions.rb +14 -15
  25. data/lib/active_scaffold/attribute_params.rb +42 -43
  26. data/lib/active_scaffold/bridges.rb +22 -12
  27. data/lib/active_scaffold/bridges/ancestry.rb +1 -1
  28. data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +6 -6
  29. data/lib/active_scaffold/bridges/bitfields.rb +1 -1
  30. data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +12 -13
  31. data/lib/active_scaffold/bridges/calendar_date_select.rb +5 -5
  32. data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +17 -20
  33. data/lib/active_scaffold/bridges/cancan.rb +1 -1
  34. data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +8 -9
  35. data/lib/active_scaffold/bridges/carrierwave.rb +4 -4
  36. data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +9 -8
  37. data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +11 -10
  38. data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +7 -6
  39. data/lib/active_scaffold/bridges/chosen.rb +1 -1
  40. data/lib/active_scaffold/bridges/chosen/helpers.rb +4 -4
  41. data/lib/active_scaffold/bridges/country_helper.rb +1 -1
  42. data/lib/active_scaffold/bridges/country_helper/country_helper_bridge.rb +259 -260
  43. data/lib/active_scaffold/bridges/date_picker.rb +2 -2
  44. data/lib/active_scaffold/bridges/date_picker/ext.rb +9 -11
  45. data/lib/active_scaffold/bridges/date_picker/helper.rb +61 -67
  46. data/lib/active_scaffold/bridges/dragonfly.rb +4 -4
  47. data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +9 -8
  48. data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +11 -10
  49. data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +6 -5
  50. data/lib/active_scaffold/bridges/file_column.rb +5 -5
  51. data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +20 -23
  52. data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +20 -23
  53. data/lib/active_scaffold/bridges/file_column/form_ui.rb +13 -14
  54. data/lib/active_scaffold/bridges/file_column/list_ui.rb +7 -8
  55. data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +18 -22
  56. data/lib/active_scaffold/bridges/file_column/test/mock_model.rb +5 -4
  57. data/lib/active_scaffold/bridges/file_column/test/test_helper.rb +2 -10
  58. data/lib/active_scaffold/bridges/paper_trail.rb +7 -5
  59. data/lib/active_scaffold/bridges/paper_trail/paper_trail_bridge.rb +4 -3
  60. data/lib/active_scaffold/bridges/paperclip.rb +5 -5
  61. data/lib/active_scaffold/bridges/paperclip/form_ui.rb +11 -10
  62. data/lib/active_scaffold/bridges/paperclip/list_ui.rb +6 -5
  63. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +10 -9
  64. data/lib/active_scaffold/bridges/record_select.rb +1 -1
  65. data/lib/active_scaffold/bridges/record_select/helpers.rb +28 -28
  66. data/lib/active_scaffold/bridges/semantic_attributes.rb +1 -1
  67. data/lib/active_scaffold/bridges/semantic_attributes/column.rb +1 -1
  68. data/lib/active_scaffold/bridges/shared/date_bridge.rb +58 -52
  69. data/lib/active_scaffold/bridges/tiny_mce.rb +2 -2
  70. data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +3 -3
  71. data/lib/active_scaffold/config/base.rb +9 -10
  72. data/lib/active_scaffold/config/core.rb +24 -29
  73. data/lib/active_scaffold/config/create.rb +0 -1
  74. data/lib/active_scaffold/config/field_search.rb +8 -10
  75. data/lib/active_scaffold/config/form.rb +5 -5
  76. data/lib/active_scaffold/config/list.rb +21 -20
  77. data/lib/active_scaffold/config/mark.rb +3 -3
  78. data/lib/active_scaffold/config/nested.rb +11 -10
  79. data/lib/active_scaffold/config/search.rb +2 -3
  80. data/lib/active_scaffold/config/show.rb +1 -1
  81. data/lib/active_scaffold/config/update.rb +1 -2
  82. data/lib/active_scaffold/configurable.rb +9 -11
  83. data/lib/active_scaffold/constraints.rb +9 -8
  84. data/lib/active_scaffold/core.rb +72 -84
  85. data/lib/active_scaffold/data_structures/action_columns.rb +26 -25
  86. data/lib/active_scaffold/data_structures/action_link.rb +43 -43
  87. data/lib/active_scaffold/data_structures/action_links.rb +17 -15
  88. data/lib/active_scaffold/data_structures/actions.rb +5 -5
  89. data/lib/active_scaffold/data_structures/bridge.rb +6 -3
  90. data/lib/active_scaffold/data_structures/column.rb +110 -89
  91. data/lib/active_scaffold/data_structures/columns.rb +3 -3
  92. data/lib/active_scaffold/data_structures/error_message.rb +4 -6
  93. data/lib/active_scaffold/data_structures/nested_info.rb +43 -48
  94. data/lib/active_scaffold/data_structures/set.rb +7 -8
  95. data/lib/active_scaffold/data_structures/sorting.rb +38 -33
  96. data/lib/active_scaffold/delayed_setup.rb +5 -6
  97. data/lib/active_scaffold/engine.rb +4 -4
  98. data/lib/active_scaffold/extensions/action_controller_rendering.rb +3 -4
  99. data/lib/active_scaffold/extensions/action_controller_rescueing.rb +1 -1
  100. data/lib/active_scaffold/extensions/action_view_rendering.rb +5 -6
  101. data/lib/active_scaffold/extensions/left_outer_joins.rb +11 -11
  102. data/lib/active_scaffold/extensions/localize.rb +1 -1
  103. data/lib/active_scaffold/extensions/name_option_for_datetime.rb +1 -1
  104. data/lib/active_scaffold/extensions/paginator_extensions.rb +2 -5
  105. data/lib/active_scaffold/extensions/reverse_associations.rb +13 -13
  106. data/lib/active_scaffold/extensions/routing_mapper.rb +9 -9
  107. data/lib/active_scaffold/extensions/unsaved_associated.rb +9 -9
  108. data/lib/active_scaffold/finder.rb +90 -93
  109. data/lib/active_scaffold/helpers/association_helpers.rb +5 -5
  110. data/lib/active_scaffold/helpers/controller_helpers.rb +22 -19
  111. data/lib/active_scaffold/helpers/form_column_helpers.rb +115 -105
  112. data/lib/active_scaffold/helpers/human_condition_helpers.rb +62 -35
  113. data/lib/active_scaffold/helpers/id_helpers.rb +6 -6
  114. data/lib/active_scaffold/helpers/list_column_helpers.rb +89 -94
  115. data/lib/active_scaffold/helpers/pagination_helpers.rb +9 -9
  116. data/lib/active_scaffold/helpers/search_column_helpers.rb +47 -44
  117. data/lib/active_scaffold/helpers/show_column_helpers.rb +2 -2
  118. data/lib/active_scaffold/helpers/view_helpers.rb +86 -91
  119. data/lib/active_scaffold/marked_model.rb +10 -10
  120. data/lib/active_scaffold/paginator.rb +30 -34
  121. data/lib/active_scaffold/responds_to_parent.rb +27 -28
  122. data/lib/active_scaffold/tableless.rb +20 -15
  123. data/lib/active_scaffold/version.rb +1 -1
  124. data/lib/generators/active_scaffold/active_scaffold_generator.rb +8 -8
  125. data/lib/generators/active_scaffold_controller/active_scaffold_controller_generator.rb +9 -9
  126. data/shoulda_macros/macros.rb +27 -22
  127. data/test/bridges/bridge_test.rb +38 -29
  128. data/test/bridges/date_picker_test.rb +1 -1
  129. data/test/bridges/paper_trail_test.rb +17 -0
  130. data/test/bridges/paperclip_test.rb +3 -2
  131. data/test/bridges/tiny_mce_test.rb +5 -2
  132. data/test/company.rb +25 -30
  133. data/test/config/base_test.rb +1 -1
  134. data/test/config/core_test.rb +9 -9
  135. data/test/config/create_test.rb +14 -8
  136. data/test/config/delete_test.rb +4 -4
  137. data/test/config/field_search_test.rb +6 -6
  138. data/test/config/list_test.rb +16 -16
  139. data/test/config/nested_test.rb +4 -4
  140. data/test/config/search_test.rb +8 -8
  141. data/test/config/show_test.rb +6 -6
  142. data/test/config/subform_test.rb +1 -1
  143. data/test/config/update_test.rb +5 -5
  144. data/test/const_mocker.rb +4 -4
  145. data/test/data_structures/action_columns_test.rb +4 -5
  146. data/test/data_structures/action_link_test.rb +1 -0
  147. data/test/data_structures/action_links_test.rb +5 -5
  148. data/test/data_structures/column_test.rb +9 -9
  149. data/test/data_structures/columns_test.rb +2 -2
  150. data/test/data_structures/error_message_test.rb +4 -5
  151. data/test/data_structures/set_test.rb +1 -2
  152. data/test/data_structures/sorting_test.rb +10 -10
  153. data/test/data_structures/validation_reflection_test.rb +8 -0
  154. data/test/extensions/routing_mapper_test.rb +2 -2
  155. data/test/helpers/list_column_helpers_test.rb +3 -2
  156. data/test/helpers/pagination_helpers_test.rb +5 -4
  157. data/test/helpers/search_column_helpers_test.rb +1 -1
  158. data/test/misc/active_record_permissions_test.rb +63 -50
  159. data/test/misc/attribute_params_test.rb +28 -26
  160. data/test/misc/calculation_test.rb +10 -3
  161. data/test/misc/configurable_test.rb +12 -13
  162. data/test/misc/constraints_test.rb +6 -6
  163. data/test/misc/convert_numbers_format_test.rb +7 -6
  164. data/test/misc/finder_test.rb +17 -12
  165. data/test/misc/lang_test.rb +3 -4
  166. data/test/misc/tableless_test.rb +2 -3
  167. data/test/mock_app/app/controllers/addresses_controller.rb +1 -1
  168. data/test/mock_app/app/controllers/buildings_controller.rb +1 -1
  169. data/test/mock_app/app/controllers/cars_controller.rb +1 -1
  170. data/test/mock_app/app/controllers/contacts_controller.rb +1 -1
  171. data/test/mock_app/app/controllers/people_controller.rb +1 -1
  172. data/test/mock_app/app/models/file_model.rb +2 -2
  173. data/test/mock_app/app/models/person.rb +1 -1
  174. data/test/mock_app/config/application.rb +3 -3
  175. data/test/mock_app/config/boot.rb +1 -1
  176. data/test/mock_app/config/environment.rb +1 -0
  177. data/test/mock_app/config/environments/development.rb +0 -1
  178. data/test/mock_app/config/environments/production.rb +1 -1
  179. data/test/mock_app/db/schema.rb +14 -15
  180. data/test/model_stub.rb +13 -16
  181. data/test/run_all.rb +5 -7
  182. data/test/test_helper.rb +12 -9
  183. metadata +19 -3
@@ -2,7 +2,7 @@ module ActiveScaffold
2
2
  module Helpers
3
3
  module PaginationHelpers
4
4
  def pagination_ajax_link(page_number, url_options, options)
5
- link_to page_number, url_options.merge(:page => page_number), options.merge(:class => "as_paginate")
5
+ link_to page_number, url_options.merge(:page => page_number), options.merge(:class => 'as_paginate')
6
6
  end
7
7
 
8
8
  def pagination_url_options(url_options = nil)
@@ -40,18 +40,18 @@ module ActiveScaffold
40
40
  if current_page.pager.infinite?
41
41
  offsets.reverse.each do |offset|
42
42
  page = current_page.number - offset
43
- if page < start_number && page > last_page
44
- html << '..' if page > last_page + 1
45
- html << pagination_ajax_link(page, url_options, options)
46
- last_page = page
47
- end
43
+ next unless page < start_number && page > last_page
44
+
45
+ html << '..' if page > last_page + 1
46
+ html << pagination_ajax_link(page, url_options, options)
47
+ last_page = page
48
48
  end
49
49
  end
50
- html << ".." if start_number > last_page + 1
50
+ html << '..' if start_number > last_page + 1
51
51
 
52
52
  [start_number, last_page + 1].max.upto(end_number) do |num|
53
53
  if current_page.number == num
54
- html << content_tag(:span, num.to_s, {:class => "as_paginate current"})
54
+ html << content_tag(:span, num.to_s, :class => 'as_paginate current')
55
55
  else
56
56
  html << pagination_ajax_link(num, url_options, options)
57
57
  end
@@ -62,7 +62,7 @@ module ActiveScaffold
62
62
  html << '..' << pagination_ajax_link(current_page.number + offset, url_options, options)
63
63
  end
64
64
  else
65
- html << ".." unless end_number >= current_page.pager.last.number - outer_window - 1
65
+ html << '..' unless end_number >= current_page.pager.last.number - outer_window - 1
66
66
  [end_number + 1, current_page.pager.last.number - outer_window].max.upto(current_page.pager.last.number) do |num|
67
67
  html << pagination_ajax_link(num, url_options, options)
68
68
  end
@@ -7,19 +7,19 @@ module ActiveScaffold
7
7
  def active_scaffold_search_for(column, options = nil)
8
8
  options ||= active_scaffold_search_options(column)
9
9
  record = options[:object]
10
- ActiveSupport::Deprecation.warn "Relying on @record is deprecated, include :object in options with record.", caller if record.nil? # TODO Remove when relying on @record is removed
11
- record ||= @record # TODO Remove when relying on @record is removed
10
+ ActiveSupport::Deprecation.warn 'Relying on @record is deprecated, include :object in options with record.', caller if record.nil? # TODO: Remove when relying on @record is removed
11
+ record ||= @record # TODO: Remove when relying on @record is removed
12
12
 
13
13
  # first, check if the dev has created an override for this specific field for search
14
14
  if (method = override_search_field(column))
15
15
  send(method, record, options)
16
16
 
17
17
  # second, check if the dev has specified a valid search_ui for this column, using specific ui for searches
18
- elsif column.search_ui and (method = override_search(column.search_ui))
18
+ elsif column.search_ui && (method = override_search(column.search_ui))
19
19
  send(method, column, options)
20
20
 
21
21
  # third, check if the dev has specified a valid search_ui for this column, using generic ui for forms
22
- elsif column.search_ui and (method = override_input(column.search_ui))
22
+ elsif column.search_ui && (method = override_input(column.search_ui))
23
23
  send(method, column, options)
24
24
 
25
25
  # fourth, check if the dev has created an override for this specific field
@@ -28,7 +28,7 @@ module ActiveScaffold
28
28
 
29
29
  # fallback: we get to make the decision
30
30
  else
31
- if column.association or column.virtual?
31
+ if column.association || column.virtual?
32
32
  active_scaffold_search_text(column, options)
33
33
 
34
34
  else # regular model attribute column
@@ -47,41 +47,41 @@ module ActiveScaffold
47
47
  end
48
48
  end
49
49
  end
50
- rescue Exception => e
50
+ rescue StandardError => e
51
51
  logger.error "#{e.class.name}: #{e.message} -- on the ActiveScaffold column = :#{column.name} in #{controller.class}"
52
52
  raise e
53
53
  end
54
54
 
55
55
  # the standard active scaffold options used for class, name and scope
56
56
  def active_scaffold_search_options(column)
57
- { :name => "search[#{column.name}]", :class => "#{column.name}-input", :id => "search_#{column.name}", :value => field_search_params[column.name] }
57
+ {:name => "search[#{column.name}]", :class => "#{column.name}-input", :id => "search_#{column.name}", :value => field_search_params[column.name]}
58
58
  end
59
59
 
60
60
  def search_attribute(column, record)
61
61
  column_options = active_scaffold_search_options(column).merge(:object => record)
62
62
  field = active_scaffold_search_for column, column_options
63
- %|<dl><dt>#{label_tag search_label_for(column, column_options), search_column_label(column, record)}</dt><dd>#{field}</dd></dl>|.html_safe
63
+ %(<dl><dt>#{label_tag search_label_for(column, column_options), search_column_label(column, record)}</dt><dd>#{field}</dd></dl>).html_safe
64
64
  end
65
65
 
66
66
  def search_label_for(column, options)
67
67
  options[:id] unless [:range, :integer, :decimal, :float, :string, :date_picker, :datetime_picker, :calendar_date_select].include? column.search_ui
68
68
  end
69
-
69
+
70
70
  ##
71
71
  ## Search input methods
72
72
  ##
73
73
 
74
74
  def active_scaffold_search_multi_select(column, options)
75
75
  record = options.delete(:object)
76
- ActiveSupport::Deprecation.warn "Relying on @record is deprecated, include :object in options with record.", caller if record.nil? # TODO Remove when relying on @record is removed
77
- record ||= @record # TODO Remove when relying on @record is removed
76
+ ActiveSupport::Deprecation.warn 'Relying on @record is deprecated, include :object in options with record.', caller if record.nil? # TODO: Remove when relying on @record is removed
77
+ record ||= @record # TODO: Remove when relying on @record is removed
78
78
  associated = options.delete :value
79
79
  associated = [associated].compact unless associated.is_a? Array
80
80
  associated.collect!(&:to_i)
81
-
81
+
82
82
  if column.association
83
83
  method = column.options[:label_method] || :to_label
84
- select_options = sorted_association_options_find(column.association, nil, record).collect {|r| [r.send(method), r.id]}
84
+ select_options = sorted_association_options_find(column.association, nil, record).collect { |r| [r.send(method), r.id] }
85
85
  else
86
86
  select_options = column.options[:options].collect do |text, value|
87
87
  active_scaffold_translated_option(column, text, value)
@@ -94,8 +94,8 @@ module ActiveScaffold
94
94
 
95
95
  def active_scaffold_search_select(column, html_options, options = {})
96
96
  record = html_options.delete(:object)
97
- ActiveSupport::Deprecation.warn "Relying on @record is deprecated, include :object in html_options with record.", caller if record.nil? # TODO Remove when relying on @record is removed
98
- record ||= @record # TODO Remove when relying on @record is removed
97
+ ActiveSupport::Deprecation.warn 'Relying on @record is deprecated, include :object in html_options with record.', caller if record.nil? # TODO: Remove when relying on @record is removed
98
+ record ||= @record # TODO: Remove when relying on @record is removed
99
99
  associated = html_options.delete :value
100
100
  if column.association
101
101
  associated = associated.is_a?(Array) ? associated.map(&:to_i) : associated.to_i unless associated.nil?
@@ -113,10 +113,10 @@ module ActiveScaffold
113
113
  if html_options[:multiple]
114
114
  html_options[:name] += '[]'
115
115
  else
116
- options[:include_blank] ||= as_(:_select_)
116
+ options[:include_blank] ||= as_(:_select_)
117
117
  end
118
-
119
- if optgroup = options.delete(:optgroup)
118
+
119
+ if (optgroup = options.delete(:optgroup))
120
120
  select(:record, method, active_scaffold_grouped_options(column, select_options, optgroup), options, html_options)
121
121
  elsif column.association
122
122
  collection_select(:record, method, select_options, :id, column.options[:label_method] || :to_label, options, html_options)
@@ -141,18 +141,18 @@ module ActiveScaffold
141
141
  end
142
142
  # we can't use checkbox ui because it's not possible to decide whether search for this field or not
143
143
  alias_method :active_scaffold_search_checkbox, :active_scaffold_search_boolean
144
-
144
+
145
145
  def active_scaffold_search_null(column, options)
146
146
  select_options = []
147
147
  select_options << [as_(:_select_), nil]
148
- select_options.concat ActiveScaffold::Finder::NullComparators.collect {|comp| [as_(comp), comp]}
148
+ select_options.concat ActiveScaffold::Finder::NULL_COMPARATORS.collect { |comp| [as_(comp), comp] }
149
149
  select_tag(options[:name], options_for_select(select_options, options[:value]), :id => options[:id])
150
150
  end
151
151
 
152
152
  def field_search_params_range_values(column)
153
153
  values = field_search_params[column.name]
154
154
  return nil unless values.is_a? Hash
155
- return values[:opt], (values[:from].blank? ? nil : values[:from]), (values[:to].blank? ? nil : values[:to])
155
+ [values[:opt], (values[:from].blank? ? nil : values[:from]), (values[:to].blank? ? nil : values[:to])]
156
156
  end
157
157
 
158
158
  def active_scaffold_search_range_string?(column)
@@ -160,18 +160,18 @@ module ActiveScaffold
160
160
  end
161
161
 
162
162
  def active_scaffold_search_range_comparator_options(column)
163
- select_options = ActiveScaffold::Finder::NumericComparators.collect {|comp| [as_(comp.downcase.to_sym), comp]}
163
+ select_options = ActiveScaffold::Finder::NUMERIC_COMPARATORS.collect { |comp| [as_(comp.downcase.to_sym), comp] }
164
164
  if active_scaffold_search_range_string?(column)
165
- select_options.unshift *ActiveScaffold::Finder::StringComparators.collect {|title, comp| [as_(title), comp]}
165
+ select_options.unshift *ActiveScaffold::Finder::STRING_COMPARATORS.collect { |title, comp| [as_(title), comp] }
166
166
  end
167
167
  if include_null_comparators? column
168
- select_options += ActiveScaffold::Finder::NullComparators.collect {|comp| [as_(comp), comp]}
168
+ select_options += ActiveScaffold::Finder::NULL_COMPARATORS.collect { |comp| [as_(comp), comp] }
169
169
  end
170
170
  select_options
171
171
  end
172
172
 
173
173
  def include_null_comparators?(column)
174
- return column.options[:null_comparators] if column.options.has_key? :null_comparators
174
+ return column.options[:null_comparators] if column.options.key? :null_comparators
175
175
  if column.association
176
176
  column.association.macro != :belongs_to || active_scaffold_config.columns[column.association.foreign_key].column.try(:null)
177
177
  else
@@ -190,20 +190,22 @@ module ActiveScaffold
190
190
  text_field_size = 10
191
191
  opt_value ||= '='
192
192
  end
193
-
193
+
194
194
  from_value = controller.class.condition_value_for_numeric(column, from_value)
195
195
  to_value = controller.class.condition_value_for_numeric(column, to_value)
196
196
  from_value = format_number_value(from_value, column.options) if from_value.is_a?(Numeric)
197
197
  to_value = format_number_value(to_value, column.options) if to_value.is_a?(Numeric)
198
- html = select_tag("#{options[:name]}[opt]",
199
- options_for_select(select_options, opt_value),
200
- :id => "#{options[:id]}_opt",
201
- :class => "as_search_range_option")
202
- html << content_tag("span", :id => "#{options[:id]}_numeric", :style => ActiveScaffold::Finder::NullComparators.include?(opt_value) ? "display: none" : nil) do
198
+ html = select_tag("#{options[:name]}[opt]", options_for_select(select_options, opt_value),
199
+ :id => "#{options[:id]}_opt", :class => 'as_search_range_option')
200
+ html << content_tag('span', :id => "#{options[:id]}_numeric", :style => ActiveScaffold::Finder::NULL_COMPARATORS.include?(opt_value) ? 'display: none' : nil) do
203
201
  text_field_tag("#{options[:name]}[from]", from_value, active_scaffold_input_text_options(:id => options[:id], :size => text_field_size)) <<
204
- content_tag(:span, (' - ' + text_field_tag("#{options[:name]}[to]", to_value,
205
- active_scaffold_input_text_options(:id => "#{options[:id]}_to", :size => text_field_size))).html_safe,
206
- :id => "#{options[:id]}_between", :class => "as_search_range_between", :style => (opt_value == 'BETWEEN') ? nil : "display: none")
202
+ content_tag(
203
+ :span, (
204
+ ' - ' + text_field_tag("#{options[:name]}[to]", to_value,
205
+ active_scaffold_input_text_options(:id => "#{options[:id]}_to", :size => text_field_size))
206
+ ).html_safe,
207
+ :id => "#{options[:id]}_between", :class => 'as_search_range_between', :style => (opt_value == 'BETWEEN') ? nil : 'display: none'
208
+ )
207
209
  end
208
210
  content_tag :span, html, :class => 'search_range'
209
211
  end
@@ -215,19 +217,20 @@ module ActiveScaffold
215
217
  def field_search_datetime_value(value)
216
218
  DateTime.new(value[:year].to_i, value[:month].to_i, value[:day].to_i, value[:hour].to_i, value[:minute].to_i, value[:second].to_i) unless value.nil? || value[:year].blank?
217
219
  end
218
-
220
+
219
221
  def active_scaffold_search_datetime(column, options)
220
- opt_value, from_value, to_value = field_search_params_range_values(column)
222
+ _, from_value, to_value = field_search_params_range_values(column)
221
223
  options = column.options.merge(options)
222
224
  helper = "select_#{'date' unless options[:discard_date]}#{'time' unless options[:discard_time]}"
223
-
224
- send(helper, field_search_datetime_value(from_value), {:include_blank => true, :prefix => "#{options[:name]}[from]"}.merge(options)) <<
225
- ' - '.html_safe << send(helper, field_search_datetime_value(to_value), {:include_blank => true, :prefix => "#{options[:name]}[to]"}.merge(options))
225
+
226
+ send(helper, field_search_datetime_value(from_value), {:include_blank => true, :prefix => "#{options[:name]}[from]"}.merge(options)) <<
227
+ ' - '.html_safe << send(helper, field_search_datetime_value(to_value), {:include_blank => true, :prefix => "#{options[:name]}[to]"}.merge(options))
226
228
  end
227
229
 
228
230
  def active_scaffold_search_date(column, options)
229
231
  active_scaffold_search_datetime(column, options.merge!(:discard_time => true))
230
232
  end
233
+
231
234
  def active_scaffold_search_time(column, options)
232
235
  active_scaffold_search_datetime(column, options.merge!(:discard_date => true))
233
236
  end
@@ -236,7 +239,7 @@ module ActiveScaffold
236
239
  ##
237
240
  ## Search column override signatures
238
241
  ##
239
-
242
+
240
243
  def search_column_label(column, record)
241
244
  column.label
242
245
  end
@@ -250,9 +253,9 @@ module ActiveScaffold
250
253
  method = "active_scaffold_search_#{form_ui}"
251
254
  method if respond_to? method
252
255
  end
253
-
256
+
254
257
  def visibles_and_hiddens(search_config)
255
- visibles = []
258
+ visibles = []
256
259
  hiddens = []
257
260
  search_config.columns.each do |column|
258
261
  next unless column.search_sql
@@ -262,9 +265,9 @@ module ActiveScaffold
262
265
  visibles << column
263
266
  end
264
267
  end
265
- return visibles, hiddens
268
+ [visibles, hiddens]
266
269
  end
267
-
270
+
268
271
  def searched_by?(column)
269
272
  value = field_search_params[column.name]
270
273
  case value
@@ -10,10 +10,10 @@ module ActiveScaffold
10
10
  # performance of our default formatting. see issue #138.
11
11
  send(method, record, column)
12
12
  # second, check if the dev has specified a valid list_ui for this column
13
- elsif column.list_ui and (method = override_show_column_ui(column.list_ui))
13
+ elsif column.list_ui && (method = override_show_column_ui(column.list_ui))
14
14
  send(method, record, column)
15
15
  else
16
- if column.column and (method = override_show_column_ui(column.column.type))
16
+ if column.column && (method = override_show_column_ui(column.column.type))
17
17
  send(method, record, column)
18
18
  else
19
19
  get_column_value(record, column)
@@ -35,12 +35,10 @@ module ActiveScaffold
35
35
  ##
36
36
 
37
37
  def controller_path_for_activerecord(klass)
38
- begin
39
- controller = active_scaffold_controller_for(klass)
40
- controller.controller_path
41
- rescue ActiveScaffold::ControllerNotFound
42
- controller = nil
43
- end
38
+ controller = active_scaffold_controller_for(klass)
39
+ controller.controller_path
40
+ rescue ActiveScaffold::ControllerNotFound
41
+ nil
44
42
  end
45
43
 
46
44
  # This is the template finder logic, keep it updated with however we find stuff in rails
@@ -52,25 +50,25 @@ module ActiveScaffold
52
50
  # Turns [[label, value]] into <option> tags
53
51
  # Takes optional parameter of :include_blank
54
52
  def option_tags_for(select_options, options = {})
55
- select_options.insert(0,[as_(:_select_),nil]) if options[:include_blank]
53
+ select_options.insert(0, [as_(:_select_), nil]) if options[:include_blank]
56
54
  select_options.collect do |option|
57
55
  label, value = option[0], option[1]
58
- value.nil? ? "<option value="">#{label}</option>" : "<option value=\"#{value}\">#{label}</option>"
56
+ value.nil? ? '<option value='">#{label}</option>" : "<option value=\"#{value}\">#{label}</option>"
59
57
  end
60
58
  end
61
59
 
62
60
  def form_remote_upload_tag(url_for_options = {}, options = {})
63
61
  options[:target] = action_iframe_id(url_for_options)
64
62
  options[:multipart] ||= true
65
- options[:class] = "#{options[:class]} as_remote_upload".strip
66
- output=""
63
+ options[:class] = "#{options[:class]} as_remote_upload".strip
64
+ output = ''
67
65
  output << form_tag(url_for_options, options)
68
66
  (output << "<iframe id='#{action_iframe_id(url_for_options)}' name='#{action_iframe_id(url_for_options)}' style='display:none'></iframe>").html_safe
69
67
  end
70
68
 
71
69
  # a general-use loading indicator (the "stuff is happening, please wait" feedback)
72
70
  def loading_indicator_tag(options)
73
- image_tag "active_scaffold/indicator.gif", :style => "visibility:hidden;", :id => loading_indicator_id(options), :alt => "loading indicator", :class => "loading-indicator"
71
+ image_tag 'active_scaffold/indicator.gif', :style => 'visibility:hidden;', :id => loading_indicator_id(options), :alt => 'loading indicator', :class => 'loading-indicator'
74
72
  end
75
73
 
76
74
  # Creates a javascript-based link that toggles the visibility of some element on the page.
@@ -78,7 +76,7 @@ module ActiveScaffold
78
76
  # You may also flag whether the other element is visible by default or not, and the initial text will adjust accordingly.
79
77
  def link_to_visibility_toggle(id, options = {})
80
78
  options[:default_visible] = true if options[:default_visible].nil?
81
- options[:hide_label] ||= as_(:hide)
79
+ options[:hide_label] ||= as_(:hide)
82
80
  options[:show_label] ||= as_(:show_block)
83
81
  link_to options[:default_visible] ? options[:hide_label] : options[:show_label], '#', :data => {:show => options[:show_label], :hide => options[:hide_label], :toggable => id}, :style => 'display: none;', :class => 'as-js-button visibility-toggle'
84
82
  end
@@ -88,8 +86,7 @@ module ActiveScaffold
88
86
  end
89
87
 
90
88
  def action_link_authorized?(link, *args)
91
- security_method = link.security_method_set? || controller.respond_to?(link.security_method, true)
92
- authorized = if security_method
89
+ if link.security_method_set? || controller.respond_to?(link.security_method, true)
93
90
  controller.send(link.security_method, *args)
94
91
  else
95
92
  args.empty? ? true : args.first.authorized_for?(:crud_type => link.crud_type, :action => link.action)
@@ -160,7 +157,7 @@ module ActiveScaffold
160
157
  options[:authorized] = false if link.action.nil? || link.controller.nil?
161
158
  options.delete :link if link.crud_type == :create
162
159
  end
163
- if link.action.nil? || (link.type == :member && options.has_key?(:authorized) && !options[:authorized])
160
+ if link.action.nil? || (link.type == :member && options.key?(:authorized) && !options[:authorized])
164
161
  action_link_html(link, nil, {:link => action_link_text(link, options), :class => "disabled #{link.action}#{" #{link.html_options[:class]}" unless link.html_options[:class].blank?}"}, record)
165
162
  else
166
163
  url = action_link_url(link, record)
@@ -199,7 +196,7 @@ module ActiveScaffold
199
196
  link.action = 'index'
200
197
  link.crud_type = :read
201
198
  end
202
-
199
+
203
200
  unless column_link_authorized?(link, link.column, record, associated)
204
201
  link.action = nil
205
202
  # if action is edit and is not authorized, fallback to show if it's enabled
@@ -212,22 +209,23 @@ module ActiveScaffold
212
209
 
213
210
  def column_link_authorized?(link, column, record, associated)
214
211
  if column.association
215
- associated_for_authorized = if column.plural_association? || (associated.respond_to?(:blank?) && associated.blank?)
216
- column.association.klass
217
- else
218
- associated
219
- end
212
+ associated_for_authorized =
213
+ if column.plural_association? || (associated.respond_to?(:blank?) && associated.blank?)
214
+ column.association.klass
215
+ else
216
+ associated
217
+ end
220
218
  authorized = associated_for_authorized.authorized_for?(:crud_type => link.crud_type)
221
- authorized = authorized and record.authorized_for?(:crud_type => :update, :column => column.name) if link.crud_type == :create
219
+ authorized &&= record.authorized_for?(:crud_type => :update, :column => column.name) if link.crud_type == :create
222
220
  authorized
223
- else
221
+ else
224
222
  action_link_authorized?(link, record)
225
223
  end
226
224
  end
227
225
 
228
226
  def is_sti_record?(record)
229
227
  model = active_scaffold_config.model
230
- is_sti_record = record && model.columns_hash.include?(model.inheritance_column) &&
228
+ record && model.columns_hash.include?(model.inheritance_column) &&
231
229
  record[model.inheritance_column].present? && !record.instance_of?(model)
232
230
  end
233
231
 
@@ -236,9 +234,9 @@ module ActiveScaffold
236
234
  end
237
235
 
238
236
  def cached_action_link_url(link, record)
239
- url = (@action_links_urls ||= {})[link.name_to_cache]
240
- url ||= begin
241
- url_options = action_link_url_options(link, record)
237
+ @action_links_urls ||= {}
238
+ @action_links_urls[link.name_to_cache] || begin
239
+ url_options = cached_action_link_url_options(link, record)
242
240
  if cache_action_link_url?(link, record)
243
241
  @action_links_urls[link.name_to_cache] = url_for(url_options)
244
242
  else
@@ -246,7 +244,7 @@ module ActiveScaffold
246
244
  end
247
245
  end
248
246
  end
249
-
247
+
250
248
  def replace_id_params_in_action_link_url(link, record, url)
251
249
  url = record ? url.sub('--ID--', record.to_param) : url.clone
252
250
  if link.column.try(:singular_association?)
@@ -254,7 +252,7 @@ module ActiveScaffold
254
252
  if child_id.present?
255
253
  url.sub!('--CHILD_ID--', child_id)
256
254
  else
257
- url.sub!(/\w+=--CHILD_ID--&?/,'')
255
+ url.sub!(/\w+=--CHILD_ID--&?/, '')
258
256
  url.sub!(/\?$/, '')
259
257
  end
260
258
  elsif nested?
@@ -262,7 +260,7 @@ module ActiveScaffold
262
260
  end
263
261
  url
264
262
  end
265
-
263
+
266
264
  def add_query_string_to_cached_url(link, url)
267
265
  query_string, non_nested_query_string = query_string_for_action_links(link)
268
266
  nested_params = (!link.nested_link? && non_nested_query_string)
@@ -281,15 +279,14 @@ module ActiveScaffold
281
279
  end
282
280
 
283
281
  def query_string_for_action_links(link)
284
- if defined?(@query_string) && link.parameters.none? { |k, v| @query_string_params.include? k }
282
+ if defined?(@query_string) && link.parameters.none? { |k, _| @query_string_params.include? k }
285
283
  return [@query_string, @non_nested_query_string]
286
284
  end
287
285
  keep = true
288
286
  @query_string_params ||= Set.new
289
- query_string_for_all = nil
290
287
  query_string_options = {}
291
288
  non_nested_query_string_options = {}
292
-
289
+
293
290
  params_for.except(:controller, :action, :id).each do |key, value|
294
291
  @query_string_params << key
295
292
  if link.parameters.include? key
@@ -302,7 +299,7 @@ module ActiveScaffold
302
299
  query_string_options[key] = value
303
300
  end
304
301
  end
305
-
302
+
306
303
  query_string = query_string_options.to_query if query_string_options.present?
307
304
  if non_nested_query_string_options.present?
308
305
  non_nested_query_string = "#{'&' if query_string}#{non_nested_query_string_options.to_query}"
@@ -317,11 +314,11 @@ module ActiveScaffold
317
314
  def cache_action_link_url_options?(link, record)
318
315
  active_scaffold_config.cache_action_link_urls && (link.type == :collection || !link.dynamic_parameters.is_a?(Proc)) && !is_sti_record?(record)
319
316
  end
320
-
321
- def action_link_url_options(link, record)
322
- options = (@action_links_url_options ||= {})[link.name_to_cache]
323
- options ||= begin
324
- options = generate_action_link_url_options(link, record)
317
+
318
+ def cached_action_link_url_options(link, record)
319
+ @action_links_url_options ||= {}
320
+ @action_links_url_options[link.name_to_cache] || begin
321
+ options = action_link_url_options(link, record)
325
322
  if cache_action_link_url_options?(link, record)
326
323
  @action_links_url_options[link.name_to_cache] = options
327
324
  end
@@ -329,7 +326,7 @@ module ActiveScaffold
329
326
  end
330
327
  end
331
328
 
332
- def generate_action_link_url_options(link, record)
329
+ def action_link_url_options(link, record)
333
330
  url_options = {:action => link.action}
334
331
  url_options[:id] = '--ID--' unless record.nil?
335
332
  url_options[:controller] = link.controller.to_s if link.controller
@@ -350,16 +347,16 @@ module ActiveScaffold
350
347
  url_options[:_method] = link.method if !link.confirm? && link.inline? && link.method != :get
351
348
  url_options
352
349
  end
353
-
350
+
354
351
  def action_link_text(link, options)
355
352
  text = image_tag(link.image[:name], :size => link.image[:size], :alt => options[:link] || link.label, :title => options[:link] || link.label) if link.image
356
353
  text || options[:link]
357
354
  end
358
-
355
+
359
356
  def replaced_action_link_url_options(link, record)
360
- url = action_link_url_options(link, record)
357
+ url = cached_action_link_url_options(link, record)
361
358
  url[:controller] ||= params[:controller]
362
- missing_options, url_options = url.partition{|k,v| v.nil?}
359
+ missing_options, url_options = url.partition { |_, v| v.nil? }
363
360
  replacements = {}
364
361
  replacements['--ID--'] = record.id.to_s if record
365
362
  if link.column.try(:singular_association?)
@@ -367,26 +364,26 @@ module ActiveScaffold
367
364
  elsif nested?
368
365
  replacements['--CHILD_ID--'] = params[nested.param_name].to_s
369
366
  end
370
- url_options.collect! do |k,v|
367
+ url_options.collect! do |k, v|
371
368
  [k.to_s, replacements[v] || v]
372
369
  end
373
370
  [missing_options, url_options]
374
371
  end
375
-
372
+
376
373
  def action_link_selected?(link, record)
377
374
  missing_options, url_options = replaced_action_link_url_options(link, record)
378
- (url_options - params.to_a).blank? && missing_options.all? {|k,v| params[k].nil?}
375
+ (url_options - params.to_a).blank? && missing_options.all? { |k, _| params[k].nil? }
379
376
  end
380
-
377
+
381
378
  def action_link_html_options(link, record, options)
382
379
  link_id = get_action_link_id(link, record)
383
380
  html_options = link.html_options.merge(:class => [link.html_options[:class], link.action.to_s].compact.join(' '))
384
381
  html_options[:link] = action_link_text(link, options)
385
382
 
386
- # Needs to be in html_options to as the adding _method to the url is no longer supported by Rails
383
+ # Needs to be in html_options to as the adding _method to the url is no longer supported by Rails
387
384
  html_options[:method] = link.method if link.method != :get
388
385
 
389
- html_options[:data] = {}
386
+ html_options[:data] ||= {}
390
387
  html_options[:data][:confirm] = link.confirm(record.try(:to_label)) if link.confirm?
391
388
  if link.inline?
392
389
  html_options[:class] << ' as_action'
@@ -400,7 +397,7 @@ module ActiveScaffold
400
397
  html_options[:class] << ' toggle'
401
398
  html_options[:class] << ' active' if action_link_selected?(link, record)
402
399
  end
403
-
400
+
404
401
  html_options[:target] = '_blank' if link.popup?
405
402
  html_options[:id] = link_id
406
403
  html_options[:remote] = true unless link.page? || link.popup?
@@ -426,11 +423,11 @@ module ActiveScaffold
426
423
  id = "#{column.association.name}-#{record.id}" unless record.nil?
427
424
  end
428
425
  end
429
- id ||= record ? record.id : (nested? ? nested_parent_id : '')
426
+ id ||= record.try(:id) || (nested? ? nested_parent_id : '')
430
427
  action_id = "#{id_from_controller("#{link.controller}-") if params[:parent_controller] || (link.controller && link.controller != controller.controller_path)}#{link.action}"
431
428
  action_link_id(action_id, id)
432
429
  end
433
-
430
+
434
431
  def action_link_html(link, url, html_options, record)
435
432
  label = html_options.delete(:link)
436
433
  label ||= link.label
@@ -440,7 +437,7 @@ module ActiveScaffold
440
437
  link_to(label, url, html_options)
441
438
  end
442
439
  end
443
-
440
+
444
441
  def url_options_for_nested_link(column, record, link, url_options)
445
442
  if column && column.association
446
443
  url_options[:parent_scaffold] = controller_path
@@ -457,18 +454,14 @@ module ActiveScaffold
457
454
  end
458
455
 
459
456
  def url_options_for_sti_link(column, record, link, url_options)
460
- #need to find out controller of current record type
461
- #and set parameters
462
- # its quite difficult to detect an sti link
463
- # if link.column.nil? we are sure that it is nt an singular association inline autolink
464
- # howver that will not work if a sti parent is an singular association inline autolink
465
- if link.column.nil?
466
- sti_controller_path = controller_path_for_activerecord(record.class)
467
- if sti_controller_path
468
- url_options[:controller] = sti_controller_path
469
- url_options[:parent_sti] = controller_path
470
- end
471
- end
457
+ # need to find out controller of current record type and set parameters
458
+ # it's quite difficult to detect an sti link
459
+ # if link.column.nil? we are sure that it isn't a singular association inline autolink
460
+ # however that will not work if a sti parent is a singular association inline autolink
461
+ return unless link.column.nil?
462
+ return if (sti_controller_path = controller_path_for_activerecord(record.class)).nil?
463
+ url_options[:controller] = sti_controller_path
464
+ url_options[:parent_sti] = controller_path
472
465
  end
473
466
 
474
467
  def list_row_class_method(record)
@@ -498,14 +491,14 @@ module ActiveScaffold
498
491
  end
499
492
  classes = "#{@_column_classes[column.name]} "
500
493
  classes << 'empty ' if column_empty? column_value
501
- classes << 'in_place_editor_field ' if inplace_edit?(record, column) or column.list_ui == :marked
494
+ classes << 'in_place_editor_field ' if inplace_edit?(record, column) || column.list_ui == :marked
502
495
  if column.css_class.is_a?(Proc)
503
496
  css_class = column.css_class.call(column_value, record)
504
497
  classes << css_class unless css_class.nil?
505
498
  end
506
499
  classes
507
500
  end
508
-
501
+
509
502
  def column_heading_class(column, sorting)
510
503
  classes = "#{column.name}-column_heading "
511
504
  classes << "sorted #{sorting.direction_of(column).downcase} " if sorting.sorts_on? column
@@ -515,26 +508,26 @@ module ActiveScaffold
515
508
 
516
509
  def as_main_div_class
517
510
  classes = "active-scaffold active-scaffold-#{controller_id} #{id_from_controller params[:controller]}-view #{active_scaffold_config.theme}-theme"
518
- classes << " as_touch" if touch_device?
511
+ classes << ' as_touch' if touch_device?
519
512
  classes
520
513
  end
521
514
 
522
515
  def column_empty?(column_value)
523
516
  empty = column_value.nil?
524
517
  empty ||= false != column_value && column_value.blank?
525
- empty ||= ['&nbsp;', empty_field_text].include? column_value if String === column_value
526
- return empty
518
+ empty ||= ['&nbsp;', empty_field_text].include? column_value if column_value.is_a? String
519
+ empty
527
520
  end
528
-
521
+
529
522
  def empty_field_text
530
523
  active_scaffold_config.list.empty_field_text if active_scaffold_config.actions.include?(:list)
531
524
  end
532
525
 
533
526
  def column_calculation(column)
534
- unless column.calculate.instance_of? Proc
535
- calculate_query.calculate(column.calculate, column.name)
536
- else
527
+ if column.calculate.instance_of? Proc
537
528
  column.calculate.call(@records)
529
+ else
530
+ calculate_query.calculate(column.calculate, column.name)
538
531
  end
539
532
  end
540
533
 
@@ -548,7 +541,7 @@ module ActiveScaffold
548
541
  def format_column_calculation(column, calculation)
549
542
  "#{"#{as_(column.calculate)}: " unless column.calculate.is_a? Proc}#{format_column_value nil, column, calculation}"
550
543
  end
551
-
544
+
552
545
  def clean_column_name(name)
553
546
  name.to_s.gsub('?', '')
554
547
  end
@@ -556,7 +549,7 @@ module ActiveScaffold
556
549
  def clean_class_name(name)
557
550
  name.underscore.gsub('/', '_')
558
551
  end
559
-
552
+
560
553
  # the naming convention for overriding with helpers
561
554
  def override_helper_name(column, suffix, class_prefix = false)
562
555
  "#{clean_class_name(column.active_record_class.name) + '_' if class_prefix}#{clean_column_name(column.name)}_#{suffix}"
@@ -607,9 +600,11 @@ module ActiveScaffold
607
600
  end
608
601
 
609
602
  objects.compact!
610
- count = objects.inject(0) {|sum, object| sum + object.errors.count }
603
+ count = objects.inject(0) { |sum, object| sum + object.errors.count }
611
604
 
612
- unless count.zero?
605
+ if count.zero?
606
+ ''
607
+ else
613
608
  html = {}
614
609
  [:id, :class].each do |key|
615
610
  if options.include?(key)
@@ -621,11 +616,12 @@ module ActiveScaffold
621
616
  end
622
617
  options[:object_name] ||= params.first
623
618
 
624
- header_message = if options.include?(:header_message)
625
- options[:header_message]
626
- else
627
- as_('errors.template.header', :count => count, :model => options[:object_name].to_s.gsub('_', ' '))
628
- end
619
+ header_message =
620
+ if options.include?(:header_message)
621
+ options[:header_message]
622
+ else
623
+ as_('errors.template.header', :count => count, :model => options[:object_name].to_s.gsub('_', ' '))
624
+ end
629
625
 
630
626
  message = options.include?(:message) ? options[:message] : as_('errors.template.body')
631
627
 
@@ -634,11 +630,12 @@ module ActiveScaffold
634
630
  options[:list_type] != :br ? content_tag(:li, msg) : msg
635
631
  end
636
632
  end
637
- error_messages = if options[:list_type] == :br
638
- error_messages.join('<br/>').html_safe
639
- else
640
- content_tag(options[:list_type], error_messages.join.html_safe)
641
- end
633
+ error_messages =
634
+ if options[:list_type] == :br
635
+ error_messages.join('<br/>').html_safe
636
+ else
637
+ content_tag(options[:list_type], error_messages.join.html_safe)
638
+ end
642
639
 
643
640
  contents = []
644
641
  contents << content_tag(options[:header_tag] || :h2, header_message) unless header_message.blank?
@@ -646,8 +643,6 @@ module ActiveScaffold
646
643
  contents << error_messages
647
644
  contents = contents.join.html_safe
648
645
  options[:container_tag] ? content_tag(options[:container_tag], contents, html) : contents
649
- else
650
- ''
651
646
  end
652
647
  end
653
648
  end