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,3 +1,7 @@
1
+ ---
2
+ redirect_from: /docs/13-authorization-adapter.html
3
+ ---
4
+
1
5
  # Authorization Adapter
2
6
 
3
7
  Active Admin offers the ability to define and use your own authorization
@@ -6,8 +10,8 @@ taken. By default, '#authorized?' returns true.
6
10
 
7
11
  ## Setting up your own AuthorizationAdapter
8
12
 
9
- Setting up your own `AuthorizationAdapter` is easy! The following example shows
10
- how to set up and tie your authorization adapter class to Active Admin:
13
+ The following example shows how to set up and tie your authorization
14
+ adapter class to Active Admin:
11
15
 
12
16
  ```ruby
13
17
  # app/models/only_authors_authorization.rb
@@ -37,7 +41,11 @@ application's `config/initializers/active_admin.rb` and add/modify the line:
37
41
  config.authorization_adapter = "OnlyAuthorsAuthorization"
38
42
  ```
39
43
 
40
- Authorization adapters can be configured per ActiveAdmin namespace as well, for example:
44
+ Now, whenever a controller action is performed, the `OnlyAuthorsAuthorization`'s
45
+ `#authorized?` method will be called.
46
+
47
+ Authorization adapters can be configured per ActiveAdmin namespace as well, for
48
+ example:
41
49
 
42
50
  ```ruby
43
51
  ActiveAdmin.setup do |config|
@@ -50,9 +58,6 @@ ActiveAdmin.setup do |config|
50
58
  end
51
59
  ```
52
60
 
53
- Now, whenever a controller action is performed, the `OnlyAuthorsAuthorization`'s
54
- `#authorized?` method will be called.
55
-
56
61
  ## Getting Access to the Current User
57
62
 
58
63
  From within your authorization adapter, you can call the `#user` method to
@@ -70,9 +75,9 @@ end
70
75
 
71
76
  ## Scoping Collections in Authorization Adapters
72
77
 
73
- `ActiveAdmin::AuthorizationAdapter` also provides a hook method (`#scope_collection`)
74
- for the adapter to scope the resource's collection. For example, you may want to
75
- centralize the scoping:
78
+ `ActiveAdmin::AuthorizationAdapter` also provides a hook method
79
+ (`#scope_collection`) for the adapter to scope the resource's collection. For
80
+ example, you may want to centralize the scoping:
76
81
 
77
82
  ```ruby
78
83
  class OnlyMyAccount < ActiveAdmin::AuthorizationAdapter
@@ -101,7 +106,9 @@ class OnlyDashboard < ActiveAdmin::AuthorizationAdapter
101
106
  def authorized?(action, subject = nil)
102
107
  case subject
103
108
  when ActiveAdmin::Page
104
- action == :read && subject.name == "Dashboard" && subject.namespace.name == :admin
109
+ action == :read &&
110
+ subject.name == "Dashboard" &&
111
+ subject.namespace.name == :admin
105
112
  else
106
113
  false
107
114
  end
@@ -113,24 +120,23 @@ end
113
120
 
114
121
  By default Active Admin simplifies the controller actions into 4 actions:
115
122
 
116
- * `:read` - This controls if the user can view the menu item as well as the
117
- index and show screens.
118
- * `:create` - This controls if the user can view the new screen and submit
119
- the form to the create action.
120
- * `:update` - This controls if the user can view the edit screen and submit
121
- the form to the update action.
122
- * `:destroy` - This controls if the user can delete a resource.
123
+ * `:read` - This controls if the user can view the menu item as well as the
124
+ index and show screens.
125
+ * `:create` - This controls if the user can view the new screen and submit
126
+ the form to the create action.
127
+ * `:update` - This controls if the user can view the edit screen and submit
128
+ the form to the update action.
129
+ * `:destroy` - This controls if the user can delete a resource.
123
130
 
124
131
  Each of these actions is available as a constant. Eg: `:read` is available as
125
132
  `ActiveAdmin::Authorization::READ`.
126
133
 
127
-
128
134
  ## Checking for Authorization in Controllers and Views
129
135
 
130
136
  Active Admin provides a helper method to check if the current user is
131
137
  authorized to perform an action on a subject.
132
138
 
133
- Simply use the `#authorized?(action, subject) method to check.
139
+ Use the `#authorized?(action, subject)` method to check.
134
140
 
135
141
  ```ruby
136
142
  ActiveAdmin.register Post do
@@ -174,28 +180,28 @@ end
174
180
 
175
181
  Sub-classing `ActiveAdmin::AuthorizationAdapter` is fairly low level. Many times
176
182
  it's nicer to have a simpler DSL for managing authorization. Active Admin
177
- provides an adapter out of the box for [CanCan](https://github.com/ryanb/cancan)
178
- and [CanCanCan](https://github.com/CanCanCommunity/cancancan).
183
+ provides an adapter out of the box for [CanCanCan](https://github.com/CanCanCommunity/cancancan).
179
184
 
180
- To use the CanCan adapter, simply update the configuration in the Active Admin
185
+ To use the CanCan adapter, update the configuration in the Active Admin
181
186
  initializer:
182
187
 
183
188
  ```ruby
184
189
  config.authorization_adapter = ActiveAdmin::CanCanAdapter
185
190
  ```
186
191
 
187
- You can also specify a method to be called on unauthorized access. This is necessary
188
- in order to prevent a redirect loop that can happen if a user tries to access a page
189
- they don't have permissions for (see [#2081](https://github.com/activeadmin/activeadmin/issues/2081)).
192
+ You can also specify a method to be called on unauthorized access. This is
193
+ necessary in order to prevent a redirect loop that can happen if a user tries to
194
+ access a page they don't have permissions for (see
195
+ [#2081](https://github.com/activeadmin/activeadmin/issues/2081)).
190
196
 
191
197
  ```ruby
192
198
  config.on_unauthorized_access = :access_denied
193
199
  ```
194
200
 
195
- The method `access_denied` would be defined in `application_controller.rb`. Here is one
196
- example that redirects the user from the page they don't have permission to
197
- access to a resource they have permission to access (organizations in this case), and
198
- also displays the error message in the browser:
201
+ The method `access_denied` would be defined in `application_controller.rb`. Here
202
+ is one example that redirects the user from the page they don't have permission
203
+ to access to a resource they have permission to access (organizations in this
204
+ case), and also displays the error message in the browser:
199
205
 
200
206
  ```ruby
201
207
  class ApplicationController < ActionController::Base
@@ -214,7 +220,7 @@ changed from the initializer:
214
220
  config.cancan_ability_class = "MyCustomAbility"
215
221
  ```
216
222
 
217
- Now you can simply use CanCan or CanCanCan the way that you would expect and
223
+ Now you can simply use CanCanCan the way that you would expect and
218
224
  Active Admin will use it for authorization:
219
225
 
220
226
  ```ruby
@@ -226,23 +232,54 @@ class Ability
226
232
  can :manage, Post
227
233
  can :read, User
228
234
  can :manage, User, id: user.id
229
- can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: :admin
235
+ can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: "admin"
230
236
  end
231
237
 
232
238
  end
233
239
  ```
234
240
 
235
- To view more details about the API's, visit project pages of [CanCan](https://github.com/ryanb/cancan) and [CanCanCan](https://github.com/CanCanCommunity/cancancan).
241
+ To view more details about the API's, visit project pages of
242
+ [CanCanCan](https://github.com/CanCanCommunity/cancancan).
236
243
 
237
244
  ## Using the Pundit Adapter
238
245
 
239
- Active Admin provides an adapter out of the box also for [Pundit](https://github.com/elabs/pundit).
246
+ Active Admin also provides an adapter out of the box for
247
+ [Pundit](https://github.com/varvet/pundit).
240
248
 
241
- To use the Pundit adapter, simply update the configuration in the Active Admin
249
+ To use the Pundit adapter, update the configuration in the Active Admin
242
250
  initializer:
243
251
 
244
252
  ```ruby
245
253
  config.authorization_adapter = ActiveAdmin::PunditAdapter
246
254
  ```
247
255
 
248
- You can simply use Pundit the way that you would expect and Active Admin will use it for authorization. Check Pundit's documentation to [set up Pundit in your application](https://github.com/elabs/pundit#installation). If you want to use batch actions just ensure that `destroy_all?` method is defined in your policy class. You can use this [template policy](https://github.com/activeadmin/activeadmin/blob/master/spec/support/templates/policies/application_policy.rb) in your application instead of default one generated by Pundit's `rails g pundit:install` command.
256
+ Once that's done, Active Admin will pick up your Pundit policies, and use
257
+ them for authorization. For more information about setting up Pundit, see
258
+ [their documentation](https://github.com/varvet/pundit#installation).
259
+
260
+ Pundit also has [verify_authorized and/or verify_policy_scoped
261
+ methods](https://github.com/varvet/pundit#ensuring-policies-and-scopes-are-used)
262
+ to enforce usage of `authorized` and `policy_scope`. This conflicts with Active
263
+ Admin's authorization architecture, so if you're using those features, you'll
264
+ want to disable them for Active Admin's controllers:
265
+
266
+ ```ruby
267
+ class ApplicationController < ActionController::Base
268
+ include Pundit
269
+ after_action :verify_authorized, except: :index, unless: :active_admin_controller?
270
+ after_action :verify_policy_scoped, only: :index, unless: :active_admin_controller?
271
+
272
+ def active_admin_controller?
273
+ is_a?(ActiveAdmin::BaseController)
274
+ end
275
+ end
276
+ ```
277
+
278
+ If you want to use batch actions, ensure that `destroy_all?` method is defined
279
+ in your policy class. You can use this [template
280
+ policy](https://github.com/activeadmin/activeadmin/blob/master/spec/support/templates/policies/application_policy.rb)
281
+ in your application instead of default one generated by Pundit's
282
+ `rails g pundit:install` command.
283
+
284
+ In addition, there are [example policies](https://github.com/activeadmin/activeadmin/tree/master/spec/support/templates/policies/active_admin)
285
+ for restricting access to ActiveAdmin's pages and comments.
data/docs/14-gotchas.md CHANGED
@@ -1,21 +1,29 @@
1
- #Gotchas
1
+ ---
2
+ redirect_from: /docs/14-gotchas.html
3
+ ---
4
+
5
+ # Gotchas
2
6
 
3
7
  ## Security
4
8
 
5
9
  ### Spreadsheet applications vulnerable to unescaped CSV data
6
10
 
7
- If your CSV export includes untrusted data provided by your users, it's possible that they could include an executable formula that could call arbitrary commands on your computer. See [#4256](https://github.com/activeadmin/activeadmin/issues/4256) for more details.
11
+ If your CSV export includes untrusted data provided by your users, it's possible
12
+ that they could include an executable formula that could call arbitrary commands
13
+ on your computer. See
14
+ [#4256](https://github.com/activeadmin/activeadmin/issues/4256) for more
15
+ details.
8
16
 
9
17
  ## Session Commits & Asset Pipeline
10
18
 
11
- When configuring the asset pipeline ensure that the asset prefix
12
- (`config.assets.prefix`) is not the same as the namespace of ActiveAdmin
13
- (default namespace is `/admin`). If they are the same Sprockets will prevent the
14
- session from being committed. Flash messages won't work and you will be unable to
19
+ When configuring the asset pipeline ensure that the asset prefix
20
+ (`config.assets.prefix`) is not the same as the namespace of ActiveAdmin
21
+ (default namespace is `/admin`). If they are the same Sprockets will prevent the
22
+ session from being committed. Flash messages won't work and you will be unable to
15
23
  use the session for storing anything.
16
24
 
17
- For more information see the following post:
18
- [http://www.intridea.com/blog/2013/3/20/rails-assets-prefix-may-disable-your-session](http://www.intridea.com/blog/2013/3/20/rails-assets-prefix-may-disable-your-session)
25
+ For more information see [the following
26
+ post](http://www.intridea.com/blog/2013/3/20/rails-assets-prefix-may-disable-your-session).
19
27
 
20
28
  ## Helpers
21
29
 
@@ -24,13 +32,14 @@ find a solution.
24
32
 
25
33
  ### Helpers are not reloading in development
26
34
 
27
- This is a known and still open [issue](https://github.com/activeadmin/activeadmin/issues/697)
28
- the only way is to restart your server each time you change a helper.
35
+ This is a known and still open
36
+ [issue](https://github.com/activeadmin/activeadmin/issues/697) the only way is
37
+ to restart your server each time you change a helper.
29
38
 
30
39
  ### Helper maybe not included by default
31
40
 
32
- If you use `config.action_controller.include_all_helpers = false` in your application config,
33
- you need to include it by hand.
41
+ If you use `config.action_controller.include_all_helpers = false` in your
42
+ application config, you need to include it by hand.
34
43
 
35
44
  #### Solutions
36
45
 
@@ -59,23 +68,27 @@ end
59
68
 
60
69
  ## CSS
61
70
 
62
- In order to avoid the override of your application style with the Active Admin one, you can do one of these things:
63
- * You can properly move the generated file `active_admin.scss` from `app/assets/stylesheets` to `vendor/assets/stylesheets`.
64
- * You can remove all `require_tree` commands from your root level css files, where the `active_admin.scss` is in the tree.
71
+ In order to avoid the override of your application style with the Active Admin
72
+ one, you can do one of these things:
73
+
74
+ * You can properly move the generated file `active_admin.scss` from
75
+ `app/assets/stylesheets` to `vendor/assets/stylesheets`.
76
+ * You can remove all `require_tree` commands from your root level css files,
77
+ where the `active_admin.scss` is in the tree.
65
78
 
66
79
  ## Conflicts
67
80
 
68
81
  ### With gems that provides a `search` class method on a model
69
82
 
70
- If a gem defines a `search` class method on a model, this can result in conflicts
83
+ If a gem defines a `search` class method on a model, this can result in conflicts
71
84
  with the same method provided by `ransack` (a dependency of ActiveAdmin).
72
85
 
73
- Each of this conflicts need to solved is a different way. Some solutions are
86
+ Each of this conflicts need to solved is a different way. Some solutions are
74
87
  listed below.
75
88
 
76
89
  #### `tire`, `retire` and `elasticsearch-rails`
77
90
 
78
- This conflict can be solved, by using explicitly the `search` method of `tire`,
91
+ This conflict can be solved, by using explicitly the `search` method of `tire`,
79
92
  `retire` or `elasticsearch-rails`:
80
93
 
81
94
  ##### For `tire` and `retire`
@@ -95,6 +108,31 @@ YourModel.__elasticsearch__.search
95
108
  ```ruby
96
109
  YourModel.solr_search
97
110
  ```
111
+
112
+ ### Rails 5 scaffold generators
113
+
114
+ Active Admin requires the `inherited_resources` gem which may break scaffolding
115
+ under Rails 5 as it replaces the default scaffold generator. The solution is to
116
+ configure the default controller in `config/application.rb` as outlined in
117
+ [activeadmin/inherited_resources#195](https://github.com/activeadmin/inherited_resources/issues/195)
118
+
119
+ ```ruby
120
+ module SampleApp
121
+ class Application < Rails::Application
122
+ ...
123
+ config.app_generators.scaffold_controller = :scaffold_controller
124
+ ...
125
+ end
126
+ end
127
+ ```
128
+
98
129
  ## Authentication & Application Controller
99
130
 
100
- The `ActiveAdmin::BaseController` inherits from the `ApplicationController`. Any authentication method(s) specified in the `ApplicationController` callbacks will be called instead of the authentication method in the active admin config file. For example, if the ApplicationController has a callback `before_action :custom_authentication_method` and the config file's authentication method is `config.authentication_method = :authenticate_active_admin_user`, then `custom_authentication_method` will be called instead of `authenticate_active_admin_user`.
131
+ The `ActiveAdmin::BaseController` inherits from the `ApplicationController`. Any
132
+ authentication method(s) specified in the `ApplicationController` callbacks will
133
+ be called instead of the authentication method in the active admin config file.
134
+ For example, if the ApplicationController has a callback `before_action
135
+ :custom_authentication_method` and the config file's authentication method is
136
+ `config.authentication_method = :authenticate_active_admin_user`, then
137
+ `custom_authentication_method` will be called instead of
138
+ `authenticate_active_admin_user`.
@@ -1,3 +1,7 @@
1
+ ---
2
+ redirect_from: /docs/2-resource-customization.html
3
+ ---
4
+
1
5
  # Working with Resources
2
6
 
3
7
  Every Active Admin resource corresponds to a Rails model. So before creating a
@@ -6,7 +10,7 @@ resource you must first create a Rails model for it.
6
10
  ## Create a Resource
7
11
 
8
12
  The basic command for creating a resource is `rails g active_admin:resource Post`.
9
- The generator will produce an empty `app/admin/post.rb` file like so:
13
+ The generator will produce an empty `app/admin/posts.rb` file like so:
10
14
 
11
15
  ```ruby
12
16
  ActiveAdmin.register Post do
@@ -16,9 +20,6 @@ end
16
20
 
17
21
  ## Setting up Strong Parameters
18
22
 
19
- Rails 4 replaces `attr_accessible` with [Strong Parameters](https://github.com/rails/strong_parameters),
20
- which moves attribute whitelisting from the model to the controller.
21
-
22
23
  Use the `permit_params` method to define which attributes may be changed:
23
24
 
24
25
  ```ruby
@@ -27,8 +28,8 @@ ActiveAdmin.register Post do
27
28
  end
28
29
  ```
29
30
 
30
- Any form field that sends multiple values (such as a HABTM association, or an array attribute)
31
- needs to pass an empty array to `permit_params`:
31
+ Any form field that sends multiple values (such as a HABTM association, or an
32
+ array attribute) needs to pass an empty array to `permit_params`:
32
33
 
33
34
  If your HABTM is `roles`, you should permit `role_ids: []`
34
35
 
@@ -65,7 +66,17 @@ ActiveAdmin.register Post do
65
66
  end
66
67
  ```
67
68
 
68
- The `permit_params` call creates a method called `permitted_params`. You should use this method when overriding `create` or `update` actions:
69
+ If your resource is nested, declare `permit_params` after `belongs_to`:
70
+
71
+ ```ruby
72
+ ActiveAdmin.register Post do
73
+ belongs_to :user
74
+ permit_params :title, :content, :publisher_id
75
+ end
76
+ ```
77
+
78
+ The `permit_params` call creates a method called `permitted_params`. You should
79
+ use this method when overriding `create` or `update` actions:
69
80
 
70
81
  ```ruby
71
82
  ActiveAdmin.register Post do
@@ -94,6 +105,26 @@ ActiveAdmin.register Post do
94
105
  end
95
106
  ```
96
107
 
108
+ ## Renaming Action Items
109
+
110
+ You can use translations to override labels and page titles for actions such as
111
+ new, edit, and destroy by providing a resource specific translation. For
112
+ example, to change 'New Offer' to 'Make an Offer' add the following in
113
+ config/locales/[en].yml:
114
+
115
+ ```yaml
116
+ en:
117
+ active_admin:
118
+ resources:
119
+ offer: # Registered resource
120
+ new_model: 'Make an Offer' # new action item
121
+ edit_model: 'Change Offer' # edit action item
122
+ delete_model: 'Cancel Offer' # delete action item
123
+ ```
124
+
125
+ See the [default en.yml](/config/locales/en.yml) locale file for
126
+ existing translations and examples.
127
+
97
128
  ## Rename the Resource
98
129
 
99
130
  By default, any references to the resource (menu, routes, buttons, etc) in the
@@ -172,6 +203,7 @@ end
172
203
  ### Conditionally Showing / Hiding Menu Items
173
204
 
174
205
  Menu items can be shown or hidden at runtime using the `:if` option.
206
+
175
207
  ```ruby
176
208
  ActiveAdmin.register Post do
177
209
  menu if: proc{ current_user.can_edit_posts? }
@@ -246,9 +278,15 @@ config.namespace :admin do |admin|
246
278
  menu.add label: "The Application", url: "/", priority: 0
247
279
 
248
280
  menu.add label: "Sites" do |sites|
249
- sites.add label: "Google", url: "http://google.com", html_options: { target: :blank }
250
- sites.add label: "Facebook", url: "http://facebook.com"
251
- sites.add label: "Github", url: "http://github.com"
281
+ sites.add label: "Google",
282
+ url: "http://google.com",
283
+ html_options: { target: :blank }
284
+
285
+ sites.add label: "Facebook",
286
+ url: "http://facebook.com"
287
+
288
+ sites.add label: "Github",
289
+ url: "http://github.com"
252
290
  end
253
291
  end
254
292
  end
@@ -287,7 +325,8 @@ end
287
325
 
288
326
  ## Eager loading
289
327
 
290
- A common way to increase page performance is to elimate N+1 queries by eager loading associations:
328
+ A common way to increase page performance is to eliminate N+1 queries by eager
329
+ loading associations:
291
330
 
292
331
  ```ruby
293
332
  ActiveAdmin.register Post do
@@ -297,10 +336,13 @@ end
297
336
 
298
337
  ## Customizing resource retrieval
299
338
 
300
- Our controllers are built on [Inherited Resources](https://github.com/josevalim/inherited_resources),
301
- so you can use [all of its features](https://github.com/josevalim/inherited_resources#overwriting-defaults).
339
+ Our controllers are built on [Inherited
340
+ Resources](https://github.com/activeadmin/inherited_resources), so you can use
341
+ [all of its
342
+ features](https://github.com/activeadmin/inherited_resources#overwriting-defaults).
302
343
 
303
- If you need to customize the collection properties, you can overwrite the `scoped_collection` method.
344
+ If you need to customize the collection properties, you can overwrite the
345
+ `scoped_collection` method.
304
346
 
305
347
  ```ruby
306
348
  ActiveAdmin.register Post do
@@ -312,8 +354,9 @@ ActiveAdmin.register Post do
312
354
  end
313
355
  ```
314
356
 
315
- If you need to completely replace the record retrieving code (e.g., you have a custom
316
- `to_param` implementation in your models), override the `resource` method on the controller:
357
+ If you need to completely replace the record retrieving code (e.g., you have a
358
+ custom `to_param` implementation in your models), override the `find_resource` method
359
+ on the controller:
317
360
 
318
361
  ```ruby
319
362
  ActiveAdmin.register Post do
@@ -325,8 +368,9 @@ ActiveAdmin.register Post do
325
368
  end
326
369
  ```
327
370
 
328
- Note that if you use an authorization library like CanCan, you should be careful to not
329
- write code like this, otherwise **your authorization rules won't be applied**:
371
+ Note that if you use an authorization library like CanCan, you should be careful
372
+ to not write code like this, otherwise **your authorization rules won't be
373
+ applied**:
330
374
 
331
375
  ```ruby
332
376
  ActiveAdmin.register Post do
@@ -364,8 +408,8 @@ ActiveAdmin.register Project do
364
408
 
365
409
  sidebar "Project Details", only: [:show, :edit] do
366
410
  ul do
367
- li link_to "Tickets", admin_project_tickets_path(project)
368
- li link_to "Milestones", admin_project_milestones_path(project)
411
+ li link_to "Tickets", admin_project_tickets_path(resource)
412
+ li link_to "Milestones", admin_project_milestones_path(resource)
369
413
  end
370
414
  end
371
415
  end
@@ -1,3 +1,7 @@
1
+ ---
2
+ redirect_from: /docs/3-index-pages/custom-index.html
3
+ ---
4
+
1
5
  # Custom Index
2
6
 
3
7
  If the supplied Active Admin index components are insufficient for your project
@@ -26,6 +30,6 @@ The build method takes a PagePresenter object and collection of whatever you
26
30
  choose.
27
31
 
28
32
  The `index_name` class method takes no arguments and returns a string that should
29
- be representative of the the class name. If this method is not defined, your
33
+ be representative of the class name. If this method is not defined, your
30
34
  index component will not be able take advantage of Active Admin's
31
35
  *multiple index pages* feature.
@@ -1,8 +1,6 @@
1
- <!--
2
- WARNING: Please DO NOT edit this file! Update
3
- source documentation in lib/active_admin/views
4
- and execute rake yard to regenerate it.
5
- -->
1
+ ---
2
+ redirect_from: /docs/3-index-pages/index-as-block.html
3
+ ---
6
4
 
7
5
  # Index as a Block
8
6
 
@@ -1,8 +1,6 @@
1
- <!--
2
- WARNING: Please DO NOT edit this file! Update
3
- source documentation in lib/active_admin/views
4
- and execute rake yard to regenerate it.
5
- -->
1
+ ---
2
+ redirect_from: /docs/3-index-pages/index-as-blog.html
3
+ ---
6
4
 
7
5
  # Index as Blog
8
6
 
@@ -30,7 +28,7 @@ end
30
28
  ```
31
29
 
32
30
  Second, you can pass a block to the tile option which will then be
33
- used as the contents fo the title. The resource being rendered
31
+ used as the contents of the title. The resource being rendered
34
32
  is passed in to the block. For Example:
35
33
 
36
34
  ```ruby
@@ -1,8 +1,6 @@
1
- <!--
2
- WARNING: Please DO NOT edit this file! Update
3
- source documentation in lib/active_admin/views
4
- and execute rake yard to regenerate it.
5
- -->
1
+ ---
2
+ redirect_from: /docs/3-index-pages/index-as-grid.html
3
+ ---
6
4
 
7
5
  # Index as a Grid
8
6
 
@@ -1,8 +1,6 @@
1
- <!--
2
- WARNING: Please DO NOT edit this file! Update
3
- source documentation in lib/active_admin/views
4
- and execute rake yard to regenerate it.
5
- -->
1
+ ---
2
+ redirect_from: /docs/3-index-pages/index-as-table.html
3
+ ---
6
4
 
7
5
  # Index as a Table
8
6
 
@@ -86,8 +84,6 @@ index do
86
84
  column :title
87
85
  actions defaults: false do |post|
88
86
  item "View", admin_post_path(post)
89
- item "Edit", edit_admin_post_path(post)
90
- item "Delete", admin_post_path(post), method: :delete
91
87
  end
92
88
  end
93
89
  ```
@@ -115,7 +111,8 @@ index do
115
111
  end
116
112
  ```
117
113
 
118
- In addition, you can insert the position of the row in the greater collection by using the index_column special command:
114
+ In addition, you can insert the position of the row in the greater
115
+ collection by using the index_column special command:
119
116
 
120
117
  ```ruby
121
118
  index do
@@ -125,7 +122,8 @@ index do
125
122
  end
126
123
  ```
127
124
 
128
- index_column take an optional offset parameter to allow a developer to set the starting number for the index (default is 1).
125
+ index_column take an optional offset parameter to allow a developer to set
126
+ the starting number for the index (default is 1).
129
127
 
130
128
  ## Sorting
131
129
 
@@ -133,9 +131,7 @@ When a column is generated from an Active Record attribute, the table is
133
131
  sortable by default. If you are creating a custom column, you may need to give
134
132
  Active Admin a hint for how to sort the table.
135
133
 
136
- If a column is defined using a block, you must pass the key to turn on sorting. The key
137
- is the attribute which gets used to sort objects using Active Record.
138
-
134
+ You can pass the key specifying the attribute which gets used to sort objects using Active Record.
139
135
  By default, this is the column on the resource's table that the attribute corresponds to.
140
136
  Otherwise, any attribute that the resource collection responds to can be used.
141
137
 
@@ -164,6 +160,24 @@ index do
164
160
  end
165
161
  ```
166
162
 
163
+ ## Custom sorting
164
+
165
+ It is also possible to use database specific expressions and options for sorting by column
166
+
167
+ ```ruby
168
+ order_by(:title) do |order_clause|
169
+ if order_clause.order == 'desc'
170
+ [order_clause.to_sql, 'NULLS LAST'].join(' ')
171
+ else
172
+ [order_clause.to_sql, 'NULLS FIRST'].join(' ')
173
+ end
174
+ end
175
+
176
+ index do
177
+ column :title
178
+ end
179
+ ```
180
+
167
181
  ## Associated Sorting
168
182
 
169
183
  You're normally able to sort columns alphabetically, but by default you
@@ -179,6 +193,13 @@ controller do
179
193
  end
180
194
  ```
181
195
 
196
+ You can also define associated objects to include outside of the
197
+ `scoped_collection` method:
198
+
199
+ ```ruby
200
+ includes :publisher
201
+ ```
202
+
182
203
  Then it's simple to sort by any Publisher attribute from within the index table:
183
204
 
184
205
  ```ruby