activeadmin 1.4.3 → 3.0.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 (385) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +609 -26
  3. data/CONTRIBUTING.md +54 -76
  4. data/README.md +46 -13
  5. data/app/assets/javascripts/active_admin/base.js +521 -0
  6. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  7. data/app/assets/stylesheets/active_admin/_forms.scss +3 -25
  8. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  9. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  10. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +25 -123
  11. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
  12. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  14. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  15. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  16. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  17. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  18. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  19. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  20. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  21. data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
  22. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  23. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  24. data/app/javascript/active_admin/base.js +28 -0
  25. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  26. data/app/javascript/active_admin/ext/jquery.js +9 -0
  27. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  28. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  29. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  30. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  31. data/app/javascript/active_admin/initializers/filters.js +10 -0
  32. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  33. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  34. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  35. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  36. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  37. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  38. data/app/javascript/active_admin/lib/filters.js +39 -0
  39. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  40. data/app/javascript/active_admin/lib/per-page.js +38 -0
  41. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  42. data/app/javascript/active_admin/lib/utils.js +40 -0
  43. data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
  44. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  45. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  46. data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
  47. data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
  48. data/app/views/active_admin/devise/registrations/new.html.erb +1 -2
  49. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  50. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  51. data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
  52. data/app/views/active_admin/page/index.html.arb +1 -0
  53. data/app/views/active_admin/resource/edit.html.arb +1 -0
  54. data/app/views/active_admin/resource/index.html.arb +1 -0
  55. data/app/views/active_admin/resource/new.html.arb +1 -0
  56. data/app/views/active_admin/resource/show.html.arb +1 -0
  57. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  58. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  59. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  60. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  61. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  62. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  63. data/app/views/layouts/active_admin.html.arb +1 -0
  64. data/app/views/layouts/active_admin_logged_out.html.erb +19 -8
  65. data/config/locales/ar.yml +9 -15
  66. data/config/locales/az.yml +131 -0
  67. data/config/locales/bg.yml +1 -8
  68. data/config/locales/bs.yml +1 -7
  69. data/config/locales/ca.yml +1 -8
  70. data/config/locales/cs.yml +1 -7
  71. data/config/locales/da.yml +1 -7
  72. data/config/locales/de-CH.yml +1 -7
  73. data/config/locales/de.yml +19 -8
  74. data/config/locales/el.yml +1 -7
  75. data/config/locales/en-CA.yml +4 -10
  76. data/config/locales/en-GB.yml +4 -10
  77. data/config/locales/en.yml +4 -11
  78. data/config/locales/eo.yml +1 -8
  79. data/config/locales/es-MX.yml +3 -8
  80. data/config/locales/es.yml +6 -13
  81. data/config/locales/fa.yml +1 -7
  82. data/config/locales/fi.yml +1 -7
  83. data/config/locales/fr.yml +9 -16
  84. data/config/locales/he.yml +1 -10
  85. data/config/locales/hr.yml +1 -7
  86. data/config/locales/hu.yml +3 -6
  87. data/config/locales/id.yml +1 -7
  88. data/config/locales/it.yml +19 -8
  89. data/config/locales/ja.yml +3 -10
  90. data/config/locales/ko.yml +2 -8
  91. data/config/locales/lt.yml +3 -10
  92. data/config/locales/lv.yml +3 -9
  93. data/config/locales/mk.yml +126 -0
  94. data/config/locales/nb.yml +1 -8
  95. data/config/locales/nl.yml +2 -9
  96. data/config/locales/pl.yml +1 -8
  97. data/config/locales/pt-BR.yml +1 -8
  98. data/config/locales/pt-PT.yml +1 -7
  99. data/config/locales/ro.yml +4 -9
  100. data/config/locales/ru.yml +1 -6
  101. data/config/locales/sk.yml +58 -6
  102. data/config/locales/sv-SE.yml +59 -39
  103. data/config/locales/tr.yml +1 -11
  104. data/config/locales/uk.yml +3 -6
  105. data/config/locales/vi.yml +40 -19
  106. data/config/locales/zh-CN.yml +35 -23
  107. data/config/locales/zh-TW.yml +1 -7
  108. data/lib/active_admin/abstract_view_factory.rb +1 -0
  109. data/lib/active_admin/application.rb +26 -33
  110. data/lib/active_admin/application_settings.rb +7 -3
  111. data/lib/active_admin/asset_registration.rb +4 -11
  112. data/lib/active_admin/authorization_adapter.rb +6 -3
  113. data/lib/active_admin/base_controller/authorization.rb +17 -16
  114. data/lib/active_admin/base_controller/menu.rb +1 -0
  115. data/lib/active_admin/base_controller.rb +12 -11
  116. data/lib/active_admin/batch_actions/controller.rb +5 -4
  117. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  118. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  119. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  120. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  121. data/lib/active_admin/batch_actions.rb +1 -0
  122. data/lib/active_admin/callbacks.rb +2 -1
  123. data/lib/active_admin/cancan_adapter.rb +2 -1
  124. data/lib/active_admin/collection_decorator.rb +32 -0
  125. data/lib/active_admin/component.rb +1 -0
  126. data/lib/active_admin/controller_action.rb +3 -1
  127. data/lib/active_admin/csv_builder.rb +15 -23
  128. data/lib/active_admin/dependency.rb +12 -87
  129. data/lib/active_admin/deprecation.rb +1 -0
  130. data/lib/active_admin/devise.rb +16 -5
  131. data/lib/active_admin/dsl.rb +3 -9
  132. data/lib/active_admin/dynamic_setting.rb +1 -0
  133. data/lib/active_admin/dynamic_settings_node.rb +3 -2
  134. data/lib/active_admin/engine.rb +13 -9
  135. data/lib/active_admin/error.rb +5 -4
  136. data/lib/active_admin/filters/active.rb +2 -1
  137. data/lib/active_admin/filters/active_filter.rb +11 -10
  138. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  139. data/lib/active_admin/filters/dsl.rb +1 -0
  140. data/lib/active_admin/filters/forms.rb +9 -8
  141. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  142. data/lib/active_admin/filters/resource_extension.rb +33 -8
  143. data/lib/active_admin/filters.rb +8 -7
  144. data/lib/active_admin/form_builder.rb +27 -22
  145. data/lib/active_admin/generators/boilerplate.rb +13 -4
  146. data/lib/active_admin/helpers/collection.rb +2 -0
  147. data/lib/active_admin/helpers/i18n.rb +1 -0
  148. data/lib/active_admin/helpers/optional_display.rb +3 -2
  149. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  150. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  151. data/lib/active_admin/inputs/datepicker_input.rb +3 -2
  152. data/lib/active_admin/inputs/filters/base/search_method_select.rb +9 -8
  153. data/lib/active_admin/inputs/filters/base.rb +2 -1
  154. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  155. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  156. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  157. data/lib/active_admin/inputs/filters/date_range_input.rb +18 -14
  158. data/lib/active_admin/inputs/filters/numeric_input.rb +2 -1
  159. data/lib/active_admin/inputs/filters/select_input.rb +3 -2
  160. data/lib/active_admin/inputs/filters/string_input.rb +2 -1
  161. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  162. data/lib/active_admin/inputs.rb +1 -0
  163. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  164. data/lib/active_admin/localizers.rb +2 -1
  165. data/lib/active_admin/menu.rb +7 -3
  166. data/lib/active_admin/menu_collection.rb +1 -0
  167. data/lib/active_admin/menu_item.rb +8 -7
  168. data/lib/active_admin/namespace.rb +15 -14
  169. data/lib/active_admin/namespace_settings.rb +28 -8
  170. data/lib/active_admin/order_clause.rb +3 -2
  171. data/lib/active_admin/orm/active_record/comments/comment.rb +13 -4
  172. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  173. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  174. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  175. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +30 -24
  176. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  177. data/lib/active_admin/orm/active_record/comments.rb +30 -29
  178. data/lib/active_admin/orm/active_record.rb +2 -1
  179. data/lib/active_admin/orm/mongoid.rb +1 -0
  180. data/lib/active_admin/page.rb +2 -1
  181. data/lib/active_admin/page_controller.rb +1 -0
  182. data/lib/active_admin/page_dsl.rb +2 -1
  183. data/lib/active_admin/page_presenter.rb +3 -1
  184. data/lib/active_admin/pundit_adapter.rb +71 -16
  185. data/lib/active_admin/resource/action_items.rb +6 -5
  186. data/lib/active_admin/resource/attributes.rb +9 -5
  187. data/lib/active_admin/resource/belongs_to.rb +9 -3
  188. data/lib/active_admin/resource/controllers.rb +2 -1
  189. data/lib/active_admin/resource/includes.rb +1 -0
  190. data/lib/active_admin/resource/menu.rb +6 -5
  191. data/lib/active_admin/resource/model.rb +16 -0
  192. data/lib/active_admin/resource/naming.rb +6 -5
  193. data/lib/active_admin/resource/ordering.rb +1 -0
  194. data/lib/active_admin/resource/page_presenters.rb +1 -0
  195. data/lib/active_admin/resource/pagination.rb +1 -0
  196. data/lib/active_admin/resource/routes.rb +26 -14
  197. data/lib/active_admin/resource/scope_to.rb +8 -7
  198. data/lib/active_admin/resource/scopes.rb +4 -3
  199. data/lib/active_admin/resource/sidebars.rb +3 -2
  200. data/lib/active_admin/resource.rb +37 -22
  201. data/lib/active_admin/resource_collection.rb +3 -2
  202. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  203. data/lib/active_admin/resource_controller/data_access.rb +31 -5
  204. data/lib/active_admin/resource_controller/decorators.rb +8 -29
  205. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  206. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  207. data/lib/active_admin/resource_controller/scoping.rb +1 -0
  208. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  209. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  210. data/lib/active_admin/resource_controller.rb +14 -10
  211. data/lib/active_admin/resource_dsl.rb +16 -28
  212. data/lib/active_admin/router.rb +4 -2
  213. data/lib/active_admin/scope.rb +16 -11
  214. data/lib/active_admin/settings_node.rb +2 -1
  215. data/lib/active_admin/sidebar_section.rb +4 -1
  216. data/lib/active_admin/version.rb +2 -1
  217. data/lib/active_admin/view_factory.rb +18 -17
  218. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  219. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  220. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  221. data/lib/active_admin/view_helpers/display_helper.rb +32 -8
  222. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  223. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  224. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  225. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  226. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  227. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  228. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  229. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  230. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  231. data/lib/active_admin/view_helpers.rb +2 -1
  232. data/lib/active_admin/views/action_items.rb +1 -0
  233. data/lib/active_admin/views/components/active_admin_form.rb +14 -11
  234. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  235. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  236. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  237. data/lib/active_admin/views/components/columns.rb +1 -0
  238. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  239. data/lib/active_admin/views/components/index_list.rb +4 -3
  240. data/lib/active_admin/views/components/menu.rb +2 -1
  241. data/lib/active_admin/views/components/menu_item.rb +5 -4
  242. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  243. data/lib/active_admin/views/components/panel.rb +2 -1
  244. data/lib/active_admin/views/components/scopes.rb +8 -5
  245. data/lib/active_admin/views/components/sidebar.rb +1 -0
  246. data/lib/active_admin/views/components/sidebar_section.rb +1 -3
  247. data/lib/active_admin/views/components/site_title.rb +2 -1
  248. data/lib/active_admin/views/components/status_tag.rb +14 -26
  249. data/lib/active_admin/views/components/table_for.rb +21 -19
  250. data/lib/active_admin/views/components/tabs.rb +14 -4
  251. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  252. data/lib/active_admin/views/footer.rb +4 -2
  253. data/lib/active_admin/views/header.rb +3 -2
  254. data/lib/active_admin/views/index_as_block.rb +1 -0
  255. data/lib/active_admin/views/index_as_blog.rb +2 -1
  256. data/lib/active_admin/views/index_as_grid.rb +2 -1
  257. data/lib/active_admin/views/index_as_table.rb +27 -22
  258. data/lib/active_admin/views/pages/base.rb +25 -14
  259. data/lib/active_admin/views/pages/form.rb +1 -0
  260. data/lib/active_admin/views/pages/index.rb +16 -13
  261. data/lib/active_admin/views/pages/layout.rb +1 -0
  262. data/lib/active_admin/views/pages/page.rb +1 -0
  263. data/lib/active_admin/views/pages/show.rb +2 -7
  264. data/lib/active_admin/views/tabbed_navigation.rb +3 -2
  265. data/lib/active_admin/views/title_bar.rb +2 -1
  266. data/lib/active_admin/views.rb +2 -1
  267. data/lib/active_admin.rb +67 -63
  268. data/lib/activeadmin.rb +2 -1
  269. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  270. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  271. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  272. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  273. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  274. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +62 -3
  275. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  276. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  277. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  278. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  279. data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
  280. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  281. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  282. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  283. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  284. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  285. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  286. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  287. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  288. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  289. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  290. metadata +115 -173
  291. data/.circleci/config.yml +0 -572
  292. data/.github/ISSUE_TEMPLATE.md +0 -20
  293. data/.gitignore +0 -16
  294. data/.mdlrc +0 -1
  295. data/.rspec +0 -1
  296. data/.rspec_parallel +0 -2
  297. data/.rubocop.yml +0 -99
  298. data/.simplecov +0 -9
  299. data/.yardopts +0 -7
  300. data/Gemfile +0 -30
  301. data/Gemfile.common +0 -26
  302. data/Gemfile.lock +0 -433
  303. data/Rakefile +0 -24
  304. data/activeadmin.gemspec +0 -32
  305. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  306. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  307. data/app/assets/images/active_admin/orderable.png +0 -0
  308. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  309. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  310. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  311. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  312. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  313. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  314. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  315. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  316. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  317. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  318. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  319. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  320. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  321. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  322. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  323. data/bin/install_chromedriver.sh +0 -17
  324. data/config/i18n-tasks.yml +0 -26
  325. data/config/mdl_style.rb +0 -11
  326. data/cucumber.yml +0 -7
  327. data/docs/.gitignore +0 -1
  328. data/docs/0-installation.md +0 -118
  329. data/docs/1-general-configuration.md +0 -204
  330. data/docs/10-custom-pages.md +0 -150
  331. data/docs/11-decorators.md +0 -59
  332. data/docs/12-arbre-components.md +0 -201
  333. data/docs/13-authorization-adapter.md +0 -285
  334. data/docs/14-gotchas.md +0 -138
  335. data/docs/2-resource-customization.md +0 -466
  336. data/docs/3-index-pages/custom-index.md +0 -35
  337. data/docs/3-index-pages/index-as-block.md +0 -19
  338. data/docs/3-index-pages/index-as-blog.md +0 -69
  339. data/docs/3-index-pages/index-as-grid.md +0 -27
  340. data/docs/3-index-pages/index-as-table.md +0 -227
  341. data/docs/3-index-pages.md +0 -328
  342. data/docs/4-csv-format.md +0 -74
  343. data/docs/5-forms.md +0 -232
  344. data/docs/6-show-pages.md +0 -81
  345. data/docs/7-sidebars.md +0 -75
  346. data/docs/8-custom-actions.md +0 -177
  347. data/docs/9-batch-actions.md +0 -237
  348. data/docs/CNAME +0 -1
  349. data/docs/Gemfile +0 -4
  350. data/docs/Gemfile.lock +0 -249
  351. data/docs/README.md +0 -24
  352. data/docs/_config.yml +0 -2
  353. data/docs/_includes/footer.html +0 -8
  354. data/docs/_includes/google-analytics.html +0 -16
  355. data/docs/_includes/head.html +0 -7
  356. data/docs/_includes/toc.html +0 -98
  357. data/docs/_includes/top-menu.html +0 -17
  358. data/docs/_layouts/default.html +0 -21
  359. data/docs/documentation.md +0 -60
  360. data/docs/images/activeadmin.png +0 -0
  361. data/docs/images/code-header.png +0 -0
  362. data/docs/images/divider.png +0 -0
  363. data/docs/images/features.png +0 -0
  364. data/docs/images/tidelift.svg +0 -14
  365. data/docs/index.html +0 -125
  366. data/docs/stylesheets/main.css +0 -1176
  367. data/gemfiles/rails_42.gemfile +0 -10
  368. data/gemfiles/rails_42.gemfile.lock +0 -339
  369. data/gemfiles/rails_50.gemfile +0 -10
  370. data/gemfiles/rails_50.gemfile.lock +0 -353
  371. data/gemfiles/rails_51.gemfile +0 -10
  372. data/gemfiles/rails_51.gemfile.lock +0 -353
  373. data/lib/active_admin/event.rb +0 -24
  374. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  375. data/lib/active_admin/reloader.rb +0 -25
  376. data/lib/bug_report_templates/active_admin_master.rb +0 -111
  377. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  378. data/lib/ransack_ext.rb +0 -20
  379. data/tasks/application_generator.rb +0 -50
  380. data/tasks/docs.rake +0 -64
  381. data/tasks/gemfiles.rake +0 -8
  382. data/tasks/lint.rake +0 -110
  383. data/tasks/local.rake +0 -27
  384. data/tasks/release.rake +0 -6
  385. data/tasks/test.rake +0 -42
@@ -1,285 +0,0 @@
1
- ---
2
- redirect_from: /docs/13-authorization-adapter.html
3
- ---
4
-
5
- # Authorization Adapter
6
-
7
- Active Admin offers the ability to define and use your own authorization
8
- adapter. If implemented, the '#authorized?' will be called when an action is
9
- taken. By default, '#authorized?' returns true.
10
-
11
- ## Setting up your own AuthorizationAdapter
12
-
13
- The following example shows how to set up and tie your authorization
14
- adapter class to Active Admin:
15
-
16
- ```ruby
17
- # app/models/only_authors_authorization.rb
18
- class OnlyAuthorsAuthorization < ActiveAdmin::AuthorizationAdapter
19
-
20
- def authorized?(action, subject = nil)
21
- case subject
22
- when normalized(Post)
23
- # Only let the author update and delete posts
24
- if action == :update || action == :destroy
25
- subject.author == user
26
- else
27
- true
28
- end
29
- else
30
- true
31
- end
32
- end
33
-
34
- end
35
- ```
36
-
37
- In order to hook up `OnlyAuthorsAuthorization` to Active Admin, go to your
38
- application's `config/initializers/active_admin.rb` and add/modify the line:
39
-
40
- ```ruby
41
- config.authorization_adapter = "OnlyAuthorsAuthorization"
42
- ```
43
-
44
- 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:
49
-
50
- ```ruby
51
- ActiveAdmin.setup do |config|
52
- config.namespace :admin do |ns|
53
- ns.authorization_adapter = "AdminAuthorization"
54
- end
55
- config.namespace :my do |ns|
56
- ns.authorization_adapter = "DashboardAuthorization"
57
- end
58
- end
59
- ```
60
-
61
- ## Getting Access to the Current User
62
-
63
- From within your authorization adapter, you can call the `#user` method to
64
- retrieve the current user.
65
-
66
- ```ruby
67
- class OnlyAdmins < ActiveAdmin::AuthorizationAdapter
68
-
69
- def authorized?(action, subject = nil)
70
- user.admin?
71
- end
72
-
73
- end
74
- ```
75
-
76
- ## Scoping Collections in Authorization Adapters
77
-
78
- `ActiveAdmin::AuthorizationAdapter` also provides a hook method
79
- (`#scope_collection`) for the adapter to scope the resource's collection. For
80
- example, you may want to centralize the scoping:
81
-
82
- ```ruby
83
- class OnlyMyAccount < ActiveAdmin::AuthorizationAdapter
84
-
85
- def authorized?(action, subject = nil)
86
- subject.account == user.account
87
- end
88
-
89
- def scope_collection(collection, action = Auth::READ)
90
- collection.where(account_id: user.account_id)
91
- end
92
-
93
- end
94
- ```
95
-
96
- All collections presented on Index Screens will be passed through this method
97
- and will be scoped accordingly.
98
-
99
- ## Managing Access to Pages
100
-
101
- Pages, just like resources, get authorized too. When authorizing a page, the
102
- subject will be an instance of `ActiveAdmin::Page`.
103
-
104
- ```ruby
105
- class OnlyDashboard < ActiveAdmin::AuthorizationAdapter
106
- def authorized?(action, subject = nil)
107
- case subject
108
- when ActiveAdmin::Page
109
- action == :read &&
110
- subject.name == "Dashboard" &&
111
- subject.namespace.name == :admin
112
- else
113
- false
114
- end
115
- end
116
- end
117
- ```
118
-
119
- ## Action Types
120
-
121
- By default Active Admin simplifies the controller actions into 4 actions:
122
-
123
- * `:read` - This controls if the user can view the menu item as well as the
124
- index and show screens.
125
- * `:create` - This controls if the user can view the new screen and submit
126
- the form to the create action.
127
- * `:update` - This controls if the user can view the edit screen and submit
128
- the form to the update action.
129
- * `:destroy` - This controls if the user can delete a resource.
130
-
131
- Each of these actions is available as a constant. Eg: `:read` is available as
132
- `ActiveAdmin::Authorization::READ`.
133
-
134
- ## Checking for Authorization in Controllers and Views
135
-
136
- Active Admin provides a helper method to check if the current user is
137
- authorized to perform an action on a subject.
138
-
139
- Use the `#authorized?(action, subject)` method to check.
140
-
141
- ```ruby
142
- ActiveAdmin.register Post do
143
-
144
- index do
145
- column :title
146
- column '' do |post|
147
- link_to 'Edit', admin_post_path(post) if authorized? :update, post
148
- end
149
- end
150
-
151
- end
152
- ```
153
-
154
- If you are implementing a custom controller action, you can use the
155
- `#authorize!` method to raise an `ActiveAdmin::AccessDenied` exception.
156
-
157
- ```ruby
158
- ActiveAdmin.register Post do
159
-
160
- member_action :publish, method: :post do
161
- post = Post.find(params[:id])
162
-
163
- authorize! :publish, post
164
- post.publish!
165
-
166
- flash[:notice] = "Post has been published"
167
- redirect_to [:admin, post]
168
- end
169
-
170
- action_item :publish, only: :show do
171
- if !post.published? && authorized?(:publish, post)
172
- link_to "Publish", publish_admin_post_path(post), method: :post
173
- end
174
- end
175
-
176
- end
177
- ```
178
-
179
- ## Using the CanCan Adapter
180
-
181
- Sub-classing `ActiveAdmin::AuthorizationAdapter` is fairly low level. Many times
182
- it's nicer to have a simpler DSL for managing authorization. Active Admin
183
- provides an adapter out of the box for [CanCan](https://github.com/ryanb/cancan)
184
- and [CanCanCan](https://github.com/CanCanCommunity/cancancan).
185
-
186
- To use the CanCan adapter, update the configuration in the Active Admin
187
- initializer:
188
-
189
- ```ruby
190
- config.authorization_adapter = ActiveAdmin::CanCanAdapter
191
- ```
192
-
193
- You can also specify a method to be called on unauthorized access. This is
194
- necessary in order to prevent a redirect loop that can happen if a user tries to
195
- access a page they don't have permissions for (see
196
- [#2081](https://github.com/activeadmin/activeadmin/issues/2081)).
197
-
198
- ```ruby
199
- config.on_unauthorized_access = :access_denied
200
- ```
201
-
202
- The method `access_denied` would be defined in `application_controller.rb`. Here
203
- is one example that redirects the user from the page they don't have permission
204
- to access to a resource they have permission to access (organizations in this
205
- case), and also displays the error message in the browser:
206
-
207
- ```ruby
208
- class ApplicationController < ActionController::Base
209
- protect_from_forgery
210
-
211
- def access_denied(exception)
212
- redirect_to admin_organizations_path, alert: exception.message
213
- end
214
- end
215
- ```
216
-
217
- By default this will use the ability class named "Ability". This can also be
218
- changed from the initializer:
219
-
220
- ```ruby
221
- config.cancan_ability_class = "MyCustomAbility"
222
- ```
223
-
224
- Now you can simply use CanCan or CanCanCan the way that you would expect and
225
- Active Admin will use it for authorization:
226
-
227
- ```ruby
228
- # app/models/ability.rb
229
- class Ability
230
- include CanCan::Ability
231
-
232
- def initialize(user)
233
- can :manage, Post
234
- can :read, User
235
- can :manage, User, id: user.id
236
- can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: "admin"
237
- end
238
-
239
- end
240
- ```
241
-
242
- To view more details about the API's, visit project pages of
243
- [CanCan](https://github.com/ryanb/cancan) and
244
- [CanCanCan](https://github.com/CanCanCommunity/cancancan).
245
-
246
- ## Using the Pundit Adapter
247
-
248
- Active Admin also provides an adapter out of the box for
249
- [Pundit](https://github.com/elabs/pundit).
250
-
251
- To use the Pundit adapter, update the configuration in the Active Admin
252
- initializer:
253
-
254
- ```ruby
255
- config.authorization_adapter = ActiveAdmin::PunditAdapter
256
- ```
257
-
258
- Once that's done, Active Admin will pick up your Pundit policies, and use
259
- them for authorization. For more information about setting up Pundit, see
260
- [their documention](https://github.com/elabs/pundit#installation).
261
-
262
- Pundit also has [verify_authorized and/or verify_policy_scoped
263
- methods](https://github.com/varvet/pundit#ensuring-policies-and-scopes-are-used)
264
- to enforce usage of `authorized` and `policy_scope`. This conflicts with Active
265
- Admin's authorization architecture, so if you're using those features, you'll
266
- want to disable them for Active Admin's controllers:
267
-
268
- ```ruby
269
- class ApplicationController < ActionController::Base
270
- include Pundit
271
- after_action :verify_authorized, except: :index, unless: :active_admin_controller?
272
- after_action :verify_policy_scoped, only: :index, unless: :active_admin_controller?
273
-
274
- def active_admin_controller?
275
- is_a?(ActiveAdmin::BaseController)
276
- end
277
- end
278
- ```
279
-
280
- If you want to use batch actions, ensure that `destroy_all?` method is defined
281
- in your policy class. You can use this [template
282
- policy](https://github.com/activeadmin/activeadmin/blob/master/spec/support/templates/policies/application_policy.rb)
283
- in your application instead of default one generated by Pundit's
284
- `rails g pundit:install` command.
285
-
data/docs/14-gotchas.md DELETED
@@ -1,138 +0,0 @@
1
- ---
2
- redirect_from: /docs/14-gotchas.html
3
- ---
4
-
5
- # Gotchas
6
-
7
- ## Security
8
-
9
- ### Spreadsheet applications vulnerable to unescaped CSV data
10
-
11
- If your CSV export includes untrusted data provided by your users, it's possible
12
- that they could include an executable formula that could call arbitrary commands
13
- on your computer. See
14
- [#4256](https://github.com/activeadmin/activeadmin/issues/4256) for more
15
- details.
16
-
17
- ## Session Commits & Asset Pipeline
18
-
19
- When configuring the asset pipeline ensure that the asset prefix
20
- (`config.assets.prefix`) is not the same as the namespace of ActiveAdmin
21
- (default namespace is `/admin`). If they are the same Sprockets will prevent the
22
- session from being committed. Flash messages won't work and you will be unable to
23
- use the session for storing anything.
24
-
25
- For more information see [the following
26
- post](http://www.intridea.com/blog/2013/3/20/rails-assets-prefix-may-disable-your-session).
27
-
28
- ## Helpers
29
-
30
- There are two known gotchas with helpers. This hopefully will help you to
31
- find a solution.
32
-
33
- ### Helpers are not reloading in development
34
-
35
- This is a known and still open
36
- [issue](https://github.com/activeadmin/activeadmin/issues/697) the only way is
37
- to restart your server each time you change a helper.
38
-
39
- ### Helper maybe not included by default
40
-
41
- If you use `config.action_controller.include_all_helpers = false` in your
42
- application config, you need to include it by hand.
43
-
44
- #### Solutions
45
-
46
- ##### First use a monkey patch
47
-
48
- This works for all ActiveAdmin resources at once.
49
-
50
- ```ruby
51
- # config/initializers/active_admin_helpers.rb
52
- ActiveAdmin::BaseController.class_eval do
53
- helper ApplicationHelper
54
- end
55
- ```
56
-
57
- ##### Second use the `controller` method
58
-
59
- This works only for one resource at a time.
60
-
61
- ```ruby
62
- ActiveAdmin.register User do
63
- controller do
64
- helper UserHelper
65
- end
66
- end
67
- ```
68
-
69
- ## CSS
70
-
71
- In order to avoid the override of your application style with the Active Admin
72
- one, you can do one of these things:
73
-
74
- * You can properly move the generated file `active_admin.scss` from
75
- `app/assets/stylesheets` to `vendor/assets/stylesheets`.
76
- * You can remove all `require_tree` commands from your root level css files,
77
- where the `active_admin.scss` is in the tree.
78
-
79
- ## Conflicts
80
-
81
- ### With gems that provides a `search` class method on a model
82
-
83
- If a gem defines a `search` class method on a model, this can result in conflicts
84
- with the same method provided by `ransack` (a dependency of ActiveAdmin).
85
-
86
- Each of this conflicts need to solved is a different way. Some solutions are
87
- listed below.
88
-
89
- #### `tire`, `retire` and `elasticsearch-rails`
90
-
91
- This conflict can be solved, by using explicitly the `search` method of `tire`,
92
- `retire` or `elasticsearch-rails`:
93
-
94
- ##### For `tire` and `retire`
95
-
96
- ```ruby
97
- YourModel.tire.search
98
- ```
99
-
100
- ##### For `elasticsearch-rails`
101
-
102
- ```ruby
103
- YourModel.__elasticsearch__.search
104
- ```
105
-
106
- ### Sunspot Solr
107
-
108
- ```ruby
109
- YourModel.solr_search
110
- ```
111
-
112
- ### Rails 5 scaffold generators
113
-
114
- Active Admin requires the `inherited_resources` gem which may break scaffolding
115
- under Rails 5 as it replaces the default scaffold generator. The solution is to
116
- configure the default controller in `config/application.rb` as outlined in
117
- [activeadmin/inherited_resources#195](https://github.com/activeadmin/inherited_resources/issues/195)
118
-
119
- ```ruby
120
- module SampleApp
121
- class Application < Rails::Application
122
- ...
123
- config.app_generators.scaffold_controller = :scaffold_controller
124
- ...
125
- end
126
- end
127
- ```
128
-
129
- ## Authentication & Application Controller
130
-
131
- The `ActiveAdmin::BaseController` inherits from the `ApplicationController`. Any
132
- authentication method(s) specified in the `ApplicationController` callbacks will
133
- be called instead of the authentication method in the active admin config file.
134
- For example, if the ApplicationController has a callback `before_action
135
- :custom_authentication_method` and the config file's authentication method is
136
- `config.authentication_method = :authenticate_active_admin_user`, then
137
- `custom_authentication_method` will be called instead of
138
- `authenticate_active_admin_user`.