activeadmin 3.3.0 → 4.0.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (341) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -111
  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/decorators.rb +1 -1
  12. data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
  13. data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +2 -2
  14. data/app/controllers/active_admin/resource_controller.rb +102 -0
  15. data/app/helpers/active_admin/auto_link_helper.rb +66 -0
  16. data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
  17. data/app/helpers/active_admin/display_helper.rb +117 -0
  18. data/app/helpers/active_admin/form_helper.rb +95 -0
  19. data/app/helpers/active_admin/index_helper.rb +40 -0
  20. data/app/helpers/active_admin/layout_helper.rb +63 -0
  21. data/app/javascript/active_admin/features/batch_actions.js +89 -0
  22. data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
  23. data/app/javascript/active_admin/features/filters.js +34 -0
  24. data/app/javascript/active_admin/features/has_many.js +28 -0
  25. data/app/javascript/active_admin/features/main_menu.js +12 -0
  26. data/app/javascript/active_admin/features/per_page.js +9 -0
  27. data/app/javascript/active_admin/utils/dom.js +17 -0
  28. data/app/javascript/active_admin.js +10 -0
  29. data/app/views/active_admin/_flash_messages.html.erb +22 -0
  30. data/app/views/active_admin/_html_head.html.erb +13 -0
  31. data/app/views/active_admin/_main_navigation.html.erb +28 -0
  32. data/app/views/active_admin/_page_header.html.erb +27 -0
  33. data/app/views/active_admin/_sidebar.html.erb +5 -0
  34. data/app/views/active_admin/_site_footer.html.erb +7 -0
  35. data/app/views/active_admin/_site_header.html.erb +30 -0
  36. data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
  37. data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
  38. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  39. data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
  40. data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
  41. data/app/views/active_admin/devise/shared/_links.erb +3 -1
  42. data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
  43. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
  44. data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
  45. data/app/views/active_admin/kaminari/_page.html.erb +14 -0
  46. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
  47. data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
  48. data/app/views/active_admin/page/index.html.arb +5 -1
  49. data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
  50. data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
  51. data/app/views/active_admin/resource/_form.html.arb +16 -0
  52. data/app/views/active_admin/resource/_form_default.html.arb +12 -0
  53. data/app/views/active_admin/resource/_index_as_table_default.html.arb +9 -0
  54. data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
  55. data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
  56. data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
  57. data/app/views/active_admin/resource/_show_default.html.arb +3 -0
  58. data/app/views/active_admin/resource/edit.html.arb +1 -1
  59. data/app/views/active_admin/resource/index.html.arb +94 -1
  60. data/app/views/active_admin/resource/new.html.arb +1 -1
  61. data/app/views/active_admin/resource/show.html.arb +12 -1
  62. data/app/views/active_admin/shared/_action_items.html.erb +3 -0
  63. data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
  64. data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
  65. data/app/views/active_admin/shared/_sidebar_section.html.arb +7 -0
  66. data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
  67. data/app/views/layouts/active_admin.html.erb +20 -0
  68. data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
  69. data/config/locales/ar.yml +0 -16
  70. data/config/locales/az.yml +0 -16
  71. data/config/locales/bg.yml +0 -9
  72. data/config/locales/bs.yml +0 -7
  73. data/config/locales/ca.yml +0 -9
  74. data/config/locales/cs.yml +0 -9
  75. data/config/locales/da.yml +0 -16
  76. data/config/locales/de-CH.yml +0 -10
  77. data/config/locales/de.yml +0 -16
  78. data/config/locales/el.yml +0 -13
  79. data/config/locales/en-CA.yml +0 -16
  80. data/config/locales/en-GB.yml +0 -16
  81. data/config/locales/en.yml +18 -28
  82. data/config/locales/eo.yml +0 -17
  83. data/config/locales/es-MX.yml +0 -9
  84. data/config/locales/es.yml +0 -16
  85. data/config/locales/fa.yml +0 -9
  86. data/config/locales/fi.yml +0 -9
  87. data/config/locales/fr.yml +32 -26
  88. data/config/locales/he.yml +0 -16
  89. data/config/locales/hr.yml +0 -9
  90. data/config/locales/hu.yml +0 -6
  91. data/config/locales/id.yml +0 -16
  92. data/config/locales/it.yml +0 -16
  93. data/config/locales/ja.yml +0 -16
  94. data/config/locales/ko.yml +0 -9
  95. data/config/locales/lt.yml +0 -16
  96. data/config/locales/lv.yml +0 -6
  97. data/config/locales/mk.yml +0 -15
  98. data/config/locales/nb.yml +0 -12
  99. data/config/locales/nl.yml +21 -29
  100. data/config/locales/pl.yml +0 -16
  101. data/config/locales/pt-BR.yml +0 -16
  102. data/config/locales/pt-PT.yml +0 -6
  103. data/config/locales/ro.yml +0 -6
  104. data/config/locales/ru.yml +0 -16
  105. data/config/locales/sk.yml +0 -16
  106. data/config/locales/sv-SE.yml +0 -16
  107. data/config/locales/tr.yml +0 -16
  108. data/config/locales/uk.yml +0 -16
  109. data/config/locales/vi.yml +0 -16
  110. data/config/locales/zh-CN.yml +0 -16
  111. data/config/locales/zh-TW.yml +0 -16
  112. data/lib/active_admin/application.rb +1 -9
  113. data/lib/active_admin/batch_actions/controller.rb +1 -4
  114. data/lib/active_admin/batch_actions/resource_extension.rb +6 -13
  115. data/lib/active_admin/batch_actions/views/batch_action_form.rb +0 -6
  116. data/lib/active_admin/batch_actions/views/selection_cells.rb +2 -2
  117. data/lib/active_admin/batch_actions.rb +0 -5
  118. data/lib/active_admin/callbacks.rb +6 -4
  119. data/lib/active_admin/component.rb +0 -1
  120. data/lib/active_admin/csv_builder.rb +1 -1
  121. data/lib/active_admin/devise.rb +3 -3
  122. data/lib/active_admin/dsl.rb +2 -2
  123. data/lib/active_admin/dynamic_settings_node.rb +4 -4
  124. data/lib/active_admin/engine.rb +19 -6
  125. data/lib/active_admin/filters/active.rb +6 -4
  126. data/lib/active_admin/filters/active_filter.rb +1 -3
  127. data/lib/active_admin/filters/forms.rb +1 -42
  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 +19 -17
  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 +3 -1
  136. data/lib/active_admin/inputs.rb +0 -3
  137. data/lib/active_admin/menu.rb +10 -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/pundit_adapter.rb +1 -1
  146. data/lib/active_admin/resource/action_items.rb +15 -20
  147. data/lib/active_admin/resource/attributes.rb +1 -8
  148. data/lib/active_admin/resource/belongs_to.rb +1 -0
  149. data/lib/active_admin/resource/naming.rb +1 -2
  150. data/lib/active_admin/resource.rb +1 -0
  151. data/lib/active_admin/resource_dsl.rb +1 -1
  152. data/lib/active_admin/scope.rb +1 -1
  153. data/lib/active_admin/settings_node.rb +1 -1
  154. data/lib/active_admin/sidebar_section.rb +0 -5
  155. data/lib/active_admin/version.rb +1 -1
  156. data/lib/active_admin/view_helpers.rb +0 -12
  157. data/lib/active_admin/views/components/active_admin_form.rb +21 -29
  158. data/lib/active_admin/views/components/attributes_table.rb +4 -12
  159. data/lib/active_admin/views/components/index_list.rb +10 -23
  160. data/lib/active_admin/views/components/paginated_collection.rb +34 -42
  161. data/lib/active_admin/views/components/panel.rb +2 -10
  162. data/lib/active_admin/views/components/scopes.rb +12 -21
  163. data/lib/active_admin/views/components/status_tag.rb +22 -19
  164. data/lib/active_admin/views/components/table_for.rb +19 -24
  165. data/lib/active_admin/views/components/tabs.rb +10 -11
  166. data/lib/active_admin/views/index_as_table.rb +26 -104
  167. data/lib/active_admin.rb +7 -11
  168. data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
  169. data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
  170. data/lib/generators/active_admin/assets/templates/tailwind.config.js +18 -0
  171. data/lib/generators/active_admin/install/install_generator.rb +2 -8
  172. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
  173. data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
  174. data/lib/generators/active_admin/page/page_generator.rb +0 -1
  175. data/lib/generators/active_admin/resource/resource_generator.rb +46 -7
  176. data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
  177. data/lib/generators/active_admin/views_generator.rb +18 -0
  178. metadata +67 -214
  179. data/app/assets/javascripts/active_admin/base.js +0 -521
  180. data/app/assets/stylesheets/active_admin/_base.scss +0 -57
  181. data/app/assets/stylesheets/active_admin/_forms.scss +0 -315
  182. data/app/assets/stylesheets/active_admin/_header.scss +0 -188
  183. data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
  184. data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
  185. data/app/assets/stylesheets/active_admin/_print.scss +0 -287
  186. data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
  187. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
  188. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
  189. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
  190. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
  191. data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
  192. data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
  193. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
  194. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -154
  195. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
  196. data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
  197. data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
  198. data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
  199. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
  200. data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -58
  201. data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
  202. data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
  203. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
  204. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -70
  205. data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
  206. data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -68
  207. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
  208. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
  209. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
  210. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
  211. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
  212. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
  213. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
  214. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
  215. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
  216. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
  217. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
  218. data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
  219. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
  220. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -43
  221. data/app/javascript/active_admin/base.js +0 -28
  222. data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
  223. data/app/javascript/active_admin/ext/jquery.js +0 -9
  224. data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
  225. data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
  226. data/app/javascript/active_admin/initializers/datepicker.js +0 -16
  227. data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
  228. data/app/javascript/active_admin/initializers/filters.js +0 -10
  229. data/app/javascript/active_admin/initializers/has-many.js +0 -98
  230. data/app/javascript/active_admin/initializers/per-page.js +0 -13
  231. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
  232. data/app/javascript/active_admin/initializers/tabs.js +0 -6
  233. data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
  234. data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
  235. data/app/javascript/active_admin/lib/filters.js +0 -39
  236. data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
  237. data/app/javascript/active_admin/lib/per-page.js +0 -38
  238. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
  239. data/app/javascript/active_admin/lib/utils.js +0 -40
  240. data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
  241. data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
  242. data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
  243. data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
  244. data/app/views/kaminari/active_admin/_page.html.erb +0 -12
  245. data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
  246. data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
  247. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
  248. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
  249. data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
  250. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
  251. data/app/views/layouts/active_admin.html.arb +0 -2
  252. data/lib/active_admin/abstract_view_factory.rb +0 -48
  253. data/lib/active_admin/asset_registration.rb +0 -30
  254. data/lib/active_admin/base_controller/menu.rb +0 -35
  255. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
  256. data/lib/active_admin/filters/active_sidebar.rb +0 -28
  257. data/lib/active_admin/generators/boilerplate.rb +0 -54
  258. data/lib/active_admin/helpers/collection.rb +0 -21
  259. data/lib/active_admin/helpers/i18n.rb +0 -8
  260. data/lib/active_admin/inputs/datepicker_input.rb +0 -28
  261. data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
  262. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
  263. data/lib/active_admin/orm/mongoid.rb +0 -2
  264. data/lib/active_admin/resource_controller/sidebars.rb +0 -19
  265. data/lib/active_admin/resource_controller.rb +0 -68
  266. data/lib/active_admin/view_factory.rb +0 -28
  267. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
  268. data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
  269. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
  270. data/lib/active_admin/view_helpers/display_helper.rb +0 -119
  271. data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
  272. data/lib/active_admin/view_helpers/fields_for.rb +0 -51
  273. data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
  274. data/lib/active_admin/view_helpers/form_helper.rb +0 -21
  275. data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
  276. data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
  277. data/lib/active_admin/view_helpers/title_helper.rb +0 -12
  278. data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
  279. data/lib/active_admin/views/action_items.rb +0 -18
  280. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
  281. data/lib/active_admin/views/components/blank_slate.rb +0 -18
  282. data/lib/active_admin/views/components/columns.rb +0 -162
  283. data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
  284. data/lib/active_admin/views/components/menu.rb +0 -33
  285. data/lib/active_admin/views/components/menu_item.rb +0 -59
  286. data/lib/active_admin/views/components/sidebar.rb +0 -14
  287. data/lib/active_admin/views/components/sidebar_section.rb +0 -35
  288. data/lib/active_admin/views/components/site_title.rb +0 -55
  289. data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
  290. data/lib/active_admin/views/footer.rb +0 -32
  291. data/lib/active_admin/views/header.rb +0 -20
  292. data/lib/active_admin/views/index_as_block.rb +0 -37
  293. data/lib/active_admin/views/index_as_blog.rb +0 -156
  294. data/lib/active_admin/views/index_as_grid.rb +0 -81
  295. data/lib/active_admin/views/pages/base.rb +0 -134
  296. data/lib/active_admin/views/pages/form.rb +0 -65
  297. data/lib/active_admin/views/pages/index.rb +0 -166
  298. data/lib/active_admin/views/pages/layout.rb +0 -27
  299. data/lib/active_admin/views/pages/page.rb +0 -31
  300. data/lib/active_admin/views/pages/show.rb +0 -60
  301. data/lib/active_admin/views/tabbed_navigation.rb +0 -12
  302. data/lib/active_admin/views/title_bar.rb +0 -56
  303. data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
  304. data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
  305. data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
  306. data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
  307. data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
  308. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
  309. data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
  310. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
  311. data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
  312. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -51
  313. data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -89
  314. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -83
  315. data/vendor/assets/javascripts/jquery-ui/form.js +0 -25
  316. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
  317. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
  318. data/vendor/assets/javascripts/jquery-ui/labels.js +0 -71
  319. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
  320. data/vendor/assets/javascripts/jquery-ui/position.js +0 -513
  321. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
  322. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
  323. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
  324. data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -41
  325. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
  326. data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
  327. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -758
  328. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -454
  329. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -294
  330. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -304
  331. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2243
  332. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -971
  333. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
  334. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
  335. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1228
  336. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1622
  337. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  338. /data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +0 -0
  339. /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
  340. /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
  341. /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,62 +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_scope = collection.offset(collection.current_page * collection.limit_value)
107
- # Support array collections. Kaminari::PaginatableArray does not respond to except
108
- offset_scope = offset_scope.except(:select, :order) if offset_scope.respond_to?(:except)
109
- offset = offset_scope.limit(1).count
110
- 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
111
107
  options[:right] = 0
112
108
  end
113
109
 
114
- text_node paginate collection, **options
110
+ text_node paginate @collection, **options
115
111
  end
116
112
 
117
- include ::ActiveAdmin::Helpers::Collection
118
- include ::ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
119
-
120
113
  # modified from will_paginate
121
114
  def page_entries_info(options = {})
122
115
  if options[:entry_name]
123
116
  entry_name = options[:entry_name]
124
117
  entries_name = options[:entries_name] || entry_name.pluralize
125
- elsif collection_is_empty?
118
+ elsif collection_empty?(@collection)
126
119
  entry_name = I18n.t "active_admin.pagination.entry", count: 1, default: "entry"
127
120
  entries_name = I18n.t "active_admin.pagination.entry", count: 2, default: "entries"
128
121
  else
129
- 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
130
123
 
131
- entry_name = I18n.translate key, count: 1, default: collection.first.class.name.underscore.sub("_", " ")
132
- 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
133
126
  end
134
127
 
135
128
  if @display_total
136
- if collection.total_pages < 2
137
- case collection_size
129
+ if @collection.total_pages < 2
130
+ case collection_size(@collection)
138
131
  when 0; I18n.t("active_admin.pagination.empty", model: entries_name)
139
132
  when 1; I18n.t("active_admin.pagination.one", model: entry_name)
140
- 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)
141
134
  end
142
135
  else
143
- offset = (collection.current_page - 1) * collection.limit_value
144
- total = collection.total_count
136
+ offset = (@collection.current_page - 1) * @collection.limit_value
137
+ total = @collection.total_count
145
138
  I18n.t "active_admin.pagination.multiple",
146
139
  model: entries_name,
147
140
  total: total,
148
141
  from: offset + 1,
149
- to: offset + collection_size
142
+ to: offset + collection_size(@collection)
150
143
  end
151
144
  else
152
145
  # Do not display total count, in order to prevent a `SELECT count(*)`.
153
- # To do so we must not call `collection.total_pages`
154
- 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
155
148
  I18n.t "active_admin.pagination.multiple_without_total",
156
149
  model: entries_name,
157
150
  from: offset + 1,
158
- to: offset + collection_size
151
+ to: offset + collection_size(@collection)
159
152
  end
160
153
  end
161
-
162
154
  end
163
155
  end
164
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