activeadmin 1.3.0 → 2.13.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (582) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +764 -135
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +83 -61
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +3 -25
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +25 -123
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  14. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  15. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  16. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  17. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  18. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  19. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  20. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  21. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  23. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  25. data/app/javascript/active_admin/base.js +28 -0
  26. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  27. data/app/javascript/active_admin/ext/jquery.js +9 -0
  28. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  29. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  30. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  31. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  32. data/app/javascript/active_admin/initializers/filters.js +10 -0
  33. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  34. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  35. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  36. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  37. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  38. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  39. data/app/javascript/active_admin/lib/filters.js +39 -0
  40. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  41. data/app/javascript/active_admin/lib/per-page.js +38 -0
  42. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  43. data/app/javascript/active_admin/lib/utils.js +40 -0
  44. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  45. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  46. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  47. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  48. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  49. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  50. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  51. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  52. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  53. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  54. data/app/views/active_admin/page/index.html.arb +1 -0
  55. data/app/views/active_admin/resource/edit.html.arb +1 -0
  56. data/app/views/active_admin/resource/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/new.html.arb +1 -0
  58. data/app/views/active_admin/resource/show.html.arb +1 -0
  59. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  60. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  61. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  63. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  64. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  65. data/app/views/layouts/active_admin.html.arb +1 -0
  66. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  67. data/config/locales/ar.yml +9 -8
  68. data/config/locales/az.yml +138 -0
  69. data/config/locales/bg.yml +1 -1
  70. data/config/locales/bs.yml +1 -0
  71. data/config/locales/ca.yml +1 -1
  72. data/config/locales/cs.yml +1 -0
  73. data/config/locales/da.yml +1 -0
  74. data/config/locales/de-CH.yml +1 -0
  75. data/config/locales/de.yml +29 -0
  76. data/config/locales/el.yml +1 -0
  77. data/config/locales/en-CA.yml +4 -3
  78. data/config/locales/en-GB.yml +4 -3
  79. data/config/locales/en.yml +23 -4
  80. data/config/locales/eo.yml +1 -0
  81. data/config/locales/es-MX.yml +3 -1
  82. data/config/locales/es.yml +26 -6
  83. data/config/locales/fa.yml +1 -0
  84. data/config/locales/fi.yml +2 -1
  85. data/config/locales/fr.yml +6 -5
  86. data/config/locales/he.yml +1 -1
  87. data/config/locales/hr.yml +1 -0
  88. data/config/locales/hu.yml +5 -0
  89. data/config/locales/id.yml +1 -0
  90. data/config/locales/it.yml +23 -0
  91. data/config/locales/ja.yml +4 -3
  92. data/config/locales/ko.yml +2 -1
  93. data/config/locales/lt.yml +3 -2
  94. data/config/locales/lv.yml +3 -2
  95. data/config/locales/mk.yml +134 -0
  96. data/config/locales/nb.yml +16 -5
  97. data/config/locales/nl.yml +13 -1
  98. data/config/locales/pl.yml +72 -3
  99. data/config/locales/pt-BR.yml +1 -0
  100. data/config/locales/pt-PT.yml +1 -0
  101. data/config/locales/ro.yml +4 -2
  102. data/config/locales/ru.yml +3 -0
  103. data/config/locales/sk.yml +60 -0
  104. data/config/locales/sv-SE.yml +1 -0
  105. data/config/locales/tr.yml +10 -0
  106. data/config/locales/uk.yml +3 -0
  107. data/config/locales/vi.yml +7 -5
  108. data/config/locales/zh-CN.yml +34 -5
  109. data/config/locales/zh-TW.yml +1 -0
  110. data/docs/.gitignore +1 -0
  111. data/docs/0-installation.md +29 -5
  112. data/docs/1-general-configuration.md +36 -1
  113. data/docs/10-custom-pages.md +14 -0
  114. data/docs/11-decorators.md +16 -5
  115. data/docs/12-arbre-components.md +41 -1
  116. data/docs/13-authorization-adapter.md +41 -22
  117. data/docs/2-resource-customization.md +19 -5
  118. data/docs/3-index-pages/custom-index.md +1 -1
  119. data/docs/3-index-pages/index-as-blog.md +1 -1
  120. data/docs/3-index-pages/index-as-table.md +12 -5
  121. data/docs/3-index-pages.md +18 -1
  122. data/docs/5-forms.md +25 -5
  123. data/docs/6-show-pages.md +12 -0
  124. data/docs/8-custom-actions.md +12 -1
  125. data/docs/9-batch-actions.md +2 -2
  126. data/docs/CNAME +1 -1
  127. data/docs/Gemfile +4 -2
  128. data/docs/Gemfile.lock +283 -0
  129. data/docs/_config.yml +3 -1
  130. data/docs/_includes/toc.html +1 -1
  131. data/docs/_includes/top-menu.html +9 -1
  132. data/docs/documentation.md +2 -2
  133. data/docs/images/tidelift.svg +14 -0
  134. data/docs/index.html +110 -9
  135. data/docs/stylesheets/main.css +55 -2
  136. data/lib/active_admin/abstract_view_factory.rb +14 -51
  137. data/lib/active_admin/application.rb +65 -172
  138. data/lib/active_admin/application_settings.rb +43 -0
  139. data/lib/active_admin/asset_registration.rb +1 -8
  140. data/lib/active_admin/authorization_adapter.rb +4 -3
  141. data/lib/active_admin/base_controller/authorization.rb +18 -18
  142. data/lib/active_admin/base_controller/menu.rb +1 -0
  143. data/lib/active_admin/base_controller.rb +12 -11
  144. data/lib/active_admin/batch_actions/controller.rb +6 -5
  145. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  146. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  147. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  148. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  149. data/lib/active_admin/batch_actions.rb +1 -0
  150. data/lib/active_admin/callbacks.rb +2 -1
  151. data/lib/active_admin/cancan_adapter.rb +2 -1
  152. data/lib/active_admin/collection_decorator.rb +32 -0
  153. data/lib/active_admin/component.rb +1 -0
  154. data/lib/active_admin/controller_action.rb +3 -1
  155. data/lib/active_admin/csv_builder.rb +15 -23
  156. data/lib/active_admin/dependency.rb +14 -77
  157. data/lib/active_admin/deprecation.rb +1 -25
  158. data/lib/active_admin/devise.rb +16 -5
  159. data/lib/active_admin/dsl.rb +3 -9
  160. data/lib/active_admin/dynamic_setting.rb +39 -0
  161. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  162. data/lib/active_admin/engine.rb +16 -7
  163. data/lib/active_admin/error.rb +5 -4
  164. data/lib/active_admin/filters/active.rb +2 -1
  165. data/lib/active_admin/filters/active_filter.rb +12 -11
  166. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  167. data/lib/active_admin/filters/dsl.rb +1 -0
  168. data/lib/active_admin/filters/forms.rb +13 -9
  169. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  170. data/lib/active_admin/filters/resource_extension.rb +30 -5
  171. data/lib/active_admin/filters.rb +8 -7
  172. data/lib/active_admin/form_builder.rb +110 -70
  173. data/lib/active_admin/generators/boilerplate.rb +13 -4
  174. data/lib/active_admin/helpers/collection.rb +2 -0
  175. data/lib/active_admin/helpers/i18n.rb +1 -0
  176. data/lib/active_admin/helpers/optional_display.rb +3 -2
  177. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  178. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  179. data/lib/active_admin/inputs/datepicker_input.rb +10 -2
  180. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  181. data/lib/active_admin/inputs/filters/base.rb +2 -1
  182. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  183. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  184. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  185. data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
  186. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  187. data/lib/active_admin/inputs/filters/select_input.rb +3 -2
  188. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  189. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  190. data/lib/active_admin/inputs.rb +1 -0
  191. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  192. data/lib/active_admin/localizers.rb +2 -1
  193. data/lib/active_admin/menu.rb +9 -11
  194. data/lib/active_admin/menu_collection.rb +1 -0
  195. data/lib/active_admin/menu_item.rb +11 -38
  196. data/lib/active_admin/namespace.rb +33 -20
  197. data/lib/active_admin/namespace_settings.rb +127 -0
  198. data/lib/active_admin/order_clause.rb +3 -2
  199. data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
  200. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  201. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  202. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  203. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +30 -24
  204. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  205. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  206. data/lib/active_admin/orm/active_record.rb +2 -1
  207. data/lib/active_admin/orm/mongoid.rb +1 -0
  208. data/lib/active_admin/page.rb +2 -1
  209. data/lib/active_admin/page_controller.rb +1 -0
  210. data/lib/active_admin/page_dsl.rb +2 -1
  211. data/lib/active_admin/page_presenter.rb +3 -1
  212. data/lib/active_admin/pundit_adapter.rb +73 -16
  213. data/lib/active_admin/resource/action_items.rb +12 -6
  214. data/lib/active_admin/resource/attributes.rb +9 -5
  215. data/lib/active_admin/resource/belongs_to.rb +9 -3
  216. data/lib/active_admin/resource/controllers.rb +2 -1
  217. data/lib/active_admin/resource/includes.rb +1 -0
  218. data/lib/active_admin/resource/menu.rb +6 -5
  219. data/lib/active_admin/resource/model.rb +16 -0
  220. data/lib/active_admin/resource/naming.rb +6 -5
  221. data/lib/active_admin/resource/ordering.rb +1 -0
  222. data/lib/active_admin/resource/page_presenters.rb +1 -0
  223. data/lib/active_admin/resource/pagination.rb +1 -0
  224. data/lib/active_admin/resource/routes.rb +26 -14
  225. data/lib/active_admin/resource/scope_to.rb +8 -7
  226. data/lib/active_admin/resource/scopes.rb +4 -3
  227. data/lib/active_admin/resource/sidebars.rb +3 -2
  228. data/lib/active_admin/resource.rb +37 -22
  229. data/lib/active_admin/resource_collection.rb +3 -2
  230. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  231. data/lib/active_admin/resource_controller/data_access.rb +31 -5
  232. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  233. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  234. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  235. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  236. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  237. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  238. data/lib/active_admin/resource_controller.rb +14 -10
  239. data/lib/active_admin/resource_dsl.rb +16 -28
  240. data/lib/active_admin/router.rb +91 -84
  241. data/lib/active_admin/scope.rb +20 -11
  242. data/lib/active_admin/settings_node.rb +20 -0
  243. data/lib/active_admin/sidebar_section.rb +4 -1
  244. data/lib/active_admin/version.rb +2 -1
  245. data/lib/active_admin/view_factory.rb +18 -17
  246. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  247. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  248. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  249. data/lib/active_admin/view_helpers/display_helper.rb +25 -8
  250. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  251. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  252. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  253. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  254. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  255. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  256. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  257. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  258. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  259. data/lib/active_admin/view_helpers.rb +2 -1
  260. data/lib/active_admin/views/action_items.rb +1 -0
  261. data/lib/active_admin/views/components/active_admin_form.rb +14 -8
  262. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  263. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  264. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  265. data/lib/active_admin/views/components/columns.rb +1 -0
  266. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  267. data/lib/active_admin/views/components/index_list.rb +4 -3
  268. data/lib/active_admin/views/components/menu.rb +33 -0
  269. data/lib/active_admin/views/components/menu_item.rb +59 -0
  270. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  271. data/lib/active_admin/views/components/panel.rb +2 -1
  272. data/lib/active_admin/views/components/scopes.rb +18 -8
  273. data/lib/active_admin/views/components/sidebar.rb +14 -0
  274. data/lib/active_admin/views/components/sidebar_section.rb +1 -3
  275. data/lib/active_admin/views/components/site_title.rb +7 -7
  276. data/lib/active_admin/views/components/status_tag.rb +14 -26
  277. data/lib/active_admin/views/components/table_for.rb +22 -29
  278. data/lib/active_admin/views/components/tabs.rb +18 -5
  279. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  280. data/lib/active_admin/views/footer.rb +6 -8
  281. data/lib/active_admin/views/header.rb +4 -15
  282. data/lib/active_admin/views/index_as_block.rb +1 -0
  283. data/lib/active_admin/views/index_as_blog.rb +3 -2
  284. data/lib/active_admin/views/index_as_grid.rb +27 -26
  285. data/lib/active_admin/views/index_as_table.rb +34 -25
  286. data/lib/active_admin/views/pages/base.rb +44 -60
  287. data/lib/active_admin/views/pages/form.rb +1 -0
  288. data/lib/active_admin/views/pages/index.rb +16 -13
  289. data/lib/active_admin/views/pages/layout.rb +1 -0
  290. data/lib/active_admin/views/pages/page.rb +1 -0
  291. data/lib/active_admin/views/pages/show.rb +1 -0
  292. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  293. data/lib/active_admin/views/title_bar.rb +2 -1
  294. data/lib/active_admin/views.rb +2 -1
  295. data/lib/active_admin.rb +68 -63
  296. data/lib/activeadmin.rb +2 -1
  297. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  298. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  299. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  300. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  301. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  302. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  303. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  304. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  305. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  306. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  307. data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
  308. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  309. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  310. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  311. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  312. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  313. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  314. data/lib/ransack_ext.rb +10 -9
  315. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  316. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  317. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  318. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  319. metadata +126 -558
  320. data/.github/ISSUE_TEMPLATE.md +0 -20
  321. data/.gitignore +0 -49
  322. data/.mdlrc +0 -1
  323. data/.rubocop.yml +0 -76
  324. data/.simplecov +0 -13
  325. data/.travis.yml +0 -51
  326. data/.yardopts +0 -7
  327. data/Gemfile +0 -58
  328. data/Rakefile +0 -54
  329. data/activeadmin.gemspec +0 -32
  330. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  331. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  332. data/app/assets/images/active_admin/orderable.png +0 -0
  333. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  334. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  335. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  336. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  337. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  338. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  339. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  340. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  341. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  342. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  343. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  344. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  345. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  346. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  347. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  348. data/codecov.yml +0 -25
  349. data/config/i18n-tasks.yml +0 -26
  350. data/config/mdl_style.rb +0 -9
  351. data/cucumber.yml +0 -3
  352. data/features/action_item.feature +0 -73
  353. data/features/authorization.feature +0 -64
  354. data/features/authorization_cancan.feature +0 -52
  355. data/features/authorization_pundit.feature +0 -37
  356. data/features/belongs_to.feature +0 -124
  357. data/features/breadcrumb.feature +0 -75
  358. data/features/comments/commenting.feature +0 -178
  359. data/features/comments/viewing_index.feature +0 -19
  360. data/features/create_another.feature +0 -55
  361. data/features/dashboard.feature +0 -16
  362. data/features/decorators.feature +0 -43
  363. data/features/development_reloading.feature +0 -28
  364. data/features/edit_page.feature +0 -116
  365. data/features/favicon.feature +0 -20
  366. data/features/first_boot.feature +0 -16
  367. data/features/footer.feature +0 -28
  368. data/features/global_navigation.feature +0 -29
  369. data/features/i18n.feature +0 -55
  370. data/features/index/batch_actions.feature +0 -218
  371. data/features/index/filters.feature +0 -250
  372. data/features/index/format_as_csv.feature +0 -220
  373. data/features/index/formats.feature +0 -88
  374. data/features/index/index_as_block.feature +0 -15
  375. data/features/index/index_as_blog.feature +0 -69
  376. data/features/index/index_as_grid.feature +0 -45
  377. data/features/index/index_as_table.feature +0 -291
  378. data/features/index/index_blank_slate.feature +0 -83
  379. data/features/index/index_parameters.feature +0 -75
  380. data/features/index/index_scope_to.feature +0 -56
  381. data/features/index/index_scopes.feature +0 -285
  382. data/features/index/page_title.feature +0 -41
  383. data/features/index/pagination.feature +0 -63
  384. data/features/index/switch_index_view.feature +0 -73
  385. data/features/menu.feature +0 -72
  386. data/features/meta_tags.feature +0 -21
  387. data/features/new_page.feature +0 -136
  388. data/features/registering_assets.feature +0 -38
  389. data/features/registering_pages.feature +0 -237
  390. data/features/registering_resources.feature +0 -33
  391. data/features/renamed_resource.feature +0 -30
  392. data/features/root_to.feature +0 -17
  393. data/features/show/attributes_table_title.feature +0 -54
  394. data/features/show/columns.feature +0 -40
  395. data/features/show/default_content.feature +0 -44
  396. data/features/show/page_title.feature +0 -58
  397. data/features/show/tabs.feature +0 -33
  398. data/features/sidebar_sections.feature +0 -210
  399. data/features/site_title.feature +0 -47
  400. data/features/specifying_actions.feature +0 -118
  401. data/features/step_definitions/action_item_steps.rb +0 -7
  402. data/features/step_definitions/action_link_steps.rb +0 -19
  403. data/features/step_definitions/additional_web_steps.rb +0 -81
  404. data/features/step_definitions/asset_steps.rb +0 -15
  405. data/features/step_definitions/attribute_steps.rb +0 -18
  406. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  407. data/features/step_definitions/batch_action_steps.rb +0 -81
  408. data/features/step_definitions/blog_steps.rb +0 -3
  409. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  410. data/features/step_definitions/column_steps.rb +0 -8
  411. data/features/step_definitions/comment_steps.rb +0 -32
  412. data/features/step_definitions/configuration_steps.rb +0 -100
  413. data/features/step_definitions/dashboard_steps.rb +0 -15
  414. data/features/step_definitions/factory_steps.rb +0 -35
  415. data/features/step_definitions/filter_steps.rb +0 -47
  416. data/features/step_definitions/flash_steps.rb +0 -11
  417. data/features/step_definitions/footer_steps.rb +0 -11
  418. data/features/step_definitions/format_steps.rb +0 -56
  419. data/features/step_definitions/i18n_steps.rb +0 -11
  420. data/features/step_definitions/index_scope_steps.rb +0 -29
  421. data/features/step_definitions/index_views_steps.rb +0 -3
  422. data/features/step_definitions/layout_steps.rb +0 -3
  423. data/features/step_definitions/member_link_steps.rb +0 -7
  424. data/features/step_definitions/menu_steps.rb +0 -11
  425. data/features/step_definitions/meta_tag_steps.rb +0 -3
  426. data/features/step_definitions/pagination_steps.rb +0 -15
  427. data/features/step_definitions/sidebar_steps.rb +0 -11
  428. data/features/step_definitions/site_title_steps.rb +0 -17
  429. data/features/step_definitions/tab_steps.rb +0 -8
  430. data/features/step_definitions/table_steps.rb +0 -116
  431. data/features/step_definitions/user_steps.rb +0 -52
  432. data/features/step_definitions/web_steps.rb +0 -86
  433. data/features/sti_resource.feature +0 -65
  434. data/features/strong_parameters.feature +0 -69
  435. data/features/support/env.rb +0 -122
  436. data/features/support/paths.rb +0 -73
  437. data/features/support/regular_env.rb +0 -7
  438. data/features/support/reload_env.rb +0 -7
  439. data/features/support/selectors.rb +0 -45
  440. data/features/users/logging_in.feature +0 -36
  441. data/features/users/logging_out.feature +0 -13
  442. data/features/users/resetting_password.feature +0 -34
  443. data/gemfiles/rails_42.gemfile +0 -10
  444. data/gemfiles/rails_50.gemfile +0 -10
  445. data/gemfiles/rails_51.gemfile +0 -10
  446. data/gemfiles/rails_52.gemfile +0 -11
  447. data/lib/active_admin/event.rb +0 -24
  448. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  449. data/lib/active_admin/helpers/settings.rb +0 -114
  450. data/lib/active_admin/reloader.rb +0 -25
  451. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  452. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  453. data/spec/bug_report_templates_spec.rb +0 -26
  454. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  455. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  456. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  457. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  458. data/spec/javascripts/fixtures/flashes.html +0 -2
  459. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  460. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  461. data/spec/javascripts/support/jasmine.yml +0 -74
  462. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  463. data/spec/rails_helper.rb +0 -59
  464. data/spec/requests/default_namespace_spec.rb +0 -81
  465. data/spec/requests/memory_spec.rb +0 -25
  466. data/spec/requests/stylesheets_spec.rb +0 -18
  467. data/spec/spec_helper.rb +0 -1
  468. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  469. data/spec/support/active_admin_request_helpers.rb +0 -39
  470. data/spec/support/rails_template.rb +0 -153
  471. data/spec/support/rails_template_with_data.rb +0 -327
  472. data/spec/support/templates/admin/stores.rb +0 -7
  473. data/spec/support/templates/en.yml +0 -8
  474. data/spec/support/templates/manifest.js +0 -3
  475. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  476. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  477. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  478. data/spec/support/templates/policies/application_policy.rb +0 -44
  479. data/spec/support/templates/policies/category_policy.rb +0 -7
  480. data/spec/support/templates/policies/post_policy.rb +0 -15
  481. data/spec/support/templates/policies/store_policy.rb +0 -11
  482. data/spec/support/templates/policies/user_policy.rb +0 -11
  483. data/spec/support/templates/post_decorator.rb +0 -24
  484. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  485. data/spec/unit/action_builder_spec.rb +0 -158
  486. data/spec/unit/active_admin_spec.rb +0 -11
  487. data/spec/unit/application_spec.rb +0 -184
  488. data/spec/unit/asset_registration_spec.rb +0 -81
  489. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  490. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  491. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  492. data/spec/unit/auto_link_spec.rb +0 -93
  493. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  494. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  495. data/spec/unit/belongs_to_spec.rb +0 -76
  496. data/spec/unit/cancan_adapter_spec.rb +0 -43
  497. data/spec/unit/comments_spec.rb +0 -176
  498. data/spec/unit/component_spec.rb +0 -18
  499. data/spec/unit/config_shared_examples.rb +0 -59
  500. data/spec/unit/controller_filters_spec.rb +0 -41
  501. data/spec/unit/csv_builder_spec.rb +0 -313
  502. data/spec/unit/dependency_spec.rb +0 -135
  503. data/spec/unit/devise_spec.rb +0 -110
  504. data/spec/unit/dsl_spec.rb +0 -120
  505. data/spec/unit/filters/active_filter_spec.rb +0 -189
  506. data/spec/unit/filters/active_spec.rb +0 -24
  507. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  508. data/spec/unit/filters/resource_spec.rb +0 -128
  509. data/spec/unit/form_builder_spec.rb +0 -990
  510. data/spec/unit/generators/install_spec.rb +0 -31
  511. data/spec/unit/helpers/collection_spec.rb +0 -68
  512. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  513. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  514. data/spec/unit/helpers/settings_spec.rb +0 -30
  515. data/spec/unit/i18n_spec.rb +0 -29
  516. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  517. data/spec/unit/menu_collection_spec.rb +0 -62
  518. data/spec/unit/menu_item_spec.rb +0 -141
  519. data/spec/unit/menu_spec.rb +0 -71
  520. data/spec/unit/namespace/authorization_spec.rb +0 -27
  521. data/spec/unit/namespace/register_page_spec.rb +0 -99
  522. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  523. data/spec/unit/namespace_spec.rb +0 -124
  524. data/spec/unit/order_clause_spec.rb +0 -81
  525. data/spec/unit/page_controller_spec.rb +0 -5
  526. data/spec/unit/page_spec.rb +0 -128
  527. data/spec/unit/pretty_format_spec.rb +0 -82
  528. data/spec/unit/pundit_adapter_spec.rb +0 -98
  529. data/spec/unit/resource/action_items_spec.rb +0 -69
  530. data/spec/unit/resource/attributes_spec.rb +0 -49
  531. data/spec/unit/resource/includes_spec.rb +0 -21
  532. data/spec/unit/resource/menu_spec.rb +0 -18
  533. data/spec/unit/resource/naming_spec.rb +0 -122
  534. data/spec/unit/resource/ordering_spec.rb +0 -35
  535. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  536. data/spec/unit/resource/pagination_spec.rb +0 -38
  537. data/spec/unit/resource/routes_spec.rb +0 -125
  538. data/spec/unit/resource/scopes_spec.rb +0 -50
  539. data/spec/unit/resource/sidebars_spec.rb +0 -43
  540. data/spec/unit/resource_collection_spec.rb +0 -175
  541. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  542. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  543. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  544. data/spec/unit/resource_controller_spec.rb +0 -273
  545. data/spec/unit/resource_registration_spec.rb +0 -61
  546. data/spec/unit/resource_spec.rb +0 -320
  547. data/spec/unit/routing_spec.rb +0 -211
  548. data/spec/unit/scope_spec.rb +0 -209
  549. data/spec/unit/settings_spec.rb +0 -117
  550. data/spec/unit/view_factory_spec.rb +0 -19
  551. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  552. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  553. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  554. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  555. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  556. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  557. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  558. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  559. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  560. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  561. data/spec/unit/views/components/columns_spec.rb +0 -187
  562. data/spec/unit/views/components/index_list_spec.rb +0 -49
  563. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  564. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  565. data/spec/unit/views/components/panel_spec.rb +0 -58
  566. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  567. data/spec/unit/views/components/site_title_spec.rb +0 -76
  568. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  569. data/spec/unit/views/components/table_for_spec.rb +0 -436
  570. data/spec/unit/views/components/tabs_spec.rb +0 -67
  571. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  572. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  573. data/spec/unit/views/pages/form_spec.rb +0 -54
  574. data/spec/unit/views/pages/index_spec.rb +0 -60
  575. data/spec/unit/views/pages/layout_spec.rb +0 -59
  576. data/spec/unit/views/pages/show_spec.rb +0 -32
  577. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  578. data/tasks/docs.rake +0 -64
  579. data/tasks/lint.rake +0 -21
  580. data/tasks/local.rake +0 -25
  581. data/tasks/parallel_tests.rake +0 -66
  582. data/tasks/test.rake +0 -29
@@ -1,15 +1,20 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
- class AbstractViewFactory
3
- @@default_views = {}
3
+ class AbstractViewFactory < SettingsNode
4
4
 
5
5
  def self.register(view_hash)
6
6
  view_hash.each do |view_key, view_class|
7
- @@default_views[view_key] = view_class
7
+ super view_key, view_class
8
+ add_writer(view_key)
9
+ send "#{view_key}=", view_class
8
10
  end
9
11
  end
10
12
 
11
- def initialize
12
- @views = {}
13
+ def self.add_writer(name)
14
+ define_singleton_method("#{name}=") do |value|
15
+ value.builder_method name
16
+ instance_variable_set :"@#{name}", value
17
+ end
13
18
  end
14
19
 
15
20
  # Register a new view key with the view factory
@@ -25,61 +30,19 @@ module ActiveAdmin
25
30
  # another_view: OtherViewClass
26
31
  #
27
32
  def register(view_hash)
28
- view_hash.each do |view_key, view_class|
29
- @views[view_key] = view_class
30
- end
33
+ self.class.register view_hash
31
34
  end
32
35
 
33
36
  def default_for(key)
34
- @@default_views[key.to_sym]
35
- end
36
-
37
- def has_key?(key)
38
- @views.has_key?(key.to_sym) || @@default_views.has_key?(key.to_sym)
37
+ self.class.send key
39
38
  end
40
39
 
41
40
  def [](key)
42
- get_view_for_key(key)
41
+ send key
43
42
  end
44
43
 
45
44
  def []=(key, value)
46
- set_view_for_key(key, value)
47
- end
48
-
49
- def respond_to_missing?(method, include_private)
50
- key = key_from_method_name(method)
51
- if has_key?(key)
52
- true
53
- else
54
- super
55
- end
56
- end
57
-
58
- private
59
-
60
- def method_missing(method, *args)
61
- key = key_from_method_name(method)
62
- if has_key?(key)
63
- if method.to_s.include?('=')
64
- set_view_for_key key, args.first
65
- else
66
- get_view_for_key key
67
- end
68
- else
69
- super
70
- end
71
- end
72
-
73
- def key_from_method_name(method)
74
- method.to_s.tr('=', '').to_sym
75
- end
76
-
77
- def get_view_for_key(key)
78
- @views[key.to_sym] || @@default_views[key.to_sym]
79
- end
80
-
81
- def set_view_for_key(key, view)
82
- @views[key.to_sym] = view
45
+ send "#{key}=", value
83
46
  end
84
47
  end
85
48
  end
@@ -1,163 +1,53 @@
1
- require 'active_admin/router'
2
- require 'active_admin/reloader'
3
- require 'active_admin/helpers/settings'
1
+ # frozen_string_literal: true
2
+ require "active_admin/router"
3
+ require "active_admin/application_settings"
4
+ require "active_admin/namespace_settings"
4
5
 
5
6
  module ActiveAdmin
6
7
  class Application
7
- include Settings
8
- include Settings::Inheritance
9
8
 
10
- settings_inherited_by Namespace
11
-
12
- # The default namespace to put controllers and routes inside. Set this
13
- # in config/initializers/active_admin.rb using:
14
- #
15
- # config.default_namespace = :super_admin
16
- #
17
- setting :default_namespace, :admin
9
+ class << self
10
+ def setting(name, default)
11
+ ApplicationSettings.register name, default
12
+ end
18
13
 
19
- attr_reader :namespaces
20
- def initialize
21
- @namespaces = Namespace::Store.new
14
+ def inheritable_setting(name, default)
15
+ NamespaceSettings.register name, default
16
+ end
22
17
  end
23
18
 
24
- # Load paths for admin configurations. Add folders to this load path
25
- # to load up other resources for administration. External gems can
26
- # include their paths in this load path to provide active_admin UIs
27
- setting :load_paths, [File.expand_path('app/admin', Rails.root)]
28
-
29
- # The default number of resources to display on index pages
30
- inheritable_setting :default_per_page, 30
31
-
32
- # The max number of resources to display on index pages and batch exports
33
- inheritable_setting :max_per_page, 10_000
34
-
35
- # The title which gets displayed in the main layout
36
- inheritable_setting :site_title, ""
37
-
38
- # Set the site title link href (defaults to AA dashboard)
39
- inheritable_setting :site_title_link, ""
40
-
41
- # Set the site title image displayed in the main layout (has precendence over :site_title)
42
- inheritable_setting :site_title_image, ""
43
-
44
- # Set the site footer text (defaults to Powered by ActiveAdmin text with version)
45
- inheritable_setting :footer, ""
46
-
47
- # Set a favicon
48
- inheritable_setting :favicon, false
49
-
50
- # Additional meta tags to place in head of logged in pages.
51
- inheritable_setting :meta_tags, {}
52
-
53
- # Additional meta tags to place in head of logged out pages.
54
- inheritable_setting :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
55
-
56
- # The view factory to use to generate all the view classes. Take
57
- # a look at ActiveAdmin::ViewFactory
58
- inheritable_setting :view_factory, ActiveAdmin::ViewFactory.new
59
-
60
- # The method to call in controllers to get the current user
61
- inheritable_setting :current_user_method, false
62
-
63
- # The method to call in the controllers to ensure that there
64
- # is a currently authenticated admin user
65
- inheritable_setting :authentication_method, false
66
-
67
- # The path to log user's out with. If set to a symbol, we assume
68
- # that it's a method to call which returns the path
69
- inheritable_setting :logout_link_path, :destroy_admin_user_session_path
70
-
71
- # The method to use when generating the link for user logout
72
- inheritable_setting :logout_link_method, :get
73
-
74
- # Whether the batch actions are enabled or not
75
- inheritable_setting :batch_actions, false
76
-
77
- # Whether filters are enabled
78
- inheritable_setting :filters, true
79
-
80
- # The namespace root.
81
- inheritable_setting :root_to, 'dashboard#index'
82
-
83
- # Options that a passed to root_to.
84
- inheritable_setting :root_to_options, {}
85
-
86
- # Options passed to the routes, i.e. { path: '/custom' }
87
- inheritable_setting :route_options, {}
88
-
89
- # Display breadcrumbs
90
- inheritable_setting :breadcrumb, true
91
-
92
- # Display create another checkbox on a new page
93
- # @return [Boolean] (true)
94
- inheritable_setting :create_another, false
95
-
96
- # Default CSV options
97
- inheritable_setting :csv_options, { col_sep: ',', byte_order_mark: "\xEF\xBB\xBF" }
98
-
99
- # Default Download Links options
100
- inheritable_setting :download_links, true
101
-
102
- # The authorization adapter to use
103
- inheritable_setting :authorization_adapter, ActiveAdmin::AuthorizationAdapter
104
-
105
- # A proc to be used when a user is not authorized to view the current resource
106
- inheritable_setting :on_unauthorized_access, :rescue_active_admin_access_denied
107
-
108
- # A regex to detect unsupported browser, set to false to disable
109
- inheritable_setting :unsupported_browser_matcher, /MSIE [1-8]\.0/
110
-
111
- # Whether to display 'Current Filters' on search screen
112
- inheritable_setting :current_filters, true
113
-
114
- # class to handle ordering
115
- inheritable_setting :order_clause, ActiveAdmin::OrderClause
116
-
117
- # default show_count for scopes
118
- inheritable_setting :scopes_show_count, true
119
-
120
- # Request parameters that are permitted by default
121
- inheritable_setting :permitted_params, [
122
- :utf8, :_method, :authenticity_token, :commit, :id
123
- ]
124
-
125
- # Set flash message keys that shouldn't show in ActiveAdmin
126
- inheritable_setting :flash_keys_to_except, ['timedout']
127
-
128
- # Set default localize format for Date/Time values
129
- setting :localize_format, :long
130
-
131
- # Include association filters by default
132
- inheritable_setting :include_default_association_filters, true
19
+ def settings
20
+ @settings ||= SettingsNode.build(ApplicationSettings)
21
+ end
133
22
 
134
- # Active Admin makes educated guesses when displaying objects, this is
135
- # the list of methods it tries calling in order
136
- # Note that Formtastic also has 'collection_label_methods' similar to this
137
- # used by auto generated dropdowns in filter or belongs_to field of Active Admin
138
- setting :display_name_methods, [ :display_name,
139
- :full_name,
140
- :name,
141
- :username,
142
- :login,
143
- :title,
144
- :email,
145
- :to_s ]
23
+ def namespace_settings
24
+ @namespace_settings ||= SettingsNode.build(NamespaceSettings)
25
+ end
146
26
 
147
- # To make debugging easier, by default don't stream in development
148
- setting :disable_streaming_in, ['development']
27
+ def respond_to_missing?(method, include_private = false)
28
+ [settings, namespace_settings].any? { |sets| sets.respond_to?(method) } || super
29
+ end
149
30
 
150
- # == Deprecated Settings
31
+ def method_missing(method, *args)
32
+ if settings.respond_to?(method)
33
+ settings.send(method, *args)
34
+ elsif namespace_settings.respond_to?(method)
35
+ namespace_settings.send(method, *args)
36
+ else
37
+ super
38
+ end
39
+ end
151
40
 
152
- def allow_comments=(*)
153
- raise "`config.allow_comments` is no longer provided in ActiveAdmin 1.x. Use `config.comments` instead."
41
+ attr_reader :namespaces
42
+ def initialize
43
+ @namespaces = Namespace::Store.new
154
44
  end
155
45
 
156
46
  include AssetRegistration
157
47
 
158
48
  # Event that gets triggered on load of Active Admin
159
- BeforeLoadEvent = 'active_admin.application.before_load'.freeze
160
- AfterLoadEvent = 'active_admin.application.after_load'.freeze
49
+ BeforeLoadEvent = "active_admin.application.before_load".freeze
50
+ AfterLoadEvent = "active_admin.application.after_load".freeze
161
51
 
162
52
  # Runs before the app's AA initializer
163
53
  def setup!
@@ -172,7 +62,7 @@ module ActiveAdmin
172
62
 
173
63
  # Registers a brand new configuration for the given resource.
174
64
  def register(resource, options = {}, &block)
175
- ns = options.fetch(:namespace){ default_namespace }
65
+ ns = options.fetch(:namespace) { default_namespace }
176
66
  namespace(ns).register resource, options, &block
177
67
  end
178
68
 
@@ -184,9 +74,9 @@ module ActiveAdmin
184
74
  def namespace(name)
185
75
  name ||= :root
186
76
 
187
- namespace = namespaces[name] ||= begin
77
+ namespace = namespaces[name.to_sym] ||= begin
188
78
  namespace = Namespace.new(self, name)
189
- ActiveSupport::Notifications.publish ActiveAdmin::Namespace::RegisterEvent, namespace
79
+ ActiveSupport::Notifications.instrument ActiveAdmin::Namespace::RegisterEvent, { active_admin_namespace: namespace }
190
80
  namespace
191
81
  end
192
82
 
@@ -202,7 +92,7 @@ module ActiveAdmin
202
92
  # @&block The registration block.
203
93
  #
204
94
  def register_page(name, options = {}, &block)
205
- ns = options.fetch(:namespace){ default_namespace }
95
+ ns = options.fetch(:namespace) { default_namespace }
206
96
  namespace(ns).register_page name, options, &block
207
97
  end
208
98
 
@@ -222,42 +112,46 @@ module ActiveAdmin
222
112
  # To reload everything simply call `ActiveAdmin.unload!`
223
113
  def load!
224
114
  unless loaded?
225
- ActiveSupport::Notifications.publish BeforeLoadEvent, self # before_load hook
226
- files.each{ |file| load file } # load files
227
- namespace(default_namespace) # init AA resources
228
- ActiveSupport::Notifications.publish AfterLoadEvent, self # after_load hook
115
+ ActiveSupport::Notifications.instrument BeforeLoadEvent, { active_admin_application: self } # before_load hook
116
+ files.each { |file| load file } # load files
117
+ namespace(default_namespace) # init AA resources
118
+ ActiveSupport::Notifications.instrument AfterLoadEvent, { active_admin_application: self } # after_load hook
229
119
  @@loaded = true
230
120
  end
231
121
  end
232
122
 
233
123
  def load(file)
234
- DatabaseHitDuringLoad.capture{ super }
124
+ DatabaseHitDuringLoad.capture { super }
235
125
  end
236
126
 
237
127
  # Returns ALL the files to be loaded
238
128
  def files
239
- load_paths.flatten.compact.uniq.flat_map{ |path| Dir["#{path}/**/*.rb"] }
240
- end
241
-
242
- def router
243
- @router ||= Router.new(self)
129
+ load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"].sort }
244
130
  end
245
131
 
246
- # One-liner called by user's config/routes.rb file
132
+ # Creates all the necessary routes for the ActiveAdmin configurations
133
+ #
134
+ # Use this within the routes.rb file:
135
+ #
136
+ # Application.routes.draw do |map|
137
+ # ActiveAdmin.routes(self)
138
+ # end
139
+ #
140
+ # @param rails_router [ActionDispatch::Routing::Mapper]
247
141
  def routes(rails_router)
248
142
  load!
249
- router.apply(rails_router)
143
+ Router.new(router: rails_router, namespaces: namespaces).apply
250
144
  end
251
145
 
252
146
  # Adds before, around and after filters to all controllers.
253
147
  # Example usage:
254
- # ActiveAdmin.before_filter :authenticate_admin!
148
+ # ActiveAdmin.before_action :authenticate_admin!
255
149
  #
256
150
  AbstractController::Callbacks::ClassMethods.public_instance_methods.
257
- select { |m| m.match(/(filter|action)/) }.each do |name|
151
+ select { |m| m.match(/_action\z/) }.each do |name|
258
152
  define_method name do |*args, &block|
259
- controllers_for_filters.each do |controller|
260
- controller.public_send name, *args, &block
153
+ ActiveSupport.on_load(:active_admin_controller) do
154
+ public_send name, *args, &block
261
155
  end
262
156
  end
263
157
  end
@@ -268,12 +162,11 @@ module ActiveAdmin
268
162
  controllers
269
163
  end
270
164
 
271
- private
165
+ private
272
166
 
273
167
  def register_default_assets
274
- stylesheets['active_admin.css'] = { media: 'screen' }
275
- stylesheets['active_admin/print.css'] = { media: 'print' }
276
- javascripts.add 'active_admin.js'
168
+ register_stylesheet "active_admin.css", media: "all"
169
+ register_javascript "active_admin.js"
277
170
  end
278
171
 
279
172
  # Since app/admin is alphabetically before app/models, we have to remove it
@@ -283,7 +176,7 @@ module ActiveAdmin
283
176
  # files from being loaded twice in production.
284
177
  def remove_active_admin_load_paths_from_rails_autoload_and_eager_load
285
178
  ActiveSupport::Dependencies.autoload_paths -= load_paths
286
- Rails.application.config.eager_load_paths -= load_paths
179
+ Rails.application.config.eager_load_paths -= load_paths
287
180
  end
288
181
 
289
182
  # Hook into the Rails code reloading mechanism so that things are reloaded
@@ -300,11 +193,11 @@ module ActiveAdmin
300
193
  # Rails is about to unload all the app files (e.g. models), so we
301
194
  # should first unload the classes generated by Active Admin, otherwise
302
195
  # they will contain references to the stale (unloaded) classes.
303
- Reloader.to_prepare(prepend: true, &unload_active_admin)
196
+ ActiveSupport::Reloader.to_prepare(prepend: true, &unload_active_admin)
304
197
  else
305
198
  # If the user has configured the app to always reload app files after
306
199
  # each request, so we should unload the generated classes too.
307
- Reloader.to_complete(&unload_active_admin)
200
+ ActiveSupport::Reloader.to_complete(&unload_active_admin)
308
201
  end
309
202
 
310
203
  admin_dirs = {}
@@ -319,7 +212,7 @@ module ActiveAdmin
319
212
 
320
213
  app.reloaders << routes_reloader
321
214
 
322
- Reloader.to_prepare do
215
+ ActiveSupport::Reloader.to_prepare do
323
216
  # Rails might have reloaded the routes for other reasons (e.g.
324
217
  # routes.rb has changed), in which case Active Admin would have been
325
218
  # loaded via the `ActiveAdmin.routes` call in `routes.rb`.
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/settings_node"
3
+
4
+ module ActiveAdmin
5
+ class ApplicationSettings < SettingsNode
6
+
7
+ # The default namespace to put controllers and routes inside. Set this
8
+ # in config/initializers/active_admin.rb using:
9
+ #
10
+ # config.default_namespace = :super_admin
11
+ #
12
+ register :default_namespace, :admin
13
+
14
+ register :app_path, Rails.root
15
+
16
+ # Load paths for admin configurations. Add folders to this load path
17
+ # to load up other resources for administration. External gems can
18
+ # include their paths in this load path to provide active_admin UIs
19
+ register :load_paths, [File.expand_path("app/admin", Rails.root)]
20
+
21
+ # Set default localize format for Date/Time values
22
+ register :localize_format, :long
23
+
24
+ # Active Admin makes educated guesses when displaying objects, this is
25
+ # the list of methods it tries calling in order
26
+ # Note that Formtastic also has 'collection_label_methods' similar to this
27
+ # used by auto generated dropdowns in filter or belongs_to field of Active Admin
28
+ register :display_name_methods, [ :display_name,
29
+ :full_name,
30
+ :name,
31
+ :username,
32
+ :login,
33
+ :title,
34
+ :email,
35
+ :to_s ]
36
+
37
+ # To make debugging easier, by default don't stream in development
38
+ register :disable_streaming_in, ["development"]
39
+
40
+ # Remove sensitive attributes from being displayed, made editable, or exported by default
41
+ register :filter_attributes, [:encrypted_password, :password, :password_confirmation]
42
+ end
43
+ end
@@ -1,11 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module AssetRegistration
3
4
 
4
5
  def register_stylesheet(path, options = {})
5
- Deprecation.warn <<-MSG.strip_heredoc
6
- The `register_stylesheet` config is deprecated and will be removed
7
- in v2. Import your "#{path}" stylesheet in the active_admin.scss.
8
- MSG
9
6
  stylesheets[path] = options
10
7
  end
11
8
 
@@ -18,10 +15,6 @@ module ActiveAdmin
18
15
  end
19
16
 
20
17
  def register_javascript(name)
21
- Deprecation.warn <<-MSG.strip_heredoc
22
- The `register_javascript` config is deprecated and will be removed
23
- in v2. Import your "#{name}" javascript in the active_admin.js.
24
- MSG
25
18
  javascripts.add name
26
19
  end
27
20
 
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  # Default Authorization permissions for Active Admin
4
5
  module Authorization
5
- READ = :read
6
- CREATE = :create
7
- UPDATE = :update
6
+ READ = :read
7
+ CREATE = :create
8
+ UPDATE = :update
8
9
  DESTROY = :destroy
9
10
  end
10
11
 
@@ -1,16 +1,16 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class BaseController < ::InheritedResources::Base
3
4
  module Authorization
4
- include MethodOrProcHelper
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  ACTIONS_DICTIONARY = {
8
- index: ActiveAdmin::Authorization::READ,
9
- show: ActiveAdmin::Authorization::READ,
10
- new: ActiveAdmin::Authorization::CREATE,
11
- create: ActiveAdmin::Authorization::CREATE,
12
- edit: ActiveAdmin::Authorization::UPDATE,
13
- update: ActiveAdmin::Authorization::UPDATE,
8
+ index: ActiveAdmin::Authorization::READ,
9
+ show: ActiveAdmin::Authorization::READ,
10
+ new: ActiveAdmin::Authorization::CREATE,
11
+ create: ActiveAdmin::Authorization::CREATE,
12
+ edit: ActiveAdmin::Authorization::UPDATE,
13
+ update: ActiveAdmin::Authorization::UPDATE,
14
14
  destroy: ActiveAdmin::Authorization::DESTROY
15
15
  }
16
16
 
@@ -19,6 +19,7 @@ module ActiveAdmin
19
19
 
20
20
  helper_method :authorized?
21
21
  helper_method :authorize!
22
+ helper_method :active_admin_authorization
22
23
  end
23
24
 
24
25
  protected
@@ -52,9 +53,10 @@ module ActiveAdmin
52
53
  # an ActiveAdmin::AccessDenied.
53
54
  def authorize!(action, subject = nil)
54
55
  unless authorized? action, subject
55
- raise ActiveAdmin::AccessDenied.new(current_active_admin_user,
56
- action,
57
- subject)
56
+ raise ActiveAdmin::AccessDenied.new(
57
+ current_active_admin_user,
58
+ action,
59
+ subject)
58
60
  end
59
61
  end
60
62
 
@@ -80,7 +82,7 @@ module ActiveAdmin
80
82
  def active_admin_authorization_adapter
81
83
  adapter = active_admin_namespace.authorization_adapter
82
84
  if adapter.is_a? String
83
- ActiveSupport::Dependencies.constantize adapter
85
+ adapter.constantize
84
86
  else
85
87
  adapter
86
88
  end
@@ -100,7 +102,7 @@ module ActiveAdmin
100
102
  end
101
103
 
102
104
  def dispatch_active_admin_access_denied(exception)
103
- call_method_or_exec_proc active_admin_namespace.on_unauthorized_access, exception
105
+ instance_exec(self, exception, &active_admin_namespace.on_unauthorized_access.to_proc)
104
106
  end
105
107
 
106
108
  def rescue_active_admin_access_denied(exception)
@@ -112,16 +114,14 @@ module ActiveAdmin
112
114
  redirect_backwards_or_to_root
113
115
  end
114
116
 
115
- body = ActiveAdmin::Dependency.rails.render_key
116
-
117
- format.csv { render body => error, status: :unauthorized }
118
- format.json { render json: { error: error }, status: :unauthorized }
119
- format.xml { render xml: "<error>#{error}</error>", status: :unauthorized }
117
+ format.csv { render body: error, status: :unauthorized }
118
+ format.json { render json: { error: error }, status: :unauthorized }
119
+ format.xml { render xml: "<error>#{error}</error>", status: :unauthorized }
120
120
  end
121
121
  end
122
122
 
123
123
  def redirect_backwards_or_to_root
124
- ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
124
+ redirect_back fallback_location: active_admin_root
125
125
  end
126
126
 
127
127
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class BaseController < ::InheritedResources::Base
3
4
  module Menu
@@ -1,12 +1,12 @@
1
- require 'active_admin/base_controller/authorization'
2
- require 'active_admin/base_controller/menu'
1
+ # frozen_string_literal: true
2
+ require "active_admin/base_controller/authorization"
3
+ require "active_admin/base_controller/menu"
3
4
 
4
5
  module ActiveAdmin
5
6
  # BaseController for ActiveAdmin.
6
7
  # It implements ActiveAdmin controllers core features.
7
8
  class BaseController < ::InheritedResources::Base
8
9
  helper ::ActiveAdmin::ViewHelpers
9
- helper_method :env
10
10
 
11
11
  layout :determine_active_admin_layout
12
12
 
@@ -22,6 +22,11 @@ module ActiveAdmin
22
22
  attr_accessor :active_admin_config
23
23
  end
24
24
 
25
+ include Authorization
26
+ include Menu
27
+
28
+ private
29
+
25
30
  # By default Rails will render un-implemented actions when the view exists. Because Active
26
31
  # Admin allows you to not render any of the actions by using the #actions method, we need
27
32
  # to check if they are implemented.
@@ -29,11 +34,6 @@ module ActiveAdmin
29
34
  raise AbstractController::ActionNotFound unless action_methods.include?(params[:action])
30
35
  end
31
36
 
32
- include Authorization
33
- include Menu
34
-
35
- private
36
-
37
37
  # Calls the authentication method as defined in ActiveAdmin.authentication_method
38
38
  def authenticate_active_admin_user
39
39
  send(active_admin_namespace.authentication_method) if active_admin_namespace.authentication_method
@@ -69,13 +69,14 @@ module ActiveAdmin
69
69
  # 2. If we're rendering a custom action, we'll use the active_admin layout so
70
70
  # that users can render any template inside Active Admin.
71
71
  def determine_active_admin_layout
72
- ACTIVE_ADMIN_ACTIONS.include?(params[:action].to_sym) ? false : 'active_admin'
72
+ ACTIVE_ADMIN_ACTIONS.include?(params[:action].to_sym) ? false : "active_admin"
73
73
  end
74
74
 
75
75
  def active_admin_root
76
- controller, action = active_admin_namespace.root_to.split '#'
77
- {controller: controller, action: action}
76
+ controller, action = active_admin_namespace.root_to.split "#"
77
+ { controller: controller, action: action }
78
78
  end
79
79
 
80
+ ActiveSupport.run_load_hooks(:active_admin_controller, self)
80
81
  end
81
82
  end