activeadmin 1.0.0 → 2.11.0

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

Potentially problematic release.


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

Files changed (618) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +778 -68
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +80 -82
  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 +7 -35
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/app/assets/stylesheets/active_admin/_normalize.scss +349 -0
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +3 -4
  13. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  14. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  15. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  16. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  17. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  18. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  19. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  20. data/app/assets/stylesheets/active_admin/components/_tables.scss +5 -3
  21. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -10
  23. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  25. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  26. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  27. data/app/javascript/active_admin/base.js +28 -0
  28. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  29. data/app/javascript/active_admin/ext/jquery.js +9 -0
  30. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  31. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  32. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  33. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  34. data/app/javascript/active_admin/initializers/filters.js +10 -0
  35. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  36. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  37. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  38. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  39. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  40. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  41. data/app/javascript/active_admin/lib/filters.js +39 -0
  42. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  43. data/app/javascript/active_admin/lib/per-page.js +38 -0
  44. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  45. data/app/javascript/active_admin/lib/utils.js +40 -0
  46. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  47. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  48. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  49. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  50. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  51. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  52. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  53. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  54. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  55. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  56. data/app/views/active_admin/page/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/edit.html.arb +1 -0
  58. data/app/views/active_admin/resource/index.html.arb +1 -0
  59. data/app/views/active_admin/resource/new.html.arb +1 -0
  60. data/app/views/active_admin/resource/show.html.arb +1 -0
  61. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  63. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  64. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  65. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  66. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  67. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  68. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  69. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  70. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  71. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  72. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  73. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  74. data/app/views/layouts/active_admin.html.arb +1 -0
  75. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  76. data/config/locales/ar.yml +10 -11
  77. data/config/locales/az.yml +138 -0
  78. data/config/locales/bg.yml +1 -3
  79. data/config/locales/bs.yml +1 -2
  80. data/config/locales/ca.yml +1 -3
  81. data/config/locales/cs.yml +1 -2
  82. data/config/locales/da.yml +2 -3
  83. data/config/locales/de-CH.yml +2 -3
  84. data/config/locales/de.yml +30 -3
  85. data/config/locales/el.yml +2 -3
  86. data/config/locales/en-CA.yml +139 -0
  87. data/config/locales/en-GB.yml +46 -5
  88. data/config/locales/en.yml +32 -8
  89. data/config/locales/eo.yml +145 -0
  90. data/config/locales/es-MX.yml +6 -3
  91. data/config/locales/es.yml +36 -10
  92. data/config/locales/fa.yml +1 -2
  93. data/config/locales/fi.yml +2 -3
  94. data/config/locales/fr.yml +15 -7
  95. data/config/locales/he.yml +53 -7
  96. data/config/locales/hr.yml +1 -2
  97. data/config/locales/hu.yml +5 -2
  98. data/config/locales/id.yml +2 -3
  99. data/config/locales/it.yml +33 -7
  100. data/config/locales/ja.yml +9 -5
  101. data/config/locales/ko.yml +2 -3
  102. data/config/locales/lt.yml +27 -6
  103. data/config/locales/lv.yml +3 -4
  104. data/config/locales/mk.yml +134 -0
  105. data/config/locales/nb.yml +16 -7
  106. data/config/locales/nl.yml +14 -4
  107. data/config/locales/pl.yml +75 -5
  108. data/config/locales/pt-BR.yml +10 -3
  109. data/config/locales/pt-PT.yml +1 -2
  110. data/config/locales/ro.yml +4 -4
  111. data/config/locales/ru.yml +4 -3
  112. data/config/locales/sk.yml +60 -2
  113. data/config/locales/sv-SE.yml +4 -3
  114. data/config/locales/tr.yml +10 -2
  115. data/config/locales/uk.yml +4 -3
  116. data/config/locales/vi.yml +53 -12
  117. data/config/locales/zh-CN.yml +34 -7
  118. data/config/locales/zh-TW.yml +2 -3
  119. data/docs/.gitignore +1 -0
  120. data/docs/0-installation.md +42 -15
  121. data/docs/1-general-configuration.md +46 -4
  122. data/docs/10-custom-pages.md +24 -5
  123. data/docs/11-decorators.md +17 -5
  124. data/docs/12-arbre-components.md +47 -9
  125. data/docs/13-authorization-adapter.md +69 -35
  126. data/docs/14-gotchas.md +41 -22
  127. data/docs/2-resource-customization.md +57 -20
  128. data/docs/3-index-pages/custom-index.md +2 -1
  129. data/docs/3-index-pages/index-as-block.md +0 -5
  130. data/docs/3-index-pages/index-as-blog.md +1 -6
  131. data/docs/3-index-pages/index-as-grid.md +0 -5
  132. data/docs/3-index-pages/index-as-table.md +13 -14
  133. data/docs/3-index-pages.md +47 -12
  134. data/docs/4-csv-format.md +2 -1
  135. data/docs/5-forms.md +65 -22
  136. data/docs/6-show-pages.md +14 -1
  137. data/docs/7-sidebars.md +2 -1
  138. data/docs/8-custom-actions.md +16 -2
  139. data/docs/9-batch-actions.md +5 -3
  140. data/docs/CNAME +1 -1
  141. data/docs/Gemfile +4 -2
  142. data/docs/Gemfile.lock +283 -0
  143. data/docs/_config.yml +3 -1
  144. data/docs/_includes/toc.html +1 -1
  145. data/docs/_includes/top-menu.html +9 -1
  146. data/docs/documentation.md +21 -23
  147. data/docs/images/tidelift.svg +14 -0
  148. data/docs/index.html +110 -9
  149. data/docs/stylesheets/main.css +55 -2
  150. data/lib/active_admin/abstract_view_factory.rb +14 -51
  151. data/lib/active_admin/application.rb +65 -170
  152. data/lib/active_admin/application_settings.rb +43 -0
  153. data/lib/active_admin/asset_registration.rb +1 -0
  154. data/lib/active_admin/authorization_adapter.rb +4 -6
  155. data/lib/active_admin/base_controller/authorization.rb +18 -19
  156. data/lib/active_admin/base_controller/menu.rb +10 -9
  157. data/lib/active_admin/base_controller.rb +12 -12
  158. data/lib/active_admin/batch_actions/controller.rb +6 -5
  159. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  160. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  161. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  162. data/lib/active_admin/batch_actions/views/selection_cells.rb +8 -6
  163. data/lib/active_admin/batch_actions.rb +1 -0
  164. data/lib/active_admin/callbacks.rb +2 -1
  165. data/lib/active_admin/cancan_adapter.rb +2 -1
  166. data/lib/active_admin/collection_decorator.rb +32 -0
  167. data/lib/active_admin/component.rb +1 -0
  168. data/lib/active_admin/controller_action.rb +3 -1
  169. data/lib/active_admin/csv_builder.rb +22 -14
  170. data/lib/active_admin/dependency.rb +15 -78
  171. data/lib/active_admin/deprecation.rb +1 -25
  172. data/lib/active_admin/devise.rb +18 -7
  173. data/lib/active_admin/dsl.rb +5 -11
  174. data/lib/active_admin/dynamic_setting.rb +39 -0
  175. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  176. data/lib/active_admin/engine.rb +16 -7
  177. data/lib/active_admin/error.rb +5 -4
  178. data/lib/active_admin/filters/active.rb +14 -14
  179. data/lib/active_admin/filters/active_filter.rb +124 -0
  180. data/lib/active_admin/filters/active_sidebar.rb +28 -0
  181. data/lib/active_admin/filters/dsl.rb +1 -0
  182. data/lib/active_admin/filters/forms.rb +12 -9
  183. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  184. data/lib/active_admin/filters/resource_extension.rb +32 -35
  185. data/lib/active_admin/filters.rb +8 -5
  186. data/lib/active_admin/form_builder.rb +110 -70
  187. data/lib/active_admin/generators/boilerplate.rb +13 -4
  188. data/lib/active_admin/helpers/collection.rb +2 -0
  189. data/lib/active_admin/helpers/i18n.rb +1 -0
  190. data/lib/active_admin/helpers/optional_display.rb +3 -2
  191. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  192. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  193. data/lib/active_admin/inputs/datepicker_input.rb +14 -6
  194. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  195. data/lib/active_admin/inputs/filters/base.rb +2 -1
  196. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  197. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  198. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  199. data/lib/active_admin/inputs/filters/date_range_input.rb +24 -12
  200. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  201. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  202. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  203. data/lib/active_admin/inputs/filters/text_input.rb +1 -1
  204. data/lib/active_admin/inputs.rb +1 -0
  205. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  206. data/lib/active_admin/localizers.rb +2 -1
  207. data/lib/active_admin/menu.rb +13 -15
  208. data/lib/active_admin/menu_collection.rb +1 -2
  209. data/lib/active_admin/menu_item.rb +11 -38
  210. data/lib/active_admin/namespace.rb +33 -20
  211. data/lib/active_admin/namespace_settings.rb +127 -0
  212. data/lib/active_admin/order_clause.rb +4 -3
  213. data/lib/active_admin/orm/active_record/comments/comment.rb +6 -9
  214. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  215. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  216. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  217. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +37 -24
  218. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  219. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  220. data/lib/active_admin/orm/active_record.rb +2 -1
  221. data/lib/active_admin/orm/mongoid.rb +1 -0
  222. data/lib/active_admin/page.rb +2 -1
  223. data/lib/active_admin/page_controller.rb +2 -1
  224. data/lib/active_admin/page_dsl.rb +2 -1
  225. data/lib/active_admin/page_presenter.rb +3 -1
  226. data/lib/active_admin/pundit_adapter.rb +23 -9
  227. data/lib/active_admin/resource/action_items.rb +16 -6
  228. data/lib/active_admin/resource/attributes.rb +10 -6
  229. data/lib/active_admin/resource/belongs_to.rb +9 -3
  230. data/lib/active_admin/resource/controllers.rb +2 -1
  231. data/lib/active_admin/resource/includes.rb +1 -0
  232. data/lib/active_admin/resource/menu.rb +6 -5
  233. data/lib/active_admin/resource/model.rb +16 -0
  234. data/lib/active_admin/resource/naming.rb +6 -5
  235. data/lib/active_admin/resource/ordering.rb +1 -0
  236. data/lib/active_admin/resource/page_presenters.rb +2 -1
  237. data/lib/active_admin/resource/pagination.rb +1 -0
  238. data/lib/active_admin/resource/routes.rb +26 -15
  239. data/lib/active_admin/resource/scope_to.rb +8 -7
  240. data/lib/active_admin/resource/scopes.rb +5 -3
  241. data/lib/active_admin/resource/sidebars.rb +3 -2
  242. data/lib/active_admin/resource.rb +37 -22
  243. data/lib/active_admin/resource_collection.rb +3 -2
  244. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  245. data/lib/active_admin/resource_controller/data_access.rb +16 -12
  246. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  247. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  248. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  249. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  250. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  251. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  252. data/lib/active_admin/resource_controller.rb +15 -11
  253. data/lib/active_admin/resource_dsl.rb +18 -28
  254. data/lib/active_admin/router.rb +91 -84
  255. data/lib/active_admin/scope.rb +22 -13
  256. data/lib/active_admin/settings_node.rb +20 -0
  257. data/lib/active_admin/sidebar_section.rb +4 -1
  258. data/lib/active_admin/version.rb +2 -1
  259. data/lib/active_admin/view_factory.rb +18 -17
  260. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  261. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  262. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  263. data/lib/active_admin/view_helpers/display_helper.rb +26 -9
  264. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  265. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  266. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  267. data/lib/active_admin/view_helpers/form_helper.rb +2 -1
  268. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  269. data/lib/active_admin/view_helpers/scope_name_helper.rb +17 -0
  270. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  271. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  272. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  273. data/lib/active_admin/view_helpers.rb +3 -1
  274. data/lib/active_admin/views/action_items.rb +2 -1
  275. data/lib/active_admin/views/components/active_admin_form.rb +15 -9
  276. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  277. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  278. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  279. data/lib/active_admin/views/components/columns.rb +1 -0
  280. data/lib/active_admin/views/components/dropdown_menu.rb +9 -11
  281. data/lib/active_admin/views/components/index_list.rb +4 -5
  282. data/lib/active_admin/views/components/menu.rb +33 -0
  283. data/lib/active_admin/views/components/menu_item.rb +59 -0
  284. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  285. data/lib/active_admin/views/components/panel.rb +2 -1
  286. data/lib/active_admin/views/components/scopes.rb +19 -17
  287. data/lib/active_admin/views/components/sidebar.rb +14 -0
  288. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  289. data/lib/active_admin/views/components/site_title.rb +7 -7
  290. data/lib/active_admin/views/components/status_tag.rb +19 -23
  291. data/lib/active_admin/views/components/table_for.rb +22 -29
  292. data/lib/active_admin/views/components/tabs.rb +18 -5
  293. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  294. data/lib/active_admin/views/footer.rb +6 -8
  295. data/lib/active_admin/views/header.rb +4 -16
  296. data/lib/active_admin/views/index_as_block.rb +1 -0
  297. data/lib/active_admin/views/index_as_blog.rb +4 -4
  298. data/lib/active_admin/views/index_as_grid.rb +27 -26
  299. data/lib/active_admin/views/index_as_table.rb +53 -26
  300. data/lib/active_admin/views/pages/base.rb +47 -63
  301. data/lib/active_admin/views/pages/form.rb +1 -0
  302. data/lib/active_admin/views/pages/index.rb +16 -13
  303. data/lib/active_admin/views/pages/layout.rb +1 -0
  304. data/lib/active_admin/views/pages/page.rb +1 -0
  305. data/lib/active_admin/views/pages/show.rb +7 -1
  306. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  307. data/lib/active_admin/views/title_bar.rb +6 -5
  308. data/lib/active_admin/views.rb +2 -1
  309. data/lib/active_admin.rb +70 -68
  310. data/lib/activeadmin.rb +2 -1
  311. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  312. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  313. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  314. data/lib/generators/active_admin/devise/devise_generator.rb +7 -6
  315. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  316. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  317. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -1
  318. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  319. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  320. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  321. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  322. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  323. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  324. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  325. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  326. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  327. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  328. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  329. data/lib/ransack_ext.rb +10 -9
  330. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  331. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  332. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  333. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  334. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  335. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  336. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  337. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  338. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  339. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  340. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  341. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  342. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  343. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  344. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  345. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  346. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  347. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  348. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  349. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  350. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  351. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  352. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  353. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  354. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  355. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  356. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  357. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  358. metadata +158 -580
  359. data/.gitignore +0 -49
  360. data/.hound.yml +0 -14
  361. data/.rubocop.yml +0 -27
  362. data/.travis.yml +0 -66
  363. data/.yardopts +0 -8
  364. data/Appraisals +0 -41
  365. data/Gemfile +0 -49
  366. data/Rakefile +0 -65
  367. data/activeadmin.gemspec +0 -34
  368. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  369. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  370. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  371. data/app/assets/images/active_admin/orderable.png +0 -0
  372. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  373. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  374. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  375. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  376. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  377. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -22
  378. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  379. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
  380. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  381. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -44
  382. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  383. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  384. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  385. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  386. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -42
  387. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  388. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  389. data/codecov.yml +0 -23
  390. data/cucumber.yml +0 -3
  391. data/features/action_item.feature +0 -73
  392. data/features/authorization.feature +0 -64
  393. data/features/authorization_cancan.feature +0 -52
  394. data/features/authorization_pundit.feature +0 -37
  395. data/features/belongs_to.feature +0 -124
  396. data/features/breadcrumb.feature +0 -75
  397. data/features/comments/commenting.feature +0 -158
  398. data/features/comments/viewing_index.feature +0 -19
  399. data/features/create_another.feature +0 -55
  400. data/features/dashboard.feature +0 -16
  401. data/features/decorators.feature +0 -43
  402. data/features/development_reloading.feature +0 -28
  403. data/features/edit_page.feature +0 -116
  404. data/features/favicon.feature +0 -20
  405. data/features/first_boot.feature +0 -16
  406. data/features/footer.feature +0 -28
  407. data/features/global_navigation.feature +0 -29
  408. data/features/i18n.feature +0 -55
  409. data/features/index/batch_actions.feature +0 -218
  410. data/features/index/filters.feature +0 -199
  411. data/features/index/format_as_csv.feature +0 -203
  412. data/features/index/formats.feature +0 -88
  413. data/features/index/index_as_block.feature +0 -15
  414. data/features/index/index_as_blog.feature +0 -69
  415. data/features/index/index_as_grid.feature +0 -45
  416. data/features/index/index_as_table.feature +0 -291
  417. data/features/index/index_blank_slate.feature +0 -83
  418. data/features/index/index_parameters.feature +0 -75
  419. data/features/index/index_scope_to.feature +0 -56
  420. data/features/index/index_scopes.feature +0 -270
  421. data/features/index/page_title.feature +0 -41
  422. data/features/index/pagination.feature +0 -63
  423. data/features/index/switch_index_view.feature +0 -73
  424. data/features/menu.feature +0 -72
  425. data/features/meta_tags.feature +0 -21
  426. data/features/new_page.feature +0 -107
  427. data/features/registering_assets.feature +0 -34
  428. data/features/registering_pages.feature +0 -237
  429. data/features/registering_resources.feature +0 -33
  430. data/features/renamed_resource.feature +0 -30
  431. data/features/root_to.feature +0 -17
  432. data/features/show/columns.feature +0 -40
  433. data/features/show/default_content.feature +0 -44
  434. data/features/show/page_title.feature +0 -58
  435. data/features/show/tabs.feature +0 -27
  436. data/features/sidebar_sections.feature +0 -210
  437. data/features/site_title.feature +0 -47
  438. data/features/specifying_actions.feature +0 -118
  439. data/features/step_definitions/action_item_steps.rb +0 -7
  440. data/features/step_definitions/action_link_steps.rb +0 -20
  441. data/features/step_definitions/additional_web_steps.rb +0 -81
  442. data/features/step_definitions/asset_steps.rb +0 -15
  443. data/features/step_definitions/attribute_steps.rb +0 -18
  444. data/features/step_definitions/batch_action_steps.rb +0 -81
  445. data/features/step_definitions/blog_steps.rb +0 -3
  446. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  447. data/features/step_definitions/column_steps.rb +0 -8
  448. data/features/step_definitions/comment_steps.rb +0 -12
  449. data/features/step_definitions/configuration_steps.rb +0 -100
  450. data/features/step_definitions/dashboard_steps.rb +0 -15
  451. data/features/step_definitions/factory_steps.rb +0 -35
  452. data/features/step_definitions/filter_steps.rb +0 -39
  453. data/features/step_definitions/flash_steps.rb +0 -11
  454. data/features/step_definitions/footer_steps.rb +0 -11
  455. data/features/step_definitions/format_steps.rb +0 -56
  456. data/features/step_definitions/i18n_steps.rb +0 -11
  457. data/features/step_definitions/index_scope_steps.rb +0 -25
  458. data/features/step_definitions/index_views_steps.rb +0 -3
  459. data/features/step_definitions/layout_steps.rb +0 -3
  460. data/features/step_definitions/member_link_steps.rb +0 -7
  461. data/features/step_definitions/menu_steps.rb +0 -11
  462. data/features/step_definitions/meta_tag_steps.rb +0 -3
  463. data/features/step_definitions/pagination_steps.rb +0 -15
  464. data/features/step_definitions/sidebar_steps.rb +0 -11
  465. data/features/step_definitions/site_title_steps.rb +0 -17
  466. data/features/step_definitions/tab_steps.rb +0 -8
  467. data/features/step_definitions/table_steps.rb +0 -116
  468. data/features/step_definitions/user_steps.rb +0 -52
  469. data/features/step_definitions/web_steps.rb +0 -86
  470. data/features/sti_resource.feature +0 -65
  471. data/features/strong_parameters.feature +0 -69
  472. data/features/support/env.rb +0 -121
  473. data/features/support/paths.rb +0 -73
  474. data/features/support/selectors.rb +0 -45
  475. data/features/users/logging_in.feature +0 -36
  476. data/features/users/logging_out.feature +0 -13
  477. data/features/users/resetting_password.feature +0 -34
  478. data/gemfiles/rails_42.gemfile +0 -45
  479. data/gemfiles/rails_50.gemfile +0 -45
  480. data/gemfiles/rails_51.gemfile +0 -45
  481. data/lib/active_admin/event.rb +0 -24
  482. data/lib/active_admin/filters/humanized.rb +0 -68
  483. data/lib/active_admin/helpers/settings.rb +0 -115
  484. data/lib/active_admin/reloader.rb +0 -25
  485. data/lib/bug_report_templates/rails_5_master.rb +0 -118
  486. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  487. data/spec/bug_report_templates_spec.rb +0 -27
  488. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  489. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  490. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  491. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  492. data/spec/javascripts/fixtures/flashes.html +0 -2
  493. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  494. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  495. data/spec/javascripts/support/jasmine.yml +0 -74
  496. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  497. data/spec/rails_helper.rb +0 -62
  498. data/spec/requests/default_namespace_spec.rb +0 -81
  499. data/spec/requests/javascript_spec.rb +0 -22
  500. data/spec/requests/memory_spec.rb +0 -25
  501. data/spec/requests/stylesheets_spec.rb +0 -18
  502. data/spec/spec_helper.rb +0 -12
  503. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  504. data/spec/support/active_admin_request_helpers.rb +0 -39
  505. data/spec/support/jslint.yml +0 -80
  506. data/spec/support/rails_template.rb +0 -182
  507. data/spec/support/rails_template_with_data.rb +0 -68
  508. data/spec/support/templates/admin/stores.rb +0 -7
  509. data/spec/support/templates/en.yml +0 -8
  510. data/spec/support/templates/manifest.js +0 -3
  511. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  512. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  513. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  514. data/spec/support/templates/policies/application_policy.rb +0 -45
  515. data/spec/support/templates/policies/category_policy.rb +0 -7
  516. data/spec/support/templates/policies/post_policy.rb +0 -15
  517. data/spec/support/templates/policies/store_policy.rb +0 -11
  518. data/spec/support/templates/policies/user_policy.rb +0 -11
  519. data/spec/support/templates/post_decorator.rb +0 -11
  520. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  521. data/spec/unit/action_builder_spec.rb +0 -125
  522. data/spec/unit/active_admin_spec.rb +0 -11
  523. data/spec/unit/application_spec.rb +0 -180
  524. data/spec/unit/asset_registration_spec.rb +0 -52
  525. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  526. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  527. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  528. data/spec/unit/auto_link_spec.rb +0 -93
  529. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  530. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  531. data/spec/unit/belongs_to_spec.rb +0 -77
  532. data/spec/unit/cancan_adapter_spec.rb +0 -43
  533. data/spec/unit/comments_spec.rb +0 -176
  534. data/spec/unit/component_spec.rb +0 -18
  535. data/spec/unit/config_shared_examples.rb +0 -59
  536. data/spec/unit/controller_filters_spec.rb +0 -41
  537. data/spec/unit/csv_builder_spec.rb +0 -306
  538. data/spec/unit/dependency_spec.rb +0 -135
  539. data/spec/unit/devise_spec.rb +0 -110
  540. data/spec/unit/dsl_spec.rb +0 -122
  541. data/spec/unit/filters/active_spec.rb +0 -14
  542. data/spec/unit/filters/filter_form_builder_spec.rb +0 -500
  543. data/spec/unit/filters/humanized_spec.rb +0 -64
  544. data/spec/unit/filters/resource_spec.rb +0 -128
  545. data/spec/unit/form_builder_spec.rb +0 -990
  546. data/spec/unit/generators/install_spec.rb +0 -31
  547. data/spec/unit/helpers/collection_spec.rb +0 -68
  548. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  549. data/spec/unit/helpers/settings_spec.rb +0 -30
  550. data/spec/unit/i18n_spec.rb +0 -12
  551. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  552. data/spec/unit/menu_collection_spec.rb +0 -62
  553. data/spec/unit/menu_item_spec.rb +0 -143
  554. data/spec/unit/menu_spec.rb +0 -71
  555. data/spec/unit/namespace/authorization_spec.rb +0 -27
  556. data/spec/unit/namespace/register_page_spec.rb +0 -99
  557. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  558. data/spec/unit/namespace_spec.rb +0 -125
  559. data/spec/unit/order_clause_spec.rb +0 -81
  560. data/spec/unit/page_controller_spec.rb +0 -5
  561. data/spec/unit/page_spec.rb +0 -131
  562. data/spec/unit/pretty_format_spec.rb +0 -82
  563. data/spec/unit/pundit_adapter_spec.rb +0 -98
  564. data/spec/unit/resource/action_items_spec.rb +0 -65
  565. data/spec/unit/resource/attributes_spec.rb +0 -50
  566. data/spec/unit/resource/includes_spec.rb +0 -21
  567. data/spec/unit/resource/menu_spec.rb +0 -18
  568. data/spec/unit/resource/naming_spec.rb +0 -122
  569. data/spec/unit/resource/ordering_spec.rb +0 -38
  570. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  571. data/spec/unit/resource/pagination_spec.rb +0 -38
  572. data/spec/unit/resource/routes_spec.rb +0 -125
  573. data/spec/unit/resource/scopes_spec.rb +0 -50
  574. data/spec/unit/resource/sidebars_spec.rb +0 -43
  575. data/spec/unit/resource_collection_spec.rb +0 -175
  576. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  577. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  578. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  579. data/spec/unit/resource_controller_spec.rb +0 -274
  580. data/spec/unit/resource_registration_spec.rb +0 -61
  581. data/spec/unit/resource_spec.rb +0 -313
  582. data/spec/unit/routing_spec.rb +0 -213
  583. data/spec/unit/scope_spec.rb +0 -209
  584. data/spec/unit/settings_spec.rb +0 -118
  585. data/spec/unit/view_factory_spec.rb +0 -19
  586. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  587. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  588. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  589. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  590. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  591. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  592. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  593. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  594. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  595. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  596. data/spec/unit/views/components/columns_spec.rb +0 -189
  597. data/spec/unit/views/components/index_list_spec.rb +0 -49
  598. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  599. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  600. data/spec/unit/views/components/panel_spec.rb +0 -58
  601. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  602. data/spec/unit/views/components/site_title_spec.rb +0 -78
  603. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  604. data/spec/unit/views/components/table_for_spec.rb +0 -436
  605. data/spec/unit/views/components/tabs_spec.rb +0 -39
  606. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  607. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  608. data/spec/unit/views/pages/form_spec.rb +0 -54
  609. data/spec/unit/views/pages/index_spec.rb +0 -60
  610. data/spec/unit/views/pages/layout_spec.rb +0 -59
  611. data/spec/unit/views/pages/show_spec.rb +0 -32
  612. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  613. data/tasks/docs.rake +0 -37
  614. data/tasks/lint.rake +0 -8
  615. data/tasks/local.rake +0 -25
  616. data/tasks/parallel_tests.rake +0 -66
  617. data/tasks/test.rake +0 -46
  618. data/tasks/yard.rake +0 -9
@@ -1,17 +1,13 @@
1
1
  ---
2
2
  redirect_from: /docs/11-decorators.html
3
3
  ---
4
+
4
5
  # Decorators
5
6
 
6
7
  Active Admin allows you to use the decorator pattern to provide view-specific
7
8
  versions of a resource. [Draper](https://github.com/drapergem/draper) is
8
9
  recommended but not required.
9
10
 
10
- To use decorator support without Draper, your decorator must support a variety
11
- of collection methods to support pagination, filtering, etc. See
12
- [this github issue discussion](https://github.com/activeadmin/activeadmin/issues/3600)
13
- and [this gem](https://github.com/kiote/activeadmin-poro-decorator) for more details.
14
-
15
11
  ## Example usage
16
12
 
17
13
  ```ruby
@@ -41,6 +37,22 @@ ActiveAdmin.register Post do
41
37
  end
42
38
  ```
43
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
+
44
56
  ## Forms
45
57
 
46
58
  By default, ActiveAdmin does *not* decorate the resource used to render forms.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/12-arbre-components.html
3
3
  ---
4
+
4
5
  # Arbre Components
5
6
 
6
7
  Arbre allows the creation of shareable and extendable HTML components and is
@@ -21,7 +22,7 @@ ActiveAdmin.register Post do
21
22
  row :id
22
23
  row 'Tags' do
23
24
  post.tags.each do |tag|
24
- a tag, href: admin_post_path(q: {tagged_with_contains: tag})
25
+ a tag, href: admin_post_path(q: {tagged_with_contains: tag})
25
26
  text_node " ".html_safe
26
27
  end
27
28
  end
@@ -57,7 +58,7 @@ The Columns component allows you draw content into scalable columns. All you
57
58
  need to do is define the number of columns and the component will take care of
58
59
  the rest.
59
60
 
60
- #### Simple Columns
61
+ ### Simple Columns
61
62
 
62
63
  To create simple columns, use the `columns` method. Within the block, call
63
64
  the #column method to create a new column.
@@ -114,6 +115,21 @@ end
114
115
  In the above example, the first column will not grow larger than 200px and will
115
116
  not shrink less than 100px.
116
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
+
117
133
  ## Table For
118
134
 
119
135
  Table For provides the ability to create tables like those present
@@ -129,29 +145,51 @@ table_for order.payments do
129
145
  end
130
146
  ```
131
147
 
132
- 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
133
149
  (`:your_method`) as its second (or first if no title provided). Column also
134
150
  takes a block.
135
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
+
136
164
  ## Status tag
137
165
 
138
166
  Status tags provide convenient syntactic sugar for styling items that have
139
167
  status. A common example of where the status tag could be useful is for orders
140
168
  that are complete or in progress. `status_tag` takes a status, like
141
- "In Progress", a type, which defaults to nil, and a hash of options. The
142
- status_tag will generate html markup that Active Admin css uses in styling.
169
+ "In Progress", and a hash of options. The status_tag will generate HTML markup
170
+ that Active Admin CSS uses in styling.
143
171
 
144
172
  ```ruby
145
173
  status_tag 'In Progress'
146
174
  # => <span class='status_tag in_progress'>In Progress</span>
147
175
 
148
- status_tag 'active', :ok
149
- # => <span class='status_tag active ok'>Active</span>
176
+ status_tag 'active', class: 'important', id: 'status_123', label: 'on'
177
+ # => <span class='status_tag active important' id='status_123'>on</span>
178
+ ```
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.
150
183
 
151
- status_tag 'active', :ok, class: 'important', id: 'status_123', label: 'on'
152
- # => <span class='status_tag active ok important' id='status_123'>on</span>
184
+ ```ruby
185
+ status_tag true
186
+ # => <span class='status_tag yes'>Yes</span>
153
187
  ```
154
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
+
155
193
  ## Tabs
156
194
 
157
195
  The Tabs component is helpful for saving page real estate. The first tab will be
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/13-authorization-adapter.html
3
3
  ---
4
+
4
5
  # Authorization Adapter
5
6
 
6
7
  Active Admin offers the ability to define and use your own authorization
@@ -9,8 +10,8 @@ taken. By default, '#authorized?' returns true.
9
10
 
10
11
  ## Setting up your own AuthorizationAdapter
11
12
 
12
- Setting up your own `AuthorizationAdapter` is easy! The following example shows
13
- 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:
14
15
 
15
16
  ```ruby
16
17
  # app/models/only_authors_authorization.rb
@@ -40,7 +41,11 @@ application's `config/initializers/active_admin.rb` and add/modify the line:
40
41
  config.authorization_adapter = "OnlyAuthorsAuthorization"
41
42
  ```
42
43
 
43
- Authorization adapters can be configured per ActiveAdmin namespace as well, for example:
44
+ Now, whenever a controller action is performed, the `OnlyAuthorsAuthorization`'s
45
+ `#authorized?` method will be called.
46
+
47
+ Authorization adapters can be configured per ActiveAdmin namespace as well, for
48
+ example:
44
49
 
45
50
  ```ruby
46
51
  ActiveAdmin.setup do |config|
@@ -53,9 +58,6 @@ ActiveAdmin.setup do |config|
53
58
  end
54
59
  ```
55
60
 
56
- Now, whenever a controller action is performed, the `OnlyAuthorsAuthorization`'s
57
- `#authorized?` method will be called.
58
-
59
61
  ## Getting Access to the Current User
60
62
 
61
63
  From within your authorization adapter, you can call the `#user` method to
@@ -73,9 +75,9 @@ end
73
75
 
74
76
  ## Scoping Collections in Authorization Adapters
75
77
 
76
- `ActiveAdmin::AuthorizationAdapter` also provides a hook method (`#scope_collection`)
77
- for the adapter to scope the resource's collection. For example, you may want to
78
- centralize the scoping:
78
+ `ActiveAdmin::AuthorizationAdapter` also provides a hook method
79
+ (`#scope_collection`) for the adapter to scope the resource's collection. For
80
+ example, you may want to centralize the scoping:
79
81
 
80
82
  ```ruby
81
83
  class OnlyMyAccount < ActiveAdmin::AuthorizationAdapter
@@ -104,7 +106,9 @@ class OnlyDashboard < ActiveAdmin::AuthorizationAdapter
104
106
  def authorized?(action, subject = nil)
105
107
  case subject
106
108
  when ActiveAdmin::Page
107
- action == :read && subject.name == "Dashboard" && subject.namespace.name == :admin
109
+ action == :read &&
110
+ subject.name == "Dashboard" &&
111
+ subject.namespace.name == :admin
108
112
  else
109
113
  false
110
114
  end
@@ -116,24 +120,23 @@ end
116
120
 
117
121
  By default Active Admin simplifies the controller actions into 4 actions:
118
122
 
119
- * `:read` - This controls if the user can view the menu item as well as the
120
- index and show screens.
121
- * `:create` - This controls if the user can view the new screen and submit
122
- the form to the create action.
123
- * `:update` - This controls if the user can view the edit screen and submit
124
- the form to the update action.
125
- * `:destroy` - This controls if the user can delete a resource.
123
+ * `:read` - This controls if the user can view the menu item as well as the
124
+ index and show screens.
125
+ * `:create` - This controls if the user can view the new screen and submit
126
+ the form to the create action.
127
+ * `:update` - This controls if the user can view the edit screen and submit
128
+ the form to the update action.
129
+ * `:destroy` - This controls if the user can delete a resource.
126
130
 
127
131
  Each of these actions is available as a constant. Eg: `:read` is available as
128
132
  `ActiveAdmin::Authorization::READ`.
129
133
 
130
-
131
134
  ## Checking for Authorization in Controllers and Views
132
135
 
133
136
  Active Admin provides a helper method to check if the current user is
134
137
  authorized to perform an action on a subject.
135
138
 
136
- Simply use the `#authorized?(action, subject) method to check.
139
+ Use the `#authorized?(action, subject)` method to check.
137
140
 
138
141
  ```ruby
139
142
  ActiveAdmin.register Post do
@@ -177,28 +180,28 @@ end
177
180
 
178
181
  Sub-classing `ActiveAdmin::AuthorizationAdapter` is fairly low level. Many times
179
182
  it's nicer to have a simpler DSL for managing authorization. Active Admin
180
- provides an adapter out of the box for [CanCan](https://github.com/ryanb/cancan)
181
- and [CanCanCan](https://github.com/CanCanCommunity/cancancan).
183
+ provides an adapter out of the box for [CanCanCan](https://github.com/CanCanCommunity/cancancan).
182
184
 
183
- 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
184
186
  initializer:
185
187
 
186
188
  ```ruby
187
189
  config.authorization_adapter = ActiveAdmin::CanCanAdapter
188
190
  ```
189
191
 
190
- You can also specify a method to be called on unauthorized access. This is necessary
191
- in order to prevent a redirect loop that can happen if a user tries to access a page
192
- they don't have permissions for (see [#2081](https://github.com/activeadmin/activeadmin/issues/2081)).
192
+ You can also specify a method to be called on unauthorized access. This is
193
+ necessary in order to prevent a redirect loop that can happen if a user tries to
194
+ access a page they don't have permissions for (see
195
+ [#2081](https://github.com/activeadmin/activeadmin/issues/2081)).
193
196
 
194
197
  ```ruby
195
198
  config.on_unauthorized_access = :access_denied
196
199
  ```
197
200
 
198
- The method `access_denied` would be defined in `application_controller.rb`. Here is one
199
- example that redirects the user from the page they don't have permission to
200
- access to a resource they have permission to access (organizations in this case), and
201
- also displays the error message in the browser:
201
+ The method `access_denied` would be defined in `application_controller.rb`. Here
202
+ is one example that redirects the user from the page they don't have permission
203
+ to access to a resource they have permission to access (organizations in this
204
+ case), and also displays the error message in the browser:
202
205
 
203
206
  ```ruby
204
207
  class ApplicationController < ActionController::Base
@@ -217,7 +220,7 @@ changed from the initializer:
217
220
  config.cancan_ability_class = "MyCustomAbility"
218
221
  ```
219
222
 
220
- 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
221
224
  Active Admin will use it for authorization:
222
225
 
223
226
  ```ruby
@@ -229,23 +232,54 @@ class Ability
229
232
  can :manage, Post
230
233
  can :read, User
231
234
  can :manage, User, id: user.id
232
- can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: :admin
235
+ can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: "admin"
233
236
  end
234
237
 
235
238
  end
236
239
  ```
237
240
 
238
- To view more details about the API's, visit project pages of [CanCan](https://github.com/ryanb/cancan) and [CanCanCan](https://github.com/CanCanCommunity/cancancan).
241
+ To view more details about the API's, visit project pages of
242
+ [CanCanCan](https://github.com/CanCanCommunity/cancancan).
239
243
 
240
244
  ## Using the Pundit Adapter
241
245
 
242
- Active Admin provides an adapter out of the box also for [Pundit](https://github.com/elabs/pundit).
246
+ Active Admin also provides an adapter out of the box for
247
+ [Pundit](https://github.com/varvet/pundit).
243
248
 
244
- 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
245
250
  initializer:
246
251
 
247
252
  ```ruby
248
253
  config.authorization_adapter = ActiveAdmin::PunditAdapter
249
254
  ```
250
255
 
251
- You can simply use Pundit the way that you would expect and Active Admin will use it for authorization. Check Pundit's documentation to [set up Pundit in your application](https://github.com/elabs/pundit#installation). If you want to use batch actions just ensure that `destroy_all?` method is defined in your policy class. You can use this [template policy](https://github.com/activeadmin/activeadmin/blob/master/spec/support/templates/policies/application_policy.rb) in your application instead of default one generated by Pundit's `rails g pundit:install` command.
256
+ Once that's done, Active Admin will pick up your Pundit policies, and use
257
+ them for authorization. For more information about setting up Pundit, see
258
+ [their documentation](https://github.com/varvet/pundit#installation).
259
+
260
+ Pundit also has [verify_authorized and/or verify_policy_scoped
261
+ methods](https://github.com/varvet/pundit#ensuring-policies-and-scopes-are-used)
262
+ to enforce usage of `authorized` and `policy_scope`. This conflicts with Active
263
+ Admin's authorization architecture, so if you're using those features, you'll
264
+ want to disable them for Active Admin's controllers:
265
+
266
+ ```ruby
267
+ class ApplicationController < ActionController::Base
268
+ include Pundit
269
+ after_action :verify_authorized, except: :index, unless: :active_admin_controller?
270
+ after_action :verify_policy_scoped, only: :index, unless: :active_admin_controller?
271
+
272
+ def active_admin_controller?
273
+ is_a?(ActiveAdmin::BaseController)
274
+ end
275
+ end
276
+ ```
277
+
278
+ If you want to use batch actions, ensure that `destroy_all?` method is defined
279
+ in your policy class. You can use this [template
280
+ policy](https://github.com/activeadmin/activeadmin/blob/master/spec/support/templates/policies/application_policy.rb)
281
+ in your application instead of default one generated by Pundit's
282
+ `rails g pundit:install` command.
283
+
284
+ In addition, there are [example policies](https://github.com/activeadmin/activeadmin/tree/master/spec/support/templates/policies/active_admin)
285
+ for restricting access to ActiveAdmin's pages and comments.
data/docs/14-gotchas.md CHANGED
@@ -1,24 +1,29 @@
1
1
  ---
2
2
  redirect_from: /docs/14-gotchas.html
3
3
  ---
4
- #Gotchas
4
+
5
+ # Gotchas
5
6
 
6
7
  ## Security
7
8
 
8
9
  ### Spreadsheet applications vulnerable to unescaped CSV data
9
10
 
10
- If your CSV export includes untrusted data provided by your users, it's possible that they could include an executable formula that could call arbitrary commands on your computer. See [#4256](https://github.com/activeadmin/activeadmin/issues/4256) for more details.
11
+ If your CSV export includes untrusted data provided by your users, it's possible
12
+ that they could include an executable formula that could call arbitrary commands
13
+ on your computer. See
14
+ [#4256](https://github.com/activeadmin/activeadmin/issues/4256) for more
15
+ details.
11
16
 
12
17
  ## Session Commits & Asset Pipeline
13
18
 
14
- When configuring the asset pipeline ensure that the asset prefix
15
- (`config.assets.prefix`) is not the same as the namespace of ActiveAdmin
16
- (default namespace is `/admin`). If they are the same Sprockets will prevent the
17
- session from being committed. Flash messages won't work and you will be unable to
19
+ When configuring the asset pipeline ensure that the asset prefix
20
+ (`config.assets.prefix`) is not the same as the namespace of ActiveAdmin
21
+ (default namespace is `/admin`). If they are the same Sprockets will prevent the
22
+ session from being committed. Flash messages won't work and you will be unable to
18
23
  use the session for storing anything.
19
24
 
20
- For more information see the following post:
21
- [http://www.intridea.com/blog/2013/3/20/rails-assets-prefix-may-disable-your-session](http://www.intridea.com/blog/2013/3/20/rails-assets-prefix-may-disable-your-session)
25
+ For more information see [the following
26
+ post](http://www.intridea.com/blog/2013/3/20/rails-assets-prefix-may-disable-your-session).
22
27
 
23
28
  ## Helpers
24
29
 
@@ -27,13 +32,14 @@ find a solution.
27
32
 
28
33
  ### Helpers are not reloading in development
29
34
 
30
- This is a known and still open [issue](https://github.com/activeadmin/activeadmin/issues/697)
31
- the only way is to restart your server each time you change a helper.
35
+ This is a known and still open
36
+ [issue](https://github.com/activeadmin/activeadmin/issues/697) the only way is
37
+ to restart your server each time you change a helper.
32
38
 
33
39
  ### Helper maybe not included by default
34
40
 
35
- If you use `config.action_controller.include_all_helpers = false` in your application config,
36
- you need to include it by hand.
41
+ If you use `config.action_controller.include_all_helpers = false` in your
42
+ application config, you need to include it by hand.
37
43
 
38
44
  #### Solutions
39
45
 
@@ -62,23 +68,27 @@ end
62
68
 
63
69
  ## CSS
64
70
 
65
- In order to avoid the override of your application style with the Active Admin one, you can do one of these things:
66
- * You can properly move the generated file `active_admin.scss` from `app/assets/stylesheets` to `vendor/assets/stylesheets`.
67
- * You can remove all `require_tree` commands from your root level css files, where the `active_admin.scss` is in the tree.
71
+ In order to avoid the override of your application style with the Active Admin
72
+ one, you can do one of these things:
73
+
74
+ * You can properly move the generated file `active_admin.scss` from
75
+ `app/assets/stylesheets` to `vendor/assets/stylesheets`.
76
+ * You can remove all `require_tree` commands from your root level css files,
77
+ where the `active_admin.scss` is in the tree.
68
78
 
69
79
  ## Conflicts
70
80
 
71
81
  ### With gems that provides a `search` class method on a model
72
82
 
73
- If a gem defines a `search` class method on a model, this can result in conflicts
83
+ If a gem defines a `search` class method on a model, this can result in conflicts
74
84
  with the same method provided by `ransack` (a dependency of ActiveAdmin).
75
85
 
76
- Each of this conflicts need to solved is a different way. Some solutions are
86
+ Each of this conflicts need to solved is a different way. Some solutions are
77
87
  listed below.
78
88
 
79
89
  #### `tire`, `retire` and `elasticsearch-rails`
80
90
 
81
- This conflict can be solved, by using explicitly the `search` method of `tire`,
91
+ This conflict can be solved, by using explicitly the `search` method of `tire`,
82
92
  `retire` or `elasticsearch-rails`:
83
93
 
84
94
  ##### For `tire` and `retire`
@@ -101,9 +111,12 @@ YourModel.solr_search
101
111
 
102
112
  ### Rails 5 scaffold generators
103
113
 
104
- Active Admin requires the `inherited_resources` gem which may break scaffolding under Rails 5 as it replaces the default scaffold generator. The solution is to configure the default controller in `config/application.rb` as outlined in [activeadmin/inherited_resources#195](https://github.com/activeadmin/inherited_resources/issues/195)
114
+ Active Admin requires the `inherited_resources` gem which may break scaffolding
115
+ under Rails 5 as it replaces the default scaffold generator. The solution is to
116
+ configure the default controller in `config/application.rb` as outlined in
117
+ [activeadmin/inherited_resources#195](https://github.com/activeadmin/inherited_resources/issues/195)
105
118
 
106
- ```
119
+ ```ruby
107
120
  module SampleApp
108
121
  class Application < Rails::Application
109
122
  ...
@@ -113,7 +126,13 @@ module SampleApp
113
126
  end
114
127
  ```
115
128
 
116
-
117
129
  ## Authentication & Application Controller
118
130
 
119
- The `ActiveAdmin::BaseController` inherits from the `ApplicationController`. Any authentication method(s) specified in the `ApplicationController` callbacks will be called instead of the authentication method in the active admin config file. For example, if the ApplicationController has a callback `before_action :custom_authentication_method` and the config file's authentication method is `config.authentication_method = :authenticate_active_admin_user`, then `custom_authentication_method` will be called instead of `authenticate_active_admin_user`.
131
+ The `ActiveAdmin::BaseController` inherits from the `ApplicationController`. Any
132
+ authentication method(s) specified in the `ApplicationController` callbacks will
133
+ be called instead of the authentication method in the active admin config file.
134
+ For example, if the ApplicationController has a callback `before_action
135
+ :custom_authentication_method` and the config file's authentication method is
136
+ `config.authentication_method = :authenticate_active_admin_user`, then
137
+ `custom_authentication_method` will be called instead of
138
+ `authenticate_active_admin_user`.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/2-resource-customization.html
3
3
  ---
4
+
4
5
  # Working with Resources
5
6
 
6
7
  Every Active Admin resource corresponds to a Rails model. So before creating a
@@ -9,7 +10,7 @@ resource you must first create a Rails model for it.
9
10
  ## Create a Resource
10
11
 
11
12
  The basic command for creating a resource is `rails g active_admin:resource Post`.
12
- The generator will produce an empty `app/admin/post.rb` file like so:
13
+ The generator will produce an empty `app/admin/posts.rb` file like so:
13
14
 
14
15
  ```ruby
15
16
  ActiveAdmin.register Post do
@@ -27,8 +28,8 @@ ActiveAdmin.register Post do
27
28
  end
28
29
  ```
29
30
 
30
- Any form field that sends multiple values (such as a HABTM association, or an array attribute)
31
- needs to pass an empty array to `permit_params`:
31
+ Any form field that sends multiple values (such as a HABTM association, or an
32
+ array attribute) needs to pass an empty array to `permit_params`:
32
33
 
33
34
  If your HABTM is `roles`, you should permit `role_ids: []`
34
35
 
@@ -74,7 +75,8 @@ ActiveAdmin.register Post do
74
75
  end
75
76
  ```
76
77
 
77
- The `permit_params` call creates a method called `permitted_params`. You should use this method when overriding `create` or `update` actions:
78
+ The `permit_params` call creates a method called `permitted_params`. You should
79
+ use this method when overriding `create` or `update` actions:
78
80
 
79
81
  ```ruby
80
82
  ActiveAdmin.register Post do
@@ -105,10 +107,23 @@ end
105
107
 
106
108
  ## Renaming Action Items
107
109
 
108
- One can set custom button name and page title for new, edit, and destroy actions/pages
109
- at the resource level by providing a resource specific translation.
110
- For example to change 'New Offer' to 'Make an Offer'
111
- set `active_admin.resources.offer.new_model`.
110
+ You can use translations to override labels and page titles for actions such as
111
+ new, edit, and destroy by providing a resource specific translation. For
112
+ example, to change 'New Offer' to 'Make an Offer' add the following in
113
+ config/locales/[en].yml:
114
+
115
+ ```yaml
116
+ en:
117
+ active_admin:
118
+ resources:
119
+ offer: # Registered resource
120
+ new_model: 'Make an Offer' # new action item
121
+ edit_model: 'Change Offer' # edit action item
122
+ delete_model: 'Cancel Offer' # delete action item
123
+ ```
124
+
125
+ See the [default en.yml](/config/locales/en.yml) locale file for
126
+ existing translations and examples.
112
127
 
113
128
  ## Rename the Resource
114
129
 
@@ -149,7 +164,8 @@ The menu method accepts a hash with the following options:
149
164
 
150
165
  * `:label` - The string or proc label to display in the menu. If it's a proc, it
151
166
  will be called each time the menu is rendered.
152
- * `: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
153
169
  * `:if` - A block or a symbol of a method to call to decide if the menu item
154
170
  should be displayed
155
171
  * `:priority` - The integer value of the priority, which defaults to `10`
@@ -188,6 +204,7 @@ end
188
204
  ### Conditionally Showing / Hiding Menu Items
189
205
 
190
206
  Menu items can be shown or hidden at runtime using the `:if` option.
207
+
191
208
  ```ruby
192
209
  ActiveAdmin.register Post do
193
210
  menu if: proc{ current_user.can_edit_posts? }
@@ -211,6 +228,14 @@ end
211
228
  Note that the "Blog" parent menu item doesn't even have to exist yet; it can be
212
229
  dynamically generated for you.
213
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
+
214
239
  ### Customizing Parent Menu Items
215
240
 
216
241
  All of the options given to a standard menu item are also available to
@@ -262,9 +287,15 @@ config.namespace :admin do |admin|
262
287
  menu.add label: "The Application", url: "/", priority: 0
263
288
 
264
289
  menu.add label: "Sites" do |sites|
265
- sites.add label: "Google", url: "http://google.com", html_options: { target: :blank }
266
- sites.add label: "Facebook", url: "http://facebook.com"
267
- sites.add label: "Github", url: "http://github.com"
290
+ sites.add label: "Google",
291
+ url: "http://google.com",
292
+ html_options: { target: :blank }
293
+
294
+ sites.add label: "Facebook",
295
+ url: "http://facebook.com"
296
+
297
+ sites.add label: "Github",
298
+ url: "http://github.com"
268
299
  end
269
300
  end
270
301
  end
@@ -303,7 +334,8 @@ end
303
334
 
304
335
  ## Eager loading
305
336
 
306
- A common way to increase page performance is to elimate N+1 queries by eager loading associations:
337
+ A common way to increase page performance is to eliminate N+1 queries by eager
338
+ loading associations:
307
339
 
308
340
  ```ruby
309
341
  ActiveAdmin.register Post do
@@ -313,10 +345,13 @@ end
313
345
 
314
346
  ## Customizing resource retrieval
315
347
 
316
- Our controllers are built on [Inherited Resources](https://github.com/activeadmin/inherited_resources),
317
- so you can use [all of its features](https://github.com/activeadmin/inherited_resources#overwriting-defaults).
348
+ Our controllers are built on [Inherited
349
+ Resources](https://github.com/activeadmin/inherited_resources), so you can use
350
+ [all of its
351
+ features](https://github.com/activeadmin/inherited_resources#overwriting-defaults).
318
352
 
319
- If you need to customize the collection properties, you can overwrite the `scoped_collection` method.
353
+ If you need to customize the collection properties, you can overwrite the
354
+ `scoped_collection` method.
320
355
 
321
356
  ```ruby
322
357
  ActiveAdmin.register Post do
@@ -328,8 +363,9 @@ ActiveAdmin.register Post do
328
363
  end
329
364
  ```
330
365
 
331
- If you need to completely replace the record retrieving code (e.g., you have a custom
332
- `to_param` implementation in your models), override the `resource` method on the controller:
366
+ If you need to completely replace the record retrieving code (e.g., you have a
367
+ custom `to_param` implementation in your models), override the `find_resource` method
368
+ on the controller:
333
369
 
334
370
  ```ruby
335
371
  ActiveAdmin.register Post do
@@ -341,8 +377,9 @@ ActiveAdmin.register Post do
341
377
  end
342
378
  ```
343
379
 
344
- Note that if you use an authorization library like CanCan, you should be careful to not
345
- write code like this, otherwise **your authorization rules won't be applied**:
380
+ Note that if you use an authorization library like CanCan, you should be careful
381
+ to not write code like this, otherwise **your authorization rules won't be
382
+ applied**:
346
383
 
347
384
  ```ruby
348
385
  ActiveAdmin.register Post do
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/3-index-pages/custom-index.html
3
3
  ---
4
+
4
5
  # Custom Index
5
6
 
6
7
  If the supplied Active Admin index components are insufficient for your project
@@ -29,6 +30,6 @@ The build method takes a PagePresenter object and collection of whatever you
29
30
  choose.
30
31
 
31
32
  The `index_name` class method takes no arguments and returns a string that should
32
- 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
33
34
  index component will not be able take advantage of Active Admin's
34
35
  *multiple index pages* feature.
@@ -1,11 +1,6 @@
1
1
  ---
2
2
  redirect_from: /docs/3-index-pages/index-as-block.html
3
3
  ---
4
- <!--
5
- WARNING: Please DO NOT edit this file! Update
6
- source documentation in lib/active_admin/views
7
- and execute rake yard to regenerate it.
8
- -->
9
4
 
10
5
  # Index as a Block
11
6