activeadmin 1.3.0 → 2.13.1

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 (582) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +764 -135
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +83 -61
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +3 -25
  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/_main_structure.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  25. data/app/javascript/active_admin/base.js +28 -0
  26. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  27. data/app/javascript/active_admin/ext/jquery.js +9 -0
  28. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  29. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  30. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  31. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  32. data/app/javascript/active_admin/initializers/filters.js +10 -0
  33. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  34. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  35. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  36. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  37. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  38. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  39. data/app/javascript/active_admin/lib/filters.js +39 -0
  40. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  41. data/app/javascript/active_admin/lib/per-page.js +38 -0
  42. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  43. data/app/javascript/active_admin/lib/utils.js +40 -0
  44. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  45. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  46. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  47. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  48. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  49. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  50. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  51. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  52. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  53. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  54. data/app/views/active_admin/page/index.html.arb +1 -0
  55. data/app/views/active_admin/resource/edit.html.arb +1 -0
  56. data/app/views/active_admin/resource/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/new.html.arb +1 -0
  58. data/app/views/active_admin/resource/show.html.arb +1 -0
  59. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  60. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  61. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  63. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  64. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  65. data/app/views/layouts/active_admin.html.arb +1 -0
  66. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  67. data/config/locales/ar.yml +9 -8
  68. data/config/locales/az.yml +138 -0
  69. data/config/locales/bg.yml +1 -1
  70. data/config/locales/bs.yml +1 -0
  71. data/config/locales/ca.yml +1 -1
  72. data/config/locales/cs.yml +1 -0
  73. data/config/locales/da.yml +1 -0
  74. data/config/locales/de-CH.yml +1 -0
  75. data/config/locales/de.yml +29 -0
  76. data/config/locales/el.yml +1 -0
  77. data/config/locales/en-CA.yml +4 -3
  78. data/config/locales/en-GB.yml +4 -3
  79. data/config/locales/en.yml +23 -4
  80. data/config/locales/eo.yml +1 -0
  81. data/config/locales/es-MX.yml +3 -1
  82. data/config/locales/es.yml +26 -6
  83. data/config/locales/fa.yml +1 -0
  84. data/config/locales/fi.yml +2 -1
  85. data/config/locales/fr.yml +6 -5
  86. data/config/locales/he.yml +1 -1
  87. data/config/locales/hr.yml +1 -0
  88. data/config/locales/hu.yml +5 -0
  89. data/config/locales/id.yml +1 -0
  90. data/config/locales/it.yml +23 -0
  91. data/config/locales/ja.yml +4 -3
  92. data/config/locales/ko.yml +2 -1
  93. data/config/locales/lt.yml +3 -2
  94. data/config/locales/lv.yml +3 -2
  95. data/config/locales/mk.yml +134 -0
  96. data/config/locales/nb.yml +16 -5
  97. data/config/locales/nl.yml +13 -1
  98. data/config/locales/pl.yml +72 -3
  99. data/config/locales/pt-BR.yml +1 -0
  100. data/config/locales/pt-PT.yml +1 -0
  101. data/config/locales/ro.yml +4 -2
  102. data/config/locales/ru.yml +3 -0
  103. data/config/locales/sk.yml +60 -0
  104. data/config/locales/sv-SE.yml +1 -0
  105. data/config/locales/tr.yml +10 -0
  106. data/config/locales/uk.yml +3 -0
  107. data/config/locales/vi.yml +7 -5
  108. data/config/locales/zh-CN.yml +34 -5
  109. data/config/locales/zh-TW.yml +1 -0
  110. data/docs/.gitignore +1 -0
  111. data/docs/0-installation.md +29 -5
  112. data/docs/1-general-configuration.md +36 -1
  113. data/docs/10-custom-pages.md +14 -0
  114. data/docs/11-decorators.md +16 -5
  115. data/docs/12-arbre-components.md +41 -1
  116. data/docs/13-authorization-adapter.md +41 -22
  117. data/docs/2-resource-customization.md +19 -5
  118. data/docs/3-index-pages/custom-index.md +1 -1
  119. data/docs/3-index-pages/index-as-blog.md +1 -1
  120. data/docs/3-index-pages/index-as-table.md +12 -5
  121. data/docs/3-index-pages.md +18 -1
  122. data/docs/5-forms.md +25 -5
  123. data/docs/6-show-pages.md +12 -0
  124. data/docs/8-custom-actions.md +12 -1
  125. data/docs/9-batch-actions.md +2 -2
  126. data/docs/CNAME +1 -1
  127. data/docs/Gemfile +4 -2
  128. data/docs/Gemfile.lock +283 -0
  129. data/docs/_config.yml +3 -1
  130. data/docs/_includes/toc.html +1 -1
  131. data/docs/_includes/top-menu.html +9 -1
  132. data/docs/documentation.md +2 -2
  133. data/docs/images/tidelift.svg +14 -0
  134. data/docs/index.html +110 -9
  135. data/docs/stylesheets/main.css +55 -2
  136. data/lib/active_admin/abstract_view_factory.rb +14 -51
  137. data/lib/active_admin/application.rb +65 -172
  138. data/lib/active_admin/application_settings.rb +43 -0
  139. data/lib/active_admin/asset_registration.rb +1 -8
  140. data/lib/active_admin/authorization_adapter.rb +4 -3
  141. data/lib/active_admin/base_controller/authorization.rb +18 -18
  142. data/lib/active_admin/base_controller/menu.rb +1 -0
  143. data/lib/active_admin/base_controller.rb +12 -11
  144. data/lib/active_admin/batch_actions/controller.rb +6 -5
  145. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  146. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  147. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  148. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  149. data/lib/active_admin/batch_actions.rb +1 -0
  150. data/lib/active_admin/callbacks.rb +2 -1
  151. data/lib/active_admin/cancan_adapter.rb +2 -1
  152. data/lib/active_admin/collection_decorator.rb +32 -0
  153. data/lib/active_admin/component.rb +1 -0
  154. data/lib/active_admin/controller_action.rb +3 -1
  155. data/lib/active_admin/csv_builder.rb +15 -23
  156. data/lib/active_admin/dependency.rb +14 -77
  157. data/lib/active_admin/deprecation.rb +1 -25
  158. data/lib/active_admin/devise.rb +16 -5
  159. data/lib/active_admin/dsl.rb +3 -9
  160. data/lib/active_admin/dynamic_setting.rb +39 -0
  161. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  162. data/lib/active_admin/engine.rb +16 -7
  163. data/lib/active_admin/error.rb +5 -4
  164. data/lib/active_admin/filters/active.rb +2 -1
  165. data/lib/active_admin/filters/active_filter.rb +12 -11
  166. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  167. data/lib/active_admin/filters/dsl.rb +1 -0
  168. data/lib/active_admin/filters/forms.rb +13 -9
  169. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  170. data/lib/active_admin/filters/resource_extension.rb +30 -5
  171. data/lib/active_admin/filters.rb +8 -7
  172. data/lib/active_admin/form_builder.rb +110 -70
  173. data/lib/active_admin/generators/boilerplate.rb +13 -4
  174. data/lib/active_admin/helpers/collection.rb +2 -0
  175. data/lib/active_admin/helpers/i18n.rb +1 -0
  176. data/lib/active_admin/helpers/optional_display.rb +3 -2
  177. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  178. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  179. data/lib/active_admin/inputs/datepicker_input.rb +10 -2
  180. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  181. data/lib/active_admin/inputs/filters/base.rb +2 -1
  182. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  183. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  184. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  185. data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
  186. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  187. data/lib/active_admin/inputs/filters/select_input.rb +3 -2
  188. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  189. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  190. data/lib/active_admin/inputs.rb +1 -0
  191. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  192. data/lib/active_admin/localizers.rb +2 -1
  193. data/lib/active_admin/menu.rb +9 -11
  194. data/lib/active_admin/menu_collection.rb +1 -0
  195. data/lib/active_admin/menu_item.rb +11 -38
  196. data/lib/active_admin/namespace.rb +33 -20
  197. data/lib/active_admin/namespace_settings.rb +127 -0
  198. data/lib/active_admin/order_clause.rb +3 -2
  199. data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
  200. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  201. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  202. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  203. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +30 -24
  204. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  205. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  206. data/lib/active_admin/orm/active_record.rb +2 -1
  207. data/lib/active_admin/orm/mongoid.rb +1 -0
  208. data/lib/active_admin/page.rb +2 -1
  209. data/lib/active_admin/page_controller.rb +1 -0
  210. data/lib/active_admin/page_dsl.rb +2 -1
  211. data/lib/active_admin/page_presenter.rb +3 -1
  212. data/lib/active_admin/pundit_adapter.rb +73 -16
  213. data/lib/active_admin/resource/action_items.rb +12 -6
  214. data/lib/active_admin/resource/attributes.rb +9 -5
  215. data/lib/active_admin/resource/belongs_to.rb +9 -3
  216. data/lib/active_admin/resource/controllers.rb +2 -1
  217. data/lib/active_admin/resource/includes.rb +1 -0
  218. data/lib/active_admin/resource/menu.rb +6 -5
  219. data/lib/active_admin/resource/model.rb +16 -0
  220. data/lib/active_admin/resource/naming.rb +6 -5
  221. data/lib/active_admin/resource/ordering.rb +1 -0
  222. data/lib/active_admin/resource/page_presenters.rb +1 -0
  223. data/lib/active_admin/resource/pagination.rb +1 -0
  224. data/lib/active_admin/resource/routes.rb +26 -14
  225. data/lib/active_admin/resource/scope_to.rb +8 -7
  226. data/lib/active_admin/resource/scopes.rb +4 -3
  227. data/lib/active_admin/resource/sidebars.rb +3 -2
  228. data/lib/active_admin/resource.rb +37 -22
  229. data/lib/active_admin/resource_collection.rb +3 -2
  230. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  231. data/lib/active_admin/resource_controller/data_access.rb +31 -5
  232. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  233. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  234. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  235. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  236. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  237. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  238. data/lib/active_admin/resource_controller.rb +14 -10
  239. data/lib/active_admin/resource_dsl.rb +16 -28
  240. data/lib/active_admin/router.rb +91 -84
  241. data/lib/active_admin/scope.rb +20 -11
  242. data/lib/active_admin/settings_node.rb +20 -0
  243. data/lib/active_admin/sidebar_section.rb +4 -1
  244. data/lib/active_admin/version.rb +2 -1
  245. data/lib/active_admin/view_factory.rb +18 -17
  246. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  247. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  248. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  249. data/lib/active_admin/view_helpers/display_helper.rb +25 -8
  250. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  251. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  252. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  253. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  254. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  255. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  256. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  257. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  258. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  259. data/lib/active_admin/view_helpers.rb +2 -1
  260. data/lib/active_admin/views/action_items.rb +1 -0
  261. data/lib/active_admin/views/components/active_admin_form.rb +14 -8
  262. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  263. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  264. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  265. data/lib/active_admin/views/components/columns.rb +1 -0
  266. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  267. data/lib/active_admin/views/components/index_list.rb +4 -3
  268. data/lib/active_admin/views/components/menu.rb +33 -0
  269. data/lib/active_admin/views/components/menu_item.rb +59 -0
  270. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  271. data/lib/active_admin/views/components/panel.rb +2 -1
  272. data/lib/active_admin/views/components/scopes.rb +18 -8
  273. data/lib/active_admin/views/components/sidebar.rb +14 -0
  274. data/lib/active_admin/views/components/sidebar_section.rb +1 -3
  275. data/lib/active_admin/views/components/site_title.rb +7 -7
  276. data/lib/active_admin/views/components/status_tag.rb +14 -26
  277. data/lib/active_admin/views/components/table_for.rb +22 -29
  278. data/lib/active_admin/views/components/tabs.rb +18 -5
  279. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  280. data/lib/active_admin/views/footer.rb +6 -8
  281. data/lib/active_admin/views/header.rb +4 -15
  282. data/lib/active_admin/views/index_as_block.rb +1 -0
  283. data/lib/active_admin/views/index_as_blog.rb +3 -2
  284. data/lib/active_admin/views/index_as_grid.rb +27 -26
  285. data/lib/active_admin/views/index_as_table.rb +34 -25
  286. data/lib/active_admin/views/pages/base.rb +44 -60
  287. data/lib/active_admin/views/pages/form.rb +1 -0
  288. data/lib/active_admin/views/pages/index.rb +16 -13
  289. data/lib/active_admin/views/pages/layout.rb +1 -0
  290. data/lib/active_admin/views/pages/page.rb +1 -0
  291. data/lib/active_admin/views/pages/show.rb +1 -0
  292. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  293. data/lib/active_admin/views/title_bar.rb +2 -1
  294. data/lib/active_admin/views.rb +2 -1
  295. data/lib/active_admin.rb +68 -63
  296. data/lib/activeadmin.rb +2 -1
  297. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  298. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  299. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  300. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  301. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  302. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  303. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  304. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  305. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  306. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  307. data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
  308. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  309. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  310. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  311. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  312. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  313. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  314. data/lib/ransack_ext.rb +10 -9
  315. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  316. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  317. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  318. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  319. metadata +126 -558
  320. data/.github/ISSUE_TEMPLATE.md +0 -20
  321. data/.gitignore +0 -49
  322. data/.mdlrc +0 -1
  323. data/.rubocop.yml +0 -76
  324. data/.simplecov +0 -13
  325. data/.travis.yml +0 -51
  326. data/.yardopts +0 -7
  327. data/Gemfile +0 -58
  328. data/Rakefile +0 -54
  329. data/activeadmin.gemspec +0 -32
  330. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  331. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  332. data/app/assets/images/active_admin/orderable.png +0 -0
  333. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  334. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  335. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  336. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  337. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  338. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  339. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  340. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  341. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  342. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  343. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  344. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  345. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  346. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  347. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  348. data/codecov.yml +0 -25
  349. data/config/i18n-tasks.yml +0 -26
  350. data/config/mdl_style.rb +0 -9
  351. data/cucumber.yml +0 -3
  352. data/features/action_item.feature +0 -73
  353. data/features/authorization.feature +0 -64
  354. data/features/authorization_cancan.feature +0 -52
  355. data/features/authorization_pundit.feature +0 -37
  356. data/features/belongs_to.feature +0 -124
  357. data/features/breadcrumb.feature +0 -75
  358. data/features/comments/commenting.feature +0 -178
  359. data/features/comments/viewing_index.feature +0 -19
  360. data/features/create_another.feature +0 -55
  361. data/features/dashboard.feature +0 -16
  362. data/features/decorators.feature +0 -43
  363. data/features/development_reloading.feature +0 -28
  364. data/features/edit_page.feature +0 -116
  365. data/features/favicon.feature +0 -20
  366. data/features/first_boot.feature +0 -16
  367. data/features/footer.feature +0 -28
  368. data/features/global_navigation.feature +0 -29
  369. data/features/i18n.feature +0 -55
  370. data/features/index/batch_actions.feature +0 -218
  371. data/features/index/filters.feature +0 -250
  372. data/features/index/format_as_csv.feature +0 -220
  373. data/features/index/formats.feature +0 -88
  374. data/features/index/index_as_block.feature +0 -15
  375. data/features/index/index_as_blog.feature +0 -69
  376. data/features/index/index_as_grid.feature +0 -45
  377. data/features/index/index_as_table.feature +0 -291
  378. data/features/index/index_blank_slate.feature +0 -83
  379. data/features/index/index_parameters.feature +0 -75
  380. data/features/index/index_scope_to.feature +0 -56
  381. data/features/index/index_scopes.feature +0 -285
  382. data/features/index/page_title.feature +0 -41
  383. data/features/index/pagination.feature +0 -63
  384. data/features/index/switch_index_view.feature +0 -73
  385. data/features/menu.feature +0 -72
  386. data/features/meta_tags.feature +0 -21
  387. data/features/new_page.feature +0 -136
  388. data/features/registering_assets.feature +0 -38
  389. data/features/registering_pages.feature +0 -237
  390. data/features/registering_resources.feature +0 -33
  391. data/features/renamed_resource.feature +0 -30
  392. data/features/root_to.feature +0 -17
  393. data/features/show/attributes_table_title.feature +0 -54
  394. data/features/show/columns.feature +0 -40
  395. data/features/show/default_content.feature +0 -44
  396. data/features/show/page_title.feature +0 -58
  397. data/features/show/tabs.feature +0 -33
  398. data/features/sidebar_sections.feature +0 -210
  399. data/features/site_title.feature +0 -47
  400. data/features/specifying_actions.feature +0 -118
  401. data/features/step_definitions/action_item_steps.rb +0 -7
  402. data/features/step_definitions/action_link_steps.rb +0 -19
  403. data/features/step_definitions/additional_web_steps.rb +0 -81
  404. data/features/step_definitions/asset_steps.rb +0 -15
  405. data/features/step_definitions/attribute_steps.rb +0 -18
  406. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  407. data/features/step_definitions/batch_action_steps.rb +0 -81
  408. data/features/step_definitions/blog_steps.rb +0 -3
  409. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  410. data/features/step_definitions/column_steps.rb +0 -8
  411. data/features/step_definitions/comment_steps.rb +0 -32
  412. data/features/step_definitions/configuration_steps.rb +0 -100
  413. data/features/step_definitions/dashboard_steps.rb +0 -15
  414. data/features/step_definitions/factory_steps.rb +0 -35
  415. data/features/step_definitions/filter_steps.rb +0 -47
  416. data/features/step_definitions/flash_steps.rb +0 -11
  417. data/features/step_definitions/footer_steps.rb +0 -11
  418. data/features/step_definitions/format_steps.rb +0 -56
  419. data/features/step_definitions/i18n_steps.rb +0 -11
  420. data/features/step_definitions/index_scope_steps.rb +0 -29
  421. data/features/step_definitions/index_views_steps.rb +0 -3
  422. data/features/step_definitions/layout_steps.rb +0 -3
  423. data/features/step_definitions/member_link_steps.rb +0 -7
  424. data/features/step_definitions/menu_steps.rb +0 -11
  425. data/features/step_definitions/meta_tag_steps.rb +0 -3
  426. data/features/step_definitions/pagination_steps.rb +0 -15
  427. data/features/step_definitions/sidebar_steps.rb +0 -11
  428. data/features/step_definitions/site_title_steps.rb +0 -17
  429. data/features/step_definitions/tab_steps.rb +0 -8
  430. data/features/step_definitions/table_steps.rb +0 -116
  431. data/features/step_definitions/user_steps.rb +0 -52
  432. data/features/step_definitions/web_steps.rb +0 -86
  433. data/features/sti_resource.feature +0 -65
  434. data/features/strong_parameters.feature +0 -69
  435. data/features/support/env.rb +0 -122
  436. data/features/support/paths.rb +0 -73
  437. data/features/support/regular_env.rb +0 -7
  438. data/features/support/reload_env.rb +0 -7
  439. data/features/support/selectors.rb +0 -45
  440. data/features/users/logging_in.feature +0 -36
  441. data/features/users/logging_out.feature +0 -13
  442. data/features/users/resetting_password.feature +0 -34
  443. data/gemfiles/rails_42.gemfile +0 -10
  444. data/gemfiles/rails_50.gemfile +0 -10
  445. data/gemfiles/rails_51.gemfile +0 -10
  446. data/gemfiles/rails_52.gemfile +0 -11
  447. data/lib/active_admin/event.rb +0 -24
  448. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  449. data/lib/active_admin/helpers/settings.rb +0 -114
  450. data/lib/active_admin/reloader.rb +0 -25
  451. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  452. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  453. data/spec/bug_report_templates_spec.rb +0 -26
  454. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  455. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  456. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  457. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  458. data/spec/javascripts/fixtures/flashes.html +0 -2
  459. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  460. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  461. data/spec/javascripts/support/jasmine.yml +0 -74
  462. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  463. data/spec/rails_helper.rb +0 -59
  464. data/spec/requests/default_namespace_spec.rb +0 -81
  465. data/spec/requests/memory_spec.rb +0 -25
  466. data/spec/requests/stylesheets_spec.rb +0 -18
  467. data/spec/spec_helper.rb +0 -1
  468. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  469. data/spec/support/active_admin_request_helpers.rb +0 -39
  470. data/spec/support/rails_template.rb +0 -153
  471. data/spec/support/rails_template_with_data.rb +0 -327
  472. data/spec/support/templates/admin/stores.rb +0 -7
  473. data/spec/support/templates/en.yml +0 -8
  474. data/spec/support/templates/manifest.js +0 -3
  475. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  476. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  477. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  478. data/spec/support/templates/policies/application_policy.rb +0 -44
  479. data/spec/support/templates/policies/category_policy.rb +0 -7
  480. data/spec/support/templates/policies/post_policy.rb +0 -15
  481. data/spec/support/templates/policies/store_policy.rb +0 -11
  482. data/spec/support/templates/policies/user_policy.rb +0 -11
  483. data/spec/support/templates/post_decorator.rb +0 -24
  484. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  485. data/spec/unit/action_builder_spec.rb +0 -158
  486. data/spec/unit/active_admin_spec.rb +0 -11
  487. data/spec/unit/application_spec.rb +0 -184
  488. data/spec/unit/asset_registration_spec.rb +0 -81
  489. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  490. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  491. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  492. data/spec/unit/auto_link_spec.rb +0 -93
  493. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  494. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  495. data/spec/unit/belongs_to_spec.rb +0 -76
  496. data/spec/unit/cancan_adapter_spec.rb +0 -43
  497. data/spec/unit/comments_spec.rb +0 -176
  498. data/spec/unit/component_spec.rb +0 -18
  499. data/spec/unit/config_shared_examples.rb +0 -59
  500. data/spec/unit/controller_filters_spec.rb +0 -41
  501. data/spec/unit/csv_builder_spec.rb +0 -313
  502. data/spec/unit/dependency_spec.rb +0 -135
  503. data/spec/unit/devise_spec.rb +0 -110
  504. data/spec/unit/dsl_spec.rb +0 -120
  505. data/spec/unit/filters/active_filter_spec.rb +0 -189
  506. data/spec/unit/filters/active_spec.rb +0 -24
  507. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  508. data/spec/unit/filters/resource_spec.rb +0 -128
  509. data/spec/unit/form_builder_spec.rb +0 -990
  510. data/spec/unit/generators/install_spec.rb +0 -31
  511. data/spec/unit/helpers/collection_spec.rb +0 -68
  512. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  513. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  514. data/spec/unit/helpers/settings_spec.rb +0 -30
  515. data/spec/unit/i18n_spec.rb +0 -29
  516. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  517. data/spec/unit/menu_collection_spec.rb +0 -62
  518. data/spec/unit/menu_item_spec.rb +0 -141
  519. data/spec/unit/menu_spec.rb +0 -71
  520. data/spec/unit/namespace/authorization_spec.rb +0 -27
  521. data/spec/unit/namespace/register_page_spec.rb +0 -99
  522. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  523. data/spec/unit/namespace_spec.rb +0 -124
  524. data/spec/unit/order_clause_spec.rb +0 -81
  525. data/spec/unit/page_controller_spec.rb +0 -5
  526. data/spec/unit/page_spec.rb +0 -128
  527. data/spec/unit/pretty_format_spec.rb +0 -82
  528. data/spec/unit/pundit_adapter_spec.rb +0 -98
  529. data/spec/unit/resource/action_items_spec.rb +0 -69
  530. data/spec/unit/resource/attributes_spec.rb +0 -49
  531. data/spec/unit/resource/includes_spec.rb +0 -21
  532. data/spec/unit/resource/menu_spec.rb +0 -18
  533. data/spec/unit/resource/naming_spec.rb +0 -122
  534. data/spec/unit/resource/ordering_spec.rb +0 -35
  535. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  536. data/spec/unit/resource/pagination_spec.rb +0 -38
  537. data/spec/unit/resource/routes_spec.rb +0 -125
  538. data/spec/unit/resource/scopes_spec.rb +0 -50
  539. data/spec/unit/resource/sidebars_spec.rb +0 -43
  540. data/spec/unit/resource_collection_spec.rb +0 -175
  541. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  542. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  543. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  544. data/spec/unit/resource_controller_spec.rb +0 -273
  545. data/spec/unit/resource_registration_spec.rb +0 -61
  546. data/spec/unit/resource_spec.rb +0 -320
  547. data/spec/unit/routing_spec.rb +0 -211
  548. data/spec/unit/scope_spec.rb +0 -209
  549. data/spec/unit/settings_spec.rb +0 -117
  550. data/spec/unit/view_factory_spec.rb +0 -19
  551. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  552. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  553. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  554. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  555. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  556. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  557. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  558. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  559. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  560. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  561. data/spec/unit/views/components/columns_spec.rb +0 -187
  562. data/spec/unit/views/components/index_list_spec.rb +0 -49
  563. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  564. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  565. data/spec/unit/views/components/panel_spec.rb +0 -58
  566. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  567. data/spec/unit/views/components/site_title_spec.rb +0 -76
  568. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  569. data/spec/unit/views/components/table_for_spec.rb +0 -436
  570. data/spec/unit/views/components/tabs_spec.rb +0 -67
  571. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  572. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  573. data/spec/unit/views/pages/form_spec.rb +0 -54
  574. data/spec/unit/views/pages/index_spec.rb +0 -60
  575. data/spec/unit/views/pages/layout_spec.rb +0 -59
  576. data/spec/unit/views/pages/show_spec.rb +0 -32
  577. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  578. data/tasks/docs.rake +0 -64
  579. data/tasks/lint.rake +0 -21
  580. data/tasks/local.rake +0 -25
  581. data/tasks/parallel_tests.rake +0 -66
  582. data/tasks/test.rake +0 -29
@@ -46,13 +46,22 @@ config.site_title_image = ->(context) { context.current_user.company.logo_url }
46
46
 
47
47
  ## Internationalization (I18n)
48
48
 
49
+ Active Admin comes with translations for a lot of
50
+ [locales](https://github.com/activeadmin/activeadmin/blob/master/config/locales/).
51
+ Active Admin does not provide the translations for the kaminari gem it uses for pagination,
52
+ to get these you can use the
53
+ [kaminari-i18n](https://github.com/tigrish/kaminari-i18n) gem.
54
+
49
55
  To translate Active Admin to a new language or customize an existing
50
56
  translation, you can copy
51
57
  [config/locales/en.yml](https://github.com/activeadmin/activeadmin/blob/master/config/locales/en.yml)
52
58
  to your application's `config/locales` folder and update it. We welcome
53
59
  new/updated translations, so feel free to
54
60
  [contribute](https://github.com/activeadmin/activeadmin/blob/master/CONTRIBUTING.md)!
55
- To translate third party gems like devise, use for example devise-i18n.
61
+
62
+ When using [devise](https://github.com/plataformatec/devise) for authentication,
63
+ you can use the [devise-i18n](https://github.com/tigrish/devise-i18n)
64
+ gem to get the devise translations for other locales.
56
65
 
57
66
  ## Localize Format For Dates and Times
58
67
 
@@ -97,6 +106,26 @@ ActiveAdmin.setup do |config|
97
106
  end
98
107
  ```
99
108
 
109
+ If you are creating a multi-tenant application you may want to have multiple namespaces mounted to the same path. We can do this using the `route_options` settings on the namespace
110
+
111
+ ```ruby
112
+ config.namespace :site_1 do |admin|
113
+ admin.route_options = { path: :admin, constraints: ->(request){ request.domain == "site1.com" } }
114
+ end
115
+
116
+ config.namespace :site_2 do |admin|
117
+ admin.route_options = { path: :admin, constraints: ->(request){ request.domain == "site2.com" } }
118
+ end
119
+ ```
120
+
121
+ If you would like to mount the namespace to a subdomain instead of path we can use the `route_options` for this as well
122
+
123
+ ```ruby
124
+ config.namespace :admin do |admin|
125
+ admin.route_options = { path: '', subdomain: 'admin' }
126
+ end
127
+ ```
128
+
100
129
  Each setting available in the Active Admin setup block is configurable on a per
101
130
  namespace basis.
102
131
 
@@ -160,6 +189,12 @@ You can customize the comment menu:
160
189
  config.comments_menu = { parent: 'Admin', priority: 1 }
161
190
  ```
162
191
 
192
+ Remember to indicate where to place the comments and form with:
193
+
194
+ ```ruby
195
+ active_admin_comments
196
+ ```
197
+
163
198
  ## Utility Navigation
164
199
 
165
200
  The "utility navigation" shown at the top right normally shows the current user
@@ -134,3 +134,17 @@ end
134
134
  ```
135
135
 
136
136
  See also the [Custom Actions](8-custom-actions.md#http-verbs) example.
137
+
138
+ ## Use custom column as id
139
+
140
+ You can use custom parameter instead of id
141
+
142
+ ```ruby
143
+ ActiveAdmin.register User do
144
+ controller do
145
+ defaults :finder => :find_by_name
146
+ end
147
+ end
148
+ ```
149
+
150
+ This defines the resource route as `/admin/users/john` if user name is john
@@ -8,11 +8,6 @@ Active Admin allows you to use the decorator pattern to provide view-specific
8
8
  versions of a resource. [Draper](https://github.com/drapergem/draper) is
9
9
  recommended but not required.
10
10
 
11
- To use decorator support without Draper, your decorator must support a variety
12
- of collection methods to support pagination, filtering, etc. See
13
- [this github issue discussion](https://github.com/activeadmin/activeadmin/issues/3600)
14
- and [this gem](https://github.com/kiote/activeadmin-poro-decorator) for more details.
15
-
16
11
  ## Example usage
17
12
 
18
13
  ```ruby
@@ -42,6 +37,22 @@ ActiveAdmin.register Post do
42
37
  end
43
38
  ```
44
39
 
40
+ You can pass any decorator class as an argument to `decorate_with`
41
+ as long as it accepts the record to be decorated as a parameter in
42
+ the initializer, and responds to all the necessary methods.
43
+
44
+ ```ruby
45
+ # app/decorators/post_decorator.rb
46
+ class PostDecorator
47
+ attr_reader :post
48
+ delegate_missing_to :post
49
+
50
+ def initialize(post)
51
+ @post = post
52
+ end
53
+ end
54
+ ```
55
+
45
56
  ## Forms
46
57
 
47
58
  By default, ActiveAdmin does *not* decorate the resource used to render forms.
@@ -115,6 +115,21 @@ end
115
115
  In the above example, the first column will not grow larger than 200px and will
116
116
  not shrink less than 100px.
117
117
 
118
+ ### Custom Column Class
119
+
120
+ Pass the `:class` option to the column method to set a custom class.
121
+
122
+ ```ruby
123
+ columns do
124
+ column class: "important" do
125
+ span "Column # 1"
126
+ end
127
+ column do
128
+ span "Column # 2"
129
+ end
130
+ end
131
+ ```
132
+
118
133
  ## Table For
119
134
 
120
135
  Table For provides the ability to create tables like those present
@@ -130,10 +145,22 @@ table_for order.payments do
130
145
  end
131
146
  ```
132
147
 
133
- the `column` method can take a title as its first argument and data
148
+ The `column` method can take a title as its first argument and data
134
149
  (`:your_method`) as its second (or first if no title provided). Column also
135
150
  takes a block.
136
151
 
152
+ ### Internationalization
153
+
154
+ To customize the internationalization for the component, specify a resource to
155
+ use for translations via the `i18n` named parameter. This is only necessary for
156
+ non-`ActiveRecord::Relation` collections:
157
+
158
+ ```ruby
159
+ table_for payments, i18n: Payment do
160
+ # ...
161
+ end
162
+ ```
163
+
137
164
  ## Status tag
138
165
 
139
166
  Status tags provide convenient syntactic sugar for styling items that have
@@ -150,6 +177,19 @@ status_tag 'active', class: 'important', id: 'status_123', label: 'on'
150
177
  # => <span class='status_tag active important' id='status_123'>on</span>
151
178
  ```
152
179
 
180
+ When providing a `true` or `false` value, the `status_tag` will display "Yes"
181
+ or "No". This can be configured through the `"en.active_admin.status_tag"`
182
+ locale.
183
+
184
+ ```ruby
185
+ status_tag true
186
+ # => <span class='status_tag yes'>Yes</span>
187
+ ```
188
+
189
+ In the case that a boolean field is `nil`, it will display "No" as a default.
190
+ But using the `"en.active_admin.status_tag.unset"` locale key, it can be
191
+ configured to display something else.
192
+
153
193
  ## Tabs
154
194
 
155
195
  The Tabs component is helpful for saving page real estate. The first tab will be
@@ -10,8 +10,8 @@ taken. By default, '#authorized?' returns true.
10
10
 
11
11
  ## Setting up your own AuthorizationAdapter
12
12
 
13
- Setting up your own `AuthorizationAdapter` is easy! The following example shows
14
- how to set up and tie your authorization adapter class to Active Admin:
13
+ The following example shows how to set up and tie your authorization
14
+ adapter class to Active Admin:
15
15
 
16
16
  ```ruby
17
17
  # app/models/only_authors_authorization.rb
@@ -41,6 +41,9 @@ application's `config/initializers/active_admin.rb` and add/modify the line:
41
41
  config.authorization_adapter = "OnlyAuthorsAuthorization"
42
42
  ```
43
43
 
44
+ Now, whenever a controller action is performed, the `OnlyAuthorsAuthorization`'s
45
+ `#authorized?` method will be called.
46
+
44
47
  Authorization adapters can be configured per ActiveAdmin namespace as well, for
45
48
  example:
46
49
 
@@ -55,9 +58,6 @@ ActiveAdmin.setup do |config|
55
58
  end
56
59
  ```
57
60
 
58
- Now, whenever a controller action is performed, the `OnlyAuthorsAuthorization`'s
59
- `#authorized?` method will be called.
60
-
61
61
  ## Getting Access to the Current User
62
62
 
63
63
  From within your authorization adapter, you can call the `#user` method to
@@ -136,7 +136,7 @@ Each of these actions is available as a constant. Eg: `:read` is available as
136
136
  Active Admin provides a helper method to check if the current user is
137
137
  authorized to perform an action on a subject.
138
138
 
139
- Simply use the `#authorized?(action, subject)` method to check.
139
+ Use the `#authorized?(action, subject)` method to check.
140
140
 
141
141
  ```ruby
142
142
  ActiveAdmin.register Post do
@@ -180,10 +180,9 @@ end
180
180
 
181
181
  Sub-classing `ActiveAdmin::AuthorizationAdapter` is fairly low level. Many times
182
182
  it's nicer to have a simpler DSL for managing authorization. Active Admin
183
- provides an adapter out of the box for [CanCan](https://github.com/ryanb/cancan)
184
- and [CanCanCan](https://github.com/CanCanCommunity/cancancan).
183
+ provides an adapter out of the box for [CanCanCan](https://github.com/CanCanCommunity/cancancan).
185
184
 
186
- To use the CanCan adapter, simply update the configuration in the Active Admin
185
+ To use the CanCan adapter, update the configuration in the Active Admin
187
186
  initializer:
188
187
 
189
188
  ```ruby
@@ -221,7 +220,7 @@ changed from the initializer:
221
220
  config.cancan_ability_class = "MyCustomAbility"
222
221
  ```
223
222
 
224
- Now you can simply use CanCan or CanCanCan the way that you would expect and
223
+ Now you can simply use CanCanCan the way that you would expect and
225
224
  Active Admin will use it for authorization:
226
225
 
227
226
  ```ruby
@@ -233,34 +232,54 @@ class Ability
233
232
  can :manage, Post
234
233
  can :read, User
235
234
  can :manage, User, id: user.id
236
- can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: :admin
235
+ can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: "admin"
237
236
  end
238
237
 
239
238
  end
240
239
  ```
241
240
 
242
241
  To view more details about the API's, visit project pages of
243
- [CanCan](https://github.com/ryanb/cancan) and
244
242
  [CanCanCan](https://github.com/CanCanCommunity/cancancan).
245
243
 
246
244
  ## Using the Pundit Adapter
247
245
 
248
- Active Admin provides an adapter out of the box also for
249
- [Pundit](https://github.com/elabs/pundit).
246
+ Active Admin also provides an adapter out of the box for
247
+ [Pundit](https://github.com/varvet/pundit).
250
248
 
251
- To use the Pundit adapter, simply update the configuration in the Active Admin
249
+ To use the Pundit adapter, update the configuration in the Active Admin
252
250
  initializer:
253
251
 
254
252
  ```ruby
255
253
  config.authorization_adapter = ActiveAdmin::PunditAdapter
256
254
  ```
257
255
 
258
- You can simply use Pundit the way that you would expect and Active Admin will
259
- use it for authorization. Check Pundit's documentation to [set up Pundit in your
260
- application](https://github.com/elabs/pundit#installation). If you want to use
261
- batch actions just ensure that `destroy_all?` method is defined in your policy
262
- class. You can use this [template
256
+ Once that's done, Active Admin will pick up your Pundit policies, and use
257
+ them for authorization. For more information about setting up Pundit, see
258
+ [their documentation](https://github.com/varvet/pundit#installation).
259
+
260
+ Pundit also has [verify_authorized and/or verify_policy_scoped
261
+ methods](https://github.com/varvet/pundit#ensuring-policies-and-scopes-are-used)
262
+ to enforce usage of `authorized` and `policy_scope`. This conflicts with Active
263
+ Admin's authorization architecture, so if you're using those features, you'll
264
+ want to disable them for Active Admin's controllers:
265
+
266
+ ```ruby
267
+ class ApplicationController < ActionController::Base
268
+ include Pundit
269
+ after_action :verify_authorized, except: :index, unless: :active_admin_controller?
270
+ after_action :verify_policy_scoped, only: :index, unless: :active_admin_controller?
271
+
272
+ def active_admin_controller?
273
+ is_a?(ActiveAdmin::BaseController)
274
+ end
275
+ end
276
+ ```
277
+
278
+ If you want to use batch actions, ensure that `destroy_all?` method is defined
279
+ in your policy class. You can use this [template
263
280
  policy](https://github.com/activeadmin/activeadmin/blob/master/spec/support/templates/policies/application_policy.rb)
264
- in your application instead of default one generated by Pundit's `rails g
265
- pundit:install` command.
281
+ in your application instead of default one generated by Pundit's
282
+ `rails g pundit:install` command.
266
283
 
284
+ In addition, there are [example policies](https://github.com/activeadmin/activeadmin/tree/master/spec/support/templates/policies/active_admin)
285
+ for restricting access to ActiveAdmin's pages and comments.
@@ -116,10 +116,15 @@ config/locales/[en].yml:
116
116
  en:
117
117
  active_admin:
118
118
  resources:
119
- offer:
120
- new_model: 'Make an Offer'
119
+ offer: # Registered resource
120
+ new_model: 'Make an Offer' # new action item
121
+ edit_model: 'Change Offer' # edit action item
122
+ delete_model: 'Cancel Offer' # delete action item
121
123
  ```
122
124
 
125
+ See the [default en.yml](/config/locales/en.yml) locale file for
126
+ existing translations and examples.
127
+
123
128
  ## Rename the Resource
124
129
 
125
130
  By default, any references to the resource (menu, routes, buttons, etc) in the
@@ -159,7 +164,8 @@ The menu method accepts a hash with the following options:
159
164
 
160
165
  * `:label` - The string or proc label to display in the menu. If it's a proc, it
161
166
  will be called each time the menu is rendered.
162
- * `:parent` - The string id (or label) of the parent used for this menu
167
+ * `:parent` - The string id (or label) of the parent used for this menu, or an array
168
+ of string ids (or labels) for a nested menu
163
169
  * `:if` - A block or a symbol of a method to call to decide if the menu item
164
170
  should be displayed
165
171
  * `:priority` - The integer value of the priority, which defaults to `10`
@@ -222,6 +228,14 @@ end
222
228
  Note that the "Blog" parent menu item doesn't even have to exist yet; it can be
223
229
  dynamically generated for you.
224
230
 
231
+ To further nest an item under a submenu, provide an array of parents.
232
+
233
+ ```ruby
234
+ ActiveAdmin.register Post do
235
+ menu parent: ["Admin", "Blog"]
236
+ end
237
+ ```
238
+
225
239
  ### Customizing Parent Menu Items
226
240
 
227
241
  All of the options given to a standard menu item are also available to
@@ -320,7 +334,7 @@ end
320
334
 
321
335
  ## Eager loading
322
336
 
323
- A common way to increase page performance is to elimate N+1 queries by eager
337
+ A common way to increase page performance is to eliminate N+1 queries by eager
324
338
  loading associations:
325
339
 
326
340
  ```ruby
@@ -350,7 +364,7 @@ end
350
364
  ```
351
365
 
352
366
  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
367
+ custom `to_param` implementation in your models), override the `find_resource` method
354
368
  on the controller:
355
369
 
356
370
  ```ruby
@@ -30,6 +30,6 @@ The build method takes a PagePresenter object and collection of whatever you
30
30
  choose.
31
31
 
32
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
33
+ be representative of the class name. If this method is not defined, your
34
34
  index component will not be able take advantage of Active Admin's
35
35
  *multiple index pages* feature.
@@ -28,7 +28,7 @@ end
28
28
  ```
29
29
 
30
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
31
+ used as the contents of the title. The resource being rendered
32
32
  is passed in to the block. For Example:
33
33
 
34
34
  ```ruby
@@ -111,7 +111,8 @@ index do
111
111
  end
112
112
  ```
113
113
 
114
- In addition, you can insert the position of the row in the greater collection by using the index_column special command:
114
+ In addition, you can insert the position of the row in the greater
115
+ collection by using the index_column special command:
115
116
 
116
117
  ```ruby
117
118
  index do
@@ -121,7 +122,8 @@ index do
121
122
  end
122
123
  ```
123
124
 
124
- index_column take an optional offset parameter to allow a developer to set the starting number for the index (default is 1).
125
+ index_column take an optional offset parameter to allow a developer to set
126
+ the starting number for the index (default is 1).
125
127
 
126
128
  ## Sorting
127
129
 
@@ -129,9 +131,7 @@ When a column is generated from an Active Record attribute, the table is
129
131
  sortable by default. If you are creating a custom column, you may need to give
130
132
  Active Admin a hint for how to sort the table.
131
133
 
132
- If a column is defined using a block, you must pass the key to turn on sorting. The key
133
- is the attribute which gets used to sort objects using Active Record.
134
-
134
+ You can pass the key specifying the attribute which gets used to sort objects using Active Record.
135
135
  By default, this is the column on the resource's table that the attribute corresponds to.
136
136
  Otherwise, any attribute that the resource collection responds to can be used.
137
137
 
@@ -193,6 +193,13 @@ controller do
193
193
  end
194
194
  ```
195
195
 
196
+ You can also define associated objects to include outside of the
197
+ `scoped_collection` method:
198
+
199
+ ```ruby
200
+ includes :publisher
201
+ ```
202
+
196
203
  Then it's simple to sort by any Publisher attribute from within the index table:
197
204
 
198
205
  ```ruby
@@ -212,7 +212,24 @@ end
212
212
  ```
213
213
 
214
214
  Scopes can be labelled with a translation, e.g.
215
- `activerecord.scopes.invoice.expired`.
215
+ `active_admin.scopes.scope_method`.
216
+
217
+ ### Scopes groups
218
+
219
+ You can assign group names to scopes to keep related scopes together and separate them from the rest.
220
+
221
+ ```ruby
222
+ # a scope in the default group
223
+ scope :all
224
+
225
+ # two scopes used to filter by status
226
+ scope :active, group: :status
227
+ scope :inactive, group: :status
228
+
229
+ # two scopes used to filter by date
230
+ scope :today, group: :date
231
+ scope :tomorrow, group: :date
232
+ ```
216
233
 
217
234
  ## Index default sort order
218
235
 
data/docs/5-forms.md CHANGED
@@ -56,7 +56,7 @@ Which looks for something like this:
56
56
 
57
57
  ```ruby
58
58
  # app/views/admin/posts/_form.html.arb
59
- insert_tag active_admin_form_for resource do |f|
59
+ active_admin_form_for [:admin, resource] do |f|
60
60
  inputs :title, :body
61
61
  actions
62
62
  end
@@ -84,6 +84,12 @@ your model uses `has_one`:
84
84
 
85
85
  ```ruby
86
86
  ActiveAdmin.register Post do
87
+ permit_params :title,
88
+ :published_at,
89
+ :body,
90
+ categories_attributes: [:id, :title, :_destroy],
91
+ taggings_attributes: [:id, :tag],
92
+ comment_attributes: [:id, :body, :_destroy]
87
93
 
88
94
  form do |f|
89
95
  f.inputs 'Details' do
@@ -104,9 +110,10 @@ ActiveAdmin.register Post do
104
110
  end
105
111
  end
106
112
  f.inputs do
107
- f.has_many :comment,
113
+ f.has_many :comments,
108
114
  new_record: 'Leave Comment',
109
- allow_destroy: -> { |c| c.author?(current_admin_user) } do |b|
115
+ remove_record: 'Remove Comment',
116
+ allow_destroy: -> (c) { c.author?(current_admin_user) } do |b|
110
117
  b.input :body
111
118
  end
112
119
  end
@@ -116,6 +123,9 @@ ActiveAdmin.register Post do
116
123
  end
117
124
  ```
118
125
 
126
+ *NOTE*: In addition to using `has_many` as illustrated above, you'll need to add
127
+ `accepts_nested_attributes` to your parent model and [configure strong parameters](https://activeadmin.info/2-resource-customization.html)
128
+
119
129
  The `:allow_destroy` option adds a checkbox to the end of the nested form allowing
120
130
  removal of the child object upon submission. Be sure to set `allow_destroy: true`
121
131
  on the association to use this option. It is possible to associate
@@ -130,6 +140,10 @@ The `:new_record` option controls the visibility of the new record button (shown
130
140
  by default). If you pass a string, it will be used as the text for the new
131
141
  record button.
132
142
 
143
+ The `:remove_record` option controls the text of the remove button (shown after
144
+ the new record button is pressed). If you pass a string, it will be used as the
145
+ text for the remove button.
146
+
133
147
  The `:sortable` option adds a hidden field and will enable drag & drop sorting
134
148
  of the children. It expects the name of the column that will store the index of
135
149
  each child.
@@ -159,13 +173,17 @@ form do |f|
159
173
  end
160
174
  ```
161
175
 
176
+ Datepicker also accepts the `:label` option as a string or proc to display.
177
+ If it's a proc, it will be called each time the datepicker is rendered.
178
+
162
179
  ## Displaying Errors
163
180
 
164
181
  To display a list of all validation errors:
165
182
 
166
183
  ```ruby
167
184
  form do |f|
168
- f.semantic_errors *f.object.errors.keys
185
+ f.semantic_errors *f.object.errors.attribute_names
186
+
169
187
  # ...
170
188
  end
171
189
  ```
@@ -187,7 +205,7 @@ You can arrange content in tabs as shown below:
187
205
  end
188
206
  end
189
207
 
190
- tab 'Advanced' do
208
+ tab 'Advanced', html_options: { class: 'specific_css_class' } do
191
209
  f.inputs 'Advanced Details' do
192
210
  f.input :role
193
211
  end
@@ -197,6 +215,8 @@ You can arrange content in tabs as shown below:
197
215
  end
198
216
  ```
199
217
 
218
+ `html_options` allows you set additional html params for tab's menu item.
219
+
200
220
  # Customize the Create Another checkbox
201
221
 
202
222
  In order to simplify creating multiple resources you may enable ActiveAdmin to
data/docs/6-show-pages.md CHANGED
@@ -79,3 +79,15 @@ ActiveAdmin.register Book do
79
79
  end
80
80
  end
81
81
  ```
82
+
83
+ If you want to keep the default show data, but add something extra to it:
84
+
85
+ ```ruby
86
+ show do
87
+ div do
88
+ h3 'Some custom charts about this object'
89
+ render partial: 'charts'
90
+ end
91
+ default_main_content
92
+ end
93
+ ```
@@ -62,7 +62,7 @@ HTTP verbs. In that case, this is the suggested approach:
62
62
  ```ruby
63
63
  member_action :foo, method: [:get, :post] do
64
64
  if request.post?
65
- resource.update_attributes! foo: params[:foo] || {}
65
+ resource.update! foo: params[:foo] || {}
66
66
  head :ok
67
67
  else
68
68
  render :foo
@@ -146,6 +146,17 @@ action_item :super_action,
146
146
  end
147
147
  ```
148
148
 
149
+ By default action items are positioned in the same order as they defined (after default actions),
150
+ but it’s also possible to specify their position manually:
151
+
152
+ ```ruby
153
+ action_item :help, priority: 0 do
154
+ "Display this action to the first position"
155
+ end
156
+ ```
157
+
158
+ Default action item priority is 10.
159
+
149
160
  # Modifying the Controller
150
161
 
151
162
  The generated controller is available to you within the registration block by
@@ -154,13 +154,13 @@ batch_action :doit, form: -> { {user: User.pluck(:name, :id)} } do |ids, inputs|
154
154
  end
155
155
  ```
156
156
 
157
- Under the covers this is powered by the JS `ActiveAdmin.modal_dialog` which you
157
+ Under the covers this is powered by the JS `ActiveAdmin.ModalDialog` which you
158
158
  can use yourself:
159
159
 
160
160
  ```coffee
161
161
  if $('body.admin_users').length
162
162
  $('a[data-prompt]').click ->
163
- ActiveAdmin.modal_dialog $(@).data('prompt'), comment: 'textarea',
163
+ ActiveAdmin.ModalDialog $(@).data('prompt'), comment: 'textarea',
164
164
  (inputs)=>
165
165
  $.post "/admin/users/#{$(@).data 'id'}/change_state",
166
166
  comment: inputs.comment, state: $(@).data('state'),
data/docs/CNAME CHANGED
@@ -1 +1 @@
1
- github-docs.activeadmin.info
1
+ activeadmin.info
data/docs/Gemfile CHANGED
@@ -1,2 +1,4 @@
1
- gem 'github-pages'
2
- gem 'jekyll-redirect-from'
1
+ # frozen_string_literal: true
2
+ source "https://rubygems.org"
3
+
4
+ gem "github-pages"