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,461 +0,0 @@
1
- ---
2
- redirect_from: /docs/2-resource-customization.html
3
- ---
4
-
5
- # Working with Resources
6
-
7
- Every Active Admin resource corresponds to a Rails model. So before creating a
8
- resource you must first create a Rails model for it.
9
-
10
- ## Create a Resource
11
-
12
- The basic command for creating a resource is `rails g active_admin:resource Post`.
13
- The generator will produce an empty `app/admin/post.rb` file like so:
14
-
15
- ```ruby
16
- ActiveAdmin.register Post do
17
- # everything happens here :D
18
- end
19
- ```
20
-
21
- ## Setting up Strong Parameters
22
-
23
- Use the `permit_params` method to define which attributes may be changed:
24
-
25
- ```ruby
26
- ActiveAdmin.register Post do
27
- permit_params :title, :content, :publisher_id
28
- end
29
- ```
30
-
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`:
33
-
34
- If your HABTM is `roles`, you should permit `role_ids: []`
35
-
36
- ```ruby
37
- ActiveAdmin.register Post do
38
- permit_params :title, :content, :publisher_id, role_ids: []
39
- end
40
- ```
41
-
42
- Nested associations in the same form also require an array, but it
43
- needs to be filled with any attributes used.
44
-
45
- ```ruby
46
- ActiveAdmin.register Post do
47
- permit_params :title, :content, :publisher_id,
48
- tags_attributes: [:id, :name, :description, :_destroy]
49
- end
50
-
51
- # Note that `accepts_nested_attributes_for` is still required:
52
- class Post < ActiveRecord::Base
53
- accepts_nested_attributes_for :tags, allow_destroy: true
54
- end
55
- ```
56
-
57
- If you want to dynamically choose which attributes can be set, pass a block:
58
-
59
- ```ruby
60
- ActiveAdmin.register Post do
61
- permit_params do
62
- params = [:title, :content, :publisher_id]
63
- params.push :author_id if current_user.admin?
64
- params
65
- end
66
- end
67
- ```
68
-
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:
80
-
81
- ```ruby
82
- ActiveAdmin.register Post do
83
- controller do
84
- def create
85
- # Good
86
- @post = Post.new(permitted_params[:post])
87
- # Bad
88
- @post = Post.new(params[:post])
89
-
90
- if @post.save
91
- # ...
92
- end
93
- end
94
- end
95
- end
96
- ```
97
-
98
- ## Disabling Actions on a Resource
99
-
100
- All CRUD actions are enabled by default. These can be disabled for a given resource:
101
-
102
- ```ruby
103
- ActiveAdmin.register Post do
104
- actions :all, except: [:update, :destroy]
105
- end
106
- ```
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:
120
- new_model: 'Make an Offer'
121
- ```
122
-
123
- ## Rename the Resource
124
-
125
- By default, any references to the resource (menu, routes, buttons, etc) in the
126
- interface will use the name of the class. You can rename the resource by using
127
- the `:as` option.
128
-
129
- ```ruby
130
- ActiveAdmin.register Post, as: "Article"
131
- ```
132
-
133
- The resource will then be available at `/admin/articles`.
134
-
135
- ## Customize the Namespace
136
-
137
- We use the `admin` namespace by default, but you can use anything:
138
-
139
- ```ruby
140
- # Available at /today/posts
141
- ActiveAdmin.register Post, namespace: :today
142
-
143
- # Available at /posts
144
- ActiveAdmin.register Post, namespace: false
145
- ```
146
-
147
- ## Customize the Menu
148
-
149
- The resource will be displayed in the global navigation by default. To disable
150
- the resource from being displayed in the global navigation:
151
-
152
- ```ruby
153
- ActiveAdmin.register Post do
154
- menu false
155
- end
156
- ```
157
-
158
- The menu method accepts a hash with the following options:
159
-
160
- * `:label` - The string or proc label to display in the menu. If it's a proc, it
161
- will be called each time the menu is rendered.
162
- * `:parent` - The string id (or label) of the parent used for this menu
163
- * `:if` - A block or a symbol of a method to call to decide if the menu item
164
- should be displayed
165
- * `:priority` - The integer value of the priority, which defaults to `10`
166
-
167
- ### Labels
168
-
169
- To change the name of the label in the menu:
170
-
171
- ```ruby
172
- ActiveAdmin.register Post do
173
- menu label: "My Posts"
174
- end
175
- ```
176
-
177
- If you want something more dynamic, pass a proc instead:
178
-
179
- ```ruby
180
- ActiveAdmin.register Post do
181
- menu label: proc{ I18n.t "mypost" }
182
- end
183
- ```
184
-
185
- ### Menu Priority
186
-
187
- Menu items are sorted first by their numeric priority, then alphabetically. Since
188
- every menu by default has a priority of `10`, the menu is normally alphabetical.
189
-
190
- You can easily customize this:
191
-
192
- ```ruby
193
- ActiveAdmin.register Post do
194
- menu priority: 1 # so it's on the very left
195
- end
196
- ```
197
-
198
- ### Conditionally Showing / Hiding Menu Items
199
-
200
- Menu items can be shown or hidden at runtime using the `:if` option.
201
-
202
- ```ruby
203
- ActiveAdmin.register Post do
204
- menu if: proc{ current_user.can_edit_posts? }
205
- end
206
- ```
207
-
208
- The proc will be called in the context of the view, so you have access to all
209
- your helpers and current user session information.
210
-
211
- ### Drop Down Menus
212
-
213
- In many cases, a single level navigation will not be enough to manage a large
214
- application. In that case, you can group your menu items under a parent menu item.
215
-
216
- ```ruby
217
- ActiveAdmin.register Post do
218
- menu parent: "Blog"
219
- end
220
- ```
221
-
222
- Note that the "Blog" parent menu item doesn't even have to exist yet; it can be
223
- dynamically generated for you.
224
-
225
- ### Customizing Parent Menu Items
226
-
227
- All of the options given to a standard menu item are also available to
228
- parent menu items. In the case of complex parent menu items, you should
229
- configure them in the Active Admin initializer.
230
-
231
- ```ruby
232
- # config/initializers/active_admin.rb
233
- config.namespace :admin do |admin|
234
- admin.build_menu do |menu|
235
- menu.add label: 'Blog', priority: 0
236
- end
237
- end
238
-
239
- # app/admin/post.rb
240
- ActiveAdmin.register Post do
241
- menu parent: 'Blog'
242
- end
243
- ```
244
-
245
- ### Dynamic Parent Menu Items
246
-
247
- While the above works fine, what if you want a parent menu item with a dynamic
248
- name? Well, you have to refer to it by its `:id`.
249
-
250
- ```ruby
251
- # config/initializers/active_admin.rb
252
- config.namespace :admin do |admin|
253
- admin.build_menu do |menu|
254
- menu.add id: 'blog', label: proc{"Something dynamic"}, priority: 0
255
- end
256
- end
257
-
258
- # app/admin/post.rb
259
- ActiveAdmin.register Post do
260
- menu parent: 'blog'
261
- end
262
- ```
263
-
264
- ### Adding Custom Menu Items
265
-
266
- Sometimes it's not enough to just customize the menu label. In this case, you
267
- can customize the menu for the namespace within the Active Admin initializer.
268
-
269
- ```ruby
270
- # config/initializers/active_admin.rb
271
- config.namespace :admin do |admin|
272
- admin.build_menu do |menu|
273
- menu.add label: "The Application", url: "/", priority: 0
274
-
275
- menu.add label: "Sites" do |sites|
276
- sites.add label: "Google",
277
- url: "http://google.com",
278
- html_options: { target: :blank }
279
-
280
- sites.add label: "Facebook",
281
- url: "http://facebook.com"
282
-
283
- sites.add label: "Github",
284
- url: "http://github.com"
285
- end
286
- end
287
- end
288
- ```
289
-
290
- This will be registered on application start before your resources are loaded.
291
-
292
- ## Scoping the queries
293
-
294
- If your administrators have different access levels, you may sometimes want to
295
- scope what they have access to. Assuming your User model has the proper
296
- has_many relationships, you can simply scope the listings and finders like so:
297
-
298
- ```ruby
299
- ActiveAdmin.register Post do
300
- scope_to :current_user # limits the accessible posts to `current_user.posts`
301
-
302
- # Or if the association doesn't have the default name:
303
- scope_to :current_user, association_method: :blog_posts
304
-
305
- # Finally, you can pass a block to be called:
306
- scope_to do
307
- User.most_popular_posts
308
- end
309
- end
310
- ```
311
-
312
- You can also conditionally apply the scope:
313
-
314
- ```ruby
315
- ActiveAdmin.register Post do
316
- scope_to :current_user, if: proc{ current_user.limited_access? }
317
- scope_to :current_user, unless: proc{ current_user.admin? }
318
- end
319
- ```
320
-
321
- ## Eager loading
322
-
323
- A common way to increase page performance is to elimate N+1 queries by eager
324
- loading associations:
325
-
326
- ```ruby
327
- ActiveAdmin.register Post do
328
- includes :author, :categories
329
- end
330
- ```
331
-
332
- ## Customizing resource retrieval
333
-
334
- Our controllers are built on [Inherited
335
- Resources](https://github.com/activeadmin/inherited_resources), so you can use
336
- [all of its
337
- features](https://github.com/activeadmin/inherited_resources#overwriting-defaults).
338
-
339
- If you need to customize the collection properties, you can overwrite the
340
- `scoped_collection` method.
341
-
342
- ```ruby
343
- ActiveAdmin.register Post do
344
- controller do
345
- def scoped_collection
346
- end_of_association_chain.where(visibility: true)
347
- end
348
- end
349
- end
350
- ```
351
-
352
- If you need to completely replace the record retrieving code (e.g., you have a
353
- custom `to_param` implementation in your models), override the `resource` method
354
- on the controller:
355
-
356
- ```ruby
357
- ActiveAdmin.register Post do
358
- controller do
359
- def find_resource
360
- scoped_collection.where(id: params[:id]).first!
361
- end
362
- end
363
- end
364
- ```
365
-
366
- Note that if you use an authorization library like CanCan, you should be careful
367
- to not write code like this, otherwise **your authorization rules won't be
368
- applied**:
369
-
370
- ```ruby
371
- ActiveAdmin.register Post do
372
- controller do
373
- def find_resource
374
- Post.where(id: params[:id]).first!
375
- end
376
- end
377
- end
378
- ```
379
-
380
- ## Belongs To
381
-
382
- It's common to want to scope a series of resources to a relationship. For
383
- example a Project may have many Milestones and Tickets. To nest the resource
384
- within another, you can use the `belongs_to` method:
385
-
386
- ```ruby
387
- ActiveAdmin.register Project
388
- ActiveAdmin.register Ticket do
389
- belongs_to :project
390
- end
391
- ```
392
-
393
- Projects will be available as usual and tickets will be available by visiting
394
- `/admin/projects/1/tickets` assuming that a Project with the id of 1 exists.
395
- Active Admin does not add "Tickets" to the global navigation because the routes
396
- can only be generated when there is a project id.
397
-
398
- To create links to the resource, you can add them to a sidebar (one of the many
399
- possibilities for how you may with to handle your user interface):
400
-
401
- ```ruby
402
- ActiveAdmin.register Project do
403
-
404
- sidebar "Project Details", only: [:show, :edit] do
405
- ul do
406
- li link_to "Tickets", admin_project_tickets_path(resource)
407
- li link_to "Milestones", admin_project_milestones_path(resource)
408
- end
409
- end
410
- end
411
-
412
- ActiveAdmin.register Ticket do
413
- belongs_to :project
414
- end
415
-
416
- ActiveAdmin.register Milestone do
417
- belongs_to :project
418
- end
419
- ```
420
-
421
- In some cases (like Projects), there are many sub resources and you would
422
- actually like the global navigation to switch when the user navigates "into" a
423
- project. To accomplish this, Active Admin stores the `belongs_to` resources in a
424
- separate menu which you can use if you so wish. To use:
425
-
426
- ```ruby
427
- ActiveAdmin.register Ticket do
428
- belongs_to :project
429
- navigation_menu :project
430
- end
431
-
432
- ActiveAdmin.register Milestone do
433
- belongs_to :project
434
- navigation_menu :project
435
- end
436
- ```
437
-
438
- Now, when you navigate to the tickets section, the global navigation will
439
- only display "Tickets" and "Milestones". When you navigate back to a
440
- non-belongs_to resource, it will switch back to the default menu.
441
-
442
- You can also defer the menu lookup until runtime so that you can dynamically show
443
- different menus, say perhaps based on user permissions. For example:
444
-
445
- ```ruby
446
- ActiveAdmin.register Ticket do
447
- belongs_to :project
448
- navigation_menu do
449
- authorized?(:manage, SomeResource) ? :project : :restricted_menu
450
- end
451
- end
452
- ```
453
-
454
- If you still want your `belongs_to` resources to be available in the default menu
455
- and through non-nested routes, you can use the `:optional` option. For example:
456
-
457
- ```ruby
458
- ActiveAdmin.register Ticket do
459
- belongs_to :project, optional: true
460
- end
461
- ```
@@ -1,35 +0,0 @@
1
- ---
2
- redirect_from: /docs/3-index-pages/custom-index.html
3
- ---
4
-
5
- # Custom Index
6
-
7
- If the supplied Active Admin index components are insufficient for your project
8
- feel free to define your own. Index classes inherit from `ActiveAdmin::Component`
9
- and require a `build` method and an `index_name` class method.
10
-
11
- ```ruby
12
- module ActiveAdmin
13
- module Views
14
- class IndexAsMyIdea < ActiveAdmin::Component
15
-
16
- def build(page_presenter, collection)
17
- # ...
18
- end
19
-
20
- def self.index_name
21
- "my_idea"
22
- end
23
-
24
- end
25
- end
26
- end
27
- ```
28
-
29
- The build method takes a PagePresenter object and collection of whatever you
30
- choose.
31
-
32
- The `index_name` class method takes no arguments and returns a string that should
33
- be representative of the the class name. If this method is not defined, your
34
- index component will not be able take advantage of Active Admin's
35
- *multiple index pages* feature.
@@ -1,19 +0,0 @@
1
- ---
2
- redirect_from: /docs/3-index-pages/index-as-block.html
3
- ---
4
-
5
- # Index as a Block
6
-
7
- If you want to fully customize the display of your resources on the index
8
- screen, Index as a Block allows you to render a block of content for each
9
- resource.
10
-
11
- ```ruby
12
- index as: :block do |product|
13
- div for: product do
14
- resource_selection_cell product
15
- h2 auto_link product.title
16
- div simple_format product.description
17
- end
18
- end
19
- ```
@@ -1,69 +0,0 @@
1
- ---
2
- redirect_from: /docs/3-index-pages/index-as-blog.html
3
- ---
4
-
5
- # Index as Blog
6
-
7
- Render your index page as a set of posts. The post has two main options:
8
- title and body.
9
-
10
- ```ruby
11
- index as: :blog do
12
- title :my_title # Calls #my_title on each resource
13
- body :my_body # Calls #my_body on each resource
14
- end
15
- ```
16
-
17
- ## Post Title
18
-
19
- The title is the content that will be rendered within a link to the
20
- resource. There are two main ways to set the content for the title
21
-
22
- First, you can pass in a method to be called on your resource. For example:
23
-
24
- ```ruby
25
- index as: :blog do
26
- title :a_method_to_call
27
- end
28
- ```
29
-
30
- Second, you can pass a block to the tile option which will then be
31
- used as the contents fo the title. The resource being rendered
32
- is passed in to the block. For Example:
33
-
34
- ```ruby
35
- index as: :blog do
36
- title do |post|
37
- span post.title, class: 'title'
38
- span post.created_at, class: 'created_at'
39
- end
40
- end
41
- ```
42
-
43
- ## Post Body
44
-
45
- The body is rendered underneath the title of each post. The same two
46
- style of options work as the Post Title above.
47
-
48
- Call a method on the resource as the body:
49
-
50
- ```ruby
51
- index as: :blog do
52
- title :my_title
53
- body :my_body
54
- end
55
- ```
56
-
57
- Or, render a block as the body:
58
-
59
- ```ruby
60
- index as: :blog do
61
- title :my_title
62
- body do |post|
63
- div truncate post.title
64
- div class: 'meta' do
65
- span "Post in #{post.categories.join(', ')}"
66
- end
67
- end
68
- end
69
- ```
@@ -1,27 +0,0 @@
1
- ---
2
- redirect_from: /docs/3-index-pages/index-as-grid.html
3
- ---
4
-
5
- # Index as a Grid
6
-
7
- Sometimes you want to display the index screen for a set of resources as a grid
8
- (possibly a grid of thumbnail images). To do so, use the :grid option for the
9
- index block.
10
-
11
- ```ruby
12
- index as: :grid do |product|
13
- link_to image_tag(product.image_path), admin_product_path(product)
14
- end
15
- ```
16
-
17
- The block is rendered within a cell in the grid once for each resource in the
18
- collection. The resource is passed into the block for you to use in the view.
19
-
20
- You can customize the number of columns that are rendered using the columns
21
- option:
22
-
23
- ```ruby
24
- index as: :grid, columns: 5 do |product|
25
- link_to image_tag(product.image_path), admin_product_path(product)
26
- end
27
- ```