activeadmin 0.6.6 → 1.0.0.pre1

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 (512) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -8
  3. data/.hound.yml +11 -0
  4. data/.travis.yml +36 -10
  5. data/.yardopts +2 -1
  6. data/CHANGELOG.md +118 -67
  7. data/CONTRIBUTING.md +96 -73
  8. data/Gemfile +35 -35
  9. data/Guardfile +1 -0
  10. data/LICENSE +1 -1
  11. data/README.md +98 -0
  12. data/Rakefile +12 -4
  13. data/activeadmin.gemspec +21 -24
  14. data/app/assets/javascripts/active_admin/application.js.coffee +32 -0
  15. data/app/assets/javascripts/active_admin/base.js.coffee +14 -0
  16. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  17. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  18. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  19. data/app/assets/javascripts/active_admin/{components/jquery.aa.checkbox-toggler.js.coffee → lib/checkbox-toggler.js.coffee} +3 -4
  20. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +101 -0
  21. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  22. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  23. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
  24. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
  25. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +68 -0
  26. data/app/assets/javascripts/active_admin/{components/jquery.aa.table-checkbox-toggler.js.coffee → lib/table-checkbox-toggler.js.coffee} +2 -3
  27. data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
  28. data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +61 -17
  29. data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
  30. data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
  31. data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
  32. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  33. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -1
  34. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
  35. data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
  36. data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -14
  37. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +5 -4
  38. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  39. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  40. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
  41. data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +2 -3
  42. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
  43. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  44. data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +4 -2
  45. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  46. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  47. data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
  48. data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -1
  49. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  50. data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
  51. data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
  52. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  53. data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +8 -2
  54. data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -7
  55. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -9
  56. data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
  57. data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
  58. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +5 -2
  59. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +11 -9
  60. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  61. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  62. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
  63. data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
  64. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  65. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  66. data/app/views/active_admin/devise/sessions/new.html.erb +9 -7
  67. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  68. data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
  69. data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
  70. data/config/locales/ar.yml +120 -0
  71. data/config/locales/bg.yml +26 -6
  72. data/config/locales/bs.yml +122 -0
  73. data/config/locales/ca.yml +10 -1
  74. data/config/locales/cs.yml +7 -2
  75. data/config/locales/da.yml +7 -3
  76. data/config/locales/de-CH.yml +14 -31
  77. data/config/locales/de.yml +33 -33
  78. data/config/locales/el.yml +28 -2
  79. data/config/locales/en-GB.yml +12 -4
  80. data/config/locales/en.yml +29 -3
  81. data/config/locales/{es_MX.yml → es-MX.yml} +9 -24
  82. data/config/locales/es.yml +32 -25
  83. data/config/locales/fa.yml +120 -0
  84. data/config/locales/fi.yml +113 -0
  85. data/config/locales/fr.yml +21 -11
  86. data/config/locales/he.yml +7 -3
  87. data/config/locales/hr.yml +42 -11
  88. data/config/locales/hu.yml +10 -3
  89. data/config/locales/it.yml +31 -3
  90. data/config/locales/ja.yml +8 -3
  91. data/config/locales/ko.yml +7 -1
  92. data/config/locales/lt.yml +42 -11
  93. data/config/locales/lv.yml +7 -3
  94. data/config/locales/{no-NB.yml → nb.yml} +46 -15
  95. data/config/locales/nl.yml +36 -5
  96. data/config/locales/pl.yml +13 -8
  97. data/config/locales/pt-BR.yml +37 -5
  98. data/config/locales/pt-PT.yml +8 -4
  99. data/config/locales/ro.yml +7 -3
  100. data/config/locales/ru.yml +26 -5
  101. data/config/locales/sv-SE.yml +9 -5
  102. data/config/locales/tr.yml +10 -3
  103. data/config/locales/uk.yml +36 -12
  104. data/config/locales/vi.yml +7 -3
  105. data/config/locales/zh-CN.yml +26 -10
  106. data/config/locales/zh-TW.yml +19 -13
  107. data/docs/0-installation.md +65 -29
  108. data/docs/1-general-configuration.md +92 -81
  109. data/docs/10-custom-pages.md +68 -68
  110. data/docs/11-decorators.md +48 -59
  111. data/docs/12-arbre-components.md +80 -74
  112. data/docs/13-authorization-adapter.md +128 -107
  113. data/docs/14-gotchas.md +92 -0
  114. data/docs/2-resource-customization.md +293 -178
  115. data/docs/3-index-pages.md +160 -86
  116. data/docs/3-index-pages/custom-index.md +31 -0
  117. data/docs/3-index-pages/index-as-block.md +14 -9
  118. data/docs/3-index-pages/index-as-blog.md +41 -31
  119. data/docs/3-index-pages/index-as-grid.md +16 -8
  120. data/docs/3-index-pages/index-as-table.md +129 -52
  121. data/docs/4-csv-format.md +31 -24
  122. data/docs/5-forms.md +133 -56
  123. data/docs/6-show-pages.md +89 -27
  124. data/docs/7-sidebars.md +48 -27
  125. data/docs/8-custom-actions.md +98 -77
  126. data/docs/9-batch-actions.md +210 -146
  127. data/docs/README.md +24 -0
  128. data/features/action_item.feature +3 -3
  129. data/features/authorization_pundit.feature +37 -0
  130. data/features/breadcrumb.feature +48 -0
  131. data/features/comments/commenting.feature +56 -13
  132. data/features/development_reloading.feature +17 -30
  133. data/features/edit_page.feature +12 -1
  134. data/features/favicon.feature +3 -3
  135. data/features/i18n.feature +5 -4
  136. data/features/index/batch_actions.feature +41 -0
  137. data/features/index/filters.feature +67 -0
  138. data/features/index/format_as_csv.feature +90 -4
  139. data/features/index/formats.feature +27 -0
  140. data/features/index/index_as_blog.feature +4 -4
  141. data/features/index/index_as_table.feature +102 -6
  142. data/features/index/index_blank_slate.feature +22 -0
  143. data/features/index/index_scope_to.feature +16 -16
  144. data/features/index/page_title.feature +11 -0
  145. data/features/index/pagination.feature +1 -1
  146. data/features/index/switch_index_view.feature +14 -14
  147. data/features/new_page.feature +13 -2
  148. data/features/registering_pages.feature +1 -1
  149. data/features/renamed_resource.feature +32 -0
  150. data/features/show/page_title.feature +11 -0
  151. data/features/show/tabs.feature +27 -0
  152. data/features/sidebar_sections.feature +12 -0
  153. data/features/site_title.feature +2 -2
  154. data/features/specifying_actions.feature +3 -3
  155. data/features/step_definitions/action_item_steps.rb +2 -2
  156. data/features/step_definitions/action_link_steps.rb +14 -1
  157. data/features/step_definitions/additional_web_steps.rb +19 -20
  158. data/features/step_definitions/asset_steps.rb +3 -3
  159. data/features/step_definitions/attribute_steps.rb +8 -3
  160. data/features/step_definitions/batch_action_steps.rb +26 -9
  161. data/features/step_definitions/blog_steps.rb +3 -0
  162. data/features/step_definitions/breadcrumb_steps.rb +1 -1
  163. data/features/step_definitions/comment_steps.rb +1 -1
  164. data/features/step_definitions/configuration_steps.rb +9 -2
  165. data/features/step_definitions/dashboard_steps.rb +2 -2
  166. data/features/step_definitions/factory_steps.rb +9 -8
  167. data/features/step_definitions/filter_steps.rb +25 -3
  168. data/features/step_definitions/flash_steps.rb +3 -3
  169. data/features/step_definitions/format_steps.rb +18 -18
  170. data/features/step_definitions/index_scope_steps.rb +5 -5
  171. data/features/step_definitions/layout_steps.rb +1 -1
  172. data/features/step_definitions/member_link_steps.rb +2 -2
  173. data/features/step_definitions/menu_steps.rb +3 -3
  174. data/features/step_definitions/pagination_steps.rb +2 -3
  175. data/features/step_definitions/sidebar_steps.rb +8 -3
  176. data/features/step_definitions/site_title_steps.rb +6 -4
  177. data/features/step_definitions/symbol_leak_steps.rb +3 -0
  178. data/features/step_definitions/tab_steps.rb +5 -0
  179. data/features/step_definitions/table_steps.rb +4 -4
  180. data/features/step_definitions/user_steps.rb +10 -7
  181. data/features/step_definitions/web_steps.rb +14 -11
  182. data/features/sti_resource.feature +6 -2
  183. data/features/strong_parameters.feature +73 -0
  184. data/features/support/env.rb +34 -9
  185. data/features/support/paths.rb +14 -6
  186. data/features/support/selectors.rb +1 -1
  187. data/features/symbol_leak.feature +35 -0
  188. data/features/users/resetting_password.feature +5 -6
  189. data/lib/active_admin.rb +26 -25
  190. data/lib/active_admin/abstract_view_factory.rb +7 -17
  191. data/lib/active_admin/application.rb +72 -59
  192. data/lib/active_admin/asset_registration.rb +2 -2
  193. data/lib/active_admin/authorization_adapter.rb +2 -2
  194. data/lib/active_admin/base_controller.rb +2 -3
  195. data/lib/active_admin/base_controller/authorization.rb +13 -31
  196. data/lib/active_admin/batch_actions.rb +1 -1
  197. data/lib/active_admin/batch_actions/controller.rb +24 -8
  198. data/lib/active_admin/batch_actions/resource_extension.rb +47 -18
  199. data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
  200. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
  201. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
  202. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
  203. data/lib/active_admin/callbacks.rb +25 -24
  204. data/lib/active_admin/cancan_adapter.rb +7 -11
  205. data/lib/active_admin/csv_builder.rb +92 -15
  206. data/lib/active_admin/dependency.rb +93 -0
  207. data/lib/active_admin/deprecation.rb +6 -7
  208. data/lib/active_admin/devise.rb +28 -18
  209. data/lib/active_admin/dsl.rb +18 -11
  210. data/lib/active_admin/engine.rb +10 -8
  211. data/lib/active_admin/error.rb +62 -0
  212. data/lib/active_admin/filters/dsl.rb +2 -2
  213. data/lib/active_admin/filters/forms.rb +17 -27
  214. data/lib/active_admin/filters/formtastic_addons.rb +49 -15
  215. data/lib/active_admin/filters/resource_extension.rb +43 -34
  216. data/lib/active_admin/form_builder.rb +93 -154
  217. data/lib/active_admin/helpers/collection.rb +7 -13
  218. data/lib/active_admin/helpers/i18n.rb +7 -0
  219. data/lib/active_admin/helpers/optional_display.rb +5 -5
  220. data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
  221. data/lib/active_admin/helpers/scope_chain.rb +1 -1
  222. data/lib/active_admin/helpers/settings.rb +16 -9
  223. data/lib/active_admin/iconic.rb +17 -15
  224. data/lib/active_admin/iconic/icons.rb +136 -136
  225. data/lib/active_admin/inputs.rb +11 -7
  226. data/lib/active_admin/inputs/datepicker_input.rb +12 -3
  227. data/lib/active_admin/inputs/filters/base.rb +42 -0
  228. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  229. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  230. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  231. data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  232. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  233. data/lib/active_admin/inputs/filters/select_input.rb +54 -0
  234. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  235. data/lib/active_admin/menu.rb +6 -4
  236. data/lib/active_admin/menu_collection.rb +1 -4
  237. data/lib/active_admin/namespace.rb +55 -29
  238. data/lib/active_admin/order_clause.rb +26 -0
  239. data/lib/active_admin/orm/active_record.rb +5 -0
  240. data/lib/active_admin/orm/active_record/comments.rb +81 -0
  241. data/lib/active_admin/orm/active_record/comments/comment.rb +45 -0
  242. data/lib/active_admin/{comments → orm/active_record/comments}/namespace_helper.rb +2 -2
  243. data/lib/active_admin/{comments → orm/active_record/comments}/resource_helper.rb +1 -1
  244. data/lib/active_admin/{comments → orm/active_record/comments}/show_page_helper.rb +0 -0
  245. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  246. data/lib/active_admin/{comments → orm/active_record/comments}/views/active_admin_comments.rb +16 -14
  247. data/lib/active_admin/orm/mongoid.rb +1 -0
  248. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  249. data/lib/active_admin/page.rb +7 -3
  250. data/lib/active_admin/page_dsl.rb +1 -1
  251. data/lib/active_admin/page_presenter.rb +2 -2
  252. data/lib/active_admin/pundit_adapter.rb +68 -0
  253. data/lib/active_admin/resource.rb +16 -17
  254. data/lib/active_admin/resource/action_items.rb +23 -18
  255. data/lib/active_admin/resource/belongs_to.rb +7 -3
  256. data/lib/active_admin/resource/controllers.rb +1 -0
  257. data/lib/active_admin/resource/includes.rb +12 -0
  258. data/lib/active_admin/resource/menu.rb +5 -5
  259. data/lib/active_admin/resource/naming.rb +27 -43
  260. data/lib/active_admin/resource/page_presenters.rb +1 -1
  261. data/lib/active_admin/resource/routes.rb +27 -11
  262. data/lib/active_admin/resource/scope_to.rb +7 -7
  263. data/lib/active_admin/resource/sidebars.rb +1 -0
  264. data/lib/active_admin/resource_controller.rb +6 -7
  265. data/lib/active_admin/resource_controller/data_access.rb +101 -93
  266. data/lib/active_admin/resource_controller/decorators.rb +91 -9
  267. data/lib/active_admin/resource_controller/streaming.rb +37 -0
  268. data/lib/active_admin/resource_dsl.rb +53 -10
  269. data/lib/active_admin/router.rb +7 -7
  270. data/lib/active_admin/scope.rb +6 -6
  271. data/lib/active_admin/sidebar_section.rb +10 -2
  272. data/lib/active_admin/version.rb +1 -1
  273. data/lib/active_admin/view_factory.rb +17 -17
  274. data/lib/active_admin/view_helpers.rb +0 -1
  275. data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
  276. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
  277. data/lib/active_admin/view_helpers/display_helper.rb +30 -15
  278. data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -25
  279. data/lib/active_admin/view_helpers/fields_for.rb +4 -4
  280. data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
  281. data/lib/active_admin/view_helpers/form_helper.rb +5 -9
  282. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
  283. data/lib/active_admin/views/action_items.rb +2 -2
  284. data/lib/active_admin/views/components/action_list_popover.rb +1 -1
  285. data/lib/active_admin/views/components/active_admin_form.rb +123 -0
  286. data/lib/active_admin/views/components/attributes_table.rb +63 -21
  287. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  288. data/lib/active_admin/views/components/columns.rb +13 -7
  289. data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
  290. data/lib/active_admin/views/components/index_list.rb +7 -7
  291. data/lib/active_admin/views/components/paginated_collection.rb +38 -20
  292. data/lib/active_admin/views/components/panel.rb +8 -2
  293. data/lib/active_admin/views/components/popover.rb +1 -1
  294. data/lib/active_admin/views/components/scopes.rb +5 -4
  295. data/lib/active_admin/views/components/sidebar_section.rb +3 -2
  296. data/lib/active_admin/views/components/site_title.rb +2 -2
  297. data/lib/active_admin/views/components/status_tag.rb +34 -11
  298. data/lib/active_admin/views/components/table_for.rb +90 -45
  299. data/lib/active_admin/views/components/tabs.rb +28 -0
  300. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  301. data/lib/active_admin/views/footer.rb +3 -3
  302. data/lib/active_admin/views/header.rb +3 -3
  303. data/lib/active_admin/views/index_as_block.rb +10 -10
  304. data/lib/active_admin/views/index_as_blog.rb +45 -39
  305. data/lib/active_admin/views/index_as_grid.rb +14 -10
  306. data/lib/active_admin/views/index_as_table.rb +242 -129
  307. data/lib/active_admin/views/pages/base.rb +22 -18
  308. data/lib/active_admin/views/pages/form.rb +21 -11
  309. data/lib/active_admin/views/pages/index.rb +40 -35
  310. data/lib/active_admin/views/pages/layout.rb +1 -1
  311. data/lib/active_admin/views/pages/show.rb +4 -4
  312. data/lib/active_admin/views/tabbed_navigation.rb +7 -3
  313. data/lib/active_admin/views/title_bar.rb +10 -8
  314. data/lib/generators/active_admin/assets/assets_generator.rb +3 -28
  315. data/lib/generators/active_admin/assets/templates/{3.1/active_admin.css.scss → active_admin.css.scss} +0 -0
  316. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  317. data/lib/generators/active_admin/devise/devise_generator.rb +24 -26
  318. data/lib/generators/active_admin/install/install_generator.rb +8 -9
  319. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +28 -26
  320. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -2
  321. data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
  322. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
  323. data/lib/generators/active_admin/page/USAGE +8 -0
  324. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  325. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  326. data/lib/generators/active_admin/resource/resource_generator.rb +3 -5
  327. data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
  328. data/lib/ransack_ext.rb +12 -0
  329. data/script/local +2 -2
  330. data/script/travis_cache +107 -0
  331. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  332. data/spec/javascripts/fixtures/flashes.html +2 -0
  333. data/spec/rails_helper.rb +154 -0
  334. data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
  335. data/spec/{integration → requests}/javascript_spec.rb +5 -5
  336. data/spec/requests/memory_spec.rb +23 -0
  337. data/spec/requests/stylesheets_spec.rb +18 -0
  338. data/spec/spec_helper.rb +12 -173
  339. data/spec/support/detect_rails_version.rb +9 -17
  340. data/spec/support/rails_template.rb +64 -35
  341. data/spec/support/rails_template_with_data.rb +14 -14
  342. data/spec/support/templates/admin/stores.rb +5 -1
  343. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  344. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  345. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  346. data/spec/support/templates/policies/application_policy.rb +45 -0
  347. data/spec/support/templates/policies/category_policy.rb +7 -0
  348. data/spec/support/templates/policies/post_policy.rb +15 -0
  349. data/spec/support/templates/policies/store_policy.rb +11 -0
  350. data/spec/support/templates/policies/user_policy.rb +11 -0
  351. data/spec/support/templates/post_decorator.rb +4 -46
  352. data/spec/unit/abstract_view_factory_spec.rb +16 -16
  353. data/spec/unit/action_builder_spec.rb +24 -18
  354. data/spec/unit/active_admin_spec.rb +2 -2
  355. data/spec/unit/application_spec.rb +33 -34
  356. data/spec/unit/asset_registration_spec.rb +25 -29
  357. data/spec/unit/authorization/authorization_adapter_spec.rb +10 -10
  358. data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
  359. data/spec/unit/authorization/index_overriding_spec.rb +22 -0
  360. data/spec/unit/auto_link_spec.rb +43 -13
  361. data/spec/unit/batch_actions/resource_spec.rb +15 -14
  362. data/spec/unit/batch_actions/settings_spec.rb +18 -18
  363. data/spec/unit/belongs_to_spec.rb +28 -19
  364. data/spec/unit/cancan_adapter_spec.rb +8 -8
  365. data/spec/unit/comments_spec.rb +99 -39
  366. data/spec/unit/component_spec.rb +3 -3
  367. data/spec/unit/config_shared_examples.rb +10 -10
  368. data/spec/unit/controller_filters_spec.rb +23 -16
  369. data/spec/unit/csv_builder_spec.rb +165 -24
  370. data/spec/unit/dependency_spec.rb +135 -0
  371. data/spec/unit/devise_spec.rb +17 -37
  372. data/spec/unit/dsl_spec.rb +70 -9
  373. data/spec/unit/event_spec.rb +11 -11
  374. data/spec/unit/filters/filter_form_builder_spec.rb +207 -148
  375. data/spec/unit/filters/resource_spec.rb +60 -26
  376. data/spec/unit/form_builder_spec.rb +419 -145
  377. data/spec/unit/generators/install_spec.rb +23 -0
  378. data/spec/unit/helpers/collection_spec.rb +18 -18
  379. data/spec/unit/helpers/scope_chain_spec.rb +6 -6
  380. data/spec/unit/helpers/settings_spec.rb +4 -4
  381. data/spec/unit/i18n_spec.rb +12 -0
  382. data/spec/unit/menu_collection_spec.rb +14 -14
  383. data/spec/unit/menu_item_spec.rb +42 -42
  384. data/spec/unit/menu_spec.rb +20 -20
  385. data/spec/unit/namespace/authorization_spec.rb +8 -8
  386. data/spec/unit/namespace/register_page_spec.rb +11 -11
  387. data/spec/unit/namespace/register_resource_spec.rb +28 -30
  388. data/spec/unit/namespace_spec.rb +20 -20
  389. data/spec/unit/order_clause_spec.rb +81 -0
  390. data/spec/unit/page_controller_spec.rb +1 -1
  391. data/spec/unit/page_spec.rb +18 -12
  392. data/spec/unit/pretty_format_spec.rb +42 -14
  393. data/spec/unit/pundit_adapter_spec.rb +98 -0
  394. data/spec/unit/resource/action_items_spec.rb +15 -12
  395. data/spec/unit/resource/includes_spec.rb +21 -0
  396. data/spec/unit/resource/menu_spec.rb +1 -1
  397. data/spec/unit/resource/naming_spec.rb +35 -21
  398. data/spec/unit/resource/page_presenters_spec.rb +8 -8
  399. data/spec/unit/resource/pagination_spec.rb +6 -6
  400. data/spec/unit/resource/routes_spec.rb +10 -10
  401. data/spec/unit/resource/scopes_spec.rb +14 -7
  402. data/spec/unit/resource/sidebars_spec.rb +6 -6
  403. data/spec/unit/resource_collection_spec.rb +31 -38
  404. data/spec/unit/resource_controller/data_access_spec.rb +96 -30
  405. data/spec/unit/resource_controller/decorators_spec.rb +83 -0
  406. data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
  407. data/spec/unit/resource_controller_spec.rb +73 -70
  408. data/spec/unit/resource_registration_spec.rb +12 -12
  409. data/spec/unit/resource_spec.rb +77 -42
  410. data/spec/unit/routing_spec.rb +39 -31
  411. data/spec/unit/scope_spec.rb +112 -30
  412. data/spec/unit/settings_spec.rb +51 -21
  413. data/spec/unit/view_factory_spec.rb +2 -3
  414. data/spec/unit/view_helpers/breadcrumbs_spec.rb +71 -60
  415. data/spec/unit/view_helpers/display_name_spec.rb +49 -21
  416. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
  417. data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
  418. data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  419. data/spec/unit/view_helpers/form_helper_spec.rb +10 -23
  420. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +64 -22
  421. data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
  422. data/spec/unit/views/components/attributes_table_spec.rb +171 -30
  423. data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
  424. data/spec/unit/views/components/blank_slate_spec.rb +14 -4
  425. data/spec/unit/views/components/columns_spec.rb +52 -22
  426. data/spec/unit/views/components/index_list_spec.rb +11 -8
  427. data/spec/unit/views/components/index_table_for_spec.rb +46 -0
  428. data/spec/unit/views/components/paginated_collection_spec.rb +79 -90
  429. data/spec/unit/views/components/panel_spec.rb +32 -21
  430. data/spec/unit/views/components/popover_spec.rb +7 -7
  431. data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
  432. data/spec/unit/views/components/site_title_spec.rb +26 -26
  433. data/spec/unit/views/components/status_tag_spec.rb +178 -38
  434. data/spec/unit/views/components/table_for_spec.rb +237 -35
  435. data/spec/unit/views/components/tabs_spec.rb +39 -0
  436. data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  437. data/spec/unit/views/pages/form_spec.rb +17 -10
  438. data/spec/unit/views/pages/index_spec.rb +60 -0
  439. data/spec/unit/views/pages/layout_spec.rb +17 -21
  440. data/spec/unit/views/pages/show_spec.rb +18 -6
  441. data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
  442. data/tasks/docs.rake +9 -11
  443. data/tasks/parallel_tests.rake +8 -2
  444. data/tasks/test.rake +13 -9
  445. data/tasks/yard.rake +7 -4
  446. metadata +219 -163
  447. data/.document +0 -5
  448. data/README.rdoc +0 -88
  449. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  450. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  451. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  452. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  453. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  454. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
  455. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
  456. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
  457. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
  458. data/app/assets/images/active_admin/loading.gif +0 -0
  459. data/app/assets/javascripts/active_admin/application.js +0 -3
  460. data/app/assets/javascripts/active_admin/base.js +0 -5
  461. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +0 -105
  462. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +0 -97
  463. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +0 -4
  464. data/app/assets/javascripts/active_admin/pages/application.js.coffee +0 -21
  465. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +0 -26
  466. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
  467. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -41
  468. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
  469. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +0 -38
  470. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +0 -43
  471. data/app/views/active_admin/dashboard/index.html.arb +0 -1
  472. data/app/views/active_admin/resource/index.csv.erb +0 -23
  473. data/docs/3-index-pages/create-an-index.md +0 -29
  474. data/lib/active_admin/comments.rb +0 -83
  475. data/lib/active_admin/comments/comment.rb +0 -42
  476. data/lib/active_admin/comments/views.rb +0 -2
  477. data/lib/active_admin/dependency_checker.rb +0 -46
  478. data/lib/active_admin/inputs/filter_base.rb +0 -33
  479. data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
  480. data/lib/active_admin/inputs/filter_boolean_input.rb +0 -36
  481. data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -40
  482. data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
  483. data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
  484. data/lib/active_admin/inputs/filter_select_input.rb +0 -49
  485. data/lib/active_admin/inputs/filter_string_input.rb +0 -24
  486. data/lib/active_admin/reloader.rb +0 -130
  487. data/lib/active_admin/resource_controller/actions.rb +0 -81
  488. data/lib/active_admin/sass/active_admin.scss +0 -3
  489. data/lib/active_admin/sass/css_loader.rb +0 -16
  490. data/lib/active_admin/sass/helpers.rb +0 -45
  491. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
  492. data/lib/active_admin/views/dashboard_section_renderer.rb +0 -19
  493. data/lib/active_admin/views/pages/dashboard.rb +0 -62
  494. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +0 -1
  495. data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +0 -1
  496. data/lib/meta_search_ext.rb +0 -10
  497. data/spec/integration/memory_spec.rb +0 -29
  498. data/spec/integration/stylesheets_spec.rb +0 -41
  499. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
  500. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
  501. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
  502. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
  503. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
  504. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
  505. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
  506. data/spec/javascripts/support/jquery.min.js +0 -4
  507. data/spec/spec_helper_without_rails.rb +0 -11
  508. data/spec/unit/generators/install_rails_3_1_spec.rb +0 -16
  509. data/spec/unit/rails_spec.rb +0 -43
  510. data/spec/unit/reloader_spec.rb +0 -124
  511. data/spec/unit/sass/helpers_spec.rb +0 -47
  512. data/tasks/js.rake +0 -32
@@ -1,129 +1,140 @@
1
1
  # General Configuration
2
2
 
3
- Active Admin generates an initializer for you with sane defaults. The
4
- initializer can be found at `config/initializers/active_admin.rb`. For the most
5
- part, it is well documented. Here are a few common configurations.
3
+ You can configure Active Admin settings in `config/initializers/active_admin.rb`.
4
+ Here are a few common configurations:
6
5
 
7
6
  ## Authentication
8
7
 
9
8
  Active Admin requires two settings to authenticate and use the current user
10
- within your application. Both are set in `config/initializers/active_admin.rb`.
11
- By default they are setup for use with Devise and a model named AdminUser. If
12
- you chose a different model name, you will need to update these settings.
9
+ within your application.
13
10
 
14
- Set the method that controllers should call to authenticate the current user
15
- with:
11
+ + the method controllers used to force authentication
16
12
 
17
- # config/initializers/active_admin.rb
18
- config.authentication_method = :authenticate_admin_user!
13
+ ```ruby
14
+ config.authentication_method = :authenticate_admin_user!
15
+ ```
19
16
 
20
- Set the method to call within the view to access the current admin user
17
+ + the method used to access the current user
21
18
 
22
- # config/initializers/active_admin.rb
23
- config.current_user_method = :current_admin_user
19
+ ```ruby
20
+ config.current_user_method = :current_admin_user
21
+ ```
24
22
 
25
23
  Both of these settings can be set to false to turn off authentication.
26
24
 
27
- # Turn off authentication all together
28
- config.authentication_method = false
29
- config.current_user_method = false
25
+ ```ruby
26
+ config.authentication_method = false
27
+ config.current_user_method = false
28
+ ```
30
29
 
31
30
  ## Site Title Options
32
31
 
33
- You can update the title or use an optional image in the initializer also. In addition you can set the link. By default
34
- there is no link and the title is set to the name of your Rails.application class name.
32
+ Every page has what's called the site title on the left side of the menu bar.
33
+ If you want, you can customize it.
35
34
 
36
- # config/initializers/active_admin.rb
37
- config.site_title = "My Admin Site"
38
- config.site_title_link = "/" ## Rails url helpers do not work here
39
- config.site_title_image = "site_log_image.png"
35
+ ```ruby
36
+ config.site_title = "My Admin Site"
37
+ config.site_title_link = "/"
38
+ config.site_title_image = "site_image.png"
39
+ config.site_title_image = "http://www.google.com/images/logos/google_logo_41.png"
40
+ config.site_title_image = ->(context) { context.current_user.company.logo_url }
41
+ ```
40
42
 
41
43
  ## Internationalization (I18n)
42
44
 
43
- To internationalize Active Admin or to change default strings, you can copy
44
- `lib/active_admin/locales/en.yml` to your application `config/locales` directory and
45
- change its content. You can contribute to the project with your translations too!
45
+ To translate Active Admin to a new language or customize an existing translation, you can copy
46
+ [config/locales/en.yml](https://github.com/activeadmin/activeadmin/blob/master/config/locales/en.yml)
47
+ to your application's `config/locales` folder and update it. We welcome new/updated translations,
48
+ so feel free to [contribute](https://github.com/activeadmin/activeadmin/blob/master/CONTRIBUTING.md)!
49
+ To translate third party gems like devise, use for example devise-i18n.
46
50
 
47
51
  ## Namespaces
48
52
 
49
53
  When registering resources in Active Admin, they are loaded into a namespace.
50
54
  The default namespace is "admin".
51
55
 
52
- # app/admin/posts.rb
53
- ActiveAdmin.register Post do
54
- # ...
55
- end
56
+ ```ruby
57
+ # app/admin/posts.rb
58
+ ActiveAdmin.register Post do
59
+ # ...
60
+ end
61
+ ```
56
62
 
57
63
  The Post resource will be loaded into the "admin" namespace and will be
58
- available at `/admin/posts`. Each namespace holds on to its own configuration
59
- settings which inherit from the application's general configurations.
64
+ available at `/admin/posts`. Each namespace holds on to its own settings that
65
+ inherit from the application's configuration.
60
66
 
61
- For example, if you have two namespaces: `:admin` and `super_admin` and want to
62
- have different site title's for each namespace. You can use the
63
- `config.namespace(name)` block within the initializer file to configure them
64
- individually.
67
+ For example, if you have two namespaces (`:admin` and `:super_admin`) and want to
68
+ have different site title's for each, you can use the `config.namespace(name)`
69
+ block within the initializer file to configure them individually.
65
70
 
66
- ActiveAdmin.setup do |config|
67
- config.site_title = "My Default Site Title"
71
+ ```ruby
72
+ ActiveAdmin.setup do |config|
73
+ config.site_title = "My Default Site Title"
68
74
 
69
- config.namespace :admin do |admin|
70
- admin.site_title = "Admin Site"
71
- end
75
+ config.namespace :admin do |admin|
76
+ admin.site_title = "Admin Site"
77
+ end
72
78
 
73
- config.namespace :super_admin do |super_admin|
74
- super_admin.site_title = "Super Admin Site"
75
- end
76
- end
79
+ config.namespace :super_admin do |super_admin|
80
+ super_admin.site_title = "Super Admin Site"
81
+ end
82
+ end
83
+ ```
77
84
 
78
85
  Each setting available in the Active Admin setup block is configurable on a per
79
86
  namespace basis.
80
87
 
81
88
  ## Load paths
82
89
 
83
- By default Active Admin files go under '/app/admin'. You can change this
90
+ By default Active Admin files go inside `app/admin/`. You can change this
84
91
  directory in the initializer file:
85
92
 
86
- ActiveAdmin.setup do |config|
87
- config.load_paths = [File.join(Rails.root, "app", "ui")]
88
- end
93
+ ```ruby
94
+ ActiveAdmin.setup do |config|
95
+ config.load_paths = [File.join(Rails.root, "app", "ui")]
96
+ end
97
+ ```
89
98
 
90
99
  ## Comments
91
100
 
92
101
  By default Active Admin includes comments on resources. Sometimes, this is
93
- undesired. To disable comments for the entire application:
94
-
95
- ActiveAdmin.setup do |config|
96
-
97
- config.allow_comments = false
98
-
99
- end
100
-
101
- If you would like to enable / disable comments for just a namespace, do the
102
- following:
103
-
104
- ActiveAdmin.setup do |config|
105
-
106
- config.namespace :admin do |admin|
107
- admin.allow_comments = false
108
- end
109
-
110
- end
111
-
112
- You can also disable comments for a specific resource:
113
-
114
- ActiveAdmin.register Post do
115
- config.comments = false
116
- end
102
+ undesired. To disable comments:
103
+
104
+ ```ruby
105
+ # For the entire application:
106
+ ActiveAdmin.setup do |config|
107
+ config.comments = false
108
+ end
109
+
110
+ # For a namespace:
111
+ ActiveAdmin.setup do |config|
112
+ config.namespace :admin do |admin|
113
+ admin.comments = false
114
+ end
115
+ end
116
+
117
+ # For a given resource:
118
+ ActiveAdmin.register Post do
119
+ config.comments = false
120
+ end
121
+ ```
117
122
 
118
123
  ## Utility Navigation
119
124
 
120
- The "utility navigation" shown at the top right when logged in by default shows the current user email address and a link to "Log Out". However, the utility navigation is just like any other menu in the system, so you can provide your own menu to be rendered in place if you like.
121
-
122
- ActiveAdmin.setup do |config|
123
- config.namespace :admin do |admin|
124
- admin.build_menu :utility_navigation do |menu|
125
- menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank }
126
- admin.add_logout_button_to_menu menu # can also pass priority & html_options for link_to to use
127
- end
128
- end
125
+ The "utility navigation" shown at the top right normally shows the current user
126
+ and a link to log out. However, the utility navigation is just like any other
127
+ menu in the system; you can provide your own menu to be rendered in its place.
128
+
129
+ ```ruby
130
+ ActiveAdmin.setup do |config|
131
+ config.namespace :admin do |admin|
132
+ admin.build_menu :utility_navigation do |menu|
133
+ menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info",
134
+ html_options: { target: :blank }
135
+ admin.add_current_user_to_menu menu
136
+ admin.add_logout_button_to_menu menu
129
137
  end
138
+ end
139
+ end
140
+ ```
@@ -1,96 +1,96 @@
1
1
  # Custom Pages
2
2
 
3
- When you need a standalone page on your site, Custom Pages will be there with a familiar syntax to resource registration.
3
+ If you have data you want on a standalone page that isn't tied to a resource,
4
+ custom pages provide you with a familiar syntax and feature set:
4
5
 
5
- ## Available Features
6
- * main page content
7
- * menu item
6
+ * a menu item
8
7
  * sidebars
9
- * action_items
10
- * page_actions
8
+ * action items
9
+ * page actions
11
10
 
12
11
  ## Create a new Page
13
12
 
14
- Creating a page is a simple as calling the `register_page` method:
15
-
16
- ActiveAdmin.register_page "My Page" do
17
- content do
18
- para "Hello World"
19
- end
13
+ Creating a page is as simple as calling `register_page`:
14
+
15
+ ```ruby
16
+ # app/admin/calendar.rb
17
+ ActiveAdmin.register_page "Calendar" do
18
+ content do
19
+ para "Hello World"
20
+ end
21
+ end
22
+ ```
23
+
24
+ Anything rendered within `content` will be the main content on the page.
25
+ Partials behave exactly the same way as they do for resources:
26
+
27
+ ```ruby
28
+ # app/admin/calendar.rb
29
+ ActiveAdmin.register_page "Calendar" do
30
+ content do
31
+ render partial: 'calendar'
32
+ end
33
+ end
34
+
35
+ # app/views/admin/calendar/_calendar.html.arb
36
+ table do
37
+ thead do
38
+ tr do
39
+ %w[Sunday Monday Tuesday Wednesday Thursday Friday Saturday].each &method(:th)
20
40
  end
21
-
22
- In the above example, a new page will be created at `/admin/my_page` with the
23
- title "My Page" and the content of "Hello World". Anything rendered within
24
- `content` will be the main content on the page.
25
-
26
- ## Page Title & I18n
27
-
28
- Coming soon...
41
+ end
42
+ tbody do
43
+ # ...
44
+ end
45
+ end
46
+ ```
29
47
 
30
48
  ## Customize the Menu
31
49
 
32
- The menu item is available to customize just like
33
- [any other resource](2-resource-customization.md#customize-the-menu) in Active Admin.
50
+ See the [Menu](2-resource-customization.md#customize-the-menu) documentation.
34
51
 
35
- ## Add a Sidebar Section
52
+ ## Customize the Namespace
36
53
 
37
- You can add sidebar sections to your pages using the same DSL as other resources
38
- in Active Admin:
54
+ We use the `admin` namespace by default, but you can use anything:
39
55
 
40
- ActiveAdmin.register_page "My Page" do
56
+ ```ruby
57
+ # Available at /today/calendar
58
+ ActiveAdmin.register_page "Calendar", namespace: :today
41
59
 
42
- sidebar :help do
43
- ul do
44
- li "First Line of Help"
45
- end
46
- end
60
+ # Available at /calendar
61
+ ActiveAdmin.register_page "Calendar", namespace: false
62
+ ```
47
63
 
48
- content do
49
- para "Hello World"
50
- end
51
- end
64
+ ## Add a Sidebar
52
65
 
53
- This creates a sidebar section named "Help" containing an unordered list.
54
- To view the full customization options, visit [Sidebars](7-sidebars.md).
66
+ See the [Sidebars](7-sidebars.md) documentation.
55
67
 
56
68
  ## Add an Action Item
57
69
 
58
- Just like other resources, you can add Action Item's to pages:
59
-
60
- ActiveAdmin.register_page "My Page" do
70
+ Just like other resources, you can add action items. The difference here being that
71
+ `:only` and `:except` don't apply because there's only one page it could apply to.
61
72
 
62
- action_item do
63
- link_to "View Site", "/"
64
- end
65
-
66
- content do
67
- para "Hello World"
68
- end
69
- end
70
-
71
- This adds an action item that links to the root URL of the application.
73
+ ```ruby
74
+ action_item :view_site do
75
+ link_to "View Site", "/"
76
+ end
77
+ ```
72
78
 
73
79
  ## Add a Page Action
74
80
 
75
- `page_action` allows you to define controller actions specific to this page,
76
- and is the functional equivalent of `collection_action`.
81
+ Page actions are custom controller actions (which mirror the resource DSL for the same feature).
77
82
 
78
- ActiveAdmin.register_page "My Page" do
83
+ ```ruby
84
+ page_action :add_event, method: :post do
85
+ # ...
86
+ redirect_to admin_calendar_path, notice: "Your event was added"
87
+ end
79
88
 
80
- page_action :ex, :method => :post do
81
- # do stuff here
82
- redirect_to admin_my_page_path, :notice => "You did stuff!"
83
- end
84
-
85
- action_item do
86
- link_to "Do Stuff", admin_my_page_ex_path, :method => :post
87
- end
88
-
89
- content do
90
- para "Hello World"
91
- end
92
- end
89
+ action_item :add do
90
+ link_to "Add Event", admin_calendar_add_event_path, method: :post
91
+ end
92
+ ```
93
93
 
94
- This defines the route `/admin/my_page/ex` which can handle HTTP POST requests.
94
+ This defines the route `/admin/calendar/add_event` which can handle HTTP POST requests.
95
95
 
96
- Clicking on the `action_item` will reload page with the message "You did stuff!"
96
+ Clicking on the action item will reload page and display the message "Your event was added"
@@ -1,66 +1,55 @@
1
1
  # Decorators
2
2
 
3
- Active Admin supports the use of decorators for resources. Resources will be
4
- decorated for the index and show blocks. The
5
- [draper](https://github.com/drapergem/draper) gem is recommended but not required
6
- (more on requirements below). Note, that Active Admin works out of the box with
7
- Draper `>= 1.0.0`.
8
-
9
- ## Configuration
10
-
11
- ActiveAdmin.register Post do
12
- decorate_with PostDecorator
13
- end
14
-
15
- ## Example Usage
16
-
17
- This example uses [draper](https://github.com/drapergem/draper).
18
-
19
- # Gemfile
20
- gem 'draper', '>= 1.0.0'
21
-
22
- Assuming a post and a post decorator
23
-
24
- class Post < ActiveRecord::Base; end
25
-
26
- class PostDecorator < ApplicationDecorator
27
- decorates :post
28
-
29
- def image
30
- h.image_tag model.image_url
31
- end
32
- end
33
-
34
- Then the following is possible
35
-
36
- ActiveAdmin.register Post do
37
- decorate_with PostDecorator
38
-
39
- index do
40
- column(:title)
41
- column(:image)
42
- end
43
-
44
- show do
45
- attributes_table do
46
- row(:title)
47
- row(:image)
48
- end
49
- end
50
- end
3
+ Active Admin allows you to use the decorator pattern to provide view-specific
4
+ versions of a resource. [Draper](https://github.com/drapergem/draper) is
5
+ recommended but not required.
6
+
7
+ To use decorator support without Draper, your decorator must support a variety
8
+ of collection methods to support pagination, filtering, etc. See
9
+ [this github issue discussion](https://github.com/activeadmin/activeadmin/issues/3600)
10
+ and [this gem](https://github.com/kiote/activeadmin-poro-decorator) for more details.
11
+
12
+ ## Example usage
13
+
14
+ ```ruby
15
+ # app/models/post.rb
16
+ class Post < ActiveRecord::Base
17
+ # has title, content, and image_url
18
+ end
19
+
20
+ # app/decorators/post_decorator.rb
21
+ class PostDecorator < Draper::Decorator
22
+ delegate_all
23
+
24
+ def image
25
+ h.image_tag model.image_url
26
+ end
27
+ end
28
+
29
+ # app/admin/post.rb
30
+ ActiveAdmin.register Post do
31
+ decorate_with PostDecorator
32
+
33
+ index do
34
+ column :title
35
+ column :image
36
+ actions
37
+ end
38
+ end
39
+ ```
51
40
 
52
41
  ## Forms
53
42
 
54
- Note that the resource proveded to form_for also gets decorated.
55
-
56
- In most cases this will work as expected. However, it is possible to disable
57
- automatic decoration in the form with the `decorate` option:
58
-
59
- ActiveAdmin.register Post do
60
- decorate_with PostDecorator
43
+ By default, ActiveAdmin does *not* decorate the resource used to render forms.
44
+ If you need ActiveAdmin to decorate the forms, you can pass `decorate: true` to the
45
+ form block.
61
46
 
62
- form decorate: false do
63
- # ...
64
- end
65
- end
47
+ ```ruby
48
+ ActiveAdmin.register Post do
49
+ decorate_with PostDecorator
66
50
 
51
+ form decorate: true do |f|
52
+ # ...
53
+ end
54
+ end
55
+ ```