activeadmin 3.2.3 → 4.0.0.beta1

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 (339) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -57
  3. data/CONTRIBUTING.md +25 -108
  4. data/README.md +19 -32
  5. data/app/assets/config/active_admin_manifest.js +2 -0
  6. data/app/controllers/active_admin/base_controller/menu.rb +39 -0
  7. data/{lib → app/controllers}/active_admin/base_controller.rb +46 -18
  8. data/{lib → app/controllers}/active_admin/page_controller.rb +0 -4
  9. data/{lib → app/controllers}/active_admin/resource_controller/action_builder.rb +1 -1
  10. data/{lib → app/controllers}/active_admin/resource_controller/data_access.rb +2 -2
  11. data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
  12. data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +2 -2
  13. data/app/controllers/active_admin/resource_controller.rb +102 -0
  14. data/app/helpers/active_admin/auto_link_helper.rb +66 -0
  15. data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
  16. data/app/helpers/active_admin/display_helper.rb +117 -0
  17. data/app/helpers/active_admin/form_helper.rb +95 -0
  18. data/app/helpers/active_admin/index_helper.rb +40 -0
  19. data/app/helpers/active_admin/layout_helper.rb +63 -0
  20. data/app/javascript/active_admin/features/batch_actions.js +89 -0
  21. data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
  22. data/app/javascript/active_admin/features/filters.js +34 -0
  23. data/app/javascript/active_admin/features/has_many.js +28 -0
  24. data/app/javascript/active_admin/features/main_menu.js +12 -0
  25. data/app/javascript/active_admin/features/per_page.js +9 -0
  26. data/app/javascript/active_admin/utils/dom.js +17 -0
  27. data/app/javascript/active_admin.js +10 -0
  28. data/app/views/active_admin/_flash_messages.html.erb +22 -0
  29. data/app/views/active_admin/_html_head.html.erb +13 -0
  30. data/app/views/active_admin/_main_navigation.html.erb +28 -0
  31. data/app/views/active_admin/_page_header.html.erb +27 -0
  32. data/app/views/active_admin/_sidebar.html.erb +5 -0
  33. data/app/views/active_admin/_site_footer.html.erb +7 -0
  34. data/app/views/active_admin/_site_header.html.erb +30 -0
  35. data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
  36. data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
  37. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  38. data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
  39. data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
  40. data/app/views/active_admin/devise/shared/_links.erb +3 -1
  41. data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
  42. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
  43. data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
  44. data/app/views/active_admin/kaminari/_page.html.erb +14 -0
  45. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
  46. data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
  47. data/app/views/active_admin/page/index.html.arb +5 -1
  48. data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
  49. data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
  50. data/app/views/active_admin/resource/_form.html.arb +16 -0
  51. data/app/views/active_admin/resource/_form_default.html.arb +12 -0
  52. data/app/views/active_admin/resource/_index_as_table_default.html.arb +9 -0
  53. data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
  54. data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
  55. data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
  56. data/app/views/active_admin/resource/_show_default.html.arb +3 -0
  57. data/app/views/active_admin/resource/edit.html.arb +1 -1
  58. data/app/views/active_admin/resource/index.html.arb +94 -1
  59. data/app/views/active_admin/resource/new.html.arb +1 -1
  60. data/app/views/active_admin/resource/show.html.arb +12 -1
  61. data/app/views/active_admin/shared/_action_items.html.erb +3 -0
  62. data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
  63. data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
  64. data/app/views/active_admin/shared/_sidebar_section.html.arb +7 -0
  65. data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
  66. data/app/views/layouts/active_admin.html.erb +20 -0
  67. data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
  68. data/config/locales/ar.yml +0 -16
  69. data/config/locales/az.yml +0 -16
  70. data/config/locales/bg.yml +0 -9
  71. data/config/locales/bs.yml +0 -7
  72. data/config/locales/ca.yml +0 -9
  73. data/config/locales/cs.yml +0 -9
  74. data/config/locales/da.yml +0 -16
  75. data/config/locales/de-CH.yml +0 -10
  76. data/config/locales/de.yml +0 -16
  77. data/config/locales/el.yml +0 -13
  78. data/config/locales/en-CA.yml +0 -16
  79. data/config/locales/en-GB.yml +0 -16
  80. data/config/locales/en.yml +18 -28
  81. data/config/locales/eo.yml +0 -17
  82. data/config/locales/es-MX.yml +0 -9
  83. data/config/locales/es.yml +0 -16
  84. data/config/locales/fa.yml +0 -9
  85. data/config/locales/fi.yml +0 -9
  86. data/config/locales/fr.yml +32 -26
  87. data/config/locales/he.yml +0 -16
  88. data/config/locales/hr.yml +0 -9
  89. data/config/locales/hu.yml +0 -6
  90. data/config/locales/id.yml +0 -16
  91. data/config/locales/it.yml +0 -16
  92. data/config/locales/ja.yml +0 -16
  93. data/config/locales/ko.yml +0 -9
  94. data/config/locales/lt.yml +0 -16
  95. data/config/locales/lv.yml +0 -6
  96. data/config/locales/mk.yml +0 -15
  97. data/config/locales/nb.yml +0 -12
  98. data/config/locales/nl.yml +21 -29
  99. data/config/locales/pl.yml +0 -16
  100. data/config/locales/pt-BR.yml +0 -16
  101. data/config/locales/pt-PT.yml +0 -6
  102. data/config/locales/ro.yml +0 -6
  103. data/config/locales/ru.yml +0 -16
  104. data/config/locales/sk.yml +0 -16
  105. data/config/locales/sv-SE.yml +0 -16
  106. data/config/locales/tr.yml +0 -16
  107. data/config/locales/uk.yml +0 -16
  108. data/config/locales/vi.yml +0 -16
  109. data/config/locales/zh-CN.yml +0 -16
  110. data/config/locales/zh-TW.yml +0 -16
  111. data/lib/active_admin/application.rb +1 -9
  112. data/lib/active_admin/batch_actions/controller.rb +1 -4
  113. data/lib/active_admin/batch_actions/resource_extension.rb +6 -13
  114. data/lib/active_admin/batch_actions/views/batch_action_form.rb +0 -6
  115. data/lib/active_admin/batch_actions/views/selection_cells.rb +2 -2
  116. data/lib/active_admin/batch_actions.rb +0 -5
  117. data/lib/active_admin/callbacks.rb +6 -4
  118. data/lib/active_admin/component.rb +0 -1
  119. data/lib/active_admin/csv_builder.rb +1 -1
  120. data/lib/active_admin/devise.rb +3 -3
  121. data/lib/active_admin/dsl.rb +2 -2
  122. data/lib/active_admin/dynamic_settings_node.rb +4 -4
  123. data/lib/active_admin/engine.rb +19 -6
  124. data/lib/active_admin/filters/active.rb +6 -4
  125. data/lib/active_admin/filters/active_filter.rb +1 -3
  126. data/lib/active_admin/filters/forms.rb +1 -42
  127. data/lib/active_admin/filters/resource_extension.rb +17 -9
  128. data/lib/active_admin/filters.rb +0 -2
  129. data/lib/active_admin/form_builder.rb +15 -14
  130. data/lib/active_admin/inputs/filters/base/search_method_select.rb +8 -10
  131. data/lib/active_admin/inputs/filters/base.rb +1 -1
  132. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
  133. data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
  134. data/lib/active_admin/inputs.rb +0 -3
  135. data/lib/active_admin/menu.rb +10 -7
  136. data/lib/active_admin/menu_collection.rb +1 -1
  137. data/lib/active_admin/menu_item.rb +24 -3
  138. data/lib/active_admin/namespace.rb +2 -44
  139. data/lib/active_admin/namespace_settings.rb +2 -35
  140. data/lib/active_admin/order_clause.rb +4 -1
  141. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -75
  142. data/lib/active_admin/orm/active_record/comments.rb +10 -5
  143. data/lib/active_admin/pundit_adapter.rb +1 -1
  144. data/lib/active_admin/resource/action_items.rb +15 -20
  145. data/lib/active_admin/resource/attributes.rb +1 -8
  146. data/lib/active_admin/resource/naming.rb +1 -2
  147. data/lib/active_admin/resource.rb +1 -0
  148. data/lib/active_admin/resource_dsl.rb +1 -1
  149. data/lib/active_admin/scope.rb +1 -1
  150. data/lib/active_admin/settings_node.rb +1 -1
  151. data/lib/active_admin/sidebar_section.rb +0 -5
  152. data/lib/active_admin/version.rb +1 -1
  153. data/lib/active_admin/view_helpers.rb +0 -12
  154. data/lib/active_admin/views/components/active_admin_form.rb +20 -16
  155. data/lib/active_admin/views/components/attributes_table.rb +4 -12
  156. data/lib/active_admin/views/components/index_list.rb +10 -23
  157. data/lib/active_admin/views/components/paginated_collection.rb +34 -39
  158. data/lib/active_admin/views/components/panel.rb +2 -10
  159. data/lib/active_admin/views/components/scopes.rb +12 -21
  160. data/lib/active_admin/views/components/status_tag.rb +22 -19
  161. data/lib/active_admin/views/components/table_for.rb +19 -24
  162. data/lib/active_admin/views/components/tabs.rb +10 -11
  163. data/lib/active_admin/views/index_as_table.rb +24 -97
  164. data/lib/active_admin.rb +7 -11
  165. data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
  166. data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
  167. data/lib/generators/active_admin/assets/templates/tailwind.config.js +18 -0
  168. data/lib/generators/active_admin/install/install_generator.rb +2 -8
  169. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
  170. data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
  171. data/lib/generators/active_admin/page/page_generator.rb +0 -1
  172. data/lib/generators/active_admin/resource/resource_generator.rb +46 -7
  173. data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
  174. data/lib/generators/active_admin/views_generator.rb +18 -0
  175. metadata +67 -214
  176. data/app/assets/javascripts/active_admin/base.js +0 -521
  177. data/app/assets/stylesheets/active_admin/_base.scss +0 -57
  178. data/app/assets/stylesheets/active_admin/_forms.scss +0 -315
  179. data/app/assets/stylesheets/active_admin/_header.scss +0 -188
  180. data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
  181. data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
  182. data/app/assets/stylesheets/active_admin/_print.scss +0 -287
  183. data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
  184. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
  185. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
  186. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
  187. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
  188. data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
  189. data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
  190. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
  191. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -154
  192. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
  193. data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
  194. data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
  195. data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
  196. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
  197. data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -58
  198. data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
  199. data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
  200. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
  201. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -70
  202. data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
  203. data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -68
  204. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
  205. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
  206. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
  207. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
  208. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
  209. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
  210. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
  211. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
  212. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
  213. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
  214. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
  215. data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
  216. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
  217. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -43
  218. data/app/javascript/active_admin/base.js +0 -28
  219. data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
  220. data/app/javascript/active_admin/ext/jquery.js +0 -9
  221. data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
  222. data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
  223. data/app/javascript/active_admin/initializers/datepicker.js +0 -16
  224. data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
  225. data/app/javascript/active_admin/initializers/filters.js +0 -10
  226. data/app/javascript/active_admin/initializers/has-many.js +0 -98
  227. data/app/javascript/active_admin/initializers/per-page.js +0 -13
  228. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
  229. data/app/javascript/active_admin/initializers/tabs.js +0 -6
  230. data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
  231. data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
  232. data/app/javascript/active_admin/lib/filters.js +0 -39
  233. data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
  234. data/app/javascript/active_admin/lib/per-page.js +0 -38
  235. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
  236. data/app/javascript/active_admin/lib/utils.js +0 -40
  237. data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
  238. data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
  239. data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
  240. data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
  241. data/app/views/kaminari/active_admin/_page.html.erb +0 -12
  242. data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
  243. data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
  244. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
  245. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
  246. data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
  247. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
  248. data/app/views/layouts/active_admin.html.arb +0 -2
  249. data/lib/active_admin/abstract_view_factory.rb +0 -48
  250. data/lib/active_admin/asset_registration.rb +0 -30
  251. data/lib/active_admin/base_controller/menu.rb +0 -35
  252. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
  253. data/lib/active_admin/filters/active_sidebar.rb +0 -28
  254. data/lib/active_admin/generators/boilerplate.rb +0 -54
  255. data/lib/active_admin/helpers/collection.rb +0 -21
  256. data/lib/active_admin/helpers/i18n.rb +0 -8
  257. data/lib/active_admin/inputs/datepicker_input.rb +0 -28
  258. data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
  259. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
  260. data/lib/active_admin/orm/mongoid.rb +0 -2
  261. data/lib/active_admin/resource_controller/sidebars.rb +0 -19
  262. data/lib/active_admin/resource_controller.rb +0 -68
  263. data/lib/active_admin/view_factory.rb +0 -28
  264. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
  265. data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
  266. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
  267. data/lib/active_admin/view_helpers/display_helper.rb +0 -119
  268. data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
  269. data/lib/active_admin/view_helpers/fields_for.rb +0 -51
  270. data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
  271. data/lib/active_admin/view_helpers/form_helper.rb +0 -21
  272. data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
  273. data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
  274. data/lib/active_admin/view_helpers/title_helper.rb +0 -12
  275. data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
  276. data/lib/active_admin/views/action_items.rb +0 -18
  277. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
  278. data/lib/active_admin/views/components/blank_slate.rb +0 -18
  279. data/lib/active_admin/views/components/columns.rb +0 -162
  280. data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
  281. data/lib/active_admin/views/components/menu.rb +0 -33
  282. data/lib/active_admin/views/components/menu_item.rb +0 -59
  283. data/lib/active_admin/views/components/sidebar.rb +0 -14
  284. data/lib/active_admin/views/components/sidebar_section.rb +0 -35
  285. data/lib/active_admin/views/components/site_title.rb +0 -55
  286. data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
  287. data/lib/active_admin/views/footer.rb +0 -32
  288. data/lib/active_admin/views/header.rb +0 -20
  289. data/lib/active_admin/views/index_as_block.rb +0 -37
  290. data/lib/active_admin/views/index_as_blog.rb +0 -156
  291. data/lib/active_admin/views/index_as_grid.rb +0 -81
  292. data/lib/active_admin/views/pages/base.rb +0 -134
  293. data/lib/active_admin/views/pages/form.rb +0 -65
  294. data/lib/active_admin/views/pages/index.rb +0 -166
  295. data/lib/active_admin/views/pages/layout.rb +0 -27
  296. data/lib/active_admin/views/pages/page.rb +0 -31
  297. data/lib/active_admin/views/pages/show.rb +0 -60
  298. data/lib/active_admin/views/tabbed_navigation.rb +0 -12
  299. data/lib/active_admin/views/title_bar.rb +0 -56
  300. data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
  301. data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
  302. data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
  303. data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
  304. data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
  305. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
  306. data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
  307. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
  308. data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
  309. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -51
  310. data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -89
  311. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -83
  312. data/vendor/assets/javascripts/jquery-ui/form.js +0 -25
  313. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
  314. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
  315. data/vendor/assets/javascripts/jquery-ui/labels.js +0 -71
  316. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
  317. data/vendor/assets/javascripts/jquery-ui/position.js +0 -513
  318. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
  319. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
  320. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
  321. data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -41
  322. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
  323. data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
  324. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -758
  325. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -454
  326. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -294
  327. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -304
  328. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2243
  329. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -971
  330. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
  331. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
  332. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1228
  333. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1622
  334. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  335. /data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +0 -0
  336. /data/{lib → app/controllers}/active_admin/resource_controller/decorators.rb +0 -0
  337. /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
  338. /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
  339. /data/lib/{active_admin/orm/mongoid/.gitkeep → generators/active_admin/assets/templates/builds/.keep} +0 -0
@@ -1,10 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require "active_admin/helpers/collection"
3
- require "active_admin/view_helpers/download_format_links_helper"
4
-
5
2
  module ActiveAdmin
6
3
  module Views
7
-
8
4
  # Wraps the content with pagination and available formats.
9
5
  #
10
6
  # *Example:*
@@ -19,8 +15,8 @@ module ActiveAdmin
19
15
  # posts in one of the following formats:
20
16
  #
21
17
  # * "No Posts found"
22
- # * "Displaying all 10 Posts"
23
- # * "Displaying Posts 1 - 30 of 31 in total"
18
+ # * "Showing all 10 Posts"
19
+ # * "Showing Posts 1 - 30 of 31 in total"
24
20
  #
25
21
  # It will also generate pagination links.
26
22
  #
@@ -46,11 +42,11 @@ module ActiveAdmin
46
42
  @display_total = options.delete(:pagination_total) { true }
47
43
  @per_page = options.delete(:per_page)
48
44
 
49
- unless collection.respond_to?(:total_pages)
45
+ unless @collection.respond_to?(:total_pages)
50
46
  raise(StandardError, "Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection.")
51
47
  end
52
-
53
- @contents = div(class: "paginated_collection_contents")
48
+ add_class "paginated-collection"
49
+ @contents = div(class: "paginated-collection-contents")
54
50
  build_pagination_with_formats(options)
55
51
  @built = true
56
52
  end
@@ -67,25 +63,28 @@ module ActiveAdmin
67
63
  protected
68
64
 
69
65
  def build_pagination_with_formats(options)
70
- div id: "index_footer" do
71
- build_per_page_select if @per_page.is_a?(Array)
66
+ div class: "paginated-collection-pagination" do
67
+ div page_entries_info(options).html_safe, class: "pagination-information"
72
68
  build_pagination
73
- div(page_entries_info(options).html_safe, class: "pagination_information")
74
-
75
- formats = build_download_formats @download_links
76
- build_download_format_links formats if formats.any?
69
+ end
70
+ formats = build_download_formats @download_links
71
+ if @per_page.is_a?(Array) || formats.any?
72
+ div class: "paginated-collection-footer" do
73
+ build_per_page_select if @per_page.is_a?(Array)
74
+ render("active_admin/shared/download_format_links", formats: formats) if formats.any?
75
+ end
77
76
  end
78
77
  end
79
78
 
80
79
  def build_per_page_select
81
- div class: "pagination_per_page" do
80
+ div do
82
81
  text_node I18n.t("active_admin.pagination.per_page")
83
- select do
82
+ select class: "pagination-per-page" do
84
83
  @per_page.each do |per_page|
85
84
  option(
86
85
  per_page,
87
86
  value: per_page,
88
- selected: collection.limit_value == per_page ? "selected" : nil
87
+ selected: @collection.limit_value == per_page ? "selected" : nil
89
88
  )
90
89
  end
91
90
  end
@@ -93,7 +92,7 @@ module ActiveAdmin
93
92
  end
94
93
 
95
94
  def build_pagination
96
- options = { theme: @display_total ? "active_admin" : "active_admin_countless" }
95
+ options = { views_prefix: :active_admin, outer_window: 1, window: 2 }
97
96
  options[:params] = @params if @params
98
97
  options[:param_name] = @param_name if @param_name
99
98
 
@@ -103,59 +102,55 @@ module ActiveAdmin
103
102
  # you pass in the :total_pages option. We issue a query to determine
104
103
  # if there is another page or not, but the limit/offset make this
105
104
  # query fast.
106
- offset = collection.offset(collection.current_page * collection.limit_value).limit(1).count
107
- options[:total_pages] = collection.current_page + offset
105
+ offset = @collection.offset(@collection.current_page * @collection.limit_value).limit(1).count
106
+ options[:total_pages] = @collection.current_page + offset
108
107
  options[:right] = 0
109
108
  end
110
109
 
111
- text_node paginate collection, **options
110
+ text_node paginate @collection, **options
112
111
  end
113
112
 
114
- include ::ActiveAdmin::Helpers::Collection
115
- include ::ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
116
-
117
113
  # modified from will_paginate
118
114
  def page_entries_info(options = {})
119
115
  if options[:entry_name]
120
116
  entry_name = options[:entry_name]
121
117
  entries_name = options[:entries_name] || entry_name.pluralize
122
- elsif collection_is_empty?
118
+ elsif collection_empty?(@collection)
123
119
  entry_name = I18n.t "active_admin.pagination.entry", count: 1, default: "entry"
124
120
  entries_name = I18n.t "active_admin.pagination.entry", count: 2, default: "entries"
125
121
  else
126
- key = "activerecord.models." + collection.first.class.model_name.i18n_key.to_s
122
+ key = "activerecord.models." + @collection.first.class.model_name.i18n_key.to_s
127
123
 
128
- entry_name = I18n.translate key, count: 1, default: collection.first.class.name.underscore.sub("_", " ")
129
- entries_name = I18n.translate key, count: collection.size, default: entry_name.pluralize
124
+ entry_name = I18n.translate key, count: 1, default: @collection.first.class.name.underscore.sub("_", " ")
125
+ entries_name = I18n.translate key, count: @collection.size, default: entry_name.pluralize
130
126
  end
131
127
 
132
128
  if @display_total
133
- if collection.total_pages < 2
134
- case collection_size
129
+ if @collection.total_pages < 2
130
+ case collection_size(@collection)
135
131
  when 0; I18n.t("active_admin.pagination.empty", model: entries_name)
136
132
  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)
133
+ else; I18n.t("active_admin.pagination.one_page", model: entries_name, n: @collection.total_count)
138
134
  end
139
135
  else
140
- offset = (collection.current_page - 1) * collection.limit_value
141
- total = collection.total_count
136
+ offset = (@collection.current_page - 1) * @collection.limit_value
137
+ total = @collection.total_count
142
138
  I18n.t "active_admin.pagination.multiple",
143
139
  model: entries_name,
144
140
  total: total,
145
141
  from: offset + 1,
146
- to: offset + collection_size
142
+ to: offset + collection_size(@collection)
147
143
  end
148
144
  else
149
145
  # Do not display total count, in order to prevent a `SELECT count(*)`.
150
- # To do so we must not call `collection.total_pages`
151
- offset = (collection.current_page - 1) * collection.limit_value
146
+ # To do so we must not call `@collection.total_pages`
147
+ offset = (@collection.current_page - 1) * @collection.limit_value
152
148
  I18n.t "active_admin.pagination.multiple_without_total",
153
149
  model: entries_name,
154
150
  from: offset + 1,
155
- to: offset + collection_size
151
+ to: offset + collection_size(@collection)
156
152
  end
157
153
  end
158
-
159
154
  end
160
155
  end
161
156
  end
@@ -8,8 +8,8 @@ module ActiveAdmin
8
8
  def build(title, attributes = {})
9
9
  super(attributes)
10
10
  add_class "panel"
11
- @title = h3(title.to_s)
12
- @contents = div(class: "panel_contents")
11
+ @title = h3(title.to_s, class: "panel-title")
12
+ @contents = div(class: "panel-body")
13
13
  end
14
14
 
15
15
  def add_child(child)
@@ -26,14 +26,6 @@ module ActiveAdmin
26
26
  def children?
27
27
  @contents.children?
28
28
  end
29
-
30
- def header_action(*args)
31
- action = args[0]
32
-
33
- @title << div(class: "header_action") do
34
- action
35
- end
36
- end
37
29
  end
38
30
  end
39
31
  end
@@ -1,29 +1,22 @@
1
1
  # frozen_string_literal: true
2
- require "active_admin/helpers/collection"
3
2
  require "active_admin/view_helpers/method_or_proc_helper"
4
3
 
5
4
  module ActiveAdmin
6
5
  module Views
7
-
8
6
  # Renders a collection of ActiveAdmin::Scope objects as a
9
7
  # simple list with a seperator
10
8
  class Scopes < ActiveAdmin::Component
11
- builder_method :scopes_renderer
12
-
13
9
  include ActiveAdmin::ScopeChain
14
- include ::ActiveAdmin::Helpers::Collection
15
-
16
- def default_class_name
17
- "scopes"
18
- end
19
10
 
20
11
  def tag_name
21
12
  "div"
22
13
  end
23
14
 
24
15
  def build(scopes, options = {})
16
+ super({ role: "toolbar" })
17
+ add_class "scopes"
25
18
  scopes.group_by(&:group).each do |group, group_scopes|
26
- ul class: "table_tools_segmented_control #{group_class(group)}" do
19
+ div class: "index-button-group", role: "group", data: { "group": group_name(group) } do
27
20
  group_scopes.each do |scope|
28
21
  build_scope(scope, options) if call_method_or_exec_proc(scope.display_if_block)
29
22
  end
@@ -36,21 +29,19 @@ module ActiveAdmin
36
29
  protected
37
30
 
38
31
  def build_scope(scope, options)
39
- li class: classes_for_scope(scope) do
40
- params = request.query_parameters.except :page, :scope, :commit, :format
32
+ params = request.query_parameters.except :page, :scope, :commit, :format
41
33
 
42
- a href: url_for(scope: scope.id, params: params), class: "table_tools_button" do
43
- text_node scope_name(scope)
44
- span class: "count" do
45
- "(#{get_scope_count(scope)})"
46
- end if options[:scope_count] && scope.show_count
34
+ a href: url_for(scope: scope.id, params: params), class: classes_for_scope(scope) do
35
+ text_node scope_name(scope)
36
+ if options[:scope_count] && scope.show_count
37
+ span get_scope_count(scope), class: "scopes-count"
47
38
  end
48
39
  end
49
40
  end
50
41
 
51
42
  def classes_for_scope(scope)
52
- classes = ["scope", scope.id]
53
- classes << "selected" if current_scope?(scope)
43
+ classes = ["index-button"]
44
+ classes << "index-button-selected" if current_scope?(scope)
54
45
  classes.join(" ")
55
46
  end
56
47
 
@@ -67,8 +58,8 @@ module ActiveAdmin
67
58
  collection_size(scope_chain(scope, collection_before_scope))
68
59
  end
69
60
 
70
- def group_class(group)
71
- group.present? ? "scope-group-#{group}" : "scope-default-group"
61
+ def group_name(group)
62
+ group.present? ? group : "default"
72
63
  end
73
64
  end
74
65
  end
@@ -9,12 +9,8 @@ module ActiveAdmin
9
9
  "span"
10
10
  end
11
11
 
12
- def default_class_name
13
- "status_tag"
14
- end
15
-
16
12
  # @overload status_tag(status, options = {})
17
- # @param [String] status the status to display. One of the span classes will be an underscored version of the status.
13
+ # @param [String] status the status to display.
18
14
  # @param [Hash] options
19
15
  # @option options [String] :class to override the default class
20
16
  # @option options [String] :id to override the default id
@@ -22,17 +18,30 @@ module ActiveAdmin
22
18
  # @return [ActiveAdmin::Views::StatusTag]
23
19
  #
24
20
  # @example
21
+ # status_tag(true)
22
+ # # => <span class="status-tag" data-status="yes">Yes</span>
23
+ #
24
+ # @example
25
+ # status_tag(false)
26
+ # # => <span class="status-tag" data-status="no">No</span>
27
+ #
28
+ # @example
29
+ # status_tag(nil)
30
+ # # => <span class="status-tag" data-status="unset">Unknown</span>
31
+ #
32
+ # @example
25
33
  # status_tag('In Progress')
26
- # # => <span class='status_tag in_progress'>In Progress</span>
34
+ # # => <span class="status-tag" data-status="in_progress">In Progress</span>
27
35
  #
28
36
  # @example
29
- # status_tag('active', class: 'important', id: 'status_123', label: 'on')
30
- # # => <span class='status_tag active important' id='status_123'>on</span>
37
+ # status_tag('Active', class: 'important', id: 'status_123', label: 'on')
38
+ # # => <span class="status-tag important" id="status_123" data-status="active">on</span>
31
39
  #
32
40
  def build(status, options = {})
33
41
  label = options.delete(:label)
34
42
  classes = options.delete(:class)
35
- status = convert_to_boolean_status(status)
43
+ boolean_status = convert_to_boolean_status(status)
44
+ status = boolean_status || status
36
45
 
37
46
  if status
38
47
  content = label || if s = status.to_s and s.present?
@@ -41,8 +50,8 @@ module ActiveAdmin
41
50
  end
42
51
 
43
52
  super(content, options)
44
-
45
- add_class(status_to_class(status)) if status
53
+ add_class "status-tag"
54
+ set_attribute("data-status", convert_status(status)) if status
46
55
  add_class(classes) if classes
47
56
  end
48
57
 
@@ -56,19 +65,13 @@ module ActiveAdmin
56
65
  "No"
57
66
  when nil
58
67
  "Unset"
59
- else
60
- status
61
68
  end
62
69
  end
63
70
 
64
- def status_to_class(status)
71
+ def convert_status(status)
65
72
  case status
66
- when "Unset"
67
- "unset no"
68
73
  when String, Symbol
69
- status.to_s.titleize.gsub(/\s/, "").underscore
70
- else
71
- ""
74
+ status.to_s.titleize.delete(" ").underscore
72
75
  end
73
76
  end
74
77
  end
@@ -20,6 +20,7 @@ module ActiveAdmin
20
20
 
21
21
  build_table
22
22
  super(options)
23
+ add_class "data-table"
23
24
  columns(*attrs)
24
25
  end
25
26
 
@@ -66,20 +67,26 @@ module ActiveAdmin
66
67
  end
67
68
 
68
69
  def build_table_header(col)
69
- classes = Arbre::HTML::ClassList.new
70
70
  sort_key = sortable? && col.sortable? && col.sort_key
71
71
  params = request.query_parameters.except :page, :order, :commit, :format
72
72
 
73
- classes << "sortable" if sort_key
74
- classes << "sorted-#{current_sort[1]}" if sort_key && current_sort[0] == sort_key
75
- classes << col.html_class
73
+ attributes = {
74
+ class: col.html_class,
75
+ "data-column": col.title_id.presence,
76
+ "data-sortable": (sort_key.present?) ? "" : nil,
77
+ "data-sort-direction": (sort_key && current_sort[0] == sort_key) ? current_sort[1] : nil
78
+ }
76
79
 
77
80
  if sort_key
78
- th class: classes do
79
- link_to col.pretty_title, params: params, order: "#{sort_key}_#{order_for_sort_key(sort_key)}"
81
+ th(attributes) do
82
+ link_to params: params, order: "#{sort_key}_#{order_for_sort_key(sort_key)}" do
83
+ svg = '<svg class="data-table-sorted-icon" fill="none" viewBox="0 0 10 6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/></svg>'
84
+
85
+ (col.pretty_title + svg).html_safe
86
+ end
80
87
  end
81
88
  else
82
- th col.pretty_title, class: classes
89
+ th col.pretty_title, attributes
83
90
  end
84
91
  end
85
92
 
@@ -87,19 +94,13 @@ module ActiveAdmin
87
94
  @tbody = tbody do
88
95
  # Build enough rows for our collection
89
96
  @collection.each do |elem|
90
- classes = [helpers.cycle("odd", "even")]
91
-
92
- if @row_class
93
- classes << @row_class.call(elem)
94
- end
95
-
96
- tr(class: classes.flatten.join(" "), id: dom_id_for(elem))
97
+ tr(id: dom_id_for(elem), class: @row_class&.call(elem))
97
98
  end
98
99
  end
99
100
  end
100
101
 
101
102
  def build_table_cell(col, resource)
102
- td class: col.html_class do
103
+ td class: col.html_class, "data-column": col.title_id.presence do
103
104
  html = helpers.format_attribute(resource, col.data)
104
105
  # Don't add the same Arbre twice, while still allowing format_attribute to call status_tag
105
106
  current_arbre_element << html unless current_arbre_element.children.include? html
@@ -139,19 +140,13 @@ module ActiveAdmin
139
140
 
140
141
  class Column
141
142
 
142
- attr_accessor :title, :data, :html_class
143
+ attr_accessor :title, :title_id, :data, :html_class
143
144
 
144
145
  def initialize(*args, &block)
145
146
  @options = args.extract_options!
146
-
147
147
  @title = args[0]
148
- html_classes = [:col]
149
- if @options.has_key?(:class)
150
- html_classes << @options.delete(:class)
151
- elsif @title.present?
152
- html_classes << "col-#{@title.to_s.parameterize(separator: "_")}"
153
- end
154
- @html_class = html_classes.join(" ")
148
+ @title_id = @title.to_s.parameterize(separator: "_") if @title.present? && !title.is_a?(Arbre::Element)
149
+ @html_class = @options.delete(:class)
155
150
  @data = args[1] || args[0]
156
151
  @data = block if block
157
152
  @resource_class = args[2]
@@ -10,31 +10,30 @@ module ActiveAdmin
10
10
  @tabs_content << build_content_item(title, options, &block)
11
11
  end
12
12
 
13
- def build(&block)
14
- @menu = ul(class: "nav nav-tabs", role: "tablist")
15
- @tabs_content = div(class: "tab-content")
13
+ def build(attributes = {}, &block)
14
+ super(attributes)
15
+ add_class "tabs"
16
+ @menu = nav(class: "tabs-nav", role: "tablist", "data-tabs-toggle": "#tabs-container-#{object_id}")
17
+ @tabs_content = div(class: "tabs-content", id: "tabs-container-#{object_id}")
16
18
  end
17
19
 
18
20
  def build_menu_item(title, options, &block)
19
21
  fragment = options.fetch(:id, fragmentize(title))
20
-
21
- html_options = options.fetch(:html_options, {})
22
- li html_options do
23
- link_to title, "##{fragment}"
22
+ html_options = options.fetch(:html_options, {}).merge("data-tabs-target": "##{fragment}", role: "tab", "aria-controls": fragment)
23
+ button html_options do
24
+ title
24
25
  end
25
26
  end
26
27
 
27
28
  def build_content_item(title, options, &block)
28
- options = options.reverse_merge(id: fragmentize(title))
29
+ options = options.reverse_merge(id: fragmentize(title), class: "hidden", role: "tabpanel", "aria-labelledby": "#{title}-tab")
29
30
  div(options, &block)
30
31
  end
31
32
 
32
33
  private
33
34
 
34
35
  def fragmentize(string)
35
- result = string.parameterize
36
- result = CGI.escape(string) if result.blank?
37
- result
36
+ "tabs-#{string.parameterize}-#{object_id}"
38
37
  end
39
38
  end
40
39
  end
@@ -72,7 +72,7 @@ module ActiveAdmin
72
72
  # selectable_column
73
73
  # column :title
74
74
  # actions do |post|
75
- # item "Preview", admin_preview_post_path(post), class: "member_link"
75
+ # item "Preview", admin_preview_post_path(post), class: "preview-link"
76
76
  # end
77
77
  # end
78
78
  # ```
@@ -99,32 +99,6 @@ module ActiveAdmin
99
99
  # end
100
100
  # ```
101
101
  #
102
- # In case you prefer to list actions links in a dropdown menu:
103
- #
104
- # ```ruby
105
- # index do
106
- # selectable_column
107
- # column :title
108
- # actions dropdown: true do |post|
109
- # item "Preview", admin_preview_post_path(post)
110
- # end
111
- # end
112
- # ```
113
- #
114
- # In addition, you can insert the position of the row in the greater
115
- # collection by using the index_column special command:
116
- #
117
- # ```ruby
118
- # index do
119
- # selectable_column
120
- # index_column
121
- # column :title
122
- # end
123
- # ```
124
- #
125
- # index_column take an optional offset parameter to allow a developer to set
126
- # the starting number for the index (default is 1).
127
- #
128
102
  # ## Sorting
129
103
  #
130
104
  # When a column is generated from an Active Record attribute, the table is
@@ -234,35 +208,22 @@ module ActiveAdmin
234
208
  # ```
235
209
  #
236
210
  class IndexAsTable < ActiveAdmin::Component
237
-
238
211
  def build(page_presenter, collection)
212
+ add_class "index-as-table"
239
213
  table_options = {
240
214
  id: "index_table_#{active_admin_config.resource_name.plural}",
241
215
  sortable: true,
242
- class: "index_table index",
243
216
  i18n: active_admin_config.resource_class,
244
217
  paginator: page_presenter[:paginator] != false,
245
218
  row_class: page_presenter[:row_class]
246
219
  }
247
220
 
248
- table_for collection, table_options do |t|
249
- table_config_block = page_presenter.block || default_table
250
- instance_exec(t, &table_config_block)
251
- end
252
- end
253
-
254
- def table_for(*args, &block)
255
- insert_tag IndexTableFor, *args, &block
256
- end
257
-
258
- def default_table
259
- proc do
260
- selectable_column
261
- id_column if resource_class.primary_key
262
- active_admin_config.resource_columns.each do |attribute|
263
- column attribute
221
+ if page_presenter.block
222
+ insert_tag(IndexTableFor, collection, table_options) do |t|
223
+ instance_exec(t, &page_presenter.block)
264
224
  end
265
- actions
225
+ else
226
+ render "index_as_table_default", table_options: table_options
266
227
  end
267
228
  end
268
229
 
@@ -275,29 +236,22 @@ module ActiveAdmin
275
236
  # methods for quickly displaying items on the index page
276
237
  #
277
238
  class IndexTableFor < ::ActiveAdmin::Views::TableFor
278
-
279
239
  # Display a column for checkbox
280
- def selectable_column
240
+ def selectable_column(**options)
281
241
  return unless active_admin_config.batch_actions.any?
282
- column resource_selection_toggle_cell, class: "col-selectable", sortable: false do |resource|
242
+ column resource_selection_toggle_cell, class: options[:class], sortable: false do |resource|
283
243
  resource_selection_cell resource
284
244
  end
285
245
  end
286
246
 
287
- def index_column(start_value = 1)
288
- column "#", class: "col-index", sortable: false do |resource|
289
- @collection.offset_value + @collection.index(resource) + start_value
290
- end
291
- end
292
-
293
247
  # Display a column for the id
294
248
  def id_column
295
249
  raise "#{resource_class.name} has no primary_key!" unless resource_class.primary_key
296
250
  column(resource_class.human_attribute_name(resource_class.primary_key), sortable: resource_class.primary_key) do |resource|
297
251
  if controller.action_methods.include?("show")
298
- link_to resource.id, resource_path(resource), class: "resource_id_link"
252
+ link_to resource.id, resource_path(resource)
299
253
  elsif controller.action_methods.include?("edit")
300
- link_to resource.id, edit_resource_path(resource), class: "resource_id_link"
254
+ link_to resource.id, edit_resource_path(resource)
301
255
  else
302
256
  resource.id
303
257
  end
@@ -329,38 +283,17 @@ module ActiveAdmin
329
283
  # item 'Grant Admin', grant_admin_admin_user_path(admin_user)
330
284
  # end
331
285
  #
332
- # # Append some actions onto the end of the default actions displayed in a Dropdown Menu
333
- # actions dropdown: true do |admin_user|
334
- # item 'Grant Admin', grant_admin_admin_user_path(admin_user)
335
- # end
336
- #
337
- # # Custom actions without the defaults displayed in a Dropdown Menu.
338
- # actions defaults: false, dropdown: true, dropdown_name: 'Additional actions' do |admin_user|
339
- # item 'Grant Admin', grant_admin_admin_user_path(admin_user)
340
- # end
341
- #
342
286
  # ```
343
287
  def actions(options = {}, &block)
344
288
  name = options.delete(:name) { "" }
345
289
  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" }
348
-
349
- options[:class] ||= "col-actions"
350
290
 
351
291
  column name, options do |resource|
352
- if dropdown
353
- dropdown_menu dropdown_name do
354
- defaults(resource) if defaults
355
- instance_exec(resource, &block) if block_given?
356
- end
357
- else
358
- table_actions do
359
- defaults(resource, css_class: :member_link) if defaults
360
- if block_given?
361
- block_result = instance_exec(resource, &block)
362
- text_node block_result unless block_result.is_a? Arbre::Element
363
- end
292
+ insert_tag(TableActions, class: "data-table-resource-actions") do
293
+ render "index_table_actions_default", defaults_data(resource) if defaults
294
+ if block
295
+ block_result = instance_exec(resource, &block)
296
+ text_node block_result unless block_result.is_a? Arbre::Element
364
297
  end
365
298
  end
366
299
  end
@@ -368,29 +301,23 @@ module ActiveAdmin
368
301
 
369
302
  private
370
303
 
371
- def defaults(resource, options = {})
304
+ def defaults_data(resource)
372
305
  localizer = ActiveAdmin::Localizers.resource(active_admin_config)
373
- if controller.action_methods.include?("show") && authorized?(ActiveAdmin::Auth::READ, resource)
374
- item localizer.t(:view), resource_path(resource), class: "view_link #{options[:css_class]}", title: localizer.t(:view)
375
- end
376
- if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::EDIT, resource)
377
- item localizer.t(:edit), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: localizer.t(:edit)
378
- end
379
- if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
380
- item localizer.t(:delete), resource_path(resource), class: "delete_link #{options[:css_class]}", title: localizer.t(:delete),
381
- method: :delete, data: { confirm: localizer.t(:delete_confirmation) }
382
- end
306
+ {
307
+ resource: resource,
308
+ view_label: localizer.t(:view),
309
+ edit_label: localizer.t(:edit),
310
+ delete_label: localizer.t(:delete),
311
+ delete_confirmation_text: localizer.t(:delete_confirmation)
312
+ }
383
313
  end
384
314
 
385
315
  class TableActions < ActiveAdmin::Component
386
- builder_method :table_actions
387
-
388
316
  def item *args, **kwargs
389
317
  text_node link_to(*args, **kwargs)
390
318
  end
391
319
  end
392
320
  end # IndexTableFor
393
-
394
321
  end
395
322
  end
396
323
  end