activeadmin 1.0.0.pre4 → 2.4.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 (542) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +529 -52
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +129 -58
  5. data/README.md +80 -79
  6. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  8. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  9. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  10. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  11. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  12. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  13. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
  14. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  15. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  16. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  17. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  18. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  19. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  20. data/app/assets/stylesheets/active_admin/_base.scss +2 -2
  21. data/app/assets/stylesheets/active_admin/_forms.scss +19 -26
  22. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  23. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  24. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  25. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  26. data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
  27. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  28. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
  29. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/print.scss +2 -3
  31. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  32. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  33. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  34. data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
  35. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  36. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  37. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  38. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  39. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  40. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  41. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  42. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  43. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  44. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  45. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  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 +4 -5
  54. data/config/locales/bg.yml +1 -3
  55. data/config/locales/bs.yml +1 -2
  56. data/config/locales/ca.yml +2 -4
  57. data/config/locales/cs.yml +1 -2
  58. data/config/locales/da.yml +45 -14
  59. data/config/locales/de-CH.yml +2 -3
  60. data/config/locales/de.yml +30 -3
  61. data/config/locales/el.yml +3 -4
  62. data/config/locales/en-CA.yml +139 -0
  63. data/config/locales/en-GB.yml +44 -3
  64. data/config/locales/en.yml +31 -5
  65. data/config/locales/eo.yml +145 -0
  66. data/config/locales/es-MX.yml +5 -3
  67. data/config/locales/es.yml +32 -6
  68. data/config/locales/fa.yml +1 -2
  69. data/config/locales/fi.yml +2 -3
  70. data/config/locales/fr.yml +27 -5
  71. data/config/locales/he.yml +53 -7
  72. data/config/locales/hr.yml +1 -2
  73. data/config/locales/hu.yml +5 -2
  74. data/config/locales/id.yml +2 -3
  75. data/config/locales/it.yml +15 -7
  76. data/config/locales/ja.yml +8 -3
  77. data/config/locales/ko.yml +1 -2
  78. data/config/locales/lt.yml +27 -6
  79. data/config/locales/lv.yml +1 -2
  80. data/config/locales/mk.yml +134 -0
  81. data/config/locales/nb.yml +16 -7
  82. data/config/locales/nl.yml +13 -3
  83. data/config/locales/pl.yml +75 -5
  84. data/config/locales/pt-BR.yml +10 -3
  85. data/config/locales/pt-PT.yml +1 -2
  86. data/config/locales/ro.yml +1 -2
  87. data/config/locales/ru.yml +5 -3
  88. data/config/locales/sk.yml +168 -0
  89. data/config/locales/sv-SE.yml +4 -3
  90. data/config/locales/tr.yml +10 -2
  91. data/config/locales/uk.yml +4 -3
  92. data/config/locales/vi.yml +48 -8
  93. data/config/locales/zh-CN.yml +38 -7
  94. data/config/locales/zh-TW.yml +2 -3
  95. data/docs/.gitignore +1 -0
  96. data/docs/0-installation.md +19 -13
  97. data/docs/1-general-configuration.md +37 -4
  98. data/docs/10-custom-pages.md +47 -3
  99. data/docs/11-decorators.md +4 -0
  100. data/docs/12-arbre-components.md +73 -9
  101. data/docs/13-authorization-adapter.md +72 -35
  102. data/docs/14-gotchas.md +57 -19
  103. data/docs/2-resource-customization.md +64 -20
  104. data/docs/3-index-pages/custom-index.md +5 -1
  105. data/docs/3-index-pages/index-as-block.md +3 -5
  106. data/docs/3-index-pages/index-as-blog.md +4 -6
  107. data/docs/3-index-pages/index-as-grid.md +3 -5
  108. data/docs/3-index-pages/index-as-table.md +33 -12
  109. data/docs/3-index-pages.md +65 -9
  110. data/docs/4-csv-format.md +16 -0
  111. data/docs/5-forms.md +78 -17
  112. data/docs/6-show-pages.md +5 -29
  113. data/docs/7-sidebars.md +5 -1
  114. data/docs/8-custom-actions.md +18 -1
  115. data/docs/9-batch-actions.md +8 -4
  116. data/docs/CNAME +1 -0
  117. data/docs/Gemfile +3 -0
  118. data/docs/Gemfile.lock +248 -0
  119. data/docs/_config.yml +4 -0
  120. data/docs/_includes/footer.html +8 -0
  121. data/docs/_includes/google-analytics.html +16 -0
  122. data/docs/_includes/head.html +7 -0
  123. data/docs/_includes/toc.html +98 -0
  124. data/docs/_includes/top-menu.html +17 -0
  125. data/docs/_layouts/default.html +21 -0
  126. data/docs/documentation.md +60 -0
  127. data/docs/images/activeadmin.png +0 -0
  128. data/docs/images/code-header.png +0 -0
  129. data/docs/images/divider.png +0 -0
  130. data/docs/images/features.png +0 -0
  131. data/docs/images/tidelift.svg +14 -0
  132. data/docs/index.html +226 -0
  133. data/docs/stylesheets/main.css +1205 -0
  134. data/lib/active_admin/abstract_view_factory.rb +13 -51
  135. data/lib/active_admin/application.rb +50 -140
  136. data/lib/active_admin/application_settings.rb +42 -0
  137. data/lib/active_admin/authorization_adapter.rb +0 -3
  138. data/lib/active_admin/base_controller/authorization.rb +4 -7
  139. data/lib/active_admin/base_controller/menu.rb +10 -14
  140. data/lib/active_admin/base_controller.rb +8 -14
  141. data/lib/active_admin/batch_actions/controller.rb +3 -3
  142. data/lib/active_admin/batch_actions/resource_extension.rb +9 -13
  143. data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
  144. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
  145. data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
  146. data/lib/active_admin/callbacks.rb +1 -1
  147. data/lib/active_admin/controller_action.rb +2 -1
  148. data/lib/active_admin/csv_builder.rb +15 -12
  149. data/lib/active_admin/dependency.rb +8 -76
  150. data/lib/active_admin/deprecation.rb +0 -25
  151. data/lib/active_admin/devise.rb +3 -3
  152. data/lib/active_admin/dsl.rb +3 -16
  153. data/lib/active_admin/dynamic_setting.rb +38 -0
  154. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  155. data/lib/active_admin/engine.rb +5 -0
  156. data/lib/active_admin/error.rb +5 -3
  157. data/lib/active_admin/filters/active.rb +13 -14
  158. data/lib/active_admin/filters/active_filter.rb +124 -0
  159. data/lib/active_admin/filters/active_sidebar.rb +54 -0
  160. data/lib/active_admin/filters/forms.rb +6 -4
  161. data/lib/active_admin/filters/formtastic_addons.rb +2 -2
  162. data/lib/active_admin/filters/resource_extension.rb +28 -43
  163. data/lib/active_admin/filters.rb +2 -0
  164. data/lib/active_admin/form_builder.rb +100 -59
  165. data/lib/active_admin/generators/boilerplate.rb +12 -4
  166. data/lib/active_admin/helpers/collection.rb +2 -0
  167. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  168. data/lib/active_admin/inputs/datepicker_input.rb +12 -5
  169. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  170. data/lib/active_admin/inputs/filters/date_range_input.rb +21 -8
  171. data/lib/active_admin/inputs/filters/select_input.rb +6 -3
  172. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  173. data/lib/active_admin/inputs.rb +1 -0
  174. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  175. data/lib/active_admin/localizers.rb +11 -0
  176. data/lib/active_admin/menu.rb +6 -12
  177. data/lib/active_admin/menu_collection.rb +0 -2
  178. data/lib/active_admin/menu_item.rb +4 -32
  179. data/lib/active_admin/namespace.rb +36 -17
  180. data/lib/active_admin/namespace_settings.rb +123 -0
  181. data/lib/active_admin/order_clause.rb +30 -8
  182. data/lib/active_admin/orm/active_record/comments/comment.rb +3 -17
  183. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +19 -7
  184. data/lib/active_admin/orm/active_record/comments.rb +17 -11
  185. data/lib/active_admin/page.rb +23 -4
  186. data/lib/active_admin/page_controller.rb +2 -6
  187. data/lib/active_admin/page_dsl.rb +5 -1
  188. data/lib/active_admin/page_presenter.rb +2 -1
  189. data/lib/active_admin/pundit_adapter.rb +18 -5
  190. data/lib/active_admin/resource/action_items.rb +17 -5
  191. data/lib/active_admin/resource/attributes.rb +47 -0
  192. data/lib/active_admin/resource/belongs_to.rb +10 -1
  193. data/lib/active_admin/resource/menu.rb +7 -4
  194. data/lib/active_admin/resource/model.rb +15 -0
  195. data/lib/active_admin/resource/naming.rb +3 -3
  196. data/lib/active_admin/resource/ordering.rb +11 -0
  197. data/lib/active_admin/resource/page_presenters.rb +1 -1
  198. data/lib/active_admin/resource/routes.rb +52 -20
  199. data/lib/active_admin/resource/scopes.rb +5 -3
  200. data/lib/active_admin/resource/sidebars.rb +1 -1
  201. data/lib/active_admin/resource.rb +59 -7
  202. data/lib/active_admin/resource_collection.rb +2 -2
  203. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  204. data/lib/active_admin/resource_controller/data_access.rb +32 -27
  205. data/lib/active_admin/resource_controller/decorators.rb +5 -5
  206. data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
  207. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  208. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  209. data/lib/active_admin/resource_controller.rb +15 -0
  210. data/lib/active_admin/resource_dsl.rb +58 -24
  211. data/lib/active_admin/router.rb +90 -82
  212. data/lib/active_admin/scope.rb +20 -12
  213. data/lib/active_admin/settings_node.rb +19 -0
  214. data/lib/active_admin/sidebar_section.rb +3 -1
  215. data/lib/active_admin/version.rb +1 -1
  216. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
  217. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
  218. data/lib/active_admin/view_helpers/display_helper.rb +28 -16
  219. data/lib/active_admin/view_helpers/download_format_links_helper.rb +13 -0
  220. data/lib/active_admin/view_helpers/fields_for.rb +1 -2
  221. data/lib/active_admin/view_helpers/form_helper.rb +2 -2
  222. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +8 -1
  223. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  224. data/lib/active_admin/view_helpers.rb +2 -1
  225. data/lib/active_admin/views/action_items.rb +1 -1
  226. data/lib/active_admin/views/components/active_admin_form.rb +43 -11
  227. data/lib/active_admin/views/components/attributes_table.rb +4 -4
  228. data/lib/active_admin/views/components/columns.rb +3 -3
  229. data/lib/active_admin/views/components/dropdown_menu.rb +4 -4
  230. data/lib/active_admin/views/components/index_list.rb +4 -3
  231. data/lib/active_admin/views/components/menu.rb +32 -0
  232. data/lib/active_admin/views/components/menu_item.rb +58 -0
  233. data/lib/active_admin/views/components/paginated_collection.rb +7 -11
  234. data/lib/active_admin/views/components/scopes.rb +14 -8
  235. data/lib/active_admin/views/components/sidebar.rb +13 -0
  236. data/lib/active_admin/views/components/site_title.rb +5 -6
  237. data/lib/active_admin/views/components/status_tag.rb +11 -16
  238. data/lib/active_admin/views/components/table_for.rb +7 -16
  239. data/lib/active_admin/views/components/tabs.rb +15 -3
  240. data/lib/active_admin/views/footer.rb +14 -4
  241. data/lib/active_admin/views/header.rb +3 -16
  242. data/lib/active_admin/views/index_as_blog.rb +2 -3
  243. data/lib/active_admin/views/index_as_grid.rb +25 -25
  244. data/lib/active_admin/views/index_as_table.rb +39 -13
  245. data/lib/active_admin/views/pages/base.rb +36 -57
  246. data/lib/active_admin/views/pages/form.rb +2 -3
  247. data/lib/active_admin/views/pages/layout.rb +1 -1
  248. data/lib/active_admin/views/pages/show.rb +8 -2
  249. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  250. data/lib/active_admin/views/title_bar.rb +4 -4
  251. data/lib/active_admin/views.rb +1 -1
  252. data/lib/active_admin.rb +11 -7
  253. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  254. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  255. data/lib/generators/active_admin/devise/devise_generator.rb +8 -5
  256. data/lib/generators/active_admin/install/install_generator.rb +7 -3
  257. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +60 -4
  258. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
  259. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  260. data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
  261. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  262. data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
  263. data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
  264. data/lib/ransack_ext.rb +5 -5
  265. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  266. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  267. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  268. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  269. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  270. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  271. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  272. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  273. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  274. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  275. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  276. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  277. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  278. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  279. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  280. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  281. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  282. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  283. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  284. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  285. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  286. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  287. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  288. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  289. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  290. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  291. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  292. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  293. data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
  294. metadata +190 -539
  295. data/.gitignore +0 -49
  296. data/.hound.yml +0 -14
  297. data/.travis.yml +0 -46
  298. data/.yardopts +0 -8
  299. data/Gemfile +0 -75
  300. data/Guardfile +0 -8
  301. data/Rakefile +0 -33
  302. data/activeadmin.gemspec +0 -31
  303. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  304. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  305. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  306. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  307. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  308. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  309. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -15
  310. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  311. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -11
  312. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  313. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
  314. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  315. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  316. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  317. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  318. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -31
  319. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  320. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  321. data/cucumber.yml +0 -3
  322. data/features/action_item.feature +0 -73
  323. data/features/authorization.feature +0 -64
  324. data/features/authorization_cancan.feature +0 -52
  325. data/features/authorization_pundit.feature +0 -37
  326. data/features/belongs_to.feature +0 -66
  327. data/features/breadcrumb.feature +0 -75
  328. data/features/comments/commenting.feature +0 -171
  329. data/features/comments/viewing_index.feature +0 -19
  330. data/features/dashboard.feature +0 -16
  331. data/features/decorators.feature +0 -43
  332. data/features/development_reloading.feature +0 -30
  333. data/features/edit_page.feature +0 -117
  334. data/features/favicon.feature +0 -20
  335. data/features/first_boot.feature +0 -16
  336. data/features/global_navigation.feature +0 -29
  337. data/features/i18n.feature +0 -43
  338. data/features/index/batch_actions.feature +0 -196
  339. data/features/index/filters.feature +0 -161
  340. data/features/index/format_as_csv.feature +0 -203
  341. data/features/index/formats.feature +0 -66
  342. data/features/index/index_as_block.feature +0 -15
  343. data/features/index/index_as_blog.feature +0 -69
  344. data/features/index/index_as_grid.feature +0 -45
  345. data/features/index/index_as_table.feature +0 -291
  346. data/features/index/index_blank_slate.feature +0 -83
  347. data/features/index/index_parameters.feature +0 -75
  348. data/features/index/index_scope_to.feature +0 -56
  349. data/features/index/index_scopes.feature +0 -251
  350. data/features/index/page_title.feature +0 -42
  351. data/features/index/pagination.feature +0 -63
  352. data/features/index/switch_index_view.feature +0 -73
  353. data/features/menu.feature +0 -53
  354. data/features/meta_tags.feature +0 -21
  355. data/features/new_page.feature +0 -109
  356. data/features/registering_assets.feature +0 -34
  357. data/features/registering_pages.feature +0 -148
  358. data/features/registering_resources.feature +0 -33
  359. data/features/renamed_resource.feature +0 -32
  360. data/features/root_to.feature +0 -17
  361. data/features/show/columns.feature +0 -40
  362. data/features/show/default_content.feature +0 -44
  363. data/features/show/page_title.feature +0 -59
  364. data/features/show/tabs.feature +0 -27
  365. data/features/sidebar_sections.feature +0 -210
  366. data/features/site_title.feature +0 -47
  367. data/features/specifying_actions.feature +0 -93
  368. data/features/step_definitions/action_item_steps.rb +0 -7
  369. data/features/step_definitions/action_link_steps.rb +0 -20
  370. data/features/step_definitions/additional_web_steps.rb +0 -81
  371. data/features/step_definitions/asset_steps.rb +0 -15
  372. data/features/step_definitions/attribute_steps.rb +0 -18
  373. data/features/step_definitions/batch_action_steps.rb +0 -81
  374. data/features/step_definitions/blog_steps.rb +0 -3
  375. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  376. data/features/step_definitions/column_steps.rb +0 -8
  377. data/features/step_definitions/comment_steps.rb +0 -12
  378. data/features/step_definitions/configuration_steps.rb +0 -100
  379. data/features/step_definitions/dashboard_steps.rb +0 -15
  380. data/features/step_definitions/factory_steps.rb +0 -35
  381. data/features/step_definitions/filter_steps.rb +0 -39
  382. data/features/step_definitions/flash_steps.rb +0 -11
  383. data/features/step_definitions/format_steps.rb +0 -52
  384. data/features/step_definitions/i18n_steps.rb +0 -3
  385. data/features/step_definitions/index_scope_steps.rb +0 -21
  386. data/features/step_definitions/index_views_steps.rb +0 -3
  387. data/features/step_definitions/layout_steps.rb +0 -3
  388. data/features/step_definitions/member_link_steps.rb +0 -7
  389. data/features/step_definitions/menu_steps.rb +0 -11
  390. data/features/step_definitions/meta_tag_steps.rb +0 -3
  391. data/features/step_definitions/pagination_steps.rb +0 -15
  392. data/features/step_definitions/sidebar_steps.rb +0 -13
  393. data/features/step_definitions/site_title_steps.rb +0 -17
  394. data/features/step_definitions/symbol_leak_steps.rb +0 -3
  395. data/features/step_definitions/tab_steps.rb +0 -8
  396. data/features/step_definitions/table_steps.rb +0 -120
  397. data/features/step_definitions/user_steps.rb +0 -45
  398. data/features/step_definitions/web_steps.rb +0 -85
  399. data/features/sti_resource.feature +0 -65
  400. data/features/strong_parameters.feature +0 -73
  401. data/features/support/env.rb +0 -162
  402. data/features/support/paths.rb +0 -71
  403. data/features/support/selectors.rb +0 -45
  404. data/features/symbol_leak.feature +0 -35
  405. data/features/users/logging_in.feature +0 -34
  406. data/features/users/logging_out.feature +0 -13
  407. data/features/users/resetting_password.feature +0 -34
  408. data/lib/active_admin/event.rb +0 -24
  409. data/lib/active_admin/filters/humanized.rb +0 -68
  410. data/lib/active_admin/helpers/settings.rb +0 -115
  411. data/lib/active_admin/reloader.rb +0 -25
  412. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  413. data/lib/generators/active_admin/resource/templates/admin.rb +0 -45
  414. data/script/local +0 -53
  415. data/script/travis_cache +0 -107
  416. data/script/use_rails +0 -53
  417. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  418. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  419. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  420. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  421. data/spec/javascripts/fixtures/flashes.html +0 -2
  422. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  423. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  424. data/spec/javascripts/support/jasmine.yml +0 -74
  425. data/spec/javascripts/support/jasmine_config.rb +0 -23
  426. data/spec/javascripts/support/jasmine_runner.rb +0 -32
  427. data/spec/rails_helper.rb +0 -169
  428. data/spec/requests/default_namespace_spec.rb +0 -61
  429. data/spec/requests/javascript_spec.rb +0 -22
  430. data/spec/requests/memory_spec.rb +0 -21
  431. data/spec/requests/stylesheets_spec.rb +0 -18
  432. data/spec/spec_helper.rb +0 -17
  433. data/spec/support/active_admin_request_helpers.rb +0 -27
  434. data/spec/support/deferred_garbage_collection.rb +0 -19
  435. data/spec/support/detect_rails_version.rb +0 -34
  436. data/spec/support/jslint.yml +0 -80
  437. data/spec/support/rails_template.rb +0 -158
  438. data/spec/support/rails_template_with_data.rb +0 -55
  439. data/spec/support/templates/admin/stores.rb +0 -9
  440. data/spec/support/templates/en.yml +0 -8
  441. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  442. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  443. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  444. data/spec/support/templates/policies/application_policy.rb +0 -45
  445. data/spec/support/templates/policies/category_policy.rb +0 -7
  446. data/spec/support/templates/policies/post_policy.rb +0 -15
  447. data/spec/support/templates/policies/store_policy.rb +0 -11
  448. data/spec/support/templates/policies/user_policy.rb +0 -11
  449. data/spec/support/templates/post_decorator.rb +0 -11
  450. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  451. data/spec/unit/action_builder_spec.rb +0 -134
  452. data/spec/unit/active_admin_spec.rb +0 -11
  453. data/spec/unit/application_spec.rb +0 -165
  454. data/spec/unit/asset_registration_spec.rb +0 -52
  455. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  456. data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
  457. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  458. data/spec/unit/auto_link_spec.rb +0 -69
  459. data/spec/unit/batch_actions/resource_spec.rb +0 -97
  460. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  461. data/spec/unit/belongs_to_spec.rb +0 -65
  462. data/spec/unit/cancan_adapter_spec.rb +0 -43
  463. data/spec/unit/comments_spec.rb +0 -188
  464. data/spec/unit/component_spec.rb +0 -18
  465. data/spec/unit/config_shared_examples.rb +0 -59
  466. data/spec/unit/controller_filters_spec.rb +0 -41
  467. data/spec/unit/csv_builder_spec.rb +0 -303
  468. data/spec/unit/dependency_spec.rb +0 -135
  469. data/spec/unit/devise_spec.rb +0 -96
  470. data/spec/unit/dsl_spec.rb +0 -122
  471. data/spec/unit/filters/filter_form_builder_spec.rb +0 -434
  472. data/spec/unit/filters/humanized_spec.rb +0 -56
  473. data/spec/unit/filters/resource_spec.rb +0 -128
  474. data/spec/unit/form_builder_spec.rb +0 -815
  475. data/spec/unit/generators/install_spec.rb +0 -24
  476. data/spec/unit/helpers/collection_spec.rb +0 -65
  477. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  478. data/spec/unit/helpers/settings_spec.rb +0 -30
  479. data/spec/unit/i18n_spec.rb +0 -12
  480. data/spec/unit/menu_collection_spec.rb +0 -62
  481. data/spec/unit/menu_item_spec.rb +0 -143
  482. data/spec/unit/menu_spec.rb +0 -71
  483. data/spec/unit/namespace/authorization_spec.rb +0 -27
  484. data/spec/unit/namespace/register_page_spec.rb +0 -73
  485. data/spec/unit/namespace/register_resource_spec.rb +0 -160
  486. data/spec/unit/namespace_spec.rb +0 -103
  487. data/spec/unit/order_clause_spec.rb +0 -81
  488. data/spec/unit/page_controller_spec.rb +0 -5
  489. data/spec/unit/page_spec.rb +0 -78
  490. data/spec/unit/pretty_format_spec.rb +0 -77
  491. data/spec/unit/pundit_adapter_spec.rb +0 -98
  492. data/spec/unit/resource/action_items_spec.rb +0 -65
  493. data/spec/unit/resource/includes_spec.rb +0 -21
  494. data/spec/unit/resource/menu_spec.rb +0 -18
  495. data/spec/unit/resource/naming_spec.rb +0 -122
  496. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  497. data/spec/unit/resource/pagination_spec.rb +0 -38
  498. data/spec/unit/resource/routes_spec.rb +0 -77
  499. data/spec/unit/resource/scopes_spec.rb +0 -50
  500. data/spec/unit/resource/sidebars_spec.rb +0 -43
  501. data/spec/unit/resource_collection_spec.rb +0 -175
  502. data/spec/unit/resource_controller/data_access_spec.rb +0 -140
  503. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  504. data/spec/unit/resource_controller/sidebars_spec.rb +0 -38
  505. data/spec/unit/resource_controller_spec.rb +0 -269
  506. data/spec/unit/resource_registration_spec.rb +0 -56
  507. data/spec/unit/resource_spec.rb +0 -331
  508. data/spec/unit/routing_spec.rb +0 -185
  509. data/spec/unit/scope_spec.rb +0 -185
  510. data/spec/unit/settings_spec.rb +0 -118
  511. data/spec/unit/view_factory_spec.rb +0 -19
  512. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
  513. data/spec/unit/view_helpers/display_helper_spec.rb +0 -165
  514. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  515. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  516. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  517. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  518. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  519. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  520. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  521. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  522. data/spec/unit/views/components/columns_spec.rb +0 -189
  523. data/spec/unit/views/components/index_list_spec.rb +0 -35
  524. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  525. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  526. data/spec/unit/views/components/panel_spec.rb +0 -58
  527. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  528. data/spec/unit/views/components/site_title_spec.rb +0 -78
  529. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  530. data/spec/unit/views/components/table_for_spec.rb +0 -434
  531. data/spec/unit/views/components/tabs_spec.rb +0 -39
  532. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  533. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  534. data/spec/unit/views/pages/form_spec.rb +0 -51
  535. data/spec/unit/views/pages/index_spec.rb +0 -60
  536. data/spec/unit/views/pages/layout_spec.rb +0 -59
  537. data/spec/unit/views/pages/show_spec.rb +0 -33
  538. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  539. data/tasks/docs.rake +0 -37
  540. data/tasks/parallel_tests.rake +0 -66
  541. data/tasks/test.rake +0 -91
  542. data/tasks/yard.rake +0 -9
@@ -1,15 +1,19 @@
1
1
  module ActiveAdmin
2
- class AbstractViewFactory
3
- @@default_views = {}
2
+ class AbstractViewFactory < SettingsNode
4
3
 
5
4
  def self.register(view_hash)
6
5
  view_hash.each do |view_key, view_class|
7
- @@default_views[view_key] = view_class
6
+ super view_key, view_class
7
+ add_writer(view_key)
8
+ send "#{view_key}=", view_class
8
9
  end
9
10
  end
10
11
 
11
- def initialize
12
- @views = {}
12
+ def self.add_writer(name)
13
+ define_singleton_method("#{name}=") do |value|
14
+ value.builder_method name
15
+ instance_variable_set :"@#{name}", value
16
+ end
13
17
  end
14
18
 
15
19
  # Register a new view key with the view factory
@@ -25,61 +29,19 @@ module ActiveAdmin
25
29
  # another_view: OtherViewClass
26
30
  #
27
31
  def register(view_hash)
28
- view_hash.each do |view_key, view_class|
29
- @views[view_key] = view_class
30
- end
32
+ self.class.register view_hash
31
33
  end
32
34
 
33
35
  def default_for(key)
34
- @@default_views[key.to_sym]
35
- end
36
-
37
- def has_key?(key)
38
- @views.has_key?(key.to_sym) || @@default_views.has_key?(key.to_sym)
36
+ self.class.send key
39
37
  end
40
38
 
41
39
  def [](key)
42
- get_view_for_key(key)
40
+ send key
43
41
  end
44
42
 
45
43
  def []=(key, value)
46
- set_view_for_key(key, value)
47
- end
48
-
49
- def respond_to_missing?(method, include_private)
50
- key = key_from_method_name(method)
51
- if has_key?(key)
52
- true
53
- else
54
- super
55
- end
56
- end
57
-
58
- private
59
-
60
- def method_missing(method, *args)
61
- key = key_from_method_name(method)
62
- if has_key?(key)
63
- if method.to_s.include?('=')
64
- set_view_for_key key, args.first
65
- else
66
- get_view_for_key key
67
- end
68
- else
69
- super
70
- end
71
- end
72
-
73
- def key_from_method_name(method)
74
- method.to_s.tr('=', '').to_sym
75
- end
76
-
77
- def get_view_for_key(key)
78
- @views[key.to_sym] || @@default_views[key.to_sym]
79
- end
80
-
81
- def set_view_for_key(key, view)
82
- @views[key.to_sym] = view
44
+ send "#{key}=", value
83
45
  end
84
46
  end
85
47
  end
@@ -1,138 +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 a favicon
45
- inheritable_setting :favicon, false
46
-
47
- # Additional meta tags to place in head of logged in pages.
48
- inheritable_setting :meta_tags, {}
49
-
50
- # Additional meta tags to place in head of logged out pages.
51
- inheritable_setting :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
52
-
53
- # The view factory to use to generate all the view classes. Take
54
- # a look at ActiveAdmin::ViewFactory
55
- inheritable_setting :view_factory, ActiveAdmin::ViewFactory.new
56
-
57
- # The method to call in controllers to get the current user
58
- inheritable_setting :current_user_method, false
59
-
60
- # The method to call in the controllers to ensure that there
61
- # is a currently authenticated admin user
62
- inheritable_setting :authentication_method, false
63
-
64
- # The path to log user's out with. If set to a symbol, we assume
65
- # that it's a method to call which returns the path
66
- inheritable_setting :logout_link_path, :destroy_admin_user_session_path
67
-
68
- # The method to use when generating the link for user logout
69
- inheritable_setting :logout_link_method, :get
70
-
71
- # Whether the batch actions are enabled or not
72
- inheritable_setting :batch_actions, false
73
-
74
- # Whether filters are enabled
75
- inheritable_setting :filters, true
76
-
77
- # The namespace root.
78
- inheritable_setting :root_to, 'dashboard#index'
79
-
80
- # Options that a passed to root_to.
81
- inheritable_setting :root_to_options, {}
82
-
83
- # Display breadcrumbs
84
- inheritable_setting :breadcrumb, true
85
-
86
- # Default CSV options
87
- inheritable_setting :csv_options, { col_sep: ',', byte_order_mark: "\xEF\xBB\xBF" }
88
-
89
- # Default Download Links options
90
- inheritable_setting :download_links, true
91
-
92
- # The authorization adapter to use
93
- inheritable_setting :authorization_adapter, ActiveAdmin::AuthorizationAdapter
94
-
95
- # A proc to be used when a user is not authorized to view the current resource
96
- inheritable_setting :on_unauthorized_access, :rescue_active_admin_access_denied
97
-
98
- # A regex to detect unsupported browser, set to false to disable
99
- inheritable_setting :unsupported_browser_matcher, /MSIE [1-8]\.0/
100
-
101
- # Whether to display 'Current Filters' on search screen
102
- inheritable_setting :current_filters, true
103
-
104
- # Request parameters that are permitted by default
105
- inheritable_setting :permitted_params, [
106
- :utf8, :_method, :authenticity_token, :commit, :id
107
- ]
108
-
109
- # Set flash message keys that shouldn't show in ActiveAdmin
110
- inheritable_setting :flash_keys_to_except, ['timedout']
111
-
112
- # Set default localize format for Date/Time values
113
- setting :localize_format, :long
114
-
115
- # Include association filters by default
116
- inheritable_setting :include_default_association_filters, true
18
+ def settings
19
+ @settings ||= SettingsNode.build(ApplicationSettings)
20
+ end
117
21
 
118
- # Active Admin makes educated guesses when displaying objects, this is
119
- # the list of methods it tries calling in order
120
- setting :display_name_methods, [ :display_name,
121
- :full_name,
122
- :name,
123
- :username,
124
- :login,
125
- :title,
126
- :email,
127
- :to_s ]
22
+ def namespace_settings
23
+ @namespace_settings ||= SettingsNode.build(NamespaceSettings)
24
+ end
128
25
 
129
- # To make debugging easier, by default don't stream in development
130
- 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
131
29
 
132
- # == 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
133
39
 
134
- def allow_comments=(*)
135
- 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
136
43
  end
137
44
 
138
45
  include AssetRegistration
@@ -154,7 +61,7 @@ module ActiveAdmin
154
61
 
155
62
  # Registers a brand new configuration for the given resource.
156
63
  def register(resource, options = {}, &block)
157
- ns = options.fetch(:namespace){ default_namespace }
64
+ ns = options.fetch(:namespace) { default_namespace }
158
65
  namespace(ns).register resource, options, &block
159
66
  end
160
67
 
@@ -184,7 +91,7 @@ module ActiveAdmin
184
91
  # @&block The registration block.
185
92
  #
186
93
  def register_page(name, options = {}, &block)
187
- ns = options.fetch(:namespace){ default_namespace }
94
+ ns = options.fetch(:namespace) { default_namespace }
188
95
  namespace(ns).register_page name, options, &block
189
96
  end
190
97
 
@@ -205,7 +112,7 @@ module ActiveAdmin
205
112
  def load!
206
113
  unless loaded?
207
114
  ActiveSupport::Notifications.publish BeforeLoadEvent, self # before_load hook
208
- files.each{ |file| load file } # load files
115
+ files.each { |file| load file } # load files
209
116
  namespace(default_namespace) # init AA resources
210
117
  ActiveSupport::Notifications.publish AfterLoadEvent, self # after_load hook
211
118
  @@loaded = true
@@ -213,22 +120,26 @@ module ActiveAdmin
213
120
  end
214
121
 
215
122
  def load(file)
216
- DatabaseHitDuringLoad.capture{ super }
123
+ DatabaseHitDuringLoad.capture { super }
217
124
  end
218
125
 
219
126
  # Returns ALL the files to be loaded
220
127
  def files
221
- load_paths.flatten.compact.uniq.flat_map{ |path| Dir["#{path}/**/*.rb"] }
128
+ load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"] }
222
129
  end
223
130
 
224
- def router
225
- @router ||= Router.new(self)
226
- end
227
-
228
- # 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]
229
140
  def routes(rails_router)
230
141
  load!
231
- router.apply(rails_router)
142
+ Router.new(router: rails_router, namespaces: namespaces).apply
232
143
  end
233
144
 
234
145
  # Adds before, around and after filters to all controllers.
@@ -250,12 +161,11 @@ module ActiveAdmin
250
161
  controllers
251
162
  end
252
163
 
253
- private
164
+ private
254
165
 
255
166
  def register_default_assets
256
- register_stylesheet 'active_admin.css', media: 'screen'
167
+ register_stylesheet 'active_admin.css', media: 'screen'
257
168
  register_stylesheet 'active_admin/print.css', media: 'print'
258
-
259
169
  register_javascript 'active_admin.js'
260
170
  end
261
171
 
@@ -283,11 +193,11 @@ module ActiveAdmin
283
193
  # Rails is about to unload all the app files (e.g. models), so we
284
194
  # should first unload the classes generated by Active Admin, otherwise
285
195
  # they will contain references to the stale (unloaded) classes.
286
- Reloader.to_prepare(prepend: true, &unload_active_admin)
196
+ ActiveSupport::Reloader.to_prepare(prepend: true, &unload_active_admin)
287
197
  else
288
198
  # If the user has configured the app to always reload app files after
289
199
  # each request, so we should unload the generated classes too.
290
- Reloader.to_complete(&unload_active_admin)
200
+ ActiveSupport::Reloader.to_complete(&unload_active_admin)
291
201
  end
292
202
 
293
203
  admin_dirs = {}
@@ -302,7 +212,7 @@ module ActiveAdmin
302
212
 
303
213
  app.reloaders << routes_reloader
304
214
 
305
- Reloader.to_prepare do
215
+ ActiveSupport::Reloader.to_prepare do
306
216
  # Rails might have reloaded the routes for other reasons (e.g.
307
217
  # routes.rb has changed), in which case Active Admin would have been
308
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
@@ -10,7 +10,6 @@ module ActiveAdmin
10
10
 
11
11
  Auth = Authorization
12
12
 
13
-
14
13
  # Active Admin's default authorization adapter. This adapter returns true
15
14
  # for all requests to `#authorized?`. It should be the starting point for
16
15
  # implementing your own authorization adapter.
@@ -19,7 +18,6 @@ module ActiveAdmin
19
18
  class AuthorizationAdapter
20
19
  attr_reader :resource, :user
21
20
 
22
-
23
21
  # Initialize a new authorization adapter. This happens on each and
24
22
  # every request to a controller.
25
23
  #
@@ -54,7 +52,6 @@ module ActiveAdmin
54
52
  true
55
53
  end
56
54
 
57
-
58
55
  # A hook method for authorization libraries to scope the collection. By
59
56
  # default, we just return the same collection. The returned scope is used
60
57
  # as the starting point for all queries to the db in the controller.
@@ -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
@@ -38,7 +38,6 @@ module ActiveAdmin
38
38
  active_admin_authorization.authorized?(action, subject)
39
39
  end
40
40
 
41
-
42
41
  # Authorize the action and subject. Available in the controller
43
42
  # as well as all the views. If the action is not allowd, it raises
44
43
  # an ActiveAdmin::AccessDenied exception.
@@ -101,7 +100,7 @@ module ActiveAdmin
101
100
  end
102
101
 
103
102
  def dispatch_active_admin_access_denied(exception)
104
- 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)
105
104
  end
106
105
 
107
106
  def rescue_active_admin_access_denied(exception)
@@ -113,16 +112,14 @@ module ActiveAdmin
113
112
  redirect_backwards_or_to_root
114
113
  end
115
114
 
116
- body = ActiveAdmin::Dependency.rails.render_key
117
-
118
- format.csv { render body => error, status: :unauthorized }
115
+ format.csv { render body: error, status: :unauthorized }
119
116
  format.json { render json: { error: error }, status: :unauthorized }
120
117
  format.xml { render xml: "<error>#{error}</error>", status: :unauthorized }
121
118
  end
122
119
  end
123
120
 
124
121
  def redirect_backwards_or_to_root
125
- ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
122
+ redirect_back fallback_location: active_admin_root
126
123
  end
127
124
 
128
125
  end
@@ -4,11 +4,7 @@ module ActiveAdmin
4
4
  extend ActiveSupport::Concern
5
5
 
6
6
  included do
7
- if ActiveAdmin::Dependency.rails >= 4
8
- before_action :set_current_tab
9
- else
10
- before_filter :set_current_tab
11
- end
7
+ before_action :set_current_tab
12
8
  helper_method :current_menu
13
9
  end
14
10
 
@@ -22,15 +18,15 @@ module ActiveAdmin
22
18
  # Get's called through a before filter
23
19
  def set_current_tab
24
20
  @current_tab = if current_menu && active_admin_config.belongs_to? && parent?
25
- parent_item = active_admin_config.belongs_to_config.target.menu_item
26
- if current_menu.include? parent_item
27
- parent_item
28
- else
29
- active_admin_config.menu_item
30
- end
31
- else
32
- active_admin_config.menu_item
33
- end
21
+ parent_item = active_admin_config.belongs_to_config.target.menu_item
22
+ if current_menu.include? parent_item
23
+ parent_item
24
+ else
25
+ active_admin_config.menu_item
26
+ end
27
+ else
28
+ active_admin_config.menu_item
29
+ end
34
30
  end
35
31
 
36
32
  end
@@ -10,13 +10,8 @@ module ActiveAdmin
10
10
 
11
11
  layout :determine_active_admin_layout
12
12
 
13
- if ActiveAdmin::Dependency.rails >= 4
14
- before_action :only_render_implemented_actions
15
- before_action :authenticate_active_admin_user
16
- else
17
- before_filter :only_render_implemented_actions
18
- before_filter :authenticate_active_admin_user
19
- end
13
+ before_action :only_render_implemented_actions
14
+ before_action :authenticate_active_admin_user
20
15
 
21
16
  class << self
22
17
  # Ensure that this method is available for the DSL
@@ -27,6 +22,11 @@ module ActiveAdmin
27
22
  attr_accessor :active_admin_config
28
23
  end
29
24
 
25
+ include Authorization
26
+ include Menu
27
+
28
+ private
29
+
30
30
  # By default Rails will render un-implemented actions when the view exists. Because Active
31
31
  # Admin allows you to not render any of the actions by using the #actions method, we need
32
32
  # to check if they are implemented.
@@ -34,11 +34,6 @@ module ActiveAdmin
34
34
  raise AbstractController::ActionNotFound unless action_methods.include?(params[:action])
35
35
  end
36
36
 
37
- include Menu
38
- include Authorization
39
-
40
- private
41
-
42
37
  # Calls the authentication method as defined in ActiveAdmin.authentication_method
43
38
  def authenticate_active_admin_user
44
39
  send(active_admin_namespace.authentication_method) if active_admin_namespace.authentication_method
@@ -64,7 +59,6 @@ module ActiveAdmin
64
59
  end
65
60
  helper_method :active_admin_namespace
66
61
 
67
-
68
62
  ACTIVE_ADMIN_ACTIONS = [:index, :show, :new, :create, :edit, :update, :destroy]
69
63
 
70
64
  # Determine which layout to use.
@@ -80,7 +74,7 @@ module ActiveAdmin
80
74
 
81
75
  def active_admin_root
82
76
  controller, action = active_admin_namespace.root_to.split '#'
83
- {controller: controller, action: action}
77
+ { controller: controller, action: action }
84
78
  end
85
79
 
86
80
  end
@@ -5,9 +5,9 @@ module ActiveAdmin
5
5
  # Controller action that is called when submitting the batch action form
6
6
  def batch_action
7
7
  if action_present?
8
- selection = params[:collection_selection] || []
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 = [
@@ -51,22 +51,14 @@ module ActiveAdmin
51
51
  @batch_actions = {}
52
52
  end
53
53
 
54
- # Path to the batch action itself
55
- def batch_action_path(params = {})
56
- path = [route_collection_path(params), "batch_action"].join("/")
57
- query = params.slice(:q, :scope)
58
- query = query.permit!.to_h if query.respond_to? :permit!
59
- [path, query.to_param].reject(&:blank?).join("?")
60
- end
61
-
62
54
  private
63
55
 
64
56
  # @return [ActiveAdmin::BatchAction] The default "delete" action
65
57
  def add_default_batch_action
66
58
  destroy_options = {
67
59
  priority: 100,
68
- confirm: proc{ I18n.t('active_admin.batch_actions.delete_confirmation', plural_model: active_admin_config.plural_resource_label.downcase) },
69
- 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) }
70
62
  }
71
63
 
72
64
  add_batch_action :destroy, proc { I18n.t('active_admin.delete') }, destroy_options do |selected_ids|
@@ -92,7 +84,7 @@ module ActiveAdmin
92
84
 
93
85
  attr_reader :block, :title, :sym
94
86
 
95
- 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' }
96
88
 
97
89
  # Create a Batch Action
98
90
  #
@@ -120,7 +112,11 @@ module ActiveAdmin
120
112
  # => You can pass a hash of options to `:form` that will be rendered as form input fields for the user to fill out.
121
113
  #
122
114
  def initialize(sym, title, options = {}, &block)
123
- @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]
124
120
  @block ||= proc {}
125
121
  end
126
122
 
@@ -141,7 +137,7 @@ module ActiveAdmin
141
137
  # Returns the display if block. If the block was not explicitly defined
142
138
  # a default block always returning true will be returned.
143
139
  def display_if_block
144
- @options[:if] || proc{ true }
140
+ @options[:if] || proc { true }
145
141
  end
146
142
 
147
143
  # Used for sorting
@@ -15,7 +15,7 @@ module ActiveAdmin
15
15
  # Open a form with two hidden input fields:
16
16
  # batch_action => name of the specific action called
17
17
  # batch_action_inputs => a JSON string of any requested confirmation values
18
- text_node form_tag active_admin_config.batch_action_path(params), id: options[:id]
18
+ text_node form_tag active_admin_config.route_batch_action_path(params, url_options), id: options[:id]
19
19
  input name: :batch_action, id: :batch_action, type: :hidden
20
20
  input name: :batch_action_inputs, id: :batch_action_inputs, type: :hidden
21
21
 
@@ -15,7 +15,7 @@ module ActiveAdmin
15
15
  end
16
16
 
17
17
  # We don't want to wrap the action list (or any other children) in
18
- # an unecessary div, so instead we just return the children
18
+ # an unnecessary div, so instead we just return the children
19
19
  def to_s
20
20
  children.to_s
21
21
  end