activeadmin 1.1.0 → 2.14.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 (592) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +871 -111
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +84 -63
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +521 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +4 -26
  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/_footer.scss +6 -1
  24. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  25. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  26. data/app/javascript/active_admin/base.js +28 -0
  27. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  28. data/app/javascript/active_admin/ext/jquery.js +9 -0
  29. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  30. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  31. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  32. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  33. data/app/javascript/active_admin/initializers/filters.js +10 -0
  34. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  35. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  36. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  37. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  38. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  39. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  40. data/app/javascript/active_admin/lib/filters.js +39 -0
  41. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  42. data/app/javascript/active_admin/lib/per-page.js +38 -0
  43. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  44. data/app/javascript/active_admin/lib/utils.js +40 -0
  45. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  46. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  47. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  48. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  49. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  50. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  51. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  52. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  53. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  54. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  55. data/app/views/active_admin/page/index.html.arb +1 -0
  56. data/app/views/active_admin/resource/edit.html.arb +1 -0
  57. data/app/views/active_admin/resource/index.html.arb +1 -0
  58. data/app/views/active_admin/resource/new.html.arb +1 -0
  59. data/app/views/active_admin/resource/show.html.arb +1 -0
  60. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  61. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  62. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  63. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  64. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  65. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  66. data/app/views/layouts/active_admin.html.arb +1 -0
  67. data/app/views/layouts/active_admin_logged_out.html.erb +20 -9
  68. data/config/locales/ar.yml +9 -8
  69. data/config/locales/az.yml +138 -0
  70. data/config/locales/bg.yml +1 -1
  71. data/config/locales/bs.yml +1 -0
  72. data/config/locales/ca.yml +1 -1
  73. data/config/locales/cs.yml +1 -0
  74. data/config/locales/da.yml +1 -0
  75. data/config/locales/de-CH.yml +1 -0
  76. data/config/locales/de.yml +29 -0
  77. data/config/locales/el.yml +1 -0
  78. data/config/locales/en-CA.yml +4 -3
  79. data/config/locales/en-GB.yml +4 -3
  80. data/config/locales/en.yml +24 -4
  81. data/config/locales/eo.yml +145 -0
  82. data/config/locales/es-MX.yml +3 -1
  83. data/config/locales/es.yml +26 -6
  84. data/config/locales/fa.yml +1 -0
  85. data/config/locales/fi.yml +2 -1
  86. data/config/locales/fr.yml +9 -8
  87. data/config/locales/he.yml +1 -1
  88. data/config/locales/hr.yml +1 -0
  89. data/config/locales/hu.yml +5 -0
  90. data/config/locales/id.yml +1 -0
  91. data/config/locales/it.yml +31 -3
  92. data/config/locales/ja.yml +8 -2
  93. data/config/locales/ko.yml +2 -1
  94. data/config/locales/lt.yml +3 -2
  95. data/config/locales/lv.yml +3 -2
  96. data/config/locales/mk.yml +134 -0
  97. data/config/locales/nb.yml +16 -5
  98. data/config/locales/nl.yml +13 -1
  99. data/config/locales/pl.yml +72 -3
  100. data/config/locales/pt-BR.yml +9 -0
  101. data/config/locales/pt-PT.yml +1 -0
  102. data/config/locales/ro.yml +4 -2
  103. data/config/locales/ru.yml +3 -0
  104. data/config/locales/sk.yml +60 -0
  105. data/config/locales/sv-SE.yml +3 -0
  106. data/config/locales/tr.yml +10 -0
  107. data/config/locales/uk.yml +3 -0
  108. data/config/locales/vi.yml +82 -12
  109. data/config/locales/zh-CN.yml +68 -20
  110. data/config/locales/zh-TW.yml +1 -0
  111. data/lib/active_admin/abstract_view_factory.rb +14 -51
  112. data/lib/active_admin/application.rb +65 -172
  113. data/lib/active_admin/application_settings.rb +43 -0
  114. data/lib/active_admin/asset_registration.rb +4 -11
  115. data/lib/active_admin/authorization_adapter.rb +6 -3
  116. data/lib/active_admin/base_controller/authorization.rb +18 -18
  117. data/lib/active_admin/base_controller/menu.rb +1 -0
  118. data/lib/active_admin/base_controller.rb +12 -11
  119. data/lib/active_admin/batch_actions/controller.rb +6 -5
  120. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  121. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  122. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  123. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  124. data/lib/active_admin/batch_actions.rb +1 -0
  125. data/lib/active_admin/callbacks.rb +2 -1
  126. data/lib/active_admin/cancan_adapter.rb +2 -1
  127. data/lib/active_admin/collection_decorator.rb +32 -0
  128. data/lib/active_admin/component.rb +1 -0
  129. data/lib/active_admin/controller_action.rb +3 -1
  130. data/lib/active_admin/csv_builder.rb +15 -21
  131. data/lib/active_admin/dependency.rb +12 -79
  132. data/lib/active_admin/deprecation.rb +1 -25
  133. data/lib/active_admin/devise.rb +16 -5
  134. data/lib/active_admin/dsl.rb +3 -9
  135. data/lib/active_admin/dynamic_setting.rb +39 -0
  136. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  137. data/lib/active_admin/engine.rb +16 -7
  138. data/lib/active_admin/error.rb +5 -4
  139. data/lib/active_admin/filters/active.rb +2 -1
  140. data/lib/active_admin/filters/active_filter.rb +52 -15
  141. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  142. data/lib/active_admin/filters/dsl.rb +1 -0
  143. data/lib/active_admin/filters/forms.rb +13 -9
  144. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  145. data/lib/active_admin/filters/resource_extension.rb +34 -9
  146. data/lib/active_admin/filters.rb +8 -7
  147. data/lib/active_admin/form_builder.rb +110 -70
  148. data/lib/active_admin/generators/boilerplate.rb +13 -4
  149. data/lib/active_admin/helpers/collection.rb +2 -0
  150. data/lib/active_admin/helpers/i18n.rb +1 -0
  151. data/lib/active_admin/helpers/optional_display.rb +3 -2
  152. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  153. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  154. data/lib/active_admin/inputs/datepicker_input.rb +10 -2
  155. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  156. data/lib/active_admin/inputs/filters/base.rb +2 -1
  157. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  158. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  159. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  160. data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
  161. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  162. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  163. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  164. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  165. data/lib/active_admin/inputs.rb +1 -0
  166. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  167. data/lib/active_admin/localizers.rb +2 -1
  168. data/lib/active_admin/menu.rb +9 -11
  169. data/lib/active_admin/menu_collection.rb +1 -0
  170. data/lib/active_admin/menu_item.rb +11 -38
  171. data/lib/active_admin/namespace.rb +33 -20
  172. data/lib/active_admin/namespace_settings.rb +127 -0
  173. data/lib/active_admin/order_clause.rb +4 -3
  174. data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
  175. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  176. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  177. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  178. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +36 -25
  179. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  180. data/lib/active_admin/orm/active_record/comments.rb +41 -29
  181. data/lib/active_admin/orm/active_record.rb +2 -1
  182. data/lib/active_admin/orm/mongoid.rb +1 -0
  183. data/lib/active_admin/page.rb +2 -1
  184. data/lib/active_admin/page_controller.rb +1 -0
  185. data/lib/active_admin/page_dsl.rb +2 -1
  186. data/lib/active_admin/page_presenter.rb +3 -1
  187. data/lib/active_admin/pundit_adapter.rb +71 -16
  188. data/lib/active_admin/resource/action_items.rb +12 -6
  189. data/lib/active_admin/resource/attributes.rb +9 -5
  190. data/lib/active_admin/resource/belongs_to.rb +9 -3
  191. data/lib/active_admin/resource/controllers.rb +2 -1
  192. data/lib/active_admin/resource/includes.rb +1 -0
  193. data/lib/active_admin/resource/menu.rb +6 -5
  194. data/lib/active_admin/resource/model.rb +16 -0
  195. data/lib/active_admin/resource/naming.rb +6 -5
  196. data/lib/active_admin/resource/ordering.rb +1 -0
  197. data/lib/active_admin/resource/page_presenters.rb +1 -0
  198. data/lib/active_admin/resource/pagination.rb +1 -0
  199. data/lib/active_admin/resource/routes.rb +26 -14
  200. data/lib/active_admin/resource/scope_to.rb +8 -7
  201. data/lib/active_admin/resource/scopes.rb +4 -3
  202. data/lib/active_admin/resource/sidebars.rb +3 -2
  203. data/lib/active_admin/resource.rb +37 -22
  204. data/lib/active_admin/resource_collection.rb +3 -2
  205. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  206. data/lib/active_admin/resource_controller/data_access.rb +35 -5
  207. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  208. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  209. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  210. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  211. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  212. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  213. data/lib/active_admin/resource_controller.rb +14 -10
  214. data/lib/active_admin/resource_dsl.rb +17 -27
  215. data/lib/active_admin/router.rb +91 -84
  216. data/lib/active_admin/scope.rb +20 -11
  217. data/lib/active_admin/settings_node.rb +20 -0
  218. data/lib/active_admin/sidebar_section.rb +4 -1
  219. data/lib/active_admin/version.rb +2 -1
  220. data/lib/active_admin/view_factory.rb +18 -17
  221. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  222. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  223. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  224. data/lib/active_admin/view_helpers/display_helper.rb +25 -8
  225. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  226. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  227. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  228. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  229. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  230. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  231. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  232. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  233. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  234. data/lib/active_admin/view_helpers.rb +2 -1
  235. data/lib/active_admin/views/action_items.rb +1 -0
  236. data/lib/active_admin/views/components/active_admin_form.rb +14 -8
  237. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  238. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  239. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  240. data/lib/active_admin/views/components/columns.rb +1 -0
  241. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  242. data/lib/active_admin/views/components/index_list.rb +4 -3
  243. data/lib/active_admin/views/components/menu.rb +33 -0
  244. data/lib/active_admin/views/components/menu_item.rb +59 -0
  245. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  246. data/lib/active_admin/views/components/panel.rb +2 -1
  247. data/lib/active_admin/views/components/scopes.rb +18 -8
  248. data/lib/active_admin/views/components/sidebar.rb +14 -0
  249. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  250. data/lib/active_admin/views/components/site_title.rb +7 -7
  251. data/lib/active_admin/views/components/status_tag.rb +14 -26
  252. data/lib/active_admin/views/components/table_for.rb +22 -29
  253. data/lib/active_admin/views/components/tabs.rb +18 -5
  254. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  255. data/lib/active_admin/views/footer.rb +6 -8
  256. data/lib/active_admin/views/header.rb +4 -15
  257. data/lib/active_admin/views/index_as_block.rb +1 -0
  258. data/lib/active_admin/views/index_as_blog.rb +3 -2
  259. data/lib/active_admin/views/index_as_grid.rb +27 -26
  260. data/lib/active_admin/views/index_as_table.rb +34 -25
  261. data/lib/active_admin/views/pages/base.rb +47 -62
  262. data/lib/active_admin/views/pages/form.rb +1 -0
  263. data/lib/active_admin/views/pages/index.rb +16 -13
  264. data/lib/active_admin/views/pages/layout.rb +1 -0
  265. data/lib/active_admin/views/pages/page.rb +1 -0
  266. data/lib/active_admin/views/pages/show.rb +1 -0
  267. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  268. data/lib/active_admin/views/title_bar.rb +2 -1
  269. data/lib/active_admin/views.rb +2 -1
  270. data/lib/active_admin.rb +68 -63
  271. data/lib/activeadmin.rb +2 -1
  272. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  273. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  274. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  275. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  276. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  277. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +62 -3
  278. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  279. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  280. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  281. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  282. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  283. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  284. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  285. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  286. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  287. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  288. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  289. data/lib/ransack_ext.rb +10 -9
  290. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  291. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  292. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  293. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  294. metadata +123 -595
  295. data/.github/ISSUE_TEMPLATE.md +0 -20
  296. data/.gitignore +0 -49
  297. data/.mdlrc +0 -1
  298. data/.rubocop.yml +0 -76
  299. data/.simplecov +0 -13
  300. data/.travis.yml +0 -51
  301. data/.yardopts +0 -7
  302. data/Gemfile +0 -58
  303. data/Rakefile +0 -54
  304. data/activeadmin.gemspec +0 -32
  305. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  306. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  307. data/app/assets/images/active_admin/orderable.png +0 -0
  308. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  309. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  310. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  311. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  312. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  313. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  314. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  315. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  316. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  317. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  318. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  319. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  320. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  321. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  322. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  323. data/codecov.yml +0 -25
  324. data/config/i18n-tasks.yml +0 -26
  325. data/config/mdl_style.rb +0 -9
  326. data/cucumber.yml +0 -3
  327. data/docs/0-installation.md +0 -118
  328. data/docs/1-general-configuration.md +0 -189
  329. data/docs/10-custom-pages.md +0 -136
  330. data/docs/11-decorators.md +0 -59
  331. data/docs/12-arbre-components.md +0 -174
  332. data/docs/13-authorization-adapter.md +0 -266
  333. data/docs/14-gotchas.md +0 -138
  334. data/docs/2-resource-customization.md +0 -461
  335. data/docs/3-index-pages/custom-index.md +0 -35
  336. data/docs/3-index-pages/index-as-block.md +0 -19
  337. data/docs/3-index-pages/index-as-blog.md +0 -69
  338. data/docs/3-index-pages/index-as-grid.md +0 -27
  339. data/docs/3-index-pages/index-as-table.md +0 -227
  340. data/docs/3-index-pages.md +0 -311
  341. data/docs/4-csv-format.md +0 -74
  342. data/docs/5-forms.md +0 -218
  343. data/docs/6-show-pages.md +0 -81
  344. data/docs/7-sidebars.md +0 -75
  345. data/docs/8-custom-actions.md +0 -166
  346. data/docs/9-batch-actions.md +0 -237
  347. data/docs/CNAME +0 -1
  348. data/docs/Gemfile +0 -2
  349. data/docs/README.md +0 -24
  350. data/docs/_config.yml +0 -2
  351. data/docs/_includes/footer.html +0 -8
  352. data/docs/_includes/google-analytics.html +0 -16
  353. data/docs/_includes/head.html +0 -7
  354. data/docs/_includes/toc.html +0 -98
  355. data/docs/_includes/top-menu.html +0 -9
  356. data/docs/_layouts/default.html +0 -21
  357. data/docs/documentation.md +0 -60
  358. data/docs/images/activeadmin.png +0 -0
  359. data/docs/images/code-header.png +0 -0
  360. data/docs/images/divider.png +0 -0
  361. data/docs/images/features.png +0 -0
  362. data/docs/index.html +0 -125
  363. data/docs/stylesheets/main.css +0 -1152
  364. data/features/action_item.feature +0 -73
  365. data/features/authorization.feature +0 -64
  366. data/features/authorization_cancan.feature +0 -52
  367. data/features/authorization_pundit.feature +0 -37
  368. data/features/belongs_to.feature +0 -124
  369. data/features/breadcrumb.feature +0 -75
  370. data/features/comments/commenting.feature +0 -178
  371. data/features/comments/viewing_index.feature +0 -19
  372. data/features/create_another.feature +0 -55
  373. data/features/dashboard.feature +0 -16
  374. data/features/decorators.feature +0 -43
  375. data/features/development_reloading.feature +0 -28
  376. data/features/edit_page.feature +0 -116
  377. data/features/favicon.feature +0 -20
  378. data/features/first_boot.feature +0 -16
  379. data/features/footer.feature +0 -28
  380. data/features/global_navigation.feature +0 -29
  381. data/features/i18n.feature +0 -55
  382. data/features/index/batch_actions.feature +0 -218
  383. data/features/index/filters.feature +0 -239
  384. data/features/index/format_as_csv.feature +0 -220
  385. data/features/index/formats.feature +0 -88
  386. data/features/index/index_as_block.feature +0 -15
  387. data/features/index/index_as_blog.feature +0 -69
  388. data/features/index/index_as_grid.feature +0 -45
  389. data/features/index/index_as_table.feature +0 -291
  390. data/features/index/index_blank_slate.feature +0 -83
  391. data/features/index/index_parameters.feature +0 -75
  392. data/features/index/index_scope_to.feature +0 -56
  393. data/features/index/index_scopes.feature +0 -285
  394. data/features/index/page_title.feature +0 -41
  395. data/features/index/pagination.feature +0 -63
  396. data/features/index/switch_index_view.feature +0 -73
  397. data/features/menu.feature +0 -72
  398. data/features/meta_tags.feature +0 -21
  399. data/features/new_page.feature +0 -107
  400. data/features/registering_assets.feature +0 -38
  401. data/features/registering_pages.feature +0 -237
  402. data/features/registering_resources.feature +0 -33
  403. data/features/renamed_resource.feature +0 -30
  404. data/features/root_to.feature +0 -17
  405. data/features/show/attributes_table_title.feature +0 -54
  406. data/features/show/columns.feature +0 -40
  407. data/features/show/default_content.feature +0 -44
  408. data/features/show/page_title.feature +0 -58
  409. data/features/show/tabs.feature +0 -33
  410. data/features/sidebar_sections.feature +0 -210
  411. data/features/site_title.feature +0 -47
  412. data/features/specifying_actions.feature +0 -118
  413. data/features/step_definitions/action_item_steps.rb +0 -7
  414. data/features/step_definitions/action_link_steps.rb +0 -19
  415. data/features/step_definitions/additional_web_steps.rb +0 -81
  416. data/features/step_definitions/asset_steps.rb +0 -15
  417. data/features/step_definitions/attribute_steps.rb +0 -18
  418. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  419. data/features/step_definitions/batch_action_steps.rb +0 -81
  420. data/features/step_definitions/blog_steps.rb +0 -3
  421. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  422. data/features/step_definitions/column_steps.rb +0 -8
  423. data/features/step_definitions/comment_steps.rb +0 -32
  424. data/features/step_definitions/configuration_steps.rb +0 -100
  425. data/features/step_definitions/dashboard_steps.rb +0 -15
  426. data/features/step_definitions/factory_steps.rb +0 -35
  427. data/features/step_definitions/filter_steps.rb +0 -48
  428. data/features/step_definitions/flash_steps.rb +0 -11
  429. data/features/step_definitions/footer_steps.rb +0 -11
  430. data/features/step_definitions/format_steps.rb +0 -56
  431. data/features/step_definitions/i18n_steps.rb +0 -11
  432. data/features/step_definitions/index_scope_steps.rb +0 -29
  433. data/features/step_definitions/index_views_steps.rb +0 -3
  434. data/features/step_definitions/layout_steps.rb +0 -3
  435. data/features/step_definitions/member_link_steps.rb +0 -7
  436. data/features/step_definitions/menu_steps.rb +0 -11
  437. data/features/step_definitions/meta_tag_steps.rb +0 -3
  438. data/features/step_definitions/pagination_steps.rb +0 -15
  439. data/features/step_definitions/sidebar_steps.rb +0 -11
  440. data/features/step_definitions/site_title_steps.rb +0 -17
  441. data/features/step_definitions/tab_steps.rb +0 -8
  442. data/features/step_definitions/table_steps.rb +0 -116
  443. data/features/step_definitions/user_steps.rb +0 -52
  444. data/features/step_definitions/web_steps.rb +0 -86
  445. data/features/sti_resource.feature +0 -65
  446. data/features/strong_parameters.feature +0 -69
  447. data/features/support/env.rb +0 -122
  448. data/features/support/paths.rb +0 -73
  449. data/features/support/regular_env.rb +0 -7
  450. data/features/support/reload_env.rb +0 -7
  451. data/features/support/selectors.rb +0 -45
  452. data/features/users/logging_in.feature +0 -36
  453. data/features/users/logging_out.feature +0 -13
  454. data/features/users/resetting_password.feature +0 -34
  455. data/gemfiles/rails_42.gemfile +0 -10
  456. data/gemfiles/rails_50.gemfile +0 -10
  457. data/gemfiles/rails_51.gemfile +0 -10
  458. data/lib/active_admin/event.rb +0 -24
  459. data/lib/active_admin/helpers/settings.rb +0 -114
  460. data/lib/active_admin/reloader.rb +0 -25
  461. data/lib/bug_report_templates/active_admin_master.rb +0 -113
  462. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  463. data/spec/bug_report_templates_spec.rb +0 -26
  464. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  465. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  466. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  467. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  468. data/spec/javascripts/fixtures/flashes.html +0 -2
  469. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  470. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  471. data/spec/javascripts/support/jasmine.yml +0 -74
  472. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  473. data/spec/rails_helper.rb +0 -59
  474. data/spec/requests/default_namespace_spec.rb +0 -81
  475. data/spec/requests/memory_spec.rb +0 -25
  476. data/spec/requests/stylesheets_spec.rb +0 -18
  477. data/spec/spec_helper.rb +0 -1
  478. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  479. data/spec/support/active_admin_request_helpers.rb +0 -39
  480. data/spec/support/rails_template.rb +0 -150
  481. data/spec/support/rails_template_with_data.rb +0 -327
  482. data/spec/support/templates/admin/stores.rb +0 -7
  483. data/spec/support/templates/en.yml +0 -8
  484. data/spec/support/templates/manifest.js +0 -3
  485. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  486. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  487. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  488. data/spec/support/templates/policies/application_policy.rb +0 -44
  489. data/spec/support/templates/policies/category_policy.rb +0 -7
  490. data/spec/support/templates/policies/post_policy.rb +0 -15
  491. data/spec/support/templates/policies/store_policy.rb +0 -11
  492. data/spec/support/templates/policies/user_policy.rb +0 -11
  493. data/spec/support/templates/post_decorator.rb +0 -10
  494. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  495. data/spec/unit/action_builder_spec.rb +0 -125
  496. data/spec/unit/active_admin_spec.rb +0 -11
  497. data/spec/unit/application_spec.rb +0 -184
  498. data/spec/unit/asset_registration_spec.rb +0 -81
  499. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  500. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  501. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  502. data/spec/unit/auto_link_spec.rb +0 -93
  503. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  504. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  505. data/spec/unit/belongs_to_spec.rb +0 -76
  506. data/spec/unit/cancan_adapter_spec.rb +0 -43
  507. data/spec/unit/comments_spec.rb +0 -176
  508. data/spec/unit/component_spec.rb +0 -18
  509. data/spec/unit/config_shared_examples.rb +0 -59
  510. data/spec/unit/controller_filters_spec.rb +0 -41
  511. data/spec/unit/csv_builder_spec.rb +0 -304
  512. data/spec/unit/dependency_spec.rb +0 -135
  513. data/spec/unit/devise_spec.rb +0 -110
  514. data/spec/unit/dsl_spec.rb +0 -120
  515. data/spec/unit/filters/active_filter_spec.rb +0 -135
  516. data/spec/unit/filters/active_spec.rb +0 -24
  517. data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
  518. data/spec/unit/filters/resource_spec.rb +0 -128
  519. data/spec/unit/form_builder_spec.rb +0 -990
  520. data/spec/unit/generators/install_spec.rb +0 -31
  521. data/spec/unit/helpers/collection_spec.rb +0 -68
  522. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  523. data/spec/unit/helpers/settings_spec.rb +0 -30
  524. data/spec/unit/i18n_spec.rb +0 -29
  525. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  526. data/spec/unit/menu_collection_spec.rb +0 -62
  527. data/spec/unit/menu_item_spec.rb +0 -141
  528. data/spec/unit/menu_spec.rb +0 -71
  529. data/spec/unit/namespace/authorization_spec.rb +0 -27
  530. data/spec/unit/namespace/register_page_spec.rb +0 -99
  531. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  532. data/spec/unit/namespace_spec.rb +0 -124
  533. data/spec/unit/order_clause_spec.rb +0 -81
  534. data/spec/unit/page_controller_spec.rb +0 -5
  535. data/spec/unit/page_spec.rb +0 -128
  536. data/spec/unit/pretty_format_spec.rb +0 -82
  537. data/spec/unit/pundit_adapter_spec.rb +0 -98
  538. data/spec/unit/resource/action_items_spec.rb +0 -69
  539. data/spec/unit/resource/attributes_spec.rb +0 -49
  540. data/spec/unit/resource/includes_spec.rb +0 -21
  541. data/spec/unit/resource/menu_spec.rb +0 -18
  542. data/spec/unit/resource/naming_spec.rb +0 -122
  543. data/spec/unit/resource/ordering_spec.rb +0 -35
  544. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  545. data/spec/unit/resource/pagination_spec.rb +0 -38
  546. data/spec/unit/resource/routes_spec.rb +0 -125
  547. data/spec/unit/resource/scopes_spec.rb +0 -50
  548. data/spec/unit/resource/sidebars_spec.rb +0 -43
  549. data/spec/unit/resource_collection_spec.rb +0 -175
  550. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  551. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  552. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  553. data/spec/unit/resource_controller_spec.rb +0 -273
  554. data/spec/unit/resource_registration_spec.rb +0 -61
  555. data/spec/unit/resource_spec.rb +0 -320
  556. data/spec/unit/routing_spec.rb +0 -211
  557. data/spec/unit/scope_spec.rb +0 -209
  558. data/spec/unit/settings_spec.rb +0 -117
  559. data/spec/unit/view_factory_spec.rb +0 -19
  560. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  561. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  562. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  563. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  564. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  565. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  566. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  567. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  568. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  569. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  570. data/spec/unit/views/components/columns_spec.rb +0 -187
  571. data/spec/unit/views/components/index_list_spec.rb +0 -49
  572. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  573. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  574. data/spec/unit/views/components/panel_spec.rb +0 -58
  575. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  576. data/spec/unit/views/components/site_title_spec.rb +0 -76
  577. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  578. data/spec/unit/views/components/table_for_spec.rb +0 -436
  579. data/spec/unit/views/components/tabs_spec.rb +0 -67
  580. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  581. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  582. data/spec/unit/views/pages/form_spec.rb +0 -54
  583. data/spec/unit/views/pages/index_spec.rb +0 -60
  584. data/spec/unit/views/pages/layout_spec.rb +0 -59
  585. data/spec/unit/views/pages/show_spec.rb +0 -32
  586. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  587. data/tasks/docs.rake +0 -64
  588. data/tasks/lint.rake +0 -21
  589. data/tasks/local.rake +0 -25
  590. data/tasks/parallel_tests.rake +0 -66
  591. data/tasks/test.rake +0 -29
  592. /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
@@ -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
 
@@ -17,16 +14,12 @@ module ActiveAdmin
17
14
  stylesheets.clear
18
15
  end
19
16
 
20
- 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
- javascripts.add name
17
+ def register_javascript(path, options = {})
18
+ javascripts[path] = options
26
19
  end
27
20
 
28
21
  def javascripts
29
- @javascripts ||= Set.new
22
+ @javascripts ||= {}
30
23
  end
31
24
 
32
25
  def clear_javascripts!
@@ -1,10 +1,13 @@
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
+ NEW = :new
8
+ CREATE = :create
9
+ EDIT = :edit
10
+ UPDATE = :update
8
11
  DESTROY = :destroy
9
12
  end
10
13
 
@@ -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::NEW,
11
+ create: ActiveAdmin::Authorization::CREATE,
12
+ edit: ActiveAdmin::Authorization::EDIT,
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
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module BatchActions
3
4
  module Controller
@@ -5,10 +6,10 @@ module ActiveAdmin
5
6
  # Controller action that is called when submitting the batch action form
6
7
  def batch_action
7
8
  if action_present?
8
- selection = params[:collection_selection] || []
9
- inputs = JSON.parse params[:batch_action_inputs] || '{}'
10
- valid_keys = render_in_context(self, current_batch_action.inputs).try(:keys)
11
- inputs = inputs.with_indifferent_access.slice *valid_keys
9
+ selection = params[:collection_selection] || []
10
+ inputs = JSON.parse params[:batch_action_inputs] || "{}"
11
+ valid_keys = MethodOrProcHelper.render_in_context(self, current_batch_action.inputs).try(:keys)
12
+ inputs = inputs.with_indifferent_access.slice *valid_keys
12
13
  instance_exec selection, inputs, &current_batch_action.block
13
14
  else
14
15
  raise "Couldn't find batch action \"#{params[:batch_action]}\""
@@ -22,7 +23,7 @@ module ActiveAdmin
22
23
  end
23
24
 
24
25
  def current_batch_action
25
- active_admin_config.batch_actions.detect{ |action| action.sym.to_s == params[:batch_action] }
26
+ active_admin_config.batch_actions.detect { |action| action.sym.to_s == params[:batch_action] }
26
27
  end
27
28
 
28
29
  COLLECTION_APPLIES = [
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  module BatchActions
@@ -57,21 +58,22 @@ module ActiveAdmin
57
58
  def add_default_batch_action
58
59
  destroy_options = {
59
60
  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) }
61
+ confirm: proc { I18n.t("active_admin.batch_actions.delete_confirmation", plural_model: active_admin_config.plural_resource_label.downcase) },
62
+ if: proc { controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, active_admin_config.resource_class) }
62
63
  }
63
64
 
64
- add_batch_action :destroy, proc { I18n.t('active_admin.delete') }, destroy_options do |selected_ids|
65
+ add_batch_action :destroy, proc { I18n.t("active_admin.delete") }, destroy_options do |selected_ids|
65
66
  batch_action_collection.find(selected_ids).each do |record|
66
67
  authorize! ActiveAdmin::Auth::DESTROY, record
67
68
  destroy_resource(record)
68
69
  end
69
70
 
70
71
  redirect_to active_admin_config.route_collection_path(params),
71
- notice: I18n.t("active_admin.batch_actions.succesfully_destroyed",
72
- count: selected_ids.count,
73
- model: active_admin_config.resource_label.downcase,
74
- plural_model: active_admin_config.plural_resource_label(count: selected_ids.count).downcase)
72
+ notice: I18n.t(
73
+ "active_admin.batch_actions.succesfully_destroyed",
74
+ count: selected_ids.count,
75
+ model: active_admin_config.resource_label.downcase,
76
+ plural_model: active_admin_config.plural_resource_label(count: selected_ids.count).downcase)
75
77
  end
76
78
  end
77
79
 
@@ -84,7 +86,7 @@ module ActiveAdmin
84
86
 
85
87
  attr_reader :block, :title, :sym
86
88
 
87
- DEFAULT_CONFIRM_MESSAGE = proc{ I18n.t 'active_admin.batch_actions.default_confirmation' }
89
+ DEFAULT_CONFIRM_MESSAGE = proc { I18n.t "active_admin.batch_actions.default_confirmation" }
88
90
 
89
91
  # Create a Batch Action
90
92
  #
@@ -112,7 +114,11 @@ module ActiveAdmin
112
114
  # => You can pass a hash of options to `:form` that will be rendered as form input fields for the user to fill out.
113
115
  #
114
116
  def initialize(sym, title, options = {}, &block)
115
- @sym, @title, @options, @block, @confirm = sym, title, options, block, options[:confirm]
117
+ @sym = sym
118
+ @title = title
119
+ @options = options
120
+ @block = block
121
+ @confirm = options[:confirm]
116
122
  @block ||= proc {}
117
123
  end
118
124
 
@@ -133,7 +139,7 @@ module ActiveAdmin
133
139
  # Returns the display if block. If the block was not explicitly defined
134
140
  # a default block always returning true will be returned.
135
141
  def display_if_block
136
- @options[:if] || proc{ true }
142
+ @options[:if] || proc { true }
137
143
  end
138
144
 
139
145
  # Used for sorting