activeadmin 1.1.0 → 2.5.0

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 (486) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +492 -108
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +117 -49
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +509 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +29 -29
  8. data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
  9. data/app/assets/stylesheets/active_admin/_header.scss +3 -5
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  12. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  13. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  14. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  15. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  16. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  17. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +5 -0
  18. data/app/assets/stylesheets/active_admin/print.scss +2 -2
  19. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  20. data/app/javascript/active_admin/base.js +19 -0
  21. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  22. data/app/javascript/active_admin/ext/jquery.js +9 -0
  23. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  24. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  25. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  26. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  27. data/app/javascript/active_admin/initializers/filters.js +10 -0
  28. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  29. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  30. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  31. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  32. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  33. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  34. data/app/javascript/active_admin/lib/filters.js +39 -0
  35. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  36. data/app/javascript/active_admin/lib/per-page.js +38 -0
  37. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  38. data/app/javascript/active_admin/lib/utils.js +40 -0
  39. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  40. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  41. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  42. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  43. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  44. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  45. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  46. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  47. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  48. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  49. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  50. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  51. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  52. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  53. data/config/locales/ar.yml +3 -2
  54. data/config/locales/az.yml +138 -0
  55. data/config/locales/bg.yml +1 -1
  56. data/config/locales/bs.yml +1 -0
  57. data/config/locales/ca.yml +1 -1
  58. data/config/locales/cs.yml +1 -0
  59. data/config/locales/da.yml +1 -0
  60. data/config/locales/de-CH.yml +1 -0
  61. data/config/locales/de.yml +29 -0
  62. data/config/locales/el.yml +1 -0
  63. data/config/locales/en-CA.yml +1 -0
  64. data/config/locales/en-GB.yml +1 -0
  65. data/config/locales/en.yml +21 -1
  66. data/config/locales/eo.yml +145 -0
  67. data/config/locales/es-MX.yml +1 -0
  68. data/config/locales/es.yml +21 -1
  69. data/config/locales/fa.yml +1 -0
  70. data/config/locales/fi.yml +2 -1
  71. data/config/locales/fr.yml +2 -1
  72. data/config/locales/he.yml +1 -1
  73. data/config/locales/hr.yml +1 -0
  74. data/config/locales/hu.yml +5 -0
  75. data/config/locales/id.yml +1 -0
  76. data/config/locales/it.yml +13 -3
  77. data/config/locales/ja.yml +6 -0
  78. data/config/locales/ko.yml +1 -0
  79. data/config/locales/lt.yml +3 -2
  80. data/config/locales/lv.yml +1 -0
  81. data/config/locales/mk.yml +134 -0
  82. data/config/locales/nb.yml +16 -5
  83. data/config/locales/nl.yml +12 -0
  84. data/config/locales/pl.yml +72 -3
  85. data/config/locales/pt-BR.yml +9 -0
  86. data/config/locales/pt-PT.yml +1 -0
  87. data/config/locales/ro.yml +1 -0
  88. data/config/locales/ru.yml +3 -0
  89. data/config/locales/sk.yml +60 -0
  90. data/config/locales/sv-SE.yml +3 -0
  91. data/config/locales/tr.yml +10 -0
  92. data/config/locales/uk.yml +3 -0
  93. data/config/locales/vi.yml +48 -6
  94. data/config/locales/zh-CN.yml +34 -5
  95. data/config/locales/zh-TW.yml +1 -0
  96. data/docs/.gitignore +1 -0
  97. data/docs/0-installation.md +2 -2
  98. data/docs/1-general-configuration.md +36 -1
  99. data/docs/10-custom-pages.md +14 -0
  100. data/docs/12-arbre-components.md +41 -1
  101. data/docs/13-authorization-adapter.md +41 -22
  102. data/docs/2-resource-customization.md +10 -5
  103. data/docs/3-index-pages/custom-index.md +1 -1
  104. data/docs/3-index-pages/index-as-blog.md +1 -1
  105. data/docs/3-index-pages/index-as-table.md +12 -5
  106. data/docs/3-index-pages.md +17 -0
  107. data/docs/5-forms.md +16 -2
  108. data/docs/8-custom-actions.md +11 -0
  109. data/docs/CNAME +1 -1
  110. data/docs/Gemfile +2 -1
  111. data/docs/Gemfile.lock +249 -0
  112. data/docs/_config.yml +3 -1
  113. data/docs/_includes/toc.html +1 -1
  114. data/docs/_includes/top-menu.html +9 -1
  115. data/docs/documentation.md +1 -1
  116. data/docs/images/tidelift.svg +14 -0
  117. data/docs/index.html +109 -8
  118. data/docs/stylesheets/main.css +55 -2
  119. data/lib/active_admin/abstract_view_factory.rb +13 -51
  120. data/lib/active_admin/application.rb +53 -160
  121. data/lib/active_admin/application_settings.rb +42 -0
  122. data/lib/active_admin/asset_registration.rb +0 -8
  123. data/lib/active_admin/base_controller/authorization.rb +4 -6
  124. data/lib/active_admin/base_controller.rb +6 -6
  125. data/lib/active_admin/batch_actions/controller.rb +2 -2
  126. data/lib/active_admin/batch_actions/resource_extension.rb +9 -5
  127. data/lib/active_admin/callbacks.rb +1 -1
  128. data/lib/active_admin/controller_action.rb +2 -1
  129. data/lib/active_admin/csv_builder.rb +10 -7
  130. data/lib/active_admin/dependency.rb +3 -67
  131. data/lib/active_admin/deprecation.rb +0 -25
  132. data/lib/active_admin/dsl.rb +1 -8
  133. data/lib/active_admin/dynamic_setting.rb +38 -0
  134. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  135. data/lib/active_admin/engine.rb +5 -0
  136. data/lib/active_admin/error.rb +4 -2
  137. data/lib/active_admin/filters/active_filter.rb +49 -12
  138. data/lib/active_admin/filters/active_sidebar.rb +6 -2
  139. data/lib/active_admin/filters/forms.rb +7 -4
  140. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  141. data/lib/active_admin/filters/resource_extension.rb +28 -4
  142. data/lib/active_admin/form_builder.rb +98 -63
  143. data/lib/active_admin/generators/boilerplate.rb +12 -4
  144. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  145. data/lib/active_admin/inputs/datepicker_input.rb +8 -1
  146. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  147. data/lib/active_admin/inputs/filters/date_range_input.rb +4 -4
  148. data/lib/active_admin/inputs/filters/select_input.rb +5 -1
  149. data/lib/active_admin/menu.rb +2 -8
  150. data/lib/active_admin/menu_item.rb +4 -32
  151. data/lib/active_admin/namespace.rb +20 -8
  152. data/lib/active_admin/namespace_settings.rb +123 -0
  153. data/lib/active_admin/order_clause.rb +2 -2
  154. data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
  155. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +17 -7
  156. data/lib/active_admin/orm/active_record/comments.rb +15 -4
  157. data/lib/active_admin/page_dsl.rb +1 -1
  158. data/lib/active_admin/page_presenter.rb +2 -1
  159. data/lib/active_admin/pundit_adapter.rb +18 -5
  160. data/lib/active_admin/resource/action_items.rb +7 -2
  161. data/lib/active_admin/resource/attributes.rb +7 -4
  162. data/lib/active_admin/resource/belongs_to.rb +6 -1
  163. data/lib/active_admin/resource/menu.rb +3 -3
  164. data/lib/active_admin/resource/model.rb +15 -0
  165. data/lib/active_admin/resource/naming.rb +3 -3
  166. data/lib/active_admin/resource/routes.rb +20 -7
  167. data/lib/active_admin/resource/scopes.rb +3 -3
  168. data/lib/active_admin/resource/sidebars.rb +1 -1
  169. data/lib/active_admin/resource.rb +18 -4
  170. data/lib/active_admin/resource_collection.rb +2 -2
  171. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  172. data/lib/active_admin/resource_controller/data_access.rb +5 -1
  173. data/lib/active_admin/resource_controller/decorators.rb +5 -5
  174. data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
  175. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  176. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  177. data/lib/active_admin/resource_controller.rb +2 -0
  178. data/lib/active_admin/resource_dsl.rb +7 -3
  179. data/lib/active_admin/router.rb +90 -84
  180. data/lib/active_admin/scope.rb +16 -8
  181. data/lib/active_admin/settings_node.rb +19 -0
  182. data/lib/active_admin/sidebar_section.rb +3 -1
  183. data/lib/active_admin/version.rb +1 -1
  184. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
  185. data/lib/active_admin/view_helpers/display_helper.rb +13 -4
  186. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  187. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  188. data/lib/active_admin/view_helpers.rb +1 -1
  189. data/lib/active_admin/views/components/active_admin_form.rb +9 -4
  190. data/lib/active_admin/views/components/attributes_table.rb +3 -3
  191. data/lib/active_admin/views/components/menu.rb +32 -0
  192. data/lib/active_admin/views/components/menu_item.rb +58 -0
  193. data/lib/active_admin/views/components/paginated_collection.rb +4 -3
  194. data/lib/active_admin/views/components/scopes.rb +11 -4
  195. data/lib/active_admin/views/components/sidebar.rb +13 -0
  196. data/lib/active_admin/views/components/site_title.rb +5 -6
  197. data/lib/active_admin/views/components/status_tag.rb +6 -19
  198. data/lib/active_admin/views/components/table_for.rb +4 -12
  199. data/lib/active_admin/views/components/tabs.rb +15 -3
  200. data/lib/active_admin/views/footer.rb +3 -7
  201. data/lib/active_admin/views/header.rb +3 -15
  202. data/lib/active_admin/views/index_as_blog.rb +1 -1
  203. data/lib/active_admin/views/index_as_grid.rb +25 -25
  204. data/lib/active_admin/views/index_as_table.rb +18 -10
  205. data/lib/active_admin/views/pages/base.rb +31 -54
  206. data/lib/active_admin/views/pages/index.rb +1 -0
  207. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  208. data/lib/active_admin/views.rb +1 -1
  209. data/lib/active_admin.rb +9 -4
  210. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  211. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  212. data/lib/generators/active_admin/install/install_generator.rb +7 -3
  213. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +38 -3
  214. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  215. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  216. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  217. data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
  218. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  219. data/lib/ransack_ext.rb +3 -3
  220. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  221. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  222. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  223. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  224. metadata +115 -527
  225. data/.github/ISSUE_TEMPLATE.md +0 -20
  226. data/.gitignore +0 -49
  227. data/.mdlrc +0 -1
  228. data/.rubocop.yml +0 -76
  229. data/.simplecov +0 -13
  230. data/.travis.yml +0 -51
  231. data/.yardopts +0 -7
  232. data/Gemfile +0 -58
  233. data/Rakefile +0 -54
  234. data/activeadmin.gemspec +0 -32
  235. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  236. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  237. data/app/assets/images/active_admin/orderable.png +0 -0
  238. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  239. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  240. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  241. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  242. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  243. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  244. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  245. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  246. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  247. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  248. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  249. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  250. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  251. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  252. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  253. data/codecov.yml +0 -25
  254. data/config/i18n-tasks.yml +0 -26
  255. data/config/mdl_style.rb +0 -9
  256. data/cucumber.yml +0 -3
  257. data/features/action_item.feature +0 -73
  258. data/features/authorization.feature +0 -64
  259. data/features/authorization_cancan.feature +0 -52
  260. data/features/authorization_pundit.feature +0 -37
  261. data/features/belongs_to.feature +0 -124
  262. data/features/breadcrumb.feature +0 -75
  263. data/features/comments/commenting.feature +0 -178
  264. data/features/comments/viewing_index.feature +0 -19
  265. data/features/create_another.feature +0 -55
  266. data/features/dashboard.feature +0 -16
  267. data/features/decorators.feature +0 -43
  268. data/features/development_reloading.feature +0 -28
  269. data/features/edit_page.feature +0 -116
  270. data/features/favicon.feature +0 -20
  271. data/features/first_boot.feature +0 -16
  272. data/features/footer.feature +0 -28
  273. data/features/global_navigation.feature +0 -29
  274. data/features/i18n.feature +0 -55
  275. data/features/index/batch_actions.feature +0 -218
  276. data/features/index/filters.feature +0 -239
  277. data/features/index/format_as_csv.feature +0 -220
  278. data/features/index/formats.feature +0 -88
  279. data/features/index/index_as_block.feature +0 -15
  280. data/features/index/index_as_blog.feature +0 -69
  281. data/features/index/index_as_grid.feature +0 -45
  282. data/features/index/index_as_table.feature +0 -291
  283. data/features/index/index_blank_slate.feature +0 -83
  284. data/features/index/index_parameters.feature +0 -75
  285. data/features/index/index_scope_to.feature +0 -56
  286. data/features/index/index_scopes.feature +0 -285
  287. data/features/index/page_title.feature +0 -41
  288. data/features/index/pagination.feature +0 -63
  289. data/features/index/switch_index_view.feature +0 -73
  290. data/features/menu.feature +0 -72
  291. data/features/meta_tags.feature +0 -21
  292. data/features/new_page.feature +0 -107
  293. data/features/registering_assets.feature +0 -38
  294. data/features/registering_pages.feature +0 -237
  295. data/features/registering_resources.feature +0 -33
  296. data/features/renamed_resource.feature +0 -30
  297. data/features/root_to.feature +0 -17
  298. data/features/show/attributes_table_title.feature +0 -54
  299. data/features/show/columns.feature +0 -40
  300. data/features/show/default_content.feature +0 -44
  301. data/features/show/page_title.feature +0 -58
  302. data/features/show/tabs.feature +0 -33
  303. data/features/sidebar_sections.feature +0 -210
  304. data/features/site_title.feature +0 -47
  305. data/features/specifying_actions.feature +0 -118
  306. data/features/step_definitions/action_item_steps.rb +0 -7
  307. data/features/step_definitions/action_link_steps.rb +0 -19
  308. data/features/step_definitions/additional_web_steps.rb +0 -81
  309. data/features/step_definitions/asset_steps.rb +0 -15
  310. data/features/step_definitions/attribute_steps.rb +0 -18
  311. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  312. data/features/step_definitions/batch_action_steps.rb +0 -81
  313. data/features/step_definitions/blog_steps.rb +0 -3
  314. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  315. data/features/step_definitions/column_steps.rb +0 -8
  316. data/features/step_definitions/comment_steps.rb +0 -32
  317. data/features/step_definitions/configuration_steps.rb +0 -100
  318. data/features/step_definitions/dashboard_steps.rb +0 -15
  319. data/features/step_definitions/factory_steps.rb +0 -35
  320. data/features/step_definitions/filter_steps.rb +0 -48
  321. data/features/step_definitions/flash_steps.rb +0 -11
  322. data/features/step_definitions/footer_steps.rb +0 -11
  323. data/features/step_definitions/format_steps.rb +0 -56
  324. data/features/step_definitions/i18n_steps.rb +0 -11
  325. data/features/step_definitions/index_scope_steps.rb +0 -29
  326. data/features/step_definitions/index_views_steps.rb +0 -3
  327. data/features/step_definitions/layout_steps.rb +0 -3
  328. data/features/step_definitions/member_link_steps.rb +0 -7
  329. data/features/step_definitions/menu_steps.rb +0 -11
  330. data/features/step_definitions/meta_tag_steps.rb +0 -3
  331. data/features/step_definitions/pagination_steps.rb +0 -15
  332. data/features/step_definitions/sidebar_steps.rb +0 -11
  333. data/features/step_definitions/site_title_steps.rb +0 -17
  334. data/features/step_definitions/tab_steps.rb +0 -8
  335. data/features/step_definitions/table_steps.rb +0 -116
  336. data/features/step_definitions/user_steps.rb +0 -52
  337. data/features/step_definitions/web_steps.rb +0 -86
  338. data/features/sti_resource.feature +0 -65
  339. data/features/strong_parameters.feature +0 -69
  340. data/features/support/env.rb +0 -122
  341. data/features/support/paths.rb +0 -73
  342. data/features/support/regular_env.rb +0 -7
  343. data/features/support/reload_env.rb +0 -7
  344. data/features/support/selectors.rb +0 -45
  345. data/features/users/logging_in.feature +0 -36
  346. data/features/users/logging_out.feature +0 -13
  347. data/features/users/resetting_password.feature +0 -34
  348. data/gemfiles/rails_42.gemfile +0 -10
  349. data/gemfiles/rails_50.gemfile +0 -10
  350. data/gemfiles/rails_51.gemfile +0 -10
  351. data/lib/active_admin/event.rb +0 -24
  352. data/lib/active_admin/helpers/settings.rb +0 -114
  353. data/lib/active_admin/reloader.rb +0 -25
  354. data/lib/bug_report_templates/active_admin_master.rb +0 -113
  355. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  356. data/spec/bug_report_templates_spec.rb +0 -26
  357. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  358. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  359. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  360. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  361. data/spec/javascripts/fixtures/flashes.html +0 -2
  362. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  363. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  364. data/spec/javascripts/support/jasmine.yml +0 -74
  365. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  366. data/spec/rails_helper.rb +0 -59
  367. data/spec/requests/default_namespace_spec.rb +0 -81
  368. data/spec/requests/memory_spec.rb +0 -25
  369. data/spec/requests/stylesheets_spec.rb +0 -18
  370. data/spec/spec_helper.rb +0 -1
  371. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  372. data/spec/support/active_admin_request_helpers.rb +0 -39
  373. data/spec/support/rails_template.rb +0 -150
  374. data/spec/support/rails_template_with_data.rb +0 -327
  375. data/spec/support/templates/admin/stores.rb +0 -7
  376. data/spec/support/templates/en.yml +0 -8
  377. data/spec/support/templates/manifest.js +0 -3
  378. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  379. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  380. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  381. data/spec/support/templates/policies/application_policy.rb +0 -44
  382. data/spec/support/templates/policies/category_policy.rb +0 -7
  383. data/spec/support/templates/policies/post_policy.rb +0 -15
  384. data/spec/support/templates/policies/store_policy.rb +0 -11
  385. data/spec/support/templates/policies/user_policy.rb +0 -11
  386. data/spec/support/templates/post_decorator.rb +0 -10
  387. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  388. data/spec/unit/action_builder_spec.rb +0 -125
  389. data/spec/unit/active_admin_spec.rb +0 -11
  390. data/spec/unit/application_spec.rb +0 -184
  391. data/spec/unit/asset_registration_spec.rb +0 -81
  392. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  393. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  394. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  395. data/spec/unit/auto_link_spec.rb +0 -93
  396. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  397. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  398. data/spec/unit/belongs_to_spec.rb +0 -76
  399. data/spec/unit/cancan_adapter_spec.rb +0 -43
  400. data/spec/unit/comments_spec.rb +0 -176
  401. data/spec/unit/component_spec.rb +0 -18
  402. data/spec/unit/config_shared_examples.rb +0 -59
  403. data/spec/unit/controller_filters_spec.rb +0 -41
  404. data/spec/unit/csv_builder_spec.rb +0 -304
  405. data/spec/unit/dependency_spec.rb +0 -135
  406. data/spec/unit/devise_spec.rb +0 -110
  407. data/spec/unit/dsl_spec.rb +0 -120
  408. data/spec/unit/filters/active_filter_spec.rb +0 -135
  409. data/spec/unit/filters/active_spec.rb +0 -24
  410. data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
  411. data/spec/unit/filters/resource_spec.rb +0 -128
  412. data/spec/unit/form_builder_spec.rb +0 -990
  413. data/spec/unit/generators/install_spec.rb +0 -31
  414. data/spec/unit/helpers/collection_spec.rb +0 -68
  415. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  416. data/spec/unit/helpers/settings_spec.rb +0 -30
  417. data/spec/unit/i18n_spec.rb +0 -29
  418. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  419. data/spec/unit/menu_collection_spec.rb +0 -62
  420. data/spec/unit/menu_item_spec.rb +0 -141
  421. data/spec/unit/menu_spec.rb +0 -71
  422. data/spec/unit/namespace/authorization_spec.rb +0 -27
  423. data/spec/unit/namespace/register_page_spec.rb +0 -99
  424. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  425. data/spec/unit/namespace_spec.rb +0 -124
  426. data/spec/unit/order_clause_spec.rb +0 -81
  427. data/spec/unit/page_controller_spec.rb +0 -5
  428. data/spec/unit/page_spec.rb +0 -128
  429. data/spec/unit/pretty_format_spec.rb +0 -82
  430. data/spec/unit/pundit_adapter_spec.rb +0 -98
  431. data/spec/unit/resource/action_items_spec.rb +0 -69
  432. data/spec/unit/resource/attributes_spec.rb +0 -49
  433. data/spec/unit/resource/includes_spec.rb +0 -21
  434. data/spec/unit/resource/menu_spec.rb +0 -18
  435. data/spec/unit/resource/naming_spec.rb +0 -122
  436. data/spec/unit/resource/ordering_spec.rb +0 -35
  437. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  438. data/spec/unit/resource/pagination_spec.rb +0 -38
  439. data/spec/unit/resource/routes_spec.rb +0 -125
  440. data/spec/unit/resource/scopes_spec.rb +0 -50
  441. data/spec/unit/resource/sidebars_spec.rb +0 -43
  442. data/spec/unit/resource_collection_spec.rb +0 -175
  443. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  444. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  445. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  446. data/spec/unit/resource_controller_spec.rb +0 -273
  447. data/spec/unit/resource_registration_spec.rb +0 -61
  448. data/spec/unit/resource_spec.rb +0 -320
  449. data/spec/unit/routing_spec.rb +0 -211
  450. data/spec/unit/scope_spec.rb +0 -209
  451. data/spec/unit/settings_spec.rb +0 -117
  452. data/spec/unit/view_factory_spec.rb +0 -19
  453. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  454. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  455. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  456. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  457. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  458. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  459. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  460. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  461. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  462. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  463. data/spec/unit/views/components/columns_spec.rb +0 -187
  464. data/spec/unit/views/components/index_list_spec.rb +0 -49
  465. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  466. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  467. data/spec/unit/views/components/panel_spec.rb +0 -58
  468. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  469. data/spec/unit/views/components/site_title_spec.rb +0 -76
  470. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  471. data/spec/unit/views/components/table_for_spec.rb +0 -436
  472. data/spec/unit/views/components/tabs_spec.rb +0 -67
  473. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  474. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  475. data/spec/unit/views/pages/form_spec.rb +0 -54
  476. data/spec/unit/views/pages/index_spec.rb +0 -60
  477. data/spec/unit/views/pages/layout_spec.rb +0 -59
  478. data/spec/unit/views/pages/show_spec.rb +0 -32
  479. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  480. data/tasks/docs.rake +0 -64
  481. data/tasks/lint.rake +0 -21
  482. data/tasks/local.rake +0 -25
  483. data/tasks/parallel_tests.rake +0 -66
  484. data/tasks/test.rake +0 -29
  485. /data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
  486. /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
@@ -1,156 +1,45 @@
1
1
  require 'active_admin/router'
2
- require 'active_admin/reloader'
3
- require 'active_admin/helpers/settings'
2
+ require 'active_admin/application_settings'
3
+ require 'active_admin/namespace_settings'
4
4
 
5
5
  module ActiveAdmin
6
6
  class Application
7
- include Settings
8
- include Settings::Inheritance
9
7
 
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
8
+ class << self
9
+ def setting(name, default)
10
+ ApplicationSettings.register name, default
11
+ end
18
12
 
19
- attr_reader :namespaces
20
- def initialize
21
- @namespaces = Namespace::Store.new
13
+ def inheritable_setting(name, default)
14
+ NamespaceSettings.register name, default
15
+ end
22
16
  end
23
17
 
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
18
+ def settings
19
+ @settings ||= SettingsNode.build(ApplicationSettings)
20
+ end
133
21
 
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 ]
22
+ def namespace_settings
23
+ @namespace_settings ||= SettingsNode.build(NamespaceSettings)
24
+ end
146
25
 
147
- # To make debugging easier, by default don't stream in development
148
- setting :disable_streaming_in, ['development']
26
+ def respond_to_missing?(method, include_private = false)
27
+ [settings, namespace_settings].any? { |sets| sets.respond_to?(method) } || super
28
+ end
149
29
 
150
- # == Deprecated Settings
30
+ def method_missing(method, *args)
31
+ if settings.respond_to?(method)
32
+ settings.send(method, *args)
33
+ elsif namespace_settings.respond_to?(method)
34
+ namespace_settings.send(method, *args)
35
+ else
36
+ super
37
+ end
38
+ end
151
39
 
152
- def allow_comments=(*)
153
- raise "`config.allow_comments` is no longer provided in ActiveAdmin 1.x. Use `config.comments` instead."
40
+ attr_reader :namespaces
41
+ def initialize
42
+ @namespaces = Namespace::Store.new
154
43
  end
155
44
 
156
45
  include AssetRegistration
@@ -172,7 +61,7 @@ module ActiveAdmin
172
61
 
173
62
  # Registers a brand new configuration for the given resource.
174
63
  def register(resource, options = {}, &block)
175
- ns = options.fetch(:namespace){ default_namespace }
64
+ ns = options.fetch(:namespace) { default_namespace }
176
65
  namespace(ns).register resource, options, &block
177
66
  end
178
67
 
@@ -184,7 +73,7 @@ module ActiveAdmin
184
73
  def namespace(name)
185
74
  name ||= :root
186
75
 
187
- namespace = namespaces[name] ||= begin
76
+ namespace = namespaces[name.to_sym] ||= begin
188
77
  namespace = Namespace.new(self, name)
189
78
  ActiveSupport::Notifications.publish ActiveAdmin::Namespace::RegisterEvent, namespace
190
79
  namespace
@@ -202,7 +91,7 @@ module ActiveAdmin
202
91
  # @&block The registration block.
203
92
  #
204
93
  def register_page(name, options = {}, &block)
205
- ns = options.fetch(:namespace){ default_namespace }
94
+ ns = options.fetch(:namespace) { default_namespace }
206
95
  namespace(ns).register_page name, options, &block
207
96
  end
208
97
 
@@ -223,7 +112,7 @@ module ActiveAdmin
223
112
  def load!
224
113
  unless loaded?
225
114
  ActiveSupport::Notifications.publish BeforeLoadEvent, self # before_load hook
226
- files.each{ |file| load file } # load files
115
+ files.each { |file| load file } # load files
227
116
  namespace(default_namespace) # init AA resources
228
117
  ActiveSupport::Notifications.publish AfterLoadEvent, self # after_load hook
229
118
  @@loaded = true
@@ -231,22 +120,26 @@ module ActiveAdmin
231
120
  end
232
121
 
233
122
  def load(file)
234
- DatabaseHitDuringLoad.capture{ super }
123
+ DatabaseHitDuringLoad.capture { super }
235
124
  end
236
125
 
237
126
  # Returns ALL the files to be loaded
238
127
  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)
128
+ load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"] }
244
129
  end
245
130
 
246
- # One-liner called by user's config/routes.rb file
131
+ # Creates all the necessary routes for the ActiveAdmin configurations
132
+ #
133
+ # Use this within the routes.rb file:
134
+ #
135
+ # Application.routes.draw do |map|
136
+ # ActiveAdmin.routes(self)
137
+ # end
138
+ #
139
+ # @param rails_router [ActionDispatch::Routing::Mapper]
247
140
  def routes(rails_router)
248
141
  load!
249
- router.apply(rails_router)
142
+ Router.new(router: rails_router, namespaces: namespaces).apply
250
143
  end
251
144
 
252
145
  # Adds before, around and after filters to all controllers.
@@ -268,12 +161,12 @@ module ActiveAdmin
268
161
  controllers
269
162
  end
270
163
 
271
- private
164
+ private
272
165
 
273
166
  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'
167
+ register_stylesheet 'active_admin.css', media: 'screen'
168
+ register_stylesheet 'active_admin/print.css', media: 'print'
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
@@ -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,42 @@
1
+ require 'active_admin/settings_node'
2
+
3
+ module ActiveAdmin
4
+ class ApplicationSettings < SettingsNode
5
+
6
+ # The default namespace to put controllers and routes inside. Set this
7
+ # in config/initializers/active_admin.rb using:
8
+ #
9
+ # config.default_namespace = :super_admin
10
+ #
11
+ register :default_namespace, :admin
12
+
13
+ register :app_path, Rails.root
14
+
15
+ # Load paths for admin configurations. Add folders to this load path
16
+ # to load up other resources for administration. External gems can
17
+ # include their paths in this load path to provide active_admin UIs
18
+ register :load_paths, [File.expand_path('app/admin', Rails.root)]
19
+
20
+ # Set default localize format for Date/Time values
21
+ register :localize_format, :long
22
+
23
+ # Active Admin makes educated guesses when displaying objects, this is
24
+ # the list of methods it tries calling in order
25
+ # Note that Formtastic also has 'collection_label_methods' similar to this
26
+ # used by auto generated dropdowns in filter or belongs_to field of Active Admin
27
+ register :display_name_methods, [ :display_name,
28
+ :full_name,
29
+ :name,
30
+ :username,
31
+ :login,
32
+ :title,
33
+ :email,
34
+ :to_s ]
35
+
36
+ # To make debugging easier, by default don't stream in development
37
+ register :disable_streaming_in, ['development']
38
+
39
+ # Remove sensitive attributes from being displayed, made editable, or exported by default
40
+ register :filter_attributes, [:encrypted_password, :password, :password_confirmation]
41
+ end
42
+ end
@@ -2,10 +2,6 @@ module ActiveAdmin
2
2
  module AssetRegistration
3
3
 
4
4
  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
5
  stylesheets[path] = options
10
6
  end
11
7
 
@@ -18,10 +14,6 @@ module ActiveAdmin
18
14
  end
19
15
 
20
16
  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
17
  javascripts.add name
26
18
  end
27
19
 
@@ -1,7 +1,6 @@
1
1
  module ActiveAdmin
2
2
  class BaseController < ::InheritedResources::Base
3
3
  module Authorization
4
- include MethodOrProcHelper
5
4
  extend ActiveSupport::Concern
6
5
 
7
6
  ACTIONS_DICTIONARY = {
@@ -19,6 +18,7 @@ module ActiveAdmin
19
18
 
20
19
  helper_method :authorized?
21
20
  helper_method :authorize!
21
+ helper_method :active_admin_authorization
22
22
  end
23
23
 
24
24
  protected
@@ -100,7 +100,7 @@ module ActiveAdmin
100
100
  end
101
101
 
102
102
  def dispatch_active_admin_access_denied(exception)
103
- call_method_or_exec_proc active_admin_namespace.on_unauthorized_access, exception
103
+ instance_exec(self, exception, &active_admin_namespace.on_unauthorized_access.to_proc)
104
104
  end
105
105
 
106
106
  def rescue_active_admin_access_denied(exception)
@@ -112,16 +112,14 @@ module ActiveAdmin
112
112
  redirect_backwards_or_to_root
113
113
  end
114
114
 
115
- body = ActiveAdmin::Dependency.rails.render_key
116
-
117
- format.csv { render body => error, status: :unauthorized }
115
+ format.csv { render body: error, status: :unauthorized }
118
116
  format.json { render json: { error: error }, status: :unauthorized }
119
117
  format.xml { render xml: "<error>#{error}</error>", status: :unauthorized }
120
118
  end
121
119
  end
122
120
 
123
121
  def redirect_backwards_or_to_root
124
- ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
122
+ redirect_back fallback_location: active_admin_root
125
123
  end
126
124
 
127
125
  end
@@ -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
@@ -74,7 +74,7 @@ module ActiveAdmin
74
74
 
75
75
  def active_admin_root
76
76
  controller, action = active_admin_namespace.root_to.split '#'
77
- {controller: controller, action: action}
77
+ { controller: controller, action: action }
78
78
  end
79
79
 
80
80
  end
@@ -7,7 +7,7 @@ module ActiveAdmin
7
7
  if action_present?
8
8
  selection = params[:collection_selection] || []
9
9
  inputs = JSON.parse params[:batch_action_inputs] || '{}'
10
- valid_keys = render_in_context(self, current_batch_action.inputs).try(:keys)
10
+ valid_keys = MethodOrProcHelper.render_in_context(self, current_batch_action.inputs).try(:keys)
11
11
  inputs = inputs.with_indifferent_access.slice *valid_keys
12
12
  instance_exec selection, inputs, &current_batch_action.block
13
13
  else
@@ -22,7 +22,7 @@ module ActiveAdmin
22
22
  end
23
23
 
24
24
  def current_batch_action
25
- active_admin_config.batch_actions.detect{ |action| action.sym.to_s == params[:batch_action] }
25
+ active_admin_config.batch_actions.detect { |action| action.sym.to_s == params[:batch_action] }
26
26
  end
27
27
 
28
28
  COLLECTION_APPLIES = [
@@ -57,8 +57,8 @@ module ActiveAdmin
57
57
  def add_default_batch_action
58
58
  destroy_options = {
59
59
  priority: 100,
60
- confirm: proc{ I18n.t('active_admin.batch_actions.delete_confirmation', plural_model: active_admin_config.plural_resource_label.downcase) },
61
- if: proc{ controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, active_admin_config.resource_class) }
60
+ confirm: proc { I18n.t('active_admin.batch_actions.delete_confirmation', plural_model: active_admin_config.plural_resource_label.downcase) },
61
+ if: proc { controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, active_admin_config.resource_class) }
62
62
  }
63
63
 
64
64
  add_batch_action :destroy, proc { I18n.t('active_admin.delete') }, destroy_options do |selected_ids|
@@ -84,7 +84,7 @@ module ActiveAdmin
84
84
 
85
85
  attr_reader :block, :title, :sym
86
86
 
87
- DEFAULT_CONFIRM_MESSAGE = proc{ I18n.t 'active_admin.batch_actions.default_confirmation' }
87
+ DEFAULT_CONFIRM_MESSAGE = proc { I18n.t 'active_admin.batch_actions.default_confirmation' }
88
88
 
89
89
  # Create a Batch Action
90
90
  #
@@ -112,7 +112,11 @@ module ActiveAdmin
112
112
  # => You can pass a hash of options to `:form` that will be rendered as form input fields for the user to fill out.
113
113
  #
114
114
  def initialize(sym, title, options = {}, &block)
115
- @sym, @title, @options, @block, @confirm = sym, title, options, block, options[:confirm]
115
+ @sym = sym
116
+ @title = title
117
+ @options = options
118
+ @block = block
119
+ @confirm = options[:confirm]
116
120
  @block ||= proc {}
117
121
  end
118
122
 
@@ -133,7 +137,7 @@ module ActiveAdmin
133
137
  # Returns the display if block. If the block was not explicitly defined
134
138
  # a default block always returning true will be returned.
135
139
  def display_if_block
136
- @options[:if] || proc{ true }
140
+ @options[:if] || proc { true }
137
141
  end
138
142
 
139
143
  # Used for sorting
@@ -75,7 +75,7 @@ module ActiveAdmin
75
75
 
76
76
  # def run_create_callbacks
77
77
  define_method "run_#{name}_callbacks" do |*args, &block|
78
- self.class.send("before_#{name}_callbacks").each{ |cbk| run_callback(cbk, *args) }
78
+ self.class.send("before_#{name}_callbacks").each { |cbk| run_callback(cbk, *args) }
79
79
  value = block.try :call
80
80
  self.class.send("after_#{name}_callbacks").each { |cbk| run_callback(cbk, *args) }
81
81
  return value
@@ -2,7 +2,8 @@ module ActiveAdmin
2
2
  class ControllerAction
3
3
  attr_reader :name
4
4
  def initialize(name, options = {})
5
- @name, @options = name, options
5
+ @name = name
6
+ @options = options
6
7
  end
7
8
 
8
9
  def http_verb
@@ -32,7 +32,9 @@ module ActiveAdmin
32
32
 
33
33
  def initialize(options = {}, &block)
34
34
  @resource = options.delete(:resource)
35
- @columns, @options, @block = [], options, block
35
+ @columns = []
36
+ @options = ActiveAdmin.application.csv_options.merge options
37
+ @block = block
36
38
  end
37
39
 
38
40
  def column(name, options = {}, &block)
@@ -42,7 +44,6 @@ module ActiveAdmin
42
44
  def build(controller, csv)
43
45
  @collection = controller.send :find_collection, except: :pagination
44
46
  columns = exec_columns controller.view_context
45
- options = ActiveAdmin.application.csv_options.merge self.options
46
47
  bom = options.delete :byte_order_mark
47
48
  column_names = options.delete(:column_names) { true }
48
49
  csv_options = options.except :encoding_options, :humanize_name
@@ -50,13 +51,15 @@ module ActiveAdmin
50
51
  csv << bom if bom
51
52
 
52
53
  if column_names
53
- csv << CSV.generate_line(columns.map{ |c| encode c.name, options }, csv_options)
54
+ csv << CSV.generate_line(columns.map { |c| encode c.name, options }, csv_options)
54
55
  end
55
56
 
56
- (1..paginated_collection.total_pages).each do |page|
57
- paginated_collection(page).each do |resource|
58
- resource = controller.send :apply_decorator, resource
59
- csv << CSV.generate_line(build_row(resource, columns, options), csv_options)
57
+ ActiveRecord::Base.uncached do
58
+ (1..paginated_collection.total_pages).each do |page|
59
+ paginated_collection(page).each do |resource|
60
+ resource = controller.send :apply_decorator, resource
61
+ csv << CSV.generate_line(build_row(resource, columns, options), csv_options)
62
+ end
60
63
  end
61
64
  end
62
65
 
@@ -1,7 +1,7 @@
1
1
  module ActiveAdmin
2
2
  module Dependency
3
3
  module Requirements
4
- DEVISE = '>= 3.2', '< 5'
4
+ DEVISE = '>= 4.0', '< 5'
5
5
  end
6
6
 
7
7
  # Provides a clean interface to check for gem dependencies at runtime.
@@ -55,8 +55,8 @@ module ActiveAdmin
55
55
  Matcher.new name.to_s
56
56
  end
57
57
 
58
- def self.rails5?
59
- rails >= '5.x'
58
+ def self.supports_zeitwerk?
59
+ rails >= "6.0.0.beta3" && RUBY_ENGINE != "jruby"
60
60
  end
61
61
 
62
62
  class Matcher
@@ -94,70 +94,6 @@ module ActiveAdmin
94
94
  info = spec ? "#{spec.name} #{spec.version}" : '(missing)'
95
95
  "<ActiveAdmin::Dependency::Matcher for #{info}>"
96
96
  end
97
-
98
- def adapter
99
- @adapter ||= Adapter.const_get(@name.camelize).new self
100
- end
101
-
102
- def method_missing(method, *args, &block)
103
- if respond_to_missing?(method)
104
- adapter.send method, *args, &block
105
- else
106
- super
107
- end
108
- end
109
-
110
- def respond_to_missing?(method, include_private = false)
111
- adapter.respond_to?(method) || super
112
- rescue NameError
113
- # 🐾
114
- end
115
- end
116
-
117
- # Dependency adapters provide an easy way to wrap the conditional logic
118
- # necessary to support multiple versions of a gem.
119
- #
120
- # ActiveAdmin::Dependency.rails.adapter.parameterize 'a b'
121
- # => 'a_b'
122
- #
123
- # ActiveAdmin::Dependency.rails.parameterize 'a b'
124
- # => 'a_b'
125
- #
126
- # ActiveAdmin::Dependency.devise.adapter
127
- # -> NameError: uninitialized constant ActiveAdmin::Dependency::Adapter::Devise
128
- #
129
- module Adapter
130
- class Base
131
- def initialize(version)
132
- @version = version
133
- end
134
- end
135
-
136
- class Rails < Base
137
- def parameterize(string)
138
- if Dependency.rails5?
139
- string.parameterize separator: '_'
140
- else
141
- string.parameterize '_'
142
- end
143
- end
144
-
145
- def redirect_back(controller, fallback_location)
146
- controller.instance_exec do
147
- if Dependency.rails5?
148
- redirect_back fallback_location: fallback_location
149
- elsif controller.request.headers.key? 'HTTP_REFERER'
150
- redirect_to :back
151
- else
152
- redirect_to fallback_location
153
- end
154
- end
155
- end
156
-
157
- def render_key
158
- Dependency.rails5? ? :body : :text
159
- end
160
- end
161
97
  end
162
98
 
163
99
  end
@@ -6,30 +6,5 @@ module ActiveAdmin
6
6
  ActiveSupport::Deprecation.warn "Active Admin: #{message}", callstack
7
7
  end
8
8
 
9
- # Deprecate a method.
10
- #
11
- # @param [Module] klass the Class or Module to deprecate the method on
12
- # @param [Symbol] method the method to deprecate
13
- # @param [String] message the message to display to the end user
14
- #
15
- # Example:
16
- #
17
- # class MyClass
18
- # def my_method
19
- # # ...
20
- # end
21
- # ActiveAdmin::Deprecation.deprecate self, :my_method,
22
- # "MyClass#my_method is being removed in the next release"
23
- # end
24
- #
25
- def deprecate(klass, method, message)
26
- klass.send :define_method, "deprecated_#{method}", klass.instance_method(method)
27
-
28
- klass.send :define_method, method do |*args|
29
- ActiveAdmin::Deprecation.warn "#{message}", caller
30
- send "deprecated_#{method}", *args
31
- end
32
- end
33
-
34
9
  end
35
10
  end