activeadmin 1.1.0 → 2.14.0

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

Potentially problematic release.


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

Files changed (592) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +871 -111
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +84 -63
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +521 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +4 -26
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +25 -123
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  14. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  15. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  16. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  17. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  18. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  19. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  20. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  21. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  23. data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
  24. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  25. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  26. data/app/javascript/active_admin/base.js +28 -0
  27. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  28. data/app/javascript/active_admin/ext/jquery.js +9 -0
  29. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  30. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  31. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  32. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  33. data/app/javascript/active_admin/initializers/filters.js +10 -0
  34. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  35. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  36. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  37. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  38. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  39. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  40. data/app/javascript/active_admin/lib/filters.js +39 -0
  41. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  42. data/app/javascript/active_admin/lib/per-page.js +38 -0
  43. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  44. data/app/javascript/active_admin/lib/utils.js +40 -0
  45. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  46. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  47. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  48. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  49. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  50. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  51. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  52. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  53. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  54. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  55. data/app/views/active_admin/page/index.html.arb +1 -0
  56. data/app/views/active_admin/resource/edit.html.arb +1 -0
  57. data/app/views/active_admin/resource/index.html.arb +1 -0
  58. data/app/views/active_admin/resource/new.html.arb +1 -0
  59. data/app/views/active_admin/resource/show.html.arb +1 -0
  60. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  61. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  62. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  63. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  64. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  65. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  66. data/app/views/layouts/active_admin.html.arb +1 -0
  67. data/app/views/layouts/active_admin_logged_out.html.erb +20 -9
  68. data/config/locales/ar.yml +9 -8
  69. data/config/locales/az.yml +138 -0
  70. data/config/locales/bg.yml +1 -1
  71. data/config/locales/bs.yml +1 -0
  72. data/config/locales/ca.yml +1 -1
  73. data/config/locales/cs.yml +1 -0
  74. data/config/locales/da.yml +1 -0
  75. data/config/locales/de-CH.yml +1 -0
  76. data/config/locales/de.yml +29 -0
  77. data/config/locales/el.yml +1 -0
  78. data/config/locales/en-CA.yml +4 -3
  79. data/config/locales/en-GB.yml +4 -3
  80. data/config/locales/en.yml +24 -4
  81. data/config/locales/eo.yml +145 -0
  82. data/config/locales/es-MX.yml +3 -1
  83. data/config/locales/es.yml +26 -6
  84. data/config/locales/fa.yml +1 -0
  85. data/config/locales/fi.yml +2 -1
  86. data/config/locales/fr.yml +9 -8
  87. data/config/locales/he.yml +1 -1
  88. data/config/locales/hr.yml +1 -0
  89. data/config/locales/hu.yml +5 -0
  90. data/config/locales/id.yml +1 -0
  91. data/config/locales/it.yml +31 -3
  92. data/config/locales/ja.yml +8 -2
  93. data/config/locales/ko.yml +2 -1
  94. data/config/locales/lt.yml +3 -2
  95. data/config/locales/lv.yml +3 -2
  96. data/config/locales/mk.yml +134 -0
  97. data/config/locales/nb.yml +16 -5
  98. data/config/locales/nl.yml +13 -1
  99. data/config/locales/pl.yml +72 -3
  100. data/config/locales/pt-BR.yml +9 -0
  101. data/config/locales/pt-PT.yml +1 -0
  102. data/config/locales/ro.yml +4 -2
  103. data/config/locales/ru.yml +3 -0
  104. data/config/locales/sk.yml +60 -0
  105. data/config/locales/sv-SE.yml +3 -0
  106. data/config/locales/tr.yml +10 -0
  107. data/config/locales/uk.yml +3 -0
  108. data/config/locales/vi.yml +82 -12
  109. data/config/locales/zh-CN.yml +68 -20
  110. data/config/locales/zh-TW.yml +1 -0
  111. data/lib/active_admin/abstract_view_factory.rb +14 -51
  112. data/lib/active_admin/application.rb +65 -172
  113. data/lib/active_admin/application_settings.rb +43 -0
  114. data/lib/active_admin/asset_registration.rb +4 -11
  115. data/lib/active_admin/authorization_adapter.rb +6 -3
  116. data/lib/active_admin/base_controller/authorization.rb +18 -18
  117. data/lib/active_admin/base_controller/menu.rb +1 -0
  118. data/lib/active_admin/base_controller.rb +12 -11
  119. data/lib/active_admin/batch_actions/controller.rb +6 -5
  120. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  121. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  122. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  123. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  124. data/lib/active_admin/batch_actions.rb +1 -0
  125. data/lib/active_admin/callbacks.rb +2 -1
  126. data/lib/active_admin/cancan_adapter.rb +2 -1
  127. data/lib/active_admin/collection_decorator.rb +32 -0
  128. data/lib/active_admin/component.rb +1 -0
  129. data/lib/active_admin/controller_action.rb +3 -1
  130. data/lib/active_admin/csv_builder.rb +15 -21
  131. data/lib/active_admin/dependency.rb +12 -79
  132. data/lib/active_admin/deprecation.rb +1 -25
  133. data/lib/active_admin/devise.rb +16 -5
  134. data/lib/active_admin/dsl.rb +3 -9
  135. data/lib/active_admin/dynamic_setting.rb +39 -0
  136. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  137. data/lib/active_admin/engine.rb +16 -7
  138. data/lib/active_admin/error.rb +5 -4
  139. data/lib/active_admin/filters/active.rb +2 -1
  140. data/lib/active_admin/filters/active_filter.rb +52 -15
  141. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  142. data/lib/active_admin/filters/dsl.rb +1 -0
  143. data/lib/active_admin/filters/forms.rb +13 -9
  144. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  145. data/lib/active_admin/filters/resource_extension.rb +34 -9
  146. data/lib/active_admin/filters.rb +8 -7
  147. data/lib/active_admin/form_builder.rb +110 -70
  148. data/lib/active_admin/generators/boilerplate.rb +13 -4
  149. data/lib/active_admin/helpers/collection.rb +2 -0
  150. data/lib/active_admin/helpers/i18n.rb +1 -0
  151. data/lib/active_admin/helpers/optional_display.rb +3 -2
  152. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  153. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  154. data/lib/active_admin/inputs/datepicker_input.rb +10 -2
  155. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  156. data/lib/active_admin/inputs/filters/base.rb +2 -1
  157. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  158. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  159. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  160. data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
  161. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  162. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  163. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  164. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  165. data/lib/active_admin/inputs.rb +1 -0
  166. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  167. data/lib/active_admin/localizers.rb +2 -1
  168. data/lib/active_admin/menu.rb +9 -11
  169. data/lib/active_admin/menu_collection.rb +1 -0
  170. data/lib/active_admin/menu_item.rb +11 -38
  171. data/lib/active_admin/namespace.rb +33 -20
  172. data/lib/active_admin/namespace_settings.rb +127 -0
  173. data/lib/active_admin/order_clause.rb +4 -3
  174. data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
  175. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  176. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  177. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  178. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +36 -25
  179. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  180. data/lib/active_admin/orm/active_record/comments.rb +41 -29
  181. data/lib/active_admin/orm/active_record.rb +2 -1
  182. data/lib/active_admin/orm/mongoid.rb +1 -0
  183. data/lib/active_admin/page.rb +2 -1
  184. data/lib/active_admin/page_controller.rb +1 -0
  185. data/lib/active_admin/page_dsl.rb +2 -1
  186. data/lib/active_admin/page_presenter.rb +3 -1
  187. data/lib/active_admin/pundit_adapter.rb +71 -16
  188. data/lib/active_admin/resource/action_items.rb +12 -6
  189. data/lib/active_admin/resource/attributes.rb +9 -5
  190. data/lib/active_admin/resource/belongs_to.rb +9 -3
  191. data/lib/active_admin/resource/controllers.rb +2 -1
  192. data/lib/active_admin/resource/includes.rb +1 -0
  193. data/lib/active_admin/resource/menu.rb +6 -5
  194. data/lib/active_admin/resource/model.rb +16 -0
  195. data/lib/active_admin/resource/naming.rb +6 -5
  196. data/lib/active_admin/resource/ordering.rb +1 -0
  197. data/lib/active_admin/resource/page_presenters.rb +1 -0
  198. data/lib/active_admin/resource/pagination.rb +1 -0
  199. data/lib/active_admin/resource/routes.rb +26 -14
  200. data/lib/active_admin/resource/scope_to.rb +8 -7
  201. data/lib/active_admin/resource/scopes.rb +4 -3
  202. data/lib/active_admin/resource/sidebars.rb +3 -2
  203. data/lib/active_admin/resource.rb +37 -22
  204. data/lib/active_admin/resource_collection.rb +3 -2
  205. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  206. data/lib/active_admin/resource_controller/data_access.rb +35 -5
  207. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  208. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  209. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  210. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  211. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  212. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  213. data/lib/active_admin/resource_controller.rb +14 -10
  214. data/lib/active_admin/resource_dsl.rb +17 -27
  215. data/lib/active_admin/router.rb +91 -84
  216. data/lib/active_admin/scope.rb +20 -11
  217. data/lib/active_admin/settings_node.rb +20 -0
  218. data/lib/active_admin/sidebar_section.rb +4 -1
  219. data/lib/active_admin/version.rb +2 -1
  220. data/lib/active_admin/view_factory.rb +18 -17
  221. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  222. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  223. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  224. data/lib/active_admin/view_helpers/display_helper.rb +25 -8
  225. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  226. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  227. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  228. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  229. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  230. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  231. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  232. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  233. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  234. data/lib/active_admin/view_helpers.rb +2 -1
  235. data/lib/active_admin/views/action_items.rb +1 -0
  236. data/lib/active_admin/views/components/active_admin_form.rb +14 -8
  237. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  238. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  239. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  240. data/lib/active_admin/views/components/columns.rb +1 -0
  241. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  242. data/lib/active_admin/views/components/index_list.rb +4 -3
  243. data/lib/active_admin/views/components/menu.rb +33 -0
  244. data/lib/active_admin/views/components/menu_item.rb +59 -0
  245. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  246. data/lib/active_admin/views/components/panel.rb +2 -1
  247. data/lib/active_admin/views/components/scopes.rb +18 -8
  248. data/lib/active_admin/views/components/sidebar.rb +14 -0
  249. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  250. data/lib/active_admin/views/components/site_title.rb +7 -7
  251. data/lib/active_admin/views/components/status_tag.rb +14 -26
  252. data/lib/active_admin/views/components/table_for.rb +22 -29
  253. data/lib/active_admin/views/components/tabs.rb +18 -5
  254. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  255. data/lib/active_admin/views/footer.rb +6 -8
  256. data/lib/active_admin/views/header.rb +4 -15
  257. data/lib/active_admin/views/index_as_block.rb +1 -0
  258. data/lib/active_admin/views/index_as_blog.rb +3 -2
  259. data/lib/active_admin/views/index_as_grid.rb +27 -26
  260. data/lib/active_admin/views/index_as_table.rb +34 -25
  261. data/lib/active_admin/views/pages/base.rb +47 -62
  262. data/lib/active_admin/views/pages/form.rb +1 -0
  263. data/lib/active_admin/views/pages/index.rb +16 -13
  264. data/lib/active_admin/views/pages/layout.rb +1 -0
  265. data/lib/active_admin/views/pages/page.rb +1 -0
  266. data/lib/active_admin/views/pages/show.rb +1 -0
  267. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  268. data/lib/active_admin/views/title_bar.rb +2 -1
  269. data/lib/active_admin/views.rb +2 -1
  270. data/lib/active_admin.rb +68 -63
  271. data/lib/activeadmin.rb +2 -1
  272. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  273. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  274. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  275. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  276. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  277. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +62 -3
  278. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  279. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  280. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  281. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  282. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  283. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  284. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  285. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  286. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  287. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  288. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  289. data/lib/ransack_ext.rb +10 -9
  290. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  291. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  292. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  293. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  294. metadata +123 -595
  295. data/.github/ISSUE_TEMPLATE.md +0 -20
  296. data/.gitignore +0 -49
  297. data/.mdlrc +0 -1
  298. data/.rubocop.yml +0 -76
  299. data/.simplecov +0 -13
  300. data/.travis.yml +0 -51
  301. data/.yardopts +0 -7
  302. data/Gemfile +0 -58
  303. data/Rakefile +0 -54
  304. data/activeadmin.gemspec +0 -32
  305. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  306. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  307. data/app/assets/images/active_admin/orderable.png +0 -0
  308. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  309. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  310. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  311. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  312. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  313. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  314. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  315. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  316. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  317. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  318. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  319. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  320. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  321. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  322. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  323. data/codecov.yml +0 -25
  324. data/config/i18n-tasks.yml +0 -26
  325. data/config/mdl_style.rb +0 -9
  326. data/cucumber.yml +0 -3
  327. data/docs/0-installation.md +0 -118
  328. data/docs/1-general-configuration.md +0 -189
  329. data/docs/10-custom-pages.md +0 -136
  330. data/docs/11-decorators.md +0 -59
  331. data/docs/12-arbre-components.md +0 -174
  332. data/docs/13-authorization-adapter.md +0 -266
  333. data/docs/14-gotchas.md +0 -138
  334. data/docs/2-resource-customization.md +0 -461
  335. data/docs/3-index-pages/custom-index.md +0 -35
  336. data/docs/3-index-pages/index-as-block.md +0 -19
  337. data/docs/3-index-pages/index-as-blog.md +0 -69
  338. data/docs/3-index-pages/index-as-grid.md +0 -27
  339. data/docs/3-index-pages/index-as-table.md +0 -227
  340. data/docs/3-index-pages.md +0 -311
  341. data/docs/4-csv-format.md +0 -74
  342. data/docs/5-forms.md +0 -218
  343. data/docs/6-show-pages.md +0 -81
  344. data/docs/7-sidebars.md +0 -75
  345. data/docs/8-custom-actions.md +0 -166
  346. data/docs/9-batch-actions.md +0 -237
  347. data/docs/CNAME +0 -1
  348. data/docs/Gemfile +0 -2
  349. data/docs/README.md +0 -24
  350. data/docs/_config.yml +0 -2
  351. data/docs/_includes/footer.html +0 -8
  352. data/docs/_includes/google-analytics.html +0 -16
  353. data/docs/_includes/head.html +0 -7
  354. data/docs/_includes/toc.html +0 -98
  355. data/docs/_includes/top-menu.html +0 -9
  356. data/docs/_layouts/default.html +0 -21
  357. data/docs/documentation.md +0 -60
  358. data/docs/images/activeadmin.png +0 -0
  359. data/docs/images/code-header.png +0 -0
  360. data/docs/images/divider.png +0 -0
  361. data/docs/images/features.png +0 -0
  362. data/docs/index.html +0 -125
  363. data/docs/stylesheets/main.css +0 -1152
  364. data/features/action_item.feature +0 -73
  365. data/features/authorization.feature +0 -64
  366. data/features/authorization_cancan.feature +0 -52
  367. data/features/authorization_pundit.feature +0 -37
  368. data/features/belongs_to.feature +0 -124
  369. data/features/breadcrumb.feature +0 -75
  370. data/features/comments/commenting.feature +0 -178
  371. data/features/comments/viewing_index.feature +0 -19
  372. data/features/create_another.feature +0 -55
  373. data/features/dashboard.feature +0 -16
  374. data/features/decorators.feature +0 -43
  375. data/features/development_reloading.feature +0 -28
  376. data/features/edit_page.feature +0 -116
  377. data/features/favicon.feature +0 -20
  378. data/features/first_boot.feature +0 -16
  379. data/features/footer.feature +0 -28
  380. data/features/global_navigation.feature +0 -29
  381. data/features/i18n.feature +0 -55
  382. data/features/index/batch_actions.feature +0 -218
  383. data/features/index/filters.feature +0 -239
  384. data/features/index/format_as_csv.feature +0 -220
  385. data/features/index/formats.feature +0 -88
  386. data/features/index/index_as_block.feature +0 -15
  387. data/features/index/index_as_blog.feature +0 -69
  388. data/features/index/index_as_grid.feature +0 -45
  389. data/features/index/index_as_table.feature +0 -291
  390. data/features/index/index_blank_slate.feature +0 -83
  391. data/features/index/index_parameters.feature +0 -75
  392. data/features/index/index_scope_to.feature +0 -56
  393. data/features/index/index_scopes.feature +0 -285
  394. data/features/index/page_title.feature +0 -41
  395. data/features/index/pagination.feature +0 -63
  396. data/features/index/switch_index_view.feature +0 -73
  397. data/features/menu.feature +0 -72
  398. data/features/meta_tags.feature +0 -21
  399. data/features/new_page.feature +0 -107
  400. data/features/registering_assets.feature +0 -38
  401. data/features/registering_pages.feature +0 -237
  402. data/features/registering_resources.feature +0 -33
  403. data/features/renamed_resource.feature +0 -30
  404. data/features/root_to.feature +0 -17
  405. data/features/show/attributes_table_title.feature +0 -54
  406. data/features/show/columns.feature +0 -40
  407. data/features/show/default_content.feature +0 -44
  408. data/features/show/page_title.feature +0 -58
  409. data/features/show/tabs.feature +0 -33
  410. data/features/sidebar_sections.feature +0 -210
  411. data/features/site_title.feature +0 -47
  412. data/features/specifying_actions.feature +0 -118
  413. data/features/step_definitions/action_item_steps.rb +0 -7
  414. data/features/step_definitions/action_link_steps.rb +0 -19
  415. data/features/step_definitions/additional_web_steps.rb +0 -81
  416. data/features/step_definitions/asset_steps.rb +0 -15
  417. data/features/step_definitions/attribute_steps.rb +0 -18
  418. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  419. data/features/step_definitions/batch_action_steps.rb +0 -81
  420. data/features/step_definitions/blog_steps.rb +0 -3
  421. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  422. data/features/step_definitions/column_steps.rb +0 -8
  423. data/features/step_definitions/comment_steps.rb +0 -32
  424. data/features/step_definitions/configuration_steps.rb +0 -100
  425. data/features/step_definitions/dashboard_steps.rb +0 -15
  426. data/features/step_definitions/factory_steps.rb +0 -35
  427. data/features/step_definitions/filter_steps.rb +0 -48
  428. data/features/step_definitions/flash_steps.rb +0 -11
  429. data/features/step_definitions/footer_steps.rb +0 -11
  430. data/features/step_definitions/format_steps.rb +0 -56
  431. data/features/step_definitions/i18n_steps.rb +0 -11
  432. data/features/step_definitions/index_scope_steps.rb +0 -29
  433. data/features/step_definitions/index_views_steps.rb +0 -3
  434. data/features/step_definitions/layout_steps.rb +0 -3
  435. data/features/step_definitions/member_link_steps.rb +0 -7
  436. data/features/step_definitions/menu_steps.rb +0 -11
  437. data/features/step_definitions/meta_tag_steps.rb +0 -3
  438. data/features/step_definitions/pagination_steps.rb +0 -15
  439. data/features/step_definitions/sidebar_steps.rb +0 -11
  440. data/features/step_definitions/site_title_steps.rb +0 -17
  441. data/features/step_definitions/tab_steps.rb +0 -8
  442. data/features/step_definitions/table_steps.rb +0 -116
  443. data/features/step_definitions/user_steps.rb +0 -52
  444. data/features/step_definitions/web_steps.rb +0 -86
  445. data/features/sti_resource.feature +0 -65
  446. data/features/strong_parameters.feature +0 -69
  447. data/features/support/env.rb +0 -122
  448. data/features/support/paths.rb +0 -73
  449. data/features/support/regular_env.rb +0 -7
  450. data/features/support/reload_env.rb +0 -7
  451. data/features/support/selectors.rb +0 -45
  452. data/features/users/logging_in.feature +0 -36
  453. data/features/users/logging_out.feature +0 -13
  454. data/features/users/resetting_password.feature +0 -34
  455. data/gemfiles/rails_42.gemfile +0 -10
  456. data/gemfiles/rails_50.gemfile +0 -10
  457. data/gemfiles/rails_51.gemfile +0 -10
  458. data/lib/active_admin/event.rb +0 -24
  459. data/lib/active_admin/helpers/settings.rb +0 -114
  460. data/lib/active_admin/reloader.rb +0 -25
  461. data/lib/bug_report_templates/active_admin_master.rb +0 -113
  462. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  463. data/spec/bug_report_templates_spec.rb +0 -26
  464. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  465. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  466. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  467. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  468. data/spec/javascripts/fixtures/flashes.html +0 -2
  469. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  470. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  471. data/spec/javascripts/support/jasmine.yml +0 -74
  472. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  473. data/spec/rails_helper.rb +0 -59
  474. data/spec/requests/default_namespace_spec.rb +0 -81
  475. data/spec/requests/memory_spec.rb +0 -25
  476. data/spec/requests/stylesheets_spec.rb +0 -18
  477. data/spec/spec_helper.rb +0 -1
  478. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  479. data/spec/support/active_admin_request_helpers.rb +0 -39
  480. data/spec/support/rails_template.rb +0 -150
  481. data/spec/support/rails_template_with_data.rb +0 -327
  482. data/spec/support/templates/admin/stores.rb +0 -7
  483. data/spec/support/templates/en.yml +0 -8
  484. data/spec/support/templates/manifest.js +0 -3
  485. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  486. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  487. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  488. data/spec/support/templates/policies/application_policy.rb +0 -44
  489. data/spec/support/templates/policies/category_policy.rb +0 -7
  490. data/spec/support/templates/policies/post_policy.rb +0 -15
  491. data/spec/support/templates/policies/store_policy.rb +0 -11
  492. data/spec/support/templates/policies/user_policy.rb +0 -11
  493. data/spec/support/templates/post_decorator.rb +0 -10
  494. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  495. data/spec/unit/action_builder_spec.rb +0 -125
  496. data/spec/unit/active_admin_spec.rb +0 -11
  497. data/spec/unit/application_spec.rb +0 -184
  498. data/spec/unit/asset_registration_spec.rb +0 -81
  499. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  500. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  501. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  502. data/spec/unit/auto_link_spec.rb +0 -93
  503. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  504. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  505. data/spec/unit/belongs_to_spec.rb +0 -76
  506. data/spec/unit/cancan_adapter_spec.rb +0 -43
  507. data/spec/unit/comments_spec.rb +0 -176
  508. data/spec/unit/component_spec.rb +0 -18
  509. data/spec/unit/config_shared_examples.rb +0 -59
  510. data/spec/unit/controller_filters_spec.rb +0 -41
  511. data/spec/unit/csv_builder_spec.rb +0 -304
  512. data/spec/unit/dependency_spec.rb +0 -135
  513. data/spec/unit/devise_spec.rb +0 -110
  514. data/spec/unit/dsl_spec.rb +0 -120
  515. data/spec/unit/filters/active_filter_spec.rb +0 -135
  516. data/spec/unit/filters/active_spec.rb +0 -24
  517. data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
  518. data/spec/unit/filters/resource_spec.rb +0 -128
  519. data/spec/unit/form_builder_spec.rb +0 -990
  520. data/spec/unit/generators/install_spec.rb +0 -31
  521. data/spec/unit/helpers/collection_spec.rb +0 -68
  522. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  523. data/spec/unit/helpers/settings_spec.rb +0 -30
  524. data/spec/unit/i18n_spec.rb +0 -29
  525. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  526. data/spec/unit/menu_collection_spec.rb +0 -62
  527. data/spec/unit/menu_item_spec.rb +0 -141
  528. data/spec/unit/menu_spec.rb +0 -71
  529. data/spec/unit/namespace/authorization_spec.rb +0 -27
  530. data/spec/unit/namespace/register_page_spec.rb +0 -99
  531. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  532. data/spec/unit/namespace_spec.rb +0 -124
  533. data/spec/unit/order_clause_spec.rb +0 -81
  534. data/spec/unit/page_controller_spec.rb +0 -5
  535. data/spec/unit/page_spec.rb +0 -128
  536. data/spec/unit/pretty_format_spec.rb +0 -82
  537. data/spec/unit/pundit_adapter_spec.rb +0 -98
  538. data/spec/unit/resource/action_items_spec.rb +0 -69
  539. data/spec/unit/resource/attributes_spec.rb +0 -49
  540. data/spec/unit/resource/includes_spec.rb +0 -21
  541. data/spec/unit/resource/menu_spec.rb +0 -18
  542. data/spec/unit/resource/naming_spec.rb +0 -122
  543. data/spec/unit/resource/ordering_spec.rb +0 -35
  544. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  545. data/spec/unit/resource/pagination_spec.rb +0 -38
  546. data/spec/unit/resource/routes_spec.rb +0 -125
  547. data/spec/unit/resource/scopes_spec.rb +0 -50
  548. data/spec/unit/resource/sidebars_spec.rb +0 -43
  549. data/spec/unit/resource_collection_spec.rb +0 -175
  550. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  551. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  552. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  553. data/spec/unit/resource_controller_spec.rb +0 -273
  554. data/spec/unit/resource_registration_spec.rb +0 -61
  555. data/spec/unit/resource_spec.rb +0 -320
  556. data/spec/unit/routing_spec.rb +0 -211
  557. data/spec/unit/scope_spec.rb +0 -209
  558. data/spec/unit/settings_spec.rb +0 -117
  559. data/spec/unit/view_factory_spec.rb +0 -19
  560. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  561. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  562. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  563. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  564. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  565. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  566. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  567. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  568. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  569. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  570. data/spec/unit/views/components/columns_spec.rb +0 -187
  571. data/spec/unit/views/components/index_list_spec.rb +0 -49
  572. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  573. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  574. data/spec/unit/views/components/panel_spec.rb +0 -58
  575. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  576. data/spec/unit/views/components/site_title_spec.rb +0 -76
  577. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  578. data/spec/unit/views/components/table_for_spec.rb +0 -436
  579. data/spec/unit/views/components/tabs_spec.rb +0 -67
  580. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  581. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  582. data/spec/unit/views/pages/form_spec.rb +0 -54
  583. data/spec/unit/views/pages/index_spec.rb +0 -60
  584. data/spec/unit/views/pages/layout_spec.rb +0 -59
  585. data/spec/unit/views/pages/show_spec.rb +0 -32
  586. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  587. data/tasks/docs.rake +0 -64
  588. data/tasks/lint.rake +0 -21
  589. data/tasks/local.rake +0 -25
  590. data/tasks/parallel_tests.rake +0 -66
  591. data/tasks/test.rake +0 -29
  592. /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
@@ -1,59 +0,0 @@
1
- ---
2
- redirect_from: /docs/11-decorators.html
3
- ---
4
-
5
- # Decorators
6
-
7
- Active Admin allows you to use the decorator pattern to provide view-specific
8
- versions of a resource. [Draper](https://github.com/drapergem/draper) is
9
- recommended but not required.
10
-
11
- To use decorator support without Draper, your decorator must support a variety
12
- of collection methods to support pagination, filtering, etc. See
13
- [this github issue discussion](https://github.com/activeadmin/activeadmin/issues/3600)
14
- and [this gem](https://github.com/kiote/activeadmin-poro-decorator) for more details.
15
-
16
- ## Example usage
17
-
18
- ```ruby
19
- # app/models/post.rb
20
- class Post < ActiveRecord::Base
21
- # has title, content, and image_url
22
- end
23
-
24
- # app/decorators/post_decorator.rb
25
- class PostDecorator < Draper::Decorator
26
- delegate_all
27
-
28
- def image
29
- h.image_tag model.image_url
30
- end
31
- end
32
-
33
- # app/admin/post.rb
34
- ActiveAdmin.register Post do
35
- decorate_with PostDecorator
36
-
37
- index do
38
- column :title
39
- column :image
40
- actions
41
- end
42
- end
43
- ```
44
-
45
- ## Forms
46
-
47
- By default, ActiveAdmin does *not* decorate the resource used to render forms.
48
- If you need ActiveAdmin to decorate the forms, you can pass `decorate: true` to the
49
- form block.
50
-
51
- ```ruby
52
- ActiveAdmin.register Post do
53
- decorate_with PostDecorator
54
-
55
- form decorate: true do |f|
56
- # ...
57
- end
58
- end
59
- ```
@@ -1,174 +0,0 @@
1
- ---
2
- redirect_from: /docs/12-arbre-components.html
3
- ---
4
-
5
- # Arbre Components
6
-
7
- Arbre allows the creation of shareable and extendable HTML components and is
8
- used throughout Active Admin to create view components.
9
-
10
- ## Text Node
11
-
12
- Sometimes it makes sense to insert something into a registered resource like a
13
- non-breaking space or some text. The text_node method can be used to insert
14
- these elements into the page inside of other Arbre components or resource
15
- controller functions.
16
-
17
- ```ruby
18
- ActiveAdmin.register Post do
19
- show do
20
- panel "Post Details" do
21
- attributes_table_for post do
22
- row :id
23
- row 'Tags' do
24
- post.tags.each do |tag|
25
- a tag, href: admin_post_path(q: {tagged_with_contains: tag})
26
- text_node "&nbsp;".html_safe
27
- end
28
- end
29
- end
30
- end
31
- end
32
- end
33
- ```
34
-
35
- ## Panels
36
-
37
- A panel is a component that takes up all available horizontal space and takes a
38
- title and a hash of attributes as arguments. If a sidebar is present, a panel
39
- will take up the remaining space.
40
-
41
- This will create two stacked panels:
42
-
43
- ```ruby
44
- show do
45
- panel "Post Details" do
46
- render partial: "details", locals: {post: post}
47
- end
48
-
49
- panel "Post Tags" do
50
- render partial: "tags", locals: {post: post}
51
- end
52
- end
53
- ```
54
-
55
- ## Columns
56
-
57
- The Columns component allows you draw content into scalable columns. All you
58
- need to do is define the number of columns and the component will take care of
59
- the rest.
60
-
61
- ### Simple Columns
62
-
63
- To create simple columns, use the `columns` method. Within the block, call
64
- the #column method to create a new column.
65
-
66
- ```ruby
67
- columns do
68
- column do
69
- span "Column #1"
70
- end
71
-
72
- column do
73
- span "Column #2"
74
- end
75
- end
76
- ```
77
-
78
- ### Spanning Multiple Columns
79
-
80
- To create columns that have multiple spans, pass the :span option to the column
81
- method.
82
-
83
- ```ruby
84
- columns do
85
- column span: 2 do
86
- span "Column # 1"
87
- end
88
- column do
89
- span "Column # 2"
90
- end
91
- end
92
- ```
93
-
94
- By default, each column spans 1 column. The above layout would have 2 columns,
95
- the first being twice as large as the second.
96
-
97
- ### Custom Column Widths
98
-
99
- Active Admin uses a fluid width layout, causing column width to be defined
100
- using percentages. Due to using this style of layout, columns can shrink or
101
- expand past points that may not be desirable. To overcome this issue,
102
- columns provide `:max_width` and `:min_width` options.
103
-
104
- ```ruby
105
- columns do
106
- column max_width: "200px", min_width: "100px" do
107
- span "Column # 1"
108
- end
109
- column do
110
- span "Column # 2"
111
- end
112
- end
113
- ```
114
-
115
- In the above example, the first column will not grow larger than 200px and will
116
- not shrink less than 100px.
117
-
118
- ## Table For
119
-
120
- Table For provides the ability to create tables like those present
121
- in `index_as_table`. It takes a collection and a hash of options and then
122
- uses `column` to build the fields to show with the table.
123
-
124
- ```ruby
125
- table_for order.payments do
126
- column(:payment_type) { |payment| payment.payment_type.titleize }
127
- column "Received On", :created_at
128
- column "Details & Notes", :payment_details
129
- column "Amount", :amount_in_dollars
130
- end
131
- ```
132
-
133
- the `column` method can take a title as its first argument and data
134
- (`:your_method`) as its second (or first if no title provided). Column also
135
- takes a block.
136
-
137
- ## Status tag
138
-
139
- Status tags provide convenient syntactic sugar for styling items that have
140
- status. A common example of where the status tag could be useful is for orders
141
- that are complete or in progress. `status_tag` takes a status, like
142
- "In Progress", and a hash of options. The status_tag will generate HTML markup
143
- that Active Admin CSS uses in styling.
144
-
145
- ```ruby
146
- status_tag 'In Progress'
147
- # => <span class='status_tag in_progress'>In Progress</span>
148
-
149
- status_tag 'active', class: 'important', id: 'status_123', label: 'on'
150
- # => <span class='status_tag active important' id='status_123'>on</span>
151
- ```
152
-
153
- ## Tabs
154
-
155
- The Tabs component is helpful for saving page real estate. The first tab will be
156
- the one open when the page initially loads and the rest hidden. You can click
157
- each tab to toggle back and forth between them. Arbre supports unlimited number
158
- of tabs.
159
-
160
- ```ruby
161
- tabs do
162
- tab :active do
163
- table_for orders.active do
164
- ...
165
- end
166
- end
167
-
168
- tab :inactive do
169
- table_for orders.inactive do
170
- ...
171
- end
172
- end
173
- end
174
- ```
@@ -1,266 +0,0 @@
1
- ---
2
- redirect_from: /docs/13-authorization-adapter.html
3
- ---
4
-
5
- # Authorization Adapter
6
-
7
- Active Admin offers the ability to define and use your own authorization
8
- adapter. If implemented, the '#authorized?' will be called when an action is
9
- taken. By default, '#authorized?' returns true.
10
-
11
- ## Setting up your own AuthorizationAdapter
12
-
13
- Setting up your own `AuthorizationAdapter` is easy! The following example shows
14
- how to set up and tie your authorization adapter class to Active Admin:
15
-
16
- ```ruby
17
- # app/models/only_authors_authorization.rb
18
- class OnlyAuthorsAuthorization < ActiveAdmin::AuthorizationAdapter
19
-
20
- def authorized?(action, subject = nil)
21
- case subject
22
- when normalized(Post)
23
- # Only let the author update and delete posts
24
- if action == :update || action == :destroy
25
- subject.author == user
26
- else
27
- true
28
- end
29
- else
30
- true
31
- end
32
- end
33
-
34
- end
35
- ```
36
-
37
- In order to hook up `OnlyAuthorsAuthorization` to Active Admin, go to your
38
- application's `config/initializers/active_admin.rb` and add/modify the line:
39
-
40
- ```ruby
41
- config.authorization_adapter = "OnlyAuthorsAuthorization"
42
- ```
43
-
44
- Authorization adapters can be configured per ActiveAdmin namespace as well, for
45
- example:
46
-
47
- ```ruby
48
- ActiveAdmin.setup do |config|
49
- config.namespace :admin do |ns|
50
- ns.authorization_adapter = "AdminAuthorization"
51
- end
52
- config.namespace :my do |ns|
53
- ns.authorization_adapter = "DashboardAuthorization"
54
- end
55
- end
56
- ```
57
-
58
- Now, whenever a controller action is performed, the `OnlyAuthorsAuthorization`'s
59
- `#authorized?` method will be called.
60
-
61
- ## Getting Access to the Current User
62
-
63
- From within your authorization adapter, you can call the `#user` method to
64
- retrieve the current user.
65
-
66
- ```ruby
67
- class OnlyAdmins < ActiveAdmin::AuthorizationAdapter
68
-
69
- def authorized?(action, subject = nil)
70
- user.admin?
71
- end
72
-
73
- end
74
- ```
75
-
76
- ## Scoping Collections in Authorization Adapters
77
-
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:
81
-
82
- ```ruby
83
- class OnlyMyAccount < ActiveAdmin::AuthorizationAdapter
84
-
85
- def authorized?(action, subject = nil)
86
- subject.account == user.account
87
- end
88
-
89
- def scope_collection(collection, action = Auth::READ)
90
- collection.where(account_id: user.account_id)
91
- end
92
-
93
- end
94
- ```
95
-
96
- All collections presented on Index Screens will be passed through this method
97
- and will be scoped accordingly.
98
-
99
- ## Managing Access to Pages
100
-
101
- Pages, just like resources, get authorized too. When authorizing a page, the
102
- subject will be an instance of `ActiveAdmin::Page`.
103
-
104
- ```ruby
105
- class OnlyDashboard < ActiveAdmin::AuthorizationAdapter
106
- def authorized?(action, subject = nil)
107
- case subject
108
- when ActiveAdmin::Page
109
- action == :read &&
110
- subject.name == "Dashboard" &&
111
- subject.namespace.name == :admin
112
- else
113
- false
114
- end
115
- end
116
- end
117
- ```
118
-
119
- ## Action Types
120
-
121
- By default Active Admin simplifies the controller actions into 4 actions:
122
-
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.
130
-
131
- Each of these actions is available as a constant. Eg: `:read` is available as
132
- `ActiveAdmin::Authorization::READ`.
133
-
134
- ## Checking for Authorization in Controllers and Views
135
-
136
- Active Admin provides a helper method to check if the current user is
137
- authorized to perform an action on a subject.
138
-
139
- Simply use the `#authorized?(action, subject)` method to check.
140
-
141
- ```ruby
142
- ActiveAdmin.register Post do
143
-
144
- index do
145
- column :title
146
- column '' do |post|
147
- link_to 'Edit', admin_post_path(post) if authorized? :update, post
148
- end
149
- end
150
-
151
- end
152
- ```
153
-
154
- If you are implementing a custom controller action, you can use the
155
- `#authorize!` method to raise an `ActiveAdmin::AccessDenied` exception.
156
-
157
- ```ruby
158
- ActiveAdmin.register Post do
159
-
160
- member_action :publish, method: :post do
161
- post = Post.find(params[:id])
162
-
163
- authorize! :publish, post
164
- post.publish!
165
-
166
- flash[:notice] = "Post has been published"
167
- redirect_to [:admin, post]
168
- end
169
-
170
- action_item :publish, only: :show do
171
- if !post.published? && authorized?(:publish, post)
172
- link_to "Publish", publish_admin_post_path(post), method: :post
173
- end
174
- end
175
-
176
- end
177
- ```
178
-
179
- ## Using the CanCan Adapter
180
-
181
- Sub-classing `ActiveAdmin::AuthorizationAdapter` is fairly low level. Many times
182
- it's nicer to have a simpler DSL for managing authorization. Active Admin
183
- provides an adapter out of the box for [CanCan](https://github.com/ryanb/cancan)
184
- and [CanCanCan](https://github.com/CanCanCommunity/cancancan).
185
-
186
- To use the CanCan adapter, simply update the configuration in the Active Admin
187
- initializer:
188
-
189
- ```ruby
190
- config.authorization_adapter = ActiveAdmin::CanCanAdapter
191
- ```
192
-
193
- You can also specify a method to be called on unauthorized access. This is
194
- necessary in order to prevent a redirect loop that can happen if a user tries to
195
- access a page they don't have permissions for (see
196
- [#2081](https://github.com/activeadmin/activeadmin/issues/2081)).
197
-
198
- ```ruby
199
- config.on_unauthorized_access = :access_denied
200
- ```
201
-
202
- The method `access_denied` would be defined in `application_controller.rb`. Here
203
- is one example that redirects the user from the page they don't have permission
204
- to access to a resource they have permission to access (organizations in this
205
- case), and also displays the error message in the browser:
206
-
207
- ```ruby
208
- class ApplicationController < ActionController::Base
209
- protect_from_forgery
210
-
211
- def access_denied(exception)
212
- redirect_to admin_organizations_path, alert: exception.message
213
- end
214
- end
215
- ```
216
-
217
- By default this will use the ability class named "Ability". This can also be
218
- changed from the initializer:
219
-
220
- ```ruby
221
- config.cancan_ability_class = "MyCustomAbility"
222
- ```
223
-
224
- Now you can simply use CanCan or CanCanCan the way that you would expect and
225
- Active Admin will use it for authorization:
226
-
227
- ```ruby
228
- # app/models/ability.rb
229
- class Ability
230
- include CanCan::Ability
231
-
232
- def initialize(user)
233
- can :manage, Post
234
- can :read, User
235
- can :manage, User, id: user.id
236
- can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: :admin
237
- end
238
-
239
- end
240
- ```
241
-
242
- To view more details about the API's, visit project pages of
243
- [CanCan](https://github.com/ryanb/cancan) and
244
- [CanCanCan](https://github.com/CanCanCommunity/cancancan).
245
-
246
- ## Using the Pundit Adapter
247
-
248
- Active Admin provides an adapter out of the box also for
249
- [Pundit](https://github.com/elabs/pundit).
250
-
251
- To use the Pundit adapter, simply update the configuration in the Active Admin
252
- initializer:
253
-
254
- ```ruby
255
- config.authorization_adapter = ActiveAdmin::PunditAdapter
256
- ```
257
-
258
- You can simply use Pundit the way that you would expect and Active Admin will
259
- use it for authorization. Check Pundit's documentation to [set up Pundit in your
260
- application](https://github.com/elabs/pundit#installation). If you want to use
261
- batch actions just ensure that `destroy_all?` method is defined in your policy
262
- class. You can use this [template
263
- policy](https://github.com/activeadmin/activeadmin/blob/master/spec/support/templates/policies/application_policy.rb)
264
- in your application instead of default one generated by Pundit's `rails g
265
- pundit:install` command.
266
-
data/docs/14-gotchas.md DELETED
@@ -1,138 +0,0 @@
1
- ---
2
- redirect_from: /docs/14-gotchas.html
3
- ---
4
-
5
- # Gotchas
6
-
7
- ## Security
8
-
9
- ### Spreadsheet applications vulnerable to unescaped CSV data
10
-
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.
16
-
17
- ## Session Commits & Asset Pipeline
18
-
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
23
- use the session for storing anything.
24
-
25
- For more information see [the following
26
- post](http://www.intridea.com/blog/2013/3/20/rails-assets-prefix-may-disable-your-session).
27
-
28
- ## Helpers
29
-
30
- There are two known gotchas with helpers. This hopefully will help you to
31
- find a solution.
32
-
33
- ### Helpers are not reloading in development
34
-
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.
38
-
39
- ### Helper maybe not included by default
40
-
41
- If you use `config.action_controller.include_all_helpers = false` in your
42
- application config, you need to include it by hand.
43
-
44
- #### Solutions
45
-
46
- ##### First use a monkey patch
47
-
48
- This works for all ActiveAdmin resources at once.
49
-
50
- ```ruby
51
- # config/initializers/active_admin_helpers.rb
52
- ActiveAdmin::BaseController.class_eval do
53
- helper ApplicationHelper
54
- end
55
- ```
56
-
57
- ##### Second use the `controller` method
58
-
59
- This works only for one resource at a time.
60
-
61
- ```ruby
62
- ActiveAdmin.register User do
63
- controller do
64
- helper UserHelper
65
- end
66
- end
67
- ```
68
-
69
- ## CSS
70
-
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.
78
-
79
- ## Conflicts
80
-
81
- ### With gems that provides a `search` class method on a model
82
-
83
- If a gem defines a `search` class method on a model, this can result in conflicts
84
- with the same method provided by `ransack` (a dependency of ActiveAdmin).
85
-
86
- Each of this conflicts need to solved is a different way. Some solutions are
87
- listed below.
88
-
89
- #### `tire`, `retire` and `elasticsearch-rails`
90
-
91
- This conflict can be solved, by using explicitly the `search` method of `tire`,
92
- `retire` or `elasticsearch-rails`:
93
-
94
- ##### For `tire` and `retire`
95
-
96
- ```ruby
97
- YourModel.tire.search
98
- ```
99
-
100
- ##### For `elasticsearch-rails`
101
-
102
- ```ruby
103
- YourModel.__elasticsearch__.search
104
- ```
105
-
106
- ### Sunspot Solr
107
-
108
- ```ruby
109
- YourModel.solr_search
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
-
129
- ## Authentication & Application Controller
130
-
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`.