activeadmin 3.2.0 → 4.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
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