activeadmin 2.6.1 → 2.13.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (229) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +291 -9
  3. data/CONTRIBUTING.md +9 -25
  4. data/README.md +4 -4
  5. data/app/assets/javascripts/active_admin/base.js +27 -22
  6. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  7. data/app/assets/stylesheets/active_admin/_forms.scss +0 -10
  8. data/app/assets/stylesheets/active_admin/_header.scss +37 -3
  9. data/app/assets/stylesheets/active_admin/_normalize.scss +25 -123
  10. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +0 -0
  11. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  12. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  13. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  14. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +12 -0
  15. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  16. data/app/javascript/active_admin/initializers/has-many.js +4 -1
  17. data/app/javascript/active_admin/initializers/per-page.js +1 -1
  18. data/app/javascript/active_admin/lib/checkbox-toggler.js +3 -3
  19. data/app/javascript/active_admin/lib/dropdown-menu.js +1 -1
  20. data/app/javascript/active_admin/lib/modal-dialog.js +7 -7
  21. data/app/javascript/active_admin/lib/per-page.js +1 -1
  22. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +1 -1
  23. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  24. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  25. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  26. data/app/views/active_admin/page/index.html.arb +1 -0
  27. data/app/views/active_admin/resource/edit.html.arb +1 -0
  28. data/app/views/active_admin/resource/index.html.arb +1 -0
  29. data/app/views/active_admin/resource/new.html.arb +1 -0
  30. data/app/views/active_admin/resource/show.html.arb +1 -0
  31. data/app/views/layouts/active_admin.html.arb +1 -0
  32. data/app/views/layouts/active_admin_logged_out.html.erb +15 -5
  33. data/config/locales/ar.yml +6 -6
  34. data/config/locales/es-MX.yml +2 -1
  35. data/config/locales/es.yml +2 -2
  36. data/config/locales/it.yml +18 -0
  37. data/config/locales/ja.yml +3 -3
  38. data/config/locales/ko.yml +1 -1
  39. data/config/locales/nl.yml +1 -1
  40. data/config/locales/ro.yml +3 -2
  41. data/config/locales/vi.yml +5 -5
  42. data/docs/0-installation.md +27 -3
  43. data/docs/11-decorators.md +16 -5
  44. data/docs/2-resource-customization.md +10 -1
  45. data/docs/5-forms.md +9 -3
  46. data/docs/6-show-pages.md +12 -0
  47. data/docs/8-custom-actions.md +1 -1
  48. data/docs/Gemfile +3 -2
  49. data/docs/Gemfile.lock +138 -103
  50. data/docs/_includes/top-menu.html +1 -1
  51. data/docs/documentation.md +1 -1
  52. data/docs/index.html +6 -6
  53. data/lib/active_admin/abstract_view_factory.rb +1 -0
  54. data/lib/active_admin/application.rb +19 -19
  55. data/lib/active_admin/application_settings.rb +4 -3
  56. data/lib/active_admin/asset_registration.rb +1 -0
  57. data/lib/active_admin/authorization_adapter.rb +4 -3
  58. data/lib/active_admin/base_controller/authorization.rb +15 -13
  59. data/lib/active_admin/base_controller/menu.rb +1 -0
  60. data/lib/active_admin/base_controller.rb +6 -5
  61. data/lib/active_admin/batch_actions/controller.rb +4 -3
  62. data/lib/active_admin/batch_actions/resource_extension.rb +10 -8
  63. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  64. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  65. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  66. data/lib/active_admin/batch_actions.rb +1 -0
  67. data/lib/active_admin/callbacks.rb +1 -0
  68. data/lib/active_admin/cancan_adapter.rb +2 -1
  69. data/lib/active_admin/collection_decorator.rb +32 -0
  70. data/lib/active_admin/component.rb +1 -0
  71. data/lib/active_admin/controller_action.rb +1 -0
  72. data/lib/active_admin/csv_builder.rb +6 -19
  73. data/lib/active_admin/dependency.rb +13 -12
  74. data/lib/active_admin/deprecation.rb +1 -0
  75. data/lib/active_admin/devise.rb +16 -5
  76. data/lib/active_admin/dsl.rb +2 -1
  77. data/lib/active_admin/dynamic_setting.rb +1 -0
  78. data/lib/active_admin/dynamic_settings_node.rb +3 -2
  79. data/lib/active_admin/engine.rb +13 -9
  80. data/lib/active_admin/error.rb +1 -2
  81. data/lib/active_admin/filters/active.rb +2 -1
  82. data/lib/active_admin/filters/active_filter.rb +6 -6
  83. data/lib/active_admin/filters/active_sidebar.rb +4 -30
  84. data/lib/active_admin/filters/dsl.rb +1 -0
  85. data/lib/active_admin/filters/forms.rb +7 -6
  86. data/lib/active_admin/filters/formtastic_addons.rb +2 -6
  87. data/lib/active_admin/filters/resource_extension.rb +2 -1
  88. data/lib/active_admin/filters.rb +8 -7
  89. data/lib/active_admin/form_builder.rb +25 -20
  90. data/lib/active_admin/generators/boilerplate.rb +2 -1
  91. data/lib/active_admin/helpers/collection.rb +2 -0
  92. data/lib/active_admin/helpers/i18n.rb +1 -0
  93. data/lib/active_admin/helpers/optional_display.rb +3 -2
  94. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  95. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  96. data/lib/active_admin/inputs/datepicker_input.rb +2 -1
  97. data/lib/active_admin/inputs/filters/base/search_method_select.rb +5 -4
  98. data/lib/active_admin/inputs/filters/base.rb +2 -1
  99. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  100. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  101. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  102. data/lib/active_admin/inputs/filters/date_range_input.rb +1 -0
  103. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  104. data/lib/active_admin/inputs/filters/select_input.rb +3 -2
  105. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  106. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  107. data/lib/active_admin/inputs.rb +1 -0
  108. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  109. data/lib/active_admin/localizers.rb +2 -1
  110. data/lib/active_admin/menu.rb +7 -3
  111. data/lib/active_admin/menu_collection.rb +1 -0
  112. data/lib/active_admin/menu_item.rb +8 -7
  113. data/lib/active_admin/namespace.rb +15 -14
  114. data/lib/active_admin/namespace_settings.rb +9 -5
  115. data/lib/active_admin/order_clause.rb +2 -1
  116. data/lib/active_admin/orm/active_record/comments/comment.rb +4 -3
  117. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  118. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  119. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  120. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +20 -19
  121. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  122. data/lib/active_admin/orm/active_record/comments.rb +20 -19
  123. data/lib/active_admin/orm/active_record.rb +2 -1
  124. data/lib/active_admin/orm/mongoid.rb +1 -0
  125. data/lib/active_admin/page.rb +2 -1
  126. data/lib/active_admin/page_controller.rb +1 -0
  127. data/lib/active_admin/page_dsl.rb +1 -0
  128. data/lib/active_admin/page_presenter.rb +1 -0
  129. data/lib/active_admin/pundit_adapter.rb +59 -15
  130. data/lib/active_admin/resource/action_items.rb +6 -5
  131. data/lib/active_admin/resource/attributes.rb +2 -1
  132. data/lib/active_admin/resource/belongs_to.rb +3 -2
  133. data/lib/active_admin/resource/controllers.rb +2 -1
  134. data/lib/active_admin/resource/includes.rb +1 -0
  135. data/lib/active_admin/resource/menu.rb +5 -4
  136. data/lib/active_admin/resource/model.rb +1 -0
  137. data/lib/active_admin/resource/naming.rb +5 -4
  138. data/lib/active_admin/resource/ordering.rb +1 -0
  139. data/lib/active_admin/resource/page_presenters.rb +1 -0
  140. data/lib/active_admin/resource/pagination.rb +1 -0
  141. data/lib/active_admin/resource/routes.rb +6 -7
  142. data/lib/active_admin/resource/scope_to.rb +8 -7
  143. data/lib/active_admin/resource/scopes.rb +1 -0
  144. data/lib/active_admin/resource/sidebars.rb +2 -1
  145. data/lib/active_admin/resource.rb +20 -19
  146. data/lib/active_admin/resource_collection.rb +1 -0
  147. data/lib/active_admin/resource_controller/action_builder.rb +1 -0
  148. data/lib/active_admin/resource_controller/data_access.rb +31 -5
  149. data/lib/active_admin/resource_controller/decorators.rb +7 -28
  150. data/lib/active_admin/resource_controller/polymorphic_routes.rb +1 -0
  151. data/lib/active_admin/resource_controller/resource_class_methods.rb +1 -0
  152. data/lib/active_admin/resource_controller/scoping.rb +1 -0
  153. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  154. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  155. data/lib/active_admin/resource_controller.rb +13 -11
  156. data/lib/active_admin/resource_dsl.rb +11 -25
  157. data/lib/active_admin/router.rb +1 -0
  158. data/lib/active_admin/scope.rb +7 -6
  159. data/lib/active_admin/settings_node.rb +1 -0
  160. data/lib/active_admin/sidebar_section.rb +1 -0
  161. data/lib/active_admin/version.rb +2 -1
  162. data/lib/active_admin/view_factory.rb +18 -17
  163. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  164. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  165. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
  166. data/lib/active_admin/view_helpers/display_helper.rb +15 -7
  167. data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
  168. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  169. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  170. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  171. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +1 -0
  172. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  173. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  174. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  175. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  176. data/lib/active_admin/view_helpers.rb +2 -1
  177. data/lib/active_admin/views/action_items.rb +1 -0
  178. data/lib/active_admin/views/components/active_admin_form.rb +7 -6
  179. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  180. data/lib/active_admin/views/components/attributes_table.rb +6 -5
  181. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  182. data/lib/active_admin/views/components/columns.rb +1 -0
  183. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  184. data/lib/active_admin/views/components/index_list.rb +4 -3
  185. data/lib/active_admin/views/components/menu.rb +2 -1
  186. data/lib/active_admin/views/components/menu_item.rb +5 -4
  187. data/lib/active_admin/views/components/paginated_collection.rb +19 -18
  188. data/lib/active_admin/views/components/panel.rb +2 -1
  189. data/lib/active_admin/views/components/scopes.rb +8 -5
  190. data/lib/active_admin/views/components/sidebar.rb +1 -0
  191. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  192. data/lib/active_admin/views/components/site_title.rb +2 -1
  193. data/lib/active_admin/views/components/status_tag.rb +12 -11
  194. data/lib/active_admin/views/components/table_for.rb +18 -17
  195. data/lib/active_admin/views/components/tabs.rb +4 -3
  196. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  197. data/lib/active_admin/views/footer.rb +3 -1
  198. data/lib/active_admin/views/header.rb +3 -2
  199. data/lib/active_admin/views/index_as_block.rb +1 -0
  200. data/lib/active_admin/views/index_as_blog.rb +2 -1
  201. data/lib/active_admin/views/index_as_grid.rb +2 -1
  202. data/lib/active_admin/views/index_as_table.rb +17 -16
  203. data/lib/active_admin/views/pages/base.rb +14 -9
  204. data/lib/active_admin/views/pages/form.rb +1 -0
  205. data/lib/active_admin/views/pages/index.rb +15 -13
  206. data/lib/active_admin/views/pages/layout.rb +1 -0
  207. data/lib/active_admin/views/pages/page.rb +1 -0
  208. data/lib/active_admin/views/pages/show.rb +1 -0
  209. data/lib/active_admin/views/tabbed_navigation.rb +3 -2
  210. data/lib/active_admin/views/title_bar.rb +2 -1
  211. data/lib/active_admin/views.rb +2 -1
  212. data/lib/active_admin.rb +61 -61
  213. data/lib/activeadmin.rb +2 -1
  214. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  215. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  216. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  217. data/lib/generators/active_admin/install/install_generator.rb +15 -8
  218. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +9 -2
  219. data/lib/generators/active_admin/install/templates/dashboard.rb +1 -0
  220. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  221. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  222. data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
  223. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  224. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  225. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  226. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  227. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  228. data/lib/ransack_ext.rb +9 -8
  229. metadata +32 -53
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module ScopeNameHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module SidebarHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module TitleHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module ViewFactoryHelper
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
 
4
5
  # Require all ruby files in the view helpers dir
5
- Dir[File.expand_path('view_helpers', __dir__) + "/*.rb"].each { |f| require f }
6
+ Dir[File.expand_path("view_helpers", __dir__) + "/*.rb"].each { |f| require f }
6
7
 
7
8
  include ActiveAdminApplicationHelper
8
9
  include AutoLinkHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class FormtasticProxy < ::Arbre::Rails::Forms::FormBuilderProxy
@@ -16,7 +17,7 @@ module ActiveAdmin
16
17
  end
17
18
 
18
19
  def to_s
19
- opening_tag << children.to_s << closing_tag
20
+ opening_tag + children.to_s + closing_tag
20
21
  end
21
22
  end
22
23
 
@@ -111,14 +112,14 @@ module ActiveAdmin
111
112
  create_another = params[:create_another]
112
113
  label = @resource.class.model_name.human
113
114
  Arbre::Context.new do
114
- li class: 'create_another' do
115
+ li class: "create_another" do
115
116
  input(
116
117
  checked: create_another,
117
- id: 'create_another',
118
- name: 'create_another',
119
- type: 'checkbox'
118
+ id: "create_another",
119
+ name: "create_another",
120
+ type: "checkbox"
120
121
  )
121
- label(I18n.t('active_admin.create_another', model: label), for: 'create_another')
122
+ label(I18n.t("active_admin.create_another", model: label), for: "create_another")
122
123
  end
123
124
  end
124
125
  end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/filters/active"
3
+
4
+ module ActiveAdmin
5
+ module Views
6
+
7
+ class ActiveFiltersSidebarContent < ActiveAdmin::Component
8
+ builder_method :active_filters_sidebar_content
9
+
10
+ def build
11
+ active_filters = ActiveAdmin::Filters::Active.new(active_admin_config, assigns[:search])
12
+ active_scopes = assigns[:search].instance_variable_get("@scope_args")
13
+
14
+ scope_block(current_scope)
15
+ filters_list(active_filters, active_scopes)
16
+ end
17
+
18
+ def scope_block(current_scope)
19
+ return unless current_scope
20
+
21
+ h4 I18n.t("active_admin.search_status.current_scope"), style: "display: inline"
22
+ b scope_name(current_scope), class: "current_scope_name"
23
+ end
24
+
25
+ def filters_list(active_filters, active_scopes)
26
+ div style: "margin-top: 10px" do
27
+ h4 I18n.t("active_admin.search_status.current_filters"), style: "margin-bottom: 10px"
28
+ ul do
29
+ if active_filters.filters.blank? && active_scopes.blank?
30
+ li I18n.t("active_admin.search_status.no_current_filters")
31
+ else
32
+ active_filters.filters.each { |filter| filter_item(filter) }
33
+ active_scopes.each { |name, value| scope_item(name, value) }
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ def filter_item(filter)
40
+ li filter.html_options do
41
+ span filter.label
42
+ b to_sentence(filter.values.map { |v| pretty_format(v) })
43
+ end
44
+ end
45
+
46
+ def scope_item(name, value)
47
+ filter_name = name.gsub(/_eq$/, "")
48
+ filter = active_admin_config.filters[filter_name.to_sym]
49
+ label = filter.try(:[], :label) || filter_name.titleize
50
+
51
+ li class: "current_filter_#{name}" do
52
+ span "#{label} #{Ransack::Translate.predicate('eq')}"
53
+ b value
54
+ end
55
+ end
56
+ end
57
+
58
+ end
59
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -5,7 +6,7 @@ module ActiveAdmin
5
6
  builder_method :attributes_table_for
6
7
 
7
8
  def build(obj, *attrs)
8
- @collection = Array.wrap(obj)
9
+ @collection = Array.wrap(obj)
9
10
  @resource_class = @collection.first.class
10
11
  options = {}
11
12
  options[:for] = @collection.first if single_record?
@@ -20,7 +21,7 @@ module ActiveAdmin
20
21
  end
21
22
 
22
23
  def row(*args, &block)
23
- title = args[0]
24
+ title = args[0]
24
25
  options = args.extract_options!
25
26
  classes = [:row]
26
27
  if options[:class]
@@ -28,7 +29,7 @@ module ActiveAdmin
28
29
  elsif title.present?
29
30
  classes << "row-#{title.to_s.parameterize(separator: "_")}"
30
31
  end
31
- options[:class] = classes.join(' ')
32
+ options[:class] = classes.join(" ")
32
33
 
33
34
  @table << tr(options) do
34
35
  th do
@@ -45,7 +46,7 @@ module ActiveAdmin
45
46
  protected
46
47
 
47
48
  def default_id_for_prefix
48
- 'attributes_table'
49
+ "attributes_table"
49
50
  end
50
51
 
51
52
  # Build Colgroups
@@ -75,7 +76,7 @@ module ActiveAdmin
75
76
  end
76
77
 
77
78
  def empty_value
78
- span I18n.t('active_admin.empty'), class: "empty"
79
+ span I18n.t("active_admin.empty"), class: "empty"
79
80
  end
80
81
 
81
82
  def content_for(record, attr)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  # Build a Blank Slate
@@ -5,7 +6,7 @@ module ActiveAdmin
5
6
  builder_method :blank_slate
6
7
 
7
8
  def default_class_name
8
- 'blank_slate_container'
9
+ "blank_slate_container"
9
10
  end
10
11
 
11
12
  def build(content)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -35,30 +36,27 @@ module ActiveAdmin
35
36
  super(options)
36
37
  end
37
38
 
38
- def item(*args)
39
+ def item(*args, **kwargs)
39
40
  within @menu do
40
- li link_to(*args)
41
+ li link_to(*args, **kwargs)
41
42
  end
42
43
  end
43
44
 
44
45
  private
45
46
 
46
47
  def build_button(name, button_options)
47
- button_options[:class] ||= ''
48
- button_options[:class] << ' dropdown_menu_button'
49
-
50
- button_options[:href] = '#'
48
+ button_options[:class] = "#{button_options[:class]} dropdown_menu_button"
49
+ button_options[:href] = "#"
51
50
 
52
51
  a name, button_options
53
52
  end
54
53
 
55
54
  def build_menu(options)
56
- options[:class] ||= ''
57
- options[:class] << ' dropdown_menu_list'
55
+ options[:class] = "#{options[:class]} dropdown_menu_list"
58
56
 
59
57
  menu_list = nil
60
58
 
61
- div class: 'dropdown_menu_list_wrapper' do
59
+ div class: "dropdown_menu_list_wrapper" do
62
60
  menu_list = ul(options)
63
61
  end
64
62
 
@@ -1,4 +1,5 @@
1
- require 'active_admin/helpers/collection'
1
+ # frozen_string_literal: true
2
+ require "active_admin/helpers/collection"
2
3
 
3
4
  module ActiveAdmin
4
5
  module Views
@@ -15,7 +16,7 @@ module ActiveAdmin
15
16
  end
16
17
 
17
18
  def tag_name
18
- 'ul'
19
+ "ul"
19
20
  end
20
21
 
21
22
  # Builds the links for presenting different index views to the user
@@ -37,7 +38,7 @@ module ActiveAdmin
37
38
  def build_index_list(index_class)
38
39
  li class: classes_for_index(index_class) do
39
40
  params = request.query_parameters.except :page, :commit, :format
40
- url_with_params = url_for(params.merge(as: index_class.index_name.to_sym))
41
+ url_with_params = url_for(**params.merge(as: index_class.index_name.to_sym).symbolize_keys)
41
42
 
42
43
  a href: url_with_params, class: "table_tools_button" do
43
44
  name = index_class.index_name
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -25,7 +26,7 @@ module ActiveAdmin
25
26
  end
26
27
 
27
28
  def tag_name
28
- 'ul'
29
+ "ul"
29
30
  end
30
31
  end
31
32
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -18,7 +19,7 @@ module ActiveAdmin
18
19
  add_class "current" if item.current? assigns[:current_tab]
19
20
 
20
21
  if url
21
- text_node link_to label, url, item.html_options
22
+ text_node link_to label, url, **item.html_options
22
23
  else
23
24
  span label, item.html_options
24
25
  end
@@ -30,7 +31,7 @@ module ActiveAdmin
30
31
  end
31
32
 
32
33
  def tag_name
33
- 'li'
34
+ "li"
34
35
  end
35
36
 
36
37
  # Sorts by priority first, then alphabetically by label if needed.
@@ -44,14 +45,14 @@ module ActiveAdmin
44
45
  end
45
46
 
46
47
  def to_s
47
- visible? ? super : ''
48
+ visible? ? super : ""
48
49
  end
49
50
 
50
51
  private
51
52
 
52
53
  # URL is not nil, empty, or '#'
53
54
  def real_url?
54
- url && url.present? && url != '#'
55
+ url && url.present? && url != "#"
55
56
  end
56
57
  end
57
58
  end
@@ -1,5 +1,6 @@
1
- require 'active_admin/helpers/collection'
2
- require 'active_admin/view_helpers/download_format_links_helper'
1
+ # frozen_string_literal: true
2
+ require "active_admin/helpers/collection"
3
+ require "active_admin/view_helpers/download_format_links_helper"
3
4
 
4
5
  module ActiveAdmin
5
6
  module Views
@@ -38,12 +39,12 @@ module ActiveAdmin
38
39
  # download_links => Download links override (false or [:csv, :pdf])
39
40
  #
40
41
  def build(collection, options = {})
41
- @collection = collection
42
- @params = options.delete(:params)
43
- @param_name = options.delete(:param_name)
42
+ @collection = collection
43
+ @params = options.delete(:params)
44
+ @param_name = options.delete(:param_name)
44
45
  @download_links = options.delete(:download_links)
45
- @display_total = options.delete(:pagination_total) { true }
46
- @per_page = options.delete(:per_page)
46
+ @display_total = options.delete(:pagination_total) { true }
47
+ @per_page = options.delete(:per_page)
47
48
 
48
49
  unless collection.respond_to?(:total_pages)
49
50
  raise(StandardError, "Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection.")
@@ -92,8 +93,8 @@ module ActiveAdmin
92
93
  end
93
94
 
94
95
  def build_pagination
95
- options = { theme: @display_total ? 'active_admin' : 'active_admin_countless' }
96
- options[:params] = @params if @params
96
+ options = { theme: @display_total ? "active_admin" : "active_admin_countless" }
97
+ options[:params] = @params if @params
97
98
  options[:param_name] = @param_name if @param_name
98
99
 
99
100
  if !@display_total
@@ -107,7 +108,7 @@ module ActiveAdmin
107
108
  options[:right] = 0
108
109
  end
109
110
 
110
- text_node paginate collection, options
111
+ text_node paginate collection, **options
111
112
  end
112
113
 
113
114
  include ::ActiveAdmin::Helpers::Collection
@@ -116,28 +117,28 @@ module ActiveAdmin
116
117
  # modified from will_paginate
117
118
  def page_entries_info(options = {})
118
119
  if options[:entry_name]
119
- entry_name = options[:entry_name]
120
+ entry_name = options[:entry_name]
120
121
  entries_name = options[:entries_name] || entry_name.pluralize
121
122
  elsif collection_is_empty?
122
- entry_name = I18n.t "active_admin.pagination.entry", count: 1, default: 'entry'
123
- entries_name = I18n.t "active_admin.pagination.entry", count: 2, default: 'entries'
123
+ entry_name = I18n.t "active_admin.pagination.entry", count: 1, default: "entry"
124
+ entries_name = I18n.t "active_admin.pagination.entry", count: 2, default: "entries"
124
125
  else
125
126
  key = "activerecord.models." + collection.first.class.model_name.i18n_key.to_s
126
127
 
127
- entry_name = I18n.translate key, count: 1, default: collection.first.class.name.underscore.sub('_', ' ')
128
+ entry_name = I18n.translate key, count: 1, default: collection.first.class.name.underscore.sub("_", " ")
128
129
  entries_name = I18n.translate key, count: collection.size, default: entry_name.pluralize
129
130
  end
130
131
 
131
132
  if @display_total
132
133
  if collection.total_pages < 2
133
134
  case collection_size
134
- when 0; I18n.t("active_admin.pagination.empty", model: entries_name)
135
- when 1; I18n.t("active_admin.pagination.one", model: entry_name)
136
- else; I18n.t("active_admin.pagination.one_page", model: entries_name, n: collection.total_count)
135
+ when 0; I18n.t("active_admin.pagination.empty", model: entries_name)
136
+ when 1; I18n.t("active_admin.pagination.one", model: entry_name)
137
+ else; I18n.t("active_admin.pagination.one_page", model: entries_name, n: collection.total_count)
137
138
  end
138
139
  else
139
140
  offset = (collection.current_page - 1) * collection.limit_value
140
- total = collection.total_count
141
+ total = collection.total_count
141
142
  I18n.t "active_admin.pagination.multiple",
142
143
  model: entries_name,
143
144
  total: total,
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -29,7 +30,7 @@ module ActiveAdmin
29
30
  def header_action(*args)
30
31
  action = args[0]
31
32
 
32
- @title << div(class: 'header_action') do
33
+ @title << div(class: "header_action") do
33
34
  action
34
35
  end
35
36
  end
@@ -1,5 +1,6 @@
1
- require 'active_admin/helpers/collection'
2
- require 'active_admin/view_helpers/method_or_proc_helper'
1
+ # frozen_string_literal: true
2
+ require "active_admin/helpers/collection"
3
+ require "active_admin/view_helpers/method_or_proc_helper"
3
4
 
4
5
  module ActiveAdmin
5
6
  module Views
@@ -17,7 +18,7 @@ module ActiveAdmin
17
18
  end
18
19
 
19
20
  def tag_name
20
- 'div'
21
+ "div"
21
22
  end
22
23
 
23
24
  def build(scopes, options = {})
@@ -26,6 +27,8 @@ module ActiveAdmin
26
27
  group_scopes.each do |scope|
27
28
  build_scope(scope, options) if call_method_or_exec_proc(scope.display_if_block)
28
29
  end
30
+
31
+ nil
29
32
  end
30
33
  end
31
34
  end
@@ -36,9 +39,9 @@ module ActiveAdmin
36
39
  li class: classes_for_scope(scope) do
37
40
  params = request.query_parameters.except :page, :scope, :commit, :format
38
41
 
39
- a href: url_for(scope: scope.id, params: params), class: 'table_tools_button' do
42
+ a href: url_for(scope: scope.id, params: params), class: "table_tools_button" do
40
43
  text_node scope_name(scope)
41
- span class: 'count' do
44
+ span class: "count" do
42
45
  "(#{get_scope_count(scope)})"
43
46
  end if options[:scope_count] && scope.show_count
44
47
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
4
5
  class SiteTitle < Component
5
6
 
6
7
  def tag_name
7
- 'h1'
8
+ "h1"
8
9
  end
9
10
 
10
11
  def build(namespace)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  # Build a StatusTag
@@ -5,11 +6,11 @@ module ActiveAdmin
5
6
  builder_method :status_tag
6
7
 
7
8
  def tag_name
8
- 'span'
9
+ "span"
9
10
  end
10
11
 
11
12
  def default_class_name
12
- 'status_tag'
13
+ "status_tag"
13
14
  end
14
15
 
15
16
  # @overload status_tag(status, options = {})
@@ -49,12 +50,12 @@ module ActiveAdmin
49
50
 
50
51
  def convert_to_boolean_status(status)
51
52
  case status
52
- when true, 'true'
53
- 'Yes'
54
- when false, 'false'
55
- 'No'
53
+ when true, "true"
54
+ "Yes"
55
+ when false, "false"
56
+ "No"
56
57
  when nil
57
- 'Unset'
58
+ "Unset"
58
59
  else
59
60
  status
60
61
  end
@@ -62,12 +63,12 @@ module ActiveAdmin
62
63
 
63
64
  def status_to_class(status)
64
65
  case status
65
- when 'Unset'
66
- 'unset no'
66
+ when "Unset"
67
+ "unset no"
67
68
  when String, Symbol
68
- status.to_s.titleize.gsub(/\s/, '').underscore
69
+ status.to_s.titleize.gsub(/\s/, "").underscore
69
70
  else
70
- ''
71
+ ""
71
72
  end
72
73
  end
73
74
  end
@@ -1,21 +1,22 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class TableFor < Arbre::HTML::Table
4
5
  builder_method :table_for
5
6
 
6
7
  def tag_name
7
- 'table'
8
+ "table"
8
9
  end
9
10
 
10
11
  def build(obj, *attrs)
11
- options = attrs.extract_options!
12
- @sortable = options.delete(:sortable)
13
- @collection = obj.respond_to?(:each) && !obj.is_a?(Hash) ? obj : [obj]
12
+ options = attrs.extract_options!
13
+ @sortable = options.delete(:sortable)
14
+ @collection = obj.respond_to?(:each) && !obj.is_a?(Hash) ? obj : [obj]
14
15
  @resource_class = options.delete(:i18n)
15
16
  @resource_class ||= @collection.klass if @collection.respond_to? :klass
16
17
 
17
- @columns = []
18
- @row_class = options.delete(:row_class)
18
+ @columns = []
19
+ @row_class = options.delete(:row_class)
19
20
 
20
21
  build_table
21
22
  super(options)
@@ -29,7 +30,7 @@ module ActiveAdmin
29
30
  def column(*args, &block)
30
31
  options = default_options.merge(args.extract_options!)
31
32
  title = args[0]
32
- data = args[1] || args[0]
33
+ data = args[1] || args[0]
33
34
 
34
35
  col = Column.new(title, data, @resource_class, options, &block)
35
36
  @columns << col
@@ -65,12 +66,12 @@ module ActiveAdmin
65
66
  end
66
67
 
67
68
  def build_table_header(col)
68
- classes = Arbre::HTML::ClassList.new
69
+ classes = Arbre::HTML::ClassList.new
69
70
  sort_key = sortable? && col.sortable? && col.sort_key
70
- params = request.query_parameters.except :page, :order, :commit, :format
71
+ params = request.query_parameters.except :page, :order, :commit, :format
71
72
 
72
- classes << 'sortable' if sort_key
73
- classes << "sorted-#{current_sort[1]}" if sort_key && current_sort[0] == sort_key
73
+ classes << "sortable" if sort_key
74
+ classes << "sorted-#{current_sort[1]}" if sort_key && current_sort[0] == sort_key
74
75
  classes << col.html_class
75
76
 
76
77
  if sort_key
@@ -86,13 +87,13 @@ module ActiveAdmin
86
87
  @tbody = tbody do
87
88
  # Build enough rows for our collection
88
89
  @collection.each do |elem|
89
- classes = [helpers.cycle('odd', 'even')]
90
+ classes = [helpers.cycle("odd", "even")]
90
91
 
91
92
  if @row_class
92
93
  classes << @row_class.call(elem)
93
94
  end
94
95
 
95
- tr(class: classes.flatten.join(' '), id: dom_id_for(elem))
96
+ tr(class: classes.flatten.join(" "), id: dom_id_for(elem))
96
97
  end
97
98
  end
98
99
  end
@@ -126,8 +127,8 @@ module ActiveAdmin
126
127
  # 'desc' it will return 'asc'
127
128
  def order_for_sort_key(sort_key)
128
129
  current_key, current_order = current_sort
129
- return 'desc' unless current_key == sort_key
130
- current_order == 'desc' ? 'asc' : 'desc'
130
+ return "desc" unless current_key == sort_key
131
+ current_order == "desc" ? "asc" : "desc"
131
132
  end
132
133
 
133
134
  def default_options
@@ -138,7 +139,7 @@ module ActiveAdmin
138
139
 
139
140
  class Column
140
141
 
141
- attr_accessor :title, :data , :html_class
142
+ attr_accessor :title, :data, :html_class
142
143
 
143
144
  def initialize(*args, &block)
144
145
  @options = args.extract_options!
@@ -150,7 +151,7 @@ module ActiveAdmin
150
151
  elsif @title.present?
151
152
  html_classes << "col-#{@title.to_s.parameterize(separator: "_")}"
152
153
  end
153
- @html_class = html_classes.join(' ')
154
+ @html_class = html_classes.join(" ")
154
155
  @data = args[1] || args[0]
155
156
  @data = block if block
156
157
  @resource_class = args[2]
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class Tabs < ActiveAdmin::Component
@@ -10,8 +11,8 @@ module ActiveAdmin
10
11
  end
11
12
 
12
13
  def build(&block)
13
- @menu = ul(class: 'nav nav-tabs', role: "tablist")
14
- @tabs_content = div(class: 'tab-content')
14
+ @menu = ul(class: "nav nav-tabs", role: "tablist")
15
+ @tabs_content = div(class: "tab-content")
15
16
  end
16
17
 
17
18
  def build_menu_item(title, options, &block)
@@ -32,7 +33,7 @@ module ActiveAdmin
32
33
 
33
34
  def fragmentize(string)
34
35
  result = string.parameterize
35
- result = URI.encode(string) if result.blank?
36
+ result = CGI.escape(string) if result.blank?
36
37
  result
37
38
  end
38
39
  end