activeadmin 2.6.1 → 3.2.3

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 (326) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +438 -9
  3. data/CONTRIBUTING.md +12 -36
  4. data/README.md +8 -8
  5. data/app/assets/javascripts/active_admin/base.js +27 -25
  6. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  7. data/app/assets/stylesheets/active_admin/_forms.scss +2 -13
  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/components/_comments.scss +2 -2
  11. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  12. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +7 -5
  13. data/app/assets/stylesheets/active_admin/components/_pagination.scss +5 -2
  14. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +9 -6
  15. data/app/assets/stylesheets/active_admin/components/_tabs.scss +10 -7
  16. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +2 -2
  17. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +12 -0
  18. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +1 -1
  19. data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
  20. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +6 -4
  21. data/app/javascript/active_admin/initializers/has-many.js +4 -1
  22. data/app/javascript/active_admin/initializers/per-page.js +1 -1
  23. data/app/javascript/active_admin/lib/checkbox-toggler.js +3 -3
  24. data/app/javascript/active_admin/lib/dropdown-menu.js +1 -1
  25. data/app/javascript/active_admin/lib/modal-dialog.js +7 -7
  26. data/app/javascript/active_admin/lib/per-page.js +1 -1
  27. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +1 -1
  28. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  29. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  30. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  31. data/app/views/active_admin/page/index.html.arb +1 -0
  32. data/app/views/active_admin/resource/edit.html.arb +1 -0
  33. data/app/views/active_admin/resource/index.html.arb +1 -0
  34. data/app/views/active_admin/resource/new.html.arb +1 -0
  35. data/app/views/active_admin/resource/show.html.arb +1 -0
  36. data/app/views/layouts/active_admin.html.arb +1 -0
  37. data/app/views/layouts/active_admin_logged_out.html.erb +18 -7
  38. data/config/locales/ar.yml +6 -13
  39. data/config/locales/az.yml +0 -7
  40. data/config/locales/bg.yml +0 -7
  41. data/config/locales/bs.yml +0 -7
  42. data/config/locales/ca.yml +0 -7
  43. data/config/locales/cs.yml +0 -7
  44. data/config/locales/da.yml +0 -7
  45. data/config/locales/de-CH.yml +0 -7
  46. data/config/locales/de.yml +0 -8
  47. data/config/locales/el.yml +0 -7
  48. data/config/locales/en-CA.yml +0 -7
  49. data/config/locales/en-GB.yml +0 -7
  50. data/config/locales/en.yml +0 -8
  51. data/config/locales/eo.yml +0 -8
  52. data/config/locales/es-MX.yml +2 -8
  53. data/config/locales/es.yml +2 -10
  54. data/config/locales/fa.yml +0 -7
  55. data/config/locales/fi.yml +0 -7
  56. data/config/locales/fr.yml +3 -11
  57. data/config/locales/he.yml +0 -9
  58. data/config/locales/hr.yml +0 -7
  59. data/config/locales/hu.yml +0 -8
  60. data/config/locales/id.yml +0 -7
  61. data/config/locales/it.yml +18 -8
  62. data/config/locales/ja.yml +2 -10
  63. data/config/locales/ko.yml +1 -8
  64. data/config/locales/lt.yml +0 -8
  65. data/config/locales/lv.yml +0 -7
  66. data/config/locales/mk.yml +0 -8
  67. data/config/locales/nb.yml +0 -8
  68. data/config/locales/nl.yml +1 -9
  69. data/config/locales/pl.yml +0 -8
  70. data/config/locales/pt-BR.yml +0 -8
  71. data/config/locales/pt-PT.yml +0 -7
  72. data/config/locales/ro.yml +3 -9
  73. data/config/locales/ru.yml +0 -6
  74. data/config/locales/sk.yml +0 -8
  75. data/config/locales/sv-SE.yml +58 -39
  76. data/config/locales/tr.yml +0 -11
  77. data/config/locales/uk.yml +0 -6
  78. data/config/locales/vi.yml +38 -19
  79. data/config/locales/zh-CN.yml +34 -23
  80. data/config/locales/zh-TW.yml +0 -7
  81. data/lib/active_admin/abstract_view_factory.rb +1 -0
  82. data/lib/active_admin/application.rb +19 -19
  83. data/lib/active_admin/application_settings.rb +4 -3
  84. data/lib/active_admin/asset_registration.rb +4 -3
  85. data/lib/active_admin/authorization_adapter.rb +6 -3
  86. data/lib/active_admin/base_controller/authorization.rb +15 -13
  87. data/lib/active_admin/base_controller/menu.rb +1 -0
  88. data/lib/active_admin/base_controller.rb +6 -5
  89. data/lib/active_admin/batch_actions/controller.rb +4 -3
  90. data/lib/active_admin/batch_actions/resource_extension.rb +10 -8
  91. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  92. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  93. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  94. data/lib/active_admin/batch_actions.rb +1 -0
  95. data/lib/active_admin/callbacks.rb +1 -0
  96. data/lib/active_admin/cancan_adapter.rb +2 -1
  97. data/lib/active_admin/collection_decorator.rb +32 -0
  98. data/lib/active_admin/component.rb +1 -0
  99. data/lib/active_admin/controller_action.rb +1 -0
  100. data/lib/active_admin/csv_builder.rb +25 -17
  101. data/lib/active_admin/dependency.rb +12 -15
  102. data/lib/active_admin/devise.rb +16 -5
  103. data/lib/active_admin/dsl.rb +2 -1
  104. data/lib/active_admin/dynamic_setting.rb +1 -0
  105. data/lib/active_admin/dynamic_settings_node.rb +3 -2
  106. data/lib/active_admin/engine.rb +17 -9
  107. data/lib/active_admin/error.rb +1 -2
  108. data/lib/active_admin/filters/active.rb +2 -1
  109. data/lib/active_admin/filters/active_filter.rb +6 -6
  110. data/lib/active_admin/filters/active_sidebar.rb +4 -30
  111. data/lib/active_admin/filters/dsl.rb +1 -0
  112. data/lib/active_admin/filters/forms.rb +9 -8
  113. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  114. data/lib/active_admin/filters/resource_extension.rb +6 -5
  115. data/lib/active_admin/filters.rb +8 -7
  116. data/lib/active_admin/form_builder.rb +25 -20
  117. data/lib/active_admin/generators/boilerplate.rb +2 -1
  118. data/lib/active_admin/helpers/collection.rb +2 -0
  119. data/lib/active_admin/helpers/i18n.rb +1 -0
  120. data/lib/active_admin/helpers/optional_display.rb +3 -2
  121. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  122. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  123. data/lib/active_admin/inputs/datepicker_input.rb +2 -1
  124. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  125. data/lib/active_admin/inputs/filters/base.rb +2 -1
  126. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  127. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  128. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  129. data/lib/active_admin/inputs/filters/date_range_input.rb +3 -2
  130. data/lib/active_admin/inputs/filters/numeric_input.rb +2 -1
  131. data/lib/active_admin/inputs/filters/select_input.rb +5 -2
  132. data/lib/active_admin/inputs/filters/string_input.rb +2 -1
  133. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  134. data/lib/active_admin/inputs.rb +1 -0
  135. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  136. data/lib/active_admin/localizers.rb +2 -1
  137. data/lib/active_admin/menu.rb +8 -3
  138. data/lib/active_admin/menu_collection.rb +1 -0
  139. data/lib/active_admin/menu_item.rb +8 -7
  140. data/lib/active_admin/namespace.rb +16 -15
  141. data/lib/active_admin/namespace_settings.rb +9 -5
  142. data/lib/active_admin/order_clause.rb +2 -1
  143. data/lib/active_admin/orm/active_record/comments/comment.rb +12 -3
  144. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  145. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  146. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  147. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +21 -20
  148. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  149. data/lib/active_admin/orm/active_record/comments.rb +28 -27
  150. data/lib/active_admin/orm/active_record.rb +2 -1
  151. data/lib/active_admin/orm/mongoid.rb +1 -0
  152. data/lib/active_admin/page.rb +2 -1
  153. data/lib/active_admin/page_controller.rb +1 -0
  154. data/lib/active_admin/page_dsl.rb +1 -0
  155. data/lib/active_admin/page_presenter.rb +1 -0
  156. data/lib/active_admin/pundit_adapter.rb +58 -16
  157. data/lib/active_admin/resource/action_items.rb +6 -5
  158. data/lib/active_admin/resource/attributes.rb +9 -1
  159. data/lib/active_admin/resource/belongs_to.rb +3 -2
  160. data/lib/active_admin/resource/controllers.rb +2 -1
  161. data/lib/active_admin/resource/includes.rb +1 -0
  162. data/lib/active_admin/resource/menu.rb +5 -4
  163. data/lib/active_admin/resource/model.rb +1 -0
  164. data/lib/active_admin/resource/naming.rb +5 -4
  165. data/lib/active_admin/resource/ordering.rb +1 -0
  166. data/lib/active_admin/resource/page_presenters.rb +1 -0
  167. data/lib/active_admin/resource/pagination.rb +1 -0
  168. data/lib/active_admin/resource/routes.rb +6 -7
  169. data/lib/active_admin/resource/scope_to.rb +8 -7
  170. data/lib/active_admin/resource/scopes.rb +1 -0
  171. data/lib/active_admin/resource/sidebars.rb +2 -1
  172. data/lib/active_admin/resource.rb +20 -19
  173. data/lib/active_admin/resource_collection.rb +1 -0
  174. data/lib/active_admin/resource_controller/action_builder.rb +1 -0
  175. data/lib/active_admin/resource_controller/data_access.rb +31 -5
  176. data/lib/active_admin/resource_controller/decorators.rb +7 -28
  177. data/lib/active_admin/resource_controller/polymorphic_routes.rb +1 -0
  178. data/lib/active_admin/resource_controller/resource_class_methods.rb +1 -0
  179. data/lib/active_admin/resource_controller/scoping.rb +1 -0
  180. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  181. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  182. data/lib/active_admin/resource_controller.rb +13 -11
  183. data/lib/active_admin/resource_dsl.rb +11 -25
  184. data/lib/active_admin/router.rb +1 -0
  185. data/lib/active_admin/scope.rb +7 -6
  186. data/lib/active_admin/settings_node.rb +1 -0
  187. data/lib/active_admin/sidebar_section.rb +1 -0
  188. data/lib/active_admin/version.rb +2 -1
  189. data/lib/active_admin/view_factory.rb +18 -17
  190. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  191. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  192. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
  193. data/lib/active_admin/view_helpers/display_helper.rb +23 -8
  194. data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
  195. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  196. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  197. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  198. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +1 -0
  199. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  200. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  201. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  202. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  203. data/lib/active_admin/view_helpers.rb +2 -1
  204. data/lib/active_admin/views/action_items.rb +1 -0
  205. data/lib/active_admin/views/components/active_admin_form.rb +8 -11
  206. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  207. data/lib/active_admin/views/components/attributes_table.rb +6 -5
  208. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  209. data/lib/active_admin/views/components/columns.rb +1 -0
  210. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  211. data/lib/active_admin/views/components/index_list.rb +4 -3
  212. data/lib/active_admin/views/components/menu.rb +2 -1
  213. data/lib/active_admin/views/components/menu_item.rb +5 -4
  214. data/lib/active_admin/views/components/paginated_collection.rb +19 -18
  215. data/lib/active_admin/views/components/panel.rb +2 -1
  216. data/lib/active_admin/views/components/scopes.rb +8 -5
  217. data/lib/active_admin/views/components/sidebar.rb +1 -0
  218. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  219. data/lib/active_admin/views/components/site_title.rb +2 -1
  220. data/lib/active_admin/views/components/status_tag.rb +12 -11
  221. data/lib/active_admin/views/components/table_for.rb +18 -17
  222. data/lib/active_admin/views/components/tabs.rb +4 -3
  223. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  224. data/lib/active_admin/views/footer.rb +3 -1
  225. data/lib/active_admin/views/header.rb +3 -2
  226. data/lib/active_admin/views/index_as_block.rb +1 -0
  227. data/lib/active_admin/views/index_as_blog.rb +2 -1
  228. data/lib/active_admin/views/index_as_grid.rb +2 -1
  229. data/lib/active_admin/views/index_as_table.rb +16 -19
  230. data/lib/active_admin/views/pages/base.rb +17 -11
  231. data/lib/active_admin/views/pages/form.rb +1 -0
  232. data/lib/active_admin/views/pages/index.rb +15 -13
  233. data/lib/active_admin/views/pages/layout.rb +1 -0
  234. data/lib/active_admin/views/pages/page.rb +1 -0
  235. data/lib/active_admin/views/pages/show.rb +2 -7
  236. data/lib/active_admin/views/tabbed_navigation.rb +3 -2
  237. data/lib/active_admin/views/title_bar.rb +2 -1
  238. data/lib/active_admin/views.rb +2 -1
  239. data/lib/active_admin.rb +63 -61
  240. data/lib/activeadmin.rb +2 -1
  241. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  242. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  243. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  244. data/lib/generators/active_admin/install/install_generator.rb +15 -8
  245. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +27 -3
  246. data/lib/generators/active_admin/install/templates/dashboard.rb +1 -0
  247. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  248. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  249. data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
  250. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  251. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  252. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  253. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  254. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  255. data/vendor/assets/javascripts/jquery-ui/data.js +12 -8
  256. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +10 -7
  257. data/vendor/assets/javascripts/jquery-ui/focusable.js +12 -9
  258. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +60 -57
  259. data/vendor/assets/javascripts/jquery-ui/form.js +15 -12
  260. data/vendor/assets/javascripts/jquery-ui/ie.js +5 -2
  261. data/vendor/assets/javascripts/jquery-ui/keycode.js +11 -7
  262. data/vendor/assets/javascripts/jquery-ui/labels.js +46 -40
  263. data/vendor/assets/javascripts/jquery-ui/plugin.js +5 -2
  264. data/vendor/assets/javascripts/jquery-ui/position.js +30 -17
  265. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +6 -2
  266. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +6 -2
  267. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +10 -7
  268. data/vendor/assets/javascripts/jquery-ui/tabbable.js +11 -8
  269. data/vendor/assets/javascripts/jquery-ui/unique-id.js +10 -7
  270. data/vendor/assets/javascripts/jquery-ui/version.js +6 -3
  271. data/vendor/assets/javascripts/jquery-ui/widget.js +53 -30
  272. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +87 -24
  273. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +276 -273
  274. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +15 -11
  275. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +182 -62
  276. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +53 -36
  277. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +28 -19
  278. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +22 -11
  279. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +47 -26
  280. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +186 -125
  281. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +20 -20
  282. metadata +48 -114
  283. data/docs/.gitignore +0 -1
  284. data/docs/0-installation.md +0 -118
  285. data/docs/1-general-configuration.md +0 -224
  286. data/docs/10-custom-pages.md +0 -150
  287. data/docs/11-decorators.md +0 -59
  288. data/docs/12-arbre-components.md +0 -214
  289. data/docs/13-authorization-adapter.md +0 -285
  290. data/docs/14-gotchas.md +0 -138
  291. data/docs/2-resource-customization.md +0 -466
  292. data/docs/3-index-pages/custom-index.md +0 -35
  293. data/docs/3-index-pages/index-as-block.md +0 -19
  294. data/docs/3-index-pages/index-as-blog.md +0 -69
  295. data/docs/3-index-pages/index-as-grid.md +0 -27
  296. data/docs/3-index-pages/index-as-table.md +0 -234
  297. data/docs/3-index-pages.md +0 -328
  298. data/docs/4-csv-format.md +0 -74
  299. data/docs/5-forms.md +0 -232
  300. data/docs/6-show-pages.md +0 -81
  301. data/docs/7-sidebars.md +0 -75
  302. data/docs/8-custom-actions.md +0 -177
  303. data/docs/9-batch-actions.md +0 -237
  304. data/docs/CNAME +0 -1
  305. data/docs/Gemfile +0 -3
  306. data/docs/Gemfile.lock +0 -248
  307. data/docs/README.md +0 -24
  308. data/docs/_config.yml +0 -4
  309. data/docs/_includes/footer.html +0 -8
  310. data/docs/_includes/google-analytics.html +0 -16
  311. data/docs/_includes/head.html +0 -7
  312. data/docs/_includes/toc.html +0 -98
  313. data/docs/_includes/top-menu.html +0 -17
  314. data/docs/_layouts/default.html +0 -21
  315. data/docs/documentation.md +0 -60
  316. data/docs/images/activeadmin.png +0 -0
  317. data/docs/images/code-header.png +0 -0
  318. data/docs/images/divider.png +0 -0
  319. data/docs/images/features.png +0 -0
  320. data/docs/images/tidelift.svg +0 -14
  321. data/docs/index.html +0 -226
  322. data/docs/stylesheets/main.css +0 -1205
  323. data/lib/active_admin/deprecation.rb +0 -10
  324. data/lib/ransack_ext.rb +0 -20
  325. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
  326. /data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +0 -0
@@ -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
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class UnsupportedBrowser < Component
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class Footer < Component
@@ -20,7 +21,8 @@ module ActiveAdmin
20
21
  end
21
22
 
22
23
  def powered_by_message
23
- I18n.t('active_admin.powered_by',
24
+ I18n.t(
25
+ "active_admin.powered_by",
24
26
  active_admin: link_to("Active Admin", "https://activeadmin.info"),
25
27
  version: ActiveAdmin::VERSION).html_safe
26
28
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class Header < Component
@@ -10,8 +11,8 @@ module ActiveAdmin
10
11
  @utility_menu = @namespace.fetch_menu(:utility_navigation)
11
12
 
12
13
  site_title @namespace
13
- global_navigation @menu, class: 'header-item tabs'
14
- utility_navigation @utility_menu, id: "utility_nav", class: 'header-item tabs'
14
+ global_navigation @menu, class: "header-item tabs"
15
+ utility_navigation @utility_menu, id: "utility_nav", class: "header-item tabs"
15
16
  end
16
17
 
17
18
  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
 
@@ -135,7 +136,7 @@ module ActiveAdmin
135
136
 
136
137
  def build_body(post)
137
138
  if @body
138
- div class: 'content' do
139
+ div class: "content" do
139
140
  render_method_on_post_or_call_proc post, @body
140
141
  end
141
142
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -68,7 +69,7 @@ module ActiveAdmin
68
69
  end
69
70
 
70
71
  def build_empty_cell
71
- td '&nbsp;'.html_safe
72
+ td "&nbsp;".html_safe
72
73
  end
73
74
 
74
75
  def default_number_of_columns
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -278,13 +279,13 @@ module ActiveAdmin
278
279
  # Display a column for checkbox
279
280
  def selectable_column
280
281
  return unless active_admin_config.batch_actions.any?
281
- column resource_selection_toggle_cell, class: 'col-selectable', sortable: false do |resource|
282
+ column resource_selection_toggle_cell, class: "col-selectable", sortable: false do |resource|
282
283
  resource_selection_cell resource
283
284
  end
284
285
  end
285
286
 
286
287
  def index_column(start_value = 1)
287
- column '#', class: 'col-index', sortable: false do |resource|
288
+ column "#", class: "col-index", sortable: false do |resource|
288
289
  @collection.offset_value + @collection.index(resource) + start_value
289
290
  end
290
291
  end
@@ -293,9 +294,9 @@ module ActiveAdmin
293
294
  def id_column
294
295
  raise "#{resource_class.name} has no primary_key!" unless resource_class.primary_key
295
296
  column(resource_class.human_attribute_name(resource_class.primary_key), sortable: resource_class.primary_key) do |resource|
296
- if controller.action_methods.include?('show')
297
+ if controller.action_methods.include?("show")
297
298
  link_to resource.id, resource_path(resource), class: "resource_id_link"
298
- elsif controller.action_methods.include?('edit')
299
+ elsif controller.action_methods.include?("edit")
299
300
  link_to resource.id, edit_resource_path(resource), class: "resource_id_link"
300
301
  else
301
302
  resource.id
@@ -303,10 +304,6 @@ module ActiveAdmin
303
304
  end
304
305
  end
305
306
 
306
- def default_actions
307
- raise '`default_actions` is no longer provided in ActiveAdmin 1.x. Use `actions` instead.'
308
- end
309
-
310
307
  # Add links to perform actions.
311
308
  #
312
309
  # ```ruby
@@ -344,12 +341,12 @@ module ActiveAdmin
344
341
  #
345
342
  # ```
346
343
  def actions(options = {}, &block)
347
- name = options.delete(:name) { '' }
348
- defaults = options.delete(:defaults) { true }
349
- dropdown = options.delete(:dropdown) { false }
350
- dropdown_name = options.delete(:dropdown_name) { I18n.t 'active_admin.dropdown_actions.button_label', default: 'Actions' }
344
+ name = options.delete(:name) { "" }
345
+ defaults = options.delete(:defaults) { true }
346
+ dropdown = options.delete(:dropdown) { false }
347
+ dropdown_name = options.delete(:dropdown_name) { I18n.t "active_admin.dropdown_actions.button_label", default: "Actions" }
351
348
 
352
- options[:class] ||= 'col-actions'
349
+ options[:class] ||= "col-actions"
353
350
 
354
351
  column name, options do |resource|
355
352
  if dropdown
@@ -373,23 +370,23 @@ module ActiveAdmin
373
370
 
374
371
  def defaults(resource, options = {})
375
372
  localizer = ActiveAdmin::Localizers.resource(active_admin_config)
376
- if controller.action_methods.include?('show') && authorized?(ActiveAdmin::Auth::READ, resource)
373
+ if controller.action_methods.include?("show") && authorized?(ActiveAdmin::Auth::READ, resource)
377
374
  item localizer.t(:view), resource_path(resource), class: "view_link #{options[:css_class]}", title: localizer.t(:view)
378
375
  end
379
- if controller.action_methods.include?('edit') && authorized?(ActiveAdmin::Auth::UPDATE, resource)
376
+ if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::EDIT, resource)
380
377
  item localizer.t(:edit), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: localizer.t(:edit)
381
378
  end
382
- if controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, resource)
379
+ if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
383
380
  item localizer.t(:delete), resource_path(resource), class: "delete_link #{options[:css_class]}", title: localizer.t(:delete),
384
- method: :delete, data: { confirm: localizer.t(:delete_confirmation) }
381
+ method: :delete, data: { confirm: localizer.t(:delete_confirmation) }
385
382
  end
386
383
  end
387
384
 
388
385
  class TableActions < ActiveAdmin::Component
389
386
  builder_method :table_actions
390
387
 
391
- def item *args
392
- text_node link_to *args
388
+ def item *args, **kwargs
389
+ text_node link_to(*args, **kwargs)
393
390
  end
394
391
  end
395
392
  end # IndexTableFor