activeadmin 3.2.0 → 4.0.0.beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -22
  3. data/CONTRIBUTING.md +28 -109
  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 +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/resource/action_items.rb +15 -20
  144. data/lib/active_admin/resource/naming.rb +1 -2
  145. data/lib/active_admin/resource.rb +1 -0
  146. data/lib/active_admin/resource_dsl.rb +1 -1
  147. data/lib/active_admin/scope.rb +1 -1
  148. data/lib/active_admin/settings_node.rb +1 -1
  149. data/lib/active_admin/sidebar_section.rb +0 -5
  150. data/lib/active_admin/version.rb +1 -1
  151. data/lib/active_admin/view_helpers.rb +0 -12
  152. data/lib/active_admin/views/components/active_admin_form.rb +20 -16
  153. data/lib/active_admin/views/components/attributes_table.rb +4 -12
  154. data/lib/active_admin/views/components/index_list.rb +10 -23
  155. data/lib/active_admin/views/components/paginated_collection.rb +34 -39
  156. data/lib/active_admin/views/components/panel.rb +2 -10
  157. data/lib/active_admin/views/components/scopes.rb +12 -21
  158. data/lib/active_admin/views/components/status_tag.rb +22 -19
  159. data/lib/active_admin/views/components/table_for.rb +19 -24
  160. data/lib/active_admin/views/components/tabs.rb +10 -11
  161. data/lib/active_admin/views/index_as_table.rb +24 -97
  162. data/lib/active_admin.rb +7 -11
  163. data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
  164. data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
  165. data/lib/generators/active_admin/assets/templates/tailwind.config.js +18 -0
  166. data/lib/generators/active_admin/install/install_generator.rb +2 -8
  167. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
  168. data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
  169. data/lib/generators/active_admin/page/page_generator.rb +0 -1
  170. data/lib/generators/active_admin/resource/resource_generator.rb +46 -7
  171. data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
  172. data/lib/generators/active_admin/views_generator.rb +18 -0
  173. data/vendor/javascript/flowbite.js +2 -0
  174. metadata +68 -201
  175. data/app/assets/javascripts/active_admin/base.js +0 -521
  176. data/app/assets/stylesheets/active_admin/_base.scss +0 -57
  177. data/app/assets/stylesheets/active_admin/_forms.scss +0 -316
  178. data/app/assets/stylesheets/active_admin/_header.scss +0 -188
  179. data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
  180. data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
  181. data/app/assets/stylesheets/active_admin/_print.scss +0 -287
  182. data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
  183. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
  184. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
  185. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
  186. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
  187. data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
  188. data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
  189. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
  190. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -151
  191. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
  192. data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
  193. data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
  194. data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
  195. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
  196. data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -55
  197. data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
  198. data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
  199. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
  200. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -67
  201. data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
  202. data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -65
  203. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
  204. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
  205. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
  206. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
  207. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
  208. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
  209. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
  210. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
  211. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
  212. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
  213. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
  214. data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
  215. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
  216. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -40
  217. data/app/javascript/active_admin/base.js +0 -28
  218. data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
  219. data/app/javascript/active_admin/ext/jquery.js +0 -9
  220. data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
  221. data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
  222. data/app/javascript/active_admin/initializers/datepicker.js +0 -16
  223. data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
  224. data/app/javascript/active_admin/initializers/filters.js +0 -10
  225. data/app/javascript/active_admin/initializers/has-many.js +0 -98
  226. data/app/javascript/active_admin/initializers/per-page.js +0 -13
  227. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
  228. data/app/javascript/active_admin/initializers/tabs.js +0 -6
  229. data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
  230. data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
  231. data/app/javascript/active_admin/lib/filters.js +0 -39
  232. data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
  233. data/app/javascript/active_admin/lib/per-page.js +0 -38
  234. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
  235. data/app/javascript/active_admin/lib/utils.js +0 -40
  236. data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
  237. data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
  238. data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
  239. data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
  240. data/app/views/kaminari/active_admin/_page.html.erb +0 -12
  241. data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
  242. data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
  243. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
  244. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
  245. data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
  246. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
  247. data/app/views/layouts/active_admin.html.arb +0 -2
  248. data/lib/active_admin/abstract_view_factory.rb +0 -48
  249. data/lib/active_admin/asset_registration.rb +0 -30
  250. data/lib/active_admin/base_controller/menu.rb +0 -35
  251. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
  252. data/lib/active_admin/filters/active_sidebar.rb +0 -28
  253. data/lib/active_admin/generators/boilerplate.rb +0 -54
  254. data/lib/active_admin/helpers/collection.rb +0 -21
  255. data/lib/active_admin/helpers/i18n.rb +0 -8
  256. data/lib/active_admin/inputs/datepicker_input.rb +0 -28
  257. data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
  258. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
  259. data/lib/active_admin/orm/mongoid.rb +0 -2
  260. data/lib/active_admin/resource_controller/sidebars.rb +0 -19
  261. data/lib/active_admin/resource_controller.rb +0 -68
  262. data/lib/active_admin/view_factory.rb +0 -28
  263. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
  264. data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
  265. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
  266. data/lib/active_admin/view_helpers/display_helper.rb +0 -119
  267. data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
  268. data/lib/active_admin/view_helpers/fields_for.rb +0 -51
  269. data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
  270. data/lib/active_admin/view_helpers/form_helper.rb +0 -21
  271. data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
  272. data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
  273. data/lib/active_admin/view_helpers/title_helper.rb +0 -12
  274. data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
  275. data/lib/active_admin/views/action_items.rb +0 -18
  276. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
  277. data/lib/active_admin/views/components/blank_slate.rb +0 -18
  278. data/lib/active_admin/views/components/columns.rb +0 -162
  279. data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
  280. data/lib/active_admin/views/components/menu.rb +0 -33
  281. data/lib/active_admin/views/components/menu_item.rb +0 -59
  282. data/lib/active_admin/views/components/sidebar.rb +0 -14
  283. data/lib/active_admin/views/components/sidebar_section.rb +0 -35
  284. data/lib/active_admin/views/components/site_title.rb +0 -55
  285. data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
  286. data/lib/active_admin/views/footer.rb +0 -32
  287. data/lib/active_admin/views/header.rb +0 -20
  288. data/lib/active_admin/views/index_as_block.rb +0 -37
  289. data/lib/active_admin/views/index_as_blog.rb +0 -156
  290. data/lib/active_admin/views/index_as_grid.rb +0 -81
  291. data/lib/active_admin/views/pages/base.rb +0 -134
  292. data/lib/active_admin/views/pages/form.rb +0 -65
  293. data/lib/active_admin/views/pages/index.rb +0 -166
  294. data/lib/active_admin/views/pages/layout.rb +0 -27
  295. data/lib/active_admin/views/pages/page.rb +0 -31
  296. data/lib/active_admin/views/pages/show.rb +0 -60
  297. data/lib/active_admin/views/tabbed_navigation.rb +0 -12
  298. data/lib/active_admin/views/title_bar.rb +0 -56
  299. data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
  300. data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
  301. data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
  302. data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
  303. data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
  304. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
  305. data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
  306. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
  307. data/vendor/assets/javascripts/jquery-ui/data.js +0 -41
  308. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -48
  309. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
  310. data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -86
  311. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -80
  312. data/vendor/assets/javascripts/jquery-ui/form.js +0 -22
  313. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -17
  314. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -47
  315. data/vendor/assets/javascripts/jquery-ui/labels.js +0 -65
  316. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -46
  317. data/vendor/assets/javascripts/jquery-ui/position.js +0 -500
  318. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -42
  319. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -23
  320. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -47
  321. data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -38
  322. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -51
  323. data/vendor/assets/javascripts/jquery-ui/version.js +0 -17
  324. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -735
  325. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -391
  326. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -291
  327. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -300
  328. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2123
  329. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -954
  330. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1259
  331. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -230
  332. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1207
  333. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1561
  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
@@ -3,8 +3,6 @@ module ActiveAdmin
3
3
  module Filters
4
4
 
5
5
  class ActiveFilter
6
- include ActiveAdmin::ViewHelpers
7
-
8
6
  attr_reader :resource, :condition, :related_class
9
7
 
10
8
  # Instantiate a `ActiveFilter`
@@ -46,7 +44,7 @@ module ActiveAdmin
46
44
  end
47
45
 
48
46
  def html_options
49
- { class: "current_filter current_filter_#{condition.key}" }
47
+ { "data-filter": condition.key }
50
48
  end
51
49
 
52
50
  private
@@ -21,7 +21,7 @@ module ActiveAdmin
21
21
  # Returns the default filter type for a given attribute. If you want
22
22
  # to use a custom search method, you have to specify the type yourself.
23
23
  def default_input_type(method, options = {})
24
- if method =~ /_(eq|cont|start|end)\z/
24
+ if /_(eq|cont|start|end)\z/.match?(method)
25
25
  :string
26
26
  elsif klass._ransackers.key?(method.to_s)
27
27
  klass._ransackers[method.to_s].type
@@ -41,46 +41,5 @@ module ActiveAdmin
41
41
  end
42
42
  end
43
43
  end
44
-
45
- # This module is included into the view
46
- module ViewHelper
47
-
48
- # Helper method to render a filter form
49
- def active_admin_filters_form_for(search, filters, options = {})
50
- defaults = { builder: ActiveAdmin::Filters::FormBuilder,
51
- url: collection_path,
52
- html: { class: "filter_form" } }
53
- required = { html: { method: :get },
54
- as: :q }
55
- options = defaults.deep_merge(options).deep_merge(required)
56
-
57
- form_for search, options do |f|
58
- filters.each do |attribute, opts|
59
- next if opts.key?(:if) && !call_method_or_proc_on(self, opts[:if])
60
- next if opts.key?(:unless) && call_method_or_proc_on(self, opts[:unless])
61
-
62
- filter_opts = opts.except(:if, :unless)
63
- filter_opts[:input_html] = instance_exec(&filter_opts[:input_html]) if filter_opts[:input_html].is_a?(Proc)
64
-
65
- f.filter attribute, filter_opts
66
- end
67
-
68
- buttons = content_tag :div, class: "buttons" do
69
- f.submit(I18n.t("active_admin.filters.buttons.filter")) +
70
- link_to(I18n.t("active_admin.filters.buttons.clear"), "#", class: "clear_filters_btn") +
71
- hidden_field_tags_for(params, except: except_hidden_fields)
72
- end
73
-
74
- f.template.concat buttons
75
- end
76
- end
77
-
78
- private
79
-
80
- def except_hidden_fields
81
- [:q, :page]
82
- end
83
- end
84
-
85
44
  end
86
45
  end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
+ require "active_admin/filters/active"
3
+
2
4
  module ActiveAdmin
3
5
  module Filters
4
-
5
6
  class Disabled < RuntimeError
6
7
  def initialize(action)
7
8
  super "Cannot #{action} a filter when filters are disabled. Enable filters with 'config.filters = true'"
@@ -9,11 +10,10 @@ module ActiveAdmin
9
10
  end
10
11
 
11
12
  module ResourceExtension
12
-
13
13
  def initialize(*)
14
14
  super
15
15
  add_filters_sidebar_section
16
- add_search_status_sidebar_section
16
+ add_active_search_sidebar_section
17
17
  end
18
18
 
19
19
  # Returns the filters for this resource. If filters are not enabled,
@@ -98,7 +98,7 @@ module ActiveAdmin
98
98
  end
99
99
 
100
100
  if @filters_to_remove
101
- @filters_to_remove.each &filters.method(:delete)
101
+ @filters_to_remove.each { |filter| filters.delete(filter) }
102
102
  end
103
103
 
104
104
  filters
@@ -139,7 +139,7 @@ module ActiveAdmin
139
139
  end
140
140
 
141
141
  # Remove high-arity associations with no searchable column
142
- high_arity = high_arity.select(&method(:searchable_column_for))
142
+ high_arity = high_arity.select { |r| searchable_column_for(r) }
143
143
 
144
144
  high_arity = high_arity.map { |r| r.name.to_s + "_" + searchable_column_for(r) + namespace.filter_method_for_large_association }
145
145
 
@@ -165,16 +165,24 @@ module ActiveAdmin
165
165
  end
166
166
 
167
167
  def filters_sidebar_section
168
- ActiveAdmin::SidebarSection.new :filters, only: :index, if: -> { active_admin_config.filters.any? } do
168
+ name = :filters
169
+ ActiveAdmin::SidebarSection.new name, only: :index, if: -> { active_admin_config.filters.any? } do
170
+ h3 I18n.t("active_admin.sidebars.#{name}", default: name.to_s.titlecase), class: "filters-form-title"
169
171
  active_admin_filters_form_for assigns[:search], **active_admin_config.filters
170
172
  end
171
173
  end
172
174
 
173
- def add_search_status_sidebar_section
174
- self.sidebar_sections << ActiveAdmin::Filters::ActiveSidebar.new
175
+ def add_active_search_sidebar_section
176
+ self.sidebar_sections << active_search_sidebar_section
175
177
  end
176
178
 
179
+ def active_search_sidebar_section
180
+ name = :active_search
181
+ ActiveAdmin::SidebarSection.new name, only: :index, if: -> { active_admin_config.current_filters_enabled? && (params[:q] || params[:scope]) } do
182
+ filters = ActiveAdmin::Filters::Active.new(active_admin_config, assigns[:search])
183
+ render "active_filters", active_filters: filters
184
+ end
185
+ end
177
186
  end
178
-
179
187
  end
180
188
  end
@@ -4,9 +4,7 @@ require "active_admin/filters/resource_extension"
4
4
  require "active_admin/filters/formtastic_addons"
5
5
  require "active_admin/filters/forms"
6
6
  require "active_admin/helpers/optional_display"
7
- require "active_admin/filters/active_sidebar"
8
7
 
9
8
  # Add our Extensions
10
9
  ActiveAdmin::ResourceDSL.send :include, ActiveAdmin::Filters::DSL
11
10
  ActiveAdmin::Resource.send :include, ActiveAdmin::Filters::ResourceExtension
12
- ActiveAdmin::ViewHelpers.send :include, ActiveAdmin::Filters::ViewHelper
@@ -22,7 +22,8 @@ module ActiveAdmin
22
22
  self.action_class_finder = ::Formtastic::ActionClassFinder
23
23
 
24
24
  def cancel_link(url = { action: "index" }, html_options = {}, li_attrs = {})
25
- li_attrs[:class] ||= "cancel"
25
+ li_attrs[:class] ||= "action cancel"
26
+ html_options[:class] ||= "cancel-link"
26
27
  li_content = template.link_to I18n.t("active_admin.cancel"), url, html_options
27
28
  template.content_tag(:li, li_content, li_attrs)
28
29
  end
@@ -48,7 +49,7 @@ module ActiveAdmin
48
49
  @assoc = assoc
49
50
  @options = extract_custom_settings!(options.dup)
50
51
  @options.reverse_merge!(for: assoc)
51
- @options[:class] = [options[:class], "inputs has_many_fields"].compact.join(" ")
52
+ @options[:class] = [options[:class], "inputs has-many-fields"].compact.join(" ")
52
53
 
53
54
  if sortable_column
54
55
  @options[:for] = [assoc, sorted_children(sortable_column)]
@@ -57,7 +58,7 @@ module ActiveAdmin
57
58
 
58
59
  def render(&block)
59
60
  html = "".html_safe
60
- html << template.content_tag(:h3) { heading } if heading.present?
61
+ html << template.content_tag(:h3, class: "has-many-fields-title") { heading } if heading.present?
61
62
  html << template.capture { content_has_many(&block) }
62
63
  html = wrap_div_or_li(html)
63
64
  template.concat(html) if template.output_buffer
@@ -78,8 +79,7 @@ module ActiveAdmin
78
79
  end
79
80
 
80
81
  def default_heading
81
- assoc_klass.model_name.
82
- human(count: ::ActiveAdmin::Helpers::I18n::PLURAL_MANY_COUNT)
82
+ assoc_klass.model_name.human(count: 2.1)
83
83
  end
84
84
 
85
85
  def assoc_klass
@@ -108,23 +108,23 @@ module ActiveAdmin
108
108
 
109
109
  def has_many_actions(form_builder, contents)
110
110
  if form_builder.object.new_record?
111
- contents << template.content_tag(:li) do
111
+ contents << template.content_tag(:li, class: "input") do
112
112
  remove_text = remove_record.is_a?(String) ? remove_record : I18n.t("active_admin.has_many_remove")
113
- template.link_to remove_text, "#", class: "button has_many_remove"
113
+ template.link_to remove_text, "#", class: "has-many-remove"
114
114
  end
115
115
  elsif allow_destroy?(form_builder.object)
116
116
  form_builder.input(
117
117
  :_destroy, as: :boolean,
118
- wrapper_html: { class: "has_many_delete" },
118
+ wrapper_html: { class: "has-many-delete" },
119
119
  label: I18n.t("active_admin.has_many_delete"))
120
120
  end
121
121
 
122
122
  if sortable_column
123
123
  form_builder.input sortable_column, as: :hidden
124
124
 
125
- contents << template.content_tag(:li, class: "handle") do
126
- I18n.t("active_admin.move")
127
- end
125
+ # contents << template.content_tag(:li, class: "handle") do
126
+ # I18n.t("active_admin.move")
127
+ # end
128
128
  end
129
129
 
130
130
  contents
@@ -161,7 +161,7 @@ module ActiveAdmin
161
161
  # Capture the ADD JS
162
162
  def js_for_has_many(class_string, &form_block)
163
163
  assoc_name = assoc_klass.model_name
164
- placeholder = "NEW_#{assoc_name.to_s.underscore.upcase.gsub(/\//, '_')}_RECORD"
164
+ placeholder = "NEW_#{assoc_name.to_s.underscore.upcase.tr('/', '_')}_RECORD"
165
165
  opts = {
166
166
  for: [assoc, assoc_klass.new],
167
167
  class: class_string,
@@ -170,7 +170,7 @@ module ActiveAdmin
170
170
  html = template.capture { __getobj__.send(:inputs_for_nested_attributes, opts, &form_block) }
171
171
  text = new_record.is_a?(String) ? new_record : I18n.t("active_admin.has_many_new", model: assoc_name.human)
172
172
 
173
- template.link_to text, "#", class: "button has_many_add", data: {
173
+ template.link_to text, "#", class: "has-many-add", data: {
174
174
  html: CGI.escapeHTML(html).html_safe, placeholder: placeholder
175
175
  }
176
176
  end
@@ -179,7 +179,8 @@ module ActiveAdmin
179
179
  template.content_tag(
180
180
  already_in_an_inputs_block ? :li : :div,
181
181
  html,
182
- class: "has_many_container #{assoc}",
182
+ class: "has-many-container",
183
+ "data-has-many-association" => assoc,
183
184
  "data-sortable" => sortable_column,
184
185
  "data-sortable-start" => sortable_start)
185
186
  end
@@ -30,17 +30,15 @@ module ActiveAdmin
30
30
  end
31
31
  end
32
32
 
33
- def wrapper_html_options
34
- opts = super
35
- (opts[:class] ||= "") << " select_and_search" unless seems_searchable?
36
- opts
37
- end
38
-
39
33
  def to_html
40
34
  input_wrapping do
41
- label_html << # your label
42
- select_html << # the dropdown that holds the available search methods
43
- input_html # your input field
35
+ [
36
+ label_html, # your label
37
+ '<div class="filters-form-input-group">',
38
+ select_html, # the dropdown that holds the available search methods
39
+ input_html, # your input field
40
+ '</div>'
41
+ ].join("\n").html_safe
44
42
  end
45
43
  end
46
44
 
@@ -49,7 +47,7 @@ module ActiveAdmin
49
47
  end
50
48
 
51
49
  def select_html
52
- template.select_tag "", template.options_for_select(filter_options, current_filter)
50
+ template.select_tag "", template.options_for_select(filter_options, current_filter), "data-search-methods": ""
53
51
  end
54
52
 
55
53
  def filters
@@ -26,7 +26,7 @@ module ActiveAdmin
26
26
 
27
27
  def wrapper_html_options
28
28
  opts = super
29
- (opts[:class] ||= "") << " filter_form_field filter_#{as}"
29
+ (opts[:class] ||= "") << " filters-form-field"
30
30
  opts
31
31
  end
32
32
 
@@ -10,7 +10,7 @@ module ActiveAdmin
10
10
  end
11
11
 
12
12
  def selected_values
13
- @object.public_send("#{searchable_method_name}_in") || []
13
+ @object.public_send(:"#{searchable_method_name}_in") || []
14
14
  end
15
15
 
16
16
  def searchable_method_name
@@ -21,11 +21,6 @@ module ActiveAdmin
21
21
  end
22
22
  end
23
23
 
24
- # Add whitespace before label
25
- def choice_label(choice)
26
- " " + super
27
- end
28
-
29
24
  # Don't wrap in UL tag
30
25
  def choices_group_wrapping(&block)
31
26
  template.capture(&block)
@@ -8,8 +8,10 @@ module ActiveAdmin
8
8
  def to_html
9
9
  input_wrapping do
10
10
  [ label_html,
11
- builder.text_field(gt_input_name, input_html_options_for(gt_input_name, gt_input_placeholder)),
12
- builder.text_field(lt_input_name, input_html_options_for(lt_input_name, lt_input_placeholder)),
11
+ '<div class="filters-form-input-group">',
12
+ builder.date_field(gt_input_name, input_html_options_for(gt_input_name, gt_input_placeholder)),
13
+ builder.date_field(lt_input_name, input_html_options_for(lt_input_name, lt_input_placeholder)),
14
+ '</div>'
13
15
  ].join("\n").html_safe
14
16
  end
15
17
  end
@@ -3,15 +3,12 @@ module ActiveAdmin
3
3
  module Inputs
4
4
  extend ActiveSupport::Autoload
5
5
 
6
- autoload :DatepickerInput
7
-
8
6
  module Filters
9
7
  extend ActiveSupport::Autoload
10
8
 
11
9
  autoload :Base
12
10
  autoload :StringInput
13
11
  autoload :TextInput
14
- autoload :DatePickerInput
15
12
  autoload :DateRangeInput
16
13
  autoload :NumericInput
17
14
  autoload :SelectInput
@@ -49,10 +49,7 @@ module ActiveAdmin
49
49
  #
50
50
  def add(options)
51
51
  options = options.dup # Make sure parameter is not modified
52
- parent_chain = Array.wrap(options.delete(:parent))
53
-
54
- item = if parent = parent_chain.shift
55
- options[:parent] = parent_chain if parent_chain.any?
52
+ item = if parent = options.delete(:parent)
56
53
  (self[parent] || add(label: parent)).add options
57
54
  else
58
55
  _add options.merge parent: self
@@ -65,7 +62,7 @@ module ActiveAdmin
65
62
 
66
63
  # Whether any children match the given item.
67
64
  def include?(item)
68
- @children.values.include?(item) || @children.values.any? { |child| child.include?(item) }
65
+ @children.value?(item)
69
66
  end
70
67
 
71
68
  # Used in the UI to visually distinguish which menu item is selected.
@@ -73,8 +70,14 @@ module ActiveAdmin
73
70
  self == item || include?(item)
74
71
  end
75
72
 
76
- def items
77
- @children.values
73
+ # Returns sorted array of menu items that should be displayed in this context.
74
+ # Sorts by priority first, then alphabetically by label if needed.
75
+ def items(context = nil)
76
+ @children.values.select { |i| i.display?(context) }.sort do |a, b|
77
+ result = a.priority <=> b.priority
78
+ result = a.label(context) <=> b.label(context) if result == 0
79
+ result
80
+ end
78
81
  end
79
82
 
80
83
  attr_reader :children
@@ -25,7 +25,7 @@ module ActiveAdmin
25
25
  end
26
26
 
27
27
  def exists?(menu_name)
28
- @menus.keys.include? menu_name
28
+ @menus.key?(menu_name)
29
29
  end
30
30
 
31
31
  def fetch(menu_name)
@@ -1,7 +1,10 @@
1
1
  # frozen_string_literal: true
2
+ require 'active_admin/view_helpers/method_or_proc_helper'
3
+
2
4
  module ActiveAdmin
3
5
  class MenuItem
4
6
  include Menu::MenuNode
7
+ include MethodOrProcHelper
5
8
 
6
9
  attr_reader :html_options, :parent, :priority
7
10
 
@@ -61,10 +64,28 @@ module ActiveAdmin
61
64
  @id ||= normalize_id @dirty_id
62
65
  end
63
66
 
64
- attr_reader :label
65
- attr_reader :url
67
+ def label(context = nil)
68
+ render_in_context(context, @label)
69
+ end
70
+
71
+ def url(context = nil)
72
+ render_in_context(context, @url)
73
+ end
66
74
 
67
75
  # Don't display if the :if option passed says so
68
- attr_reader :should_display
76
+ # Don't display if the link isn't real, we have children, and none of the children are being displayed.
77
+ def display?(context = nil)
78
+ return false unless render_in_context(context, @should_display)
79
+ return false if !real_url?(context) && @children.any? && !items(context).any?
80
+ true
81
+ end
82
+
83
+ private
84
+
85
+ # URL is not nil, empty, or '#'
86
+ def real_url?(context = nil)
87
+ url = url context
88
+ url.present? && url != '#'
89
+ end
69
90
  end
70
91
  end
@@ -68,7 +68,7 @@ module ActiveAdmin
68
68
 
69
69
  # Register the resource
70
70
  register_resource_controller(config)
71
- parse_registration_block(config, &block) if block_given?
71
+ parse_registration_block(config, &block) if block
72
72
  reset_menu!
73
73
 
74
74
  # Dispatch a registration event
@@ -83,7 +83,7 @@ module ActiveAdmin
83
83
 
84
84
  # Register the resource
85
85
  register_page_controller(config)
86
- parse_page_registration_block(config, &block) if block_given?
86
+ parse_page_registration_block(config, &block) if block
87
87
  reset_menu!
88
88
 
89
89
  config
@@ -141,60 +141,18 @@ module ActiveAdmin
141
141
  end
142
142
  end
143
143
 
144
- # The default logout menu item
145
- #
146
- # @param [ActiveAdmin::MenuItem] menu The menu to add the logout link to
147
- # @param [Fixnum] priority The numeric priority for the order in which it appears
148
- # @param [Hash] html_options An options hash to pass along to link_to
149
- #
150
- def add_logout_button_to_menu(menu, priority = 20, html_options = {})
151
- if logout_link_path
152
- html_options = html_options.reverse_merge(method: logout_link_method || :get)
153
- menu.add id: "logout", priority: priority, html_options: html_options,
154
- label: -> { I18n.t "active_admin.logout" },
155
- url: -> { render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
156
- if: :current_active_admin_user?
157
- end
158
- end
159
-
160
- # The default user session menu item
161
- #
162
- # @param [ActiveAdmin::MenuItem] menu The menu to add the logout link to
163
- # @param [Fixnum] priority The numeric priority for the order in which it appears
164
- # @param [Hash] html_options An options hash to pass along to link_to
165
- #
166
- def add_current_user_to_menu(menu, priority = 10, html_options = {})
167
- if current_user_method
168
- menu.add id: "current_user", priority: priority, html_options: html_options,
169
- label: -> { display_name current_active_admin_user },
170
- url: -> { auto_url_for(current_active_admin_user) },
171
- if: :current_active_admin_user?
172
- end
173
- end
174
-
175
144
  protected
176
145
 
177
146
  def build_menu_collection
178
147
  @menus = MenuCollection.new
179
148
 
180
149
  @menus.on_build do
181
- build_default_utility_nav
182
-
183
150
  resources.each do |resource|
184
151
  resource.add_to_menu(@menus)
185
152
  end
186
153
  end
187
154
  end
188
155
 
189
- # Builds the default utility navigation in top right header with current user & logout button
190
- def build_default_utility_nav
191
- return if @menus.exists? :utility_navigation
192
- @menus.menu :utility_navigation do |menu|
193
- add_current_user_to_menu menu
194
- add_logout_button_to_menu menu
195
- end
196
- end
197
-
198
156
  # Either returns an existing Resource instance or builds a new one.
199
157
  def find_or_build_resource(resource_class, options)
200
158
  resources.add Resource.new(self, resource_class, options)
@@ -12,31 +12,6 @@ module ActiveAdmin
12
12
  # The title which gets displayed in the main layout
13
13
  register :site_title, "", :string_symbol_or_proc
14
14
 
15
- # Set the site title link href (defaults to AA dashboard)
16
- register :site_title_link, ""
17
-
18
- # Set the site title image displayed in the main layout (has precendence over :site_title)
19
- register :site_title_image, "", :string_symbol_or_proc
20
-
21
- # Add to the site head
22
- register :head, "", :string_symbol_or_proc
23
-
24
- # Set the site footer text (defaults to Powered by ActiveAdmin text with version)
25
- register :footer, "", :string_symbol_or_proc
26
-
27
- # Set a favicon
28
- register :favicon, false
29
-
30
- # Additional meta tags to place in head of logged in pages
31
- register :meta_tags, {}
32
-
33
- # Additional meta tags to place in head of logged out pages
34
- register :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
35
-
36
- # The view factory to use to generate all the view classes. Take
37
- # a look at ActiveAdmin::ViewFactory
38
- register :view_factory, ActiveAdmin::ViewFactory.new
39
-
40
15
  # The method to call in controllers to get the current user
41
16
  register :current_user_method, false
42
17
 
@@ -48,9 +23,6 @@ module ActiveAdmin
48
23
  # that it's a method to call which returns the path
49
24
  register :logout_link_path, :destroy_admin_user_session_path
50
25
 
51
- # The method to use when generating the link for user logout
52
- register :logout_link_method, :get
53
-
54
26
  # Whether the batch actions are enabled or not
55
27
  register :batch_actions, false
56
28
 
@@ -85,9 +57,6 @@ module ActiveAdmin
85
57
  # A proc to be used when a user is not authorized to view the current resource
86
58
  register :on_unauthorized_access, :rescue_active_admin_access_denied
87
59
 
88
- # A regex to detect unsupported browser, set to false to disable
89
- register :unsupported_browser_matcher, /MSIE [1-8]\.0/
90
-
91
60
  # Whether to display 'Current Filters' on search screen
92
61
  register :current_filters, true
93
62
 
@@ -102,7 +71,8 @@ module ActiveAdmin
102
71
  :utf8, :_method, :authenticity_token, :commit, :id
103
72
  ]
104
73
 
105
- # Set flash message keys that shouldn't show in ActiveAdmin
74
+ # Set flash message keys that shouldn't show in ActiveAdmin.
75
+ # By default, we remove the `timedout` key from Devise.
106
76
  register :flash_keys_to_except, ["timedout"]
107
77
 
108
78
  # Include association filters by default
@@ -120,8 +90,5 @@ module ActiveAdmin
120
90
  :email,
121
91
  ]
122
92
  register :filter_method_for_large_association, "_start"
123
-
124
- # Switch between asset pipeline and webpacker assets
125
- register :use_webpacker, false
126
93
  end
127
94
  end
@@ -29,8 +29,11 @@ module ActiveAdmin
29
29
  end
30
30
 
31
31
  def table_column
32
- (@column =~ /\./) ? @column :
32
+ if (@column.include?('.'))
33
+ @column
34
+ else
33
35
  [table, active_admin_config.resource_quoted_column_name(@column)].compact.join(".")
36
+ end
34
37
  end
35
38
 
36
39
  def sql