activeadmin 3.1.0 → 4.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (340) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -1
  3. data/CONTRIBUTING.md +25 -108
  4. data/README.md +17 -30
  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 +23 -2
  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 +2 -43
  127. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  128. data/lib/active_admin/filters/resource_extension.rb +17 -9
  129. data/lib/active_admin/filters.rb +0 -2
  130. data/lib/active_admin/form_builder.rb +15 -14
  131. data/lib/active_admin/inputs/filters/base/search_method_select.rb +8 -10
  132. data/lib/active_admin/inputs/filters/base.rb +1 -1
  133. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
  134. data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
  135. data/lib/active_admin/inputs/filters/select_input.rb +2 -0
  136. data/lib/active_admin/inputs.rb +0 -3
  137. data/lib/active_admin/menu.rb +11 -7
  138. data/lib/active_admin/menu_collection.rb +1 -1
  139. data/lib/active_admin/menu_item.rb +24 -3
  140. data/lib/active_admin/namespace.rb +2 -44
  141. data/lib/active_admin/namespace_settings.rb +2 -35
  142. data/lib/active_admin/order_clause.rb +4 -1
  143. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -75
  144. data/lib/active_admin/orm/active_record/comments.rb +10 -5
  145. data/lib/active_admin/resource/action_items.rb +15 -20
  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 +66 -200
  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 -316
  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 -151
  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 -55
  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 -67
  202. data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
  203. data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -65
  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 -40
  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 -41
  309. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -48
  310. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
  311. data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -86
  312. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -80
  313. data/vendor/assets/javascripts/jquery-ui/form.js +0 -22
  314. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -17
  315. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -47
  316. data/vendor/assets/javascripts/jquery-ui/labels.js +0 -65
  317. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -46
  318. data/vendor/assets/javascripts/jquery-ui/position.js +0 -500
  319. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -42
  320. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -23
  321. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -47
  322. data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -38
  323. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -51
  324. data/vendor/assets/javascripts/jquery-ui/version.js +0 -17
  325. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -735
  326. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -391
  327. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -291
  328. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -300
  329. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2123
  330. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -954
  331. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1259
  332. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -230
  333. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1207
  334. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1561
  335. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  336. /data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +0 -0
  337. /data/{lib → app/controllers}/active_admin/resource_controller/decorators.rb +0 -0
  338. /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
  339. /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
  340. /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