activeadmin 1.3.0 → 2.13.1

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

Potentially problematic release.


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

Files changed (582) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +764 -135
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +83 -61
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +3 -25
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +25 -123
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  14. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  15. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  16. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  17. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  18. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  19. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  20. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  21. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  23. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  25. data/app/javascript/active_admin/base.js +28 -0
  26. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  27. data/app/javascript/active_admin/ext/jquery.js +9 -0
  28. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  29. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  30. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  31. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  32. data/app/javascript/active_admin/initializers/filters.js +10 -0
  33. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  34. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  35. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  36. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  37. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  38. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  39. data/app/javascript/active_admin/lib/filters.js +39 -0
  40. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  41. data/app/javascript/active_admin/lib/per-page.js +38 -0
  42. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  43. data/app/javascript/active_admin/lib/utils.js +40 -0
  44. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  45. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  46. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  47. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  48. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  49. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  50. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  51. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  52. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  53. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  54. data/app/views/active_admin/page/index.html.arb +1 -0
  55. data/app/views/active_admin/resource/edit.html.arb +1 -0
  56. data/app/views/active_admin/resource/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/new.html.arb +1 -0
  58. data/app/views/active_admin/resource/show.html.arb +1 -0
  59. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  60. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  61. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  63. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  64. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  65. data/app/views/layouts/active_admin.html.arb +1 -0
  66. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  67. data/config/locales/ar.yml +9 -8
  68. data/config/locales/az.yml +138 -0
  69. data/config/locales/bg.yml +1 -1
  70. data/config/locales/bs.yml +1 -0
  71. data/config/locales/ca.yml +1 -1
  72. data/config/locales/cs.yml +1 -0
  73. data/config/locales/da.yml +1 -0
  74. data/config/locales/de-CH.yml +1 -0
  75. data/config/locales/de.yml +29 -0
  76. data/config/locales/el.yml +1 -0
  77. data/config/locales/en-CA.yml +4 -3
  78. data/config/locales/en-GB.yml +4 -3
  79. data/config/locales/en.yml +23 -4
  80. data/config/locales/eo.yml +1 -0
  81. data/config/locales/es-MX.yml +3 -1
  82. data/config/locales/es.yml +26 -6
  83. data/config/locales/fa.yml +1 -0
  84. data/config/locales/fi.yml +2 -1
  85. data/config/locales/fr.yml +6 -5
  86. data/config/locales/he.yml +1 -1
  87. data/config/locales/hr.yml +1 -0
  88. data/config/locales/hu.yml +5 -0
  89. data/config/locales/id.yml +1 -0
  90. data/config/locales/it.yml +23 -0
  91. data/config/locales/ja.yml +4 -3
  92. data/config/locales/ko.yml +2 -1
  93. data/config/locales/lt.yml +3 -2
  94. data/config/locales/lv.yml +3 -2
  95. data/config/locales/mk.yml +134 -0
  96. data/config/locales/nb.yml +16 -5
  97. data/config/locales/nl.yml +13 -1
  98. data/config/locales/pl.yml +72 -3
  99. data/config/locales/pt-BR.yml +1 -0
  100. data/config/locales/pt-PT.yml +1 -0
  101. data/config/locales/ro.yml +4 -2
  102. data/config/locales/ru.yml +3 -0
  103. data/config/locales/sk.yml +60 -0
  104. data/config/locales/sv-SE.yml +1 -0
  105. data/config/locales/tr.yml +10 -0
  106. data/config/locales/uk.yml +3 -0
  107. data/config/locales/vi.yml +7 -5
  108. data/config/locales/zh-CN.yml +34 -5
  109. data/config/locales/zh-TW.yml +1 -0
  110. data/docs/.gitignore +1 -0
  111. data/docs/0-installation.md +29 -5
  112. data/docs/1-general-configuration.md +36 -1
  113. data/docs/10-custom-pages.md +14 -0
  114. data/docs/11-decorators.md +16 -5
  115. data/docs/12-arbre-components.md +41 -1
  116. data/docs/13-authorization-adapter.md +41 -22
  117. data/docs/2-resource-customization.md +19 -5
  118. data/docs/3-index-pages/custom-index.md +1 -1
  119. data/docs/3-index-pages/index-as-blog.md +1 -1
  120. data/docs/3-index-pages/index-as-table.md +12 -5
  121. data/docs/3-index-pages.md +18 -1
  122. data/docs/5-forms.md +25 -5
  123. data/docs/6-show-pages.md +12 -0
  124. data/docs/8-custom-actions.md +12 -1
  125. data/docs/9-batch-actions.md +2 -2
  126. data/docs/CNAME +1 -1
  127. data/docs/Gemfile +4 -2
  128. data/docs/Gemfile.lock +283 -0
  129. data/docs/_config.yml +3 -1
  130. data/docs/_includes/toc.html +1 -1
  131. data/docs/_includes/top-menu.html +9 -1
  132. data/docs/documentation.md +2 -2
  133. data/docs/images/tidelift.svg +14 -0
  134. data/docs/index.html +110 -9
  135. data/docs/stylesheets/main.css +55 -2
  136. data/lib/active_admin/abstract_view_factory.rb +14 -51
  137. data/lib/active_admin/application.rb +65 -172
  138. data/lib/active_admin/application_settings.rb +43 -0
  139. data/lib/active_admin/asset_registration.rb +1 -8
  140. data/lib/active_admin/authorization_adapter.rb +4 -3
  141. data/lib/active_admin/base_controller/authorization.rb +18 -18
  142. data/lib/active_admin/base_controller/menu.rb +1 -0
  143. data/lib/active_admin/base_controller.rb +12 -11
  144. data/lib/active_admin/batch_actions/controller.rb +6 -5
  145. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  146. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  147. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  148. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  149. data/lib/active_admin/batch_actions.rb +1 -0
  150. data/lib/active_admin/callbacks.rb +2 -1
  151. data/lib/active_admin/cancan_adapter.rb +2 -1
  152. data/lib/active_admin/collection_decorator.rb +32 -0
  153. data/lib/active_admin/component.rb +1 -0
  154. data/lib/active_admin/controller_action.rb +3 -1
  155. data/lib/active_admin/csv_builder.rb +15 -23
  156. data/lib/active_admin/dependency.rb +14 -77
  157. data/lib/active_admin/deprecation.rb +1 -25
  158. data/lib/active_admin/devise.rb +16 -5
  159. data/lib/active_admin/dsl.rb +3 -9
  160. data/lib/active_admin/dynamic_setting.rb +39 -0
  161. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  162. data/lib/active_admin/engine.rb +16 -7
  163. data/lib/active_admin/error.rb +5 -4
  164. data/lib/active_admin/filters/active.rb +2 -1
  165. data/lib/active_admin/filters/active_filter.rb +12 -11
  166. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  167. data/lib/active_admin/filters/dsl.rb +1 -0
  168. data/lib/active_admin/filters/forms.rb +13 -9
  169. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  170. data/lib/active_admin/filters/resource_extension.rb +30 -5
  171. data/lib/active_admin/filters.rb +8 -7
  172. data/lib/active_admin/form_builder.rb +110 -70
  173. data/lib/active_admin/generators/boilerplate.rb +13 -4
  174. data/lib/active_admin/helpers/collection.rb +2 -0
  175. data/lib/active_admin/helpers/i18n.rb +1 -0
  176. data/lib/active_admin/helpers/optional_display.rb +3 -2
  177. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  178. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  179. data/lib/active_admin/inputs/datepicker_input.rb +10 -2
  180. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  181. data/lib/active_admin/inputs/filters/base.rb +2 -1
  182. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  183. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  184. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  185. data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
  186. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  187. data/lib/active_admin/inputs/filters/select_input.rb +3 -2
  188. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  189. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  190. data/lib/active_admin/inputs.rb +1 -0
  191. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  192. data/lib/active_admin/localizers.rb +2 -1
  193. data/lib/active_admin/menu.rb +9 -11
  194. data/lib/active_admin/menu_collection.rb +1 -0
  195. data/lib/active_admin/menu_item.rb +11 -38
  196. data/lib/active_admin/namespace.rb +33 -20
  197. data/lib/active_admin/namespace_settings.rb +127 -0
  198. data/lib/active_admin/order_clause.rb +3 -2
  199. data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
  200. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  201. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  202. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  203. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +30 -24
  204. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  205. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  206. data/lib/active_admin/orm/active_record.rb +2 -1
  207. data/lib/active_admin/orm/mongoid.rb +1 -0
  208. data/lib/active_admin/page.rb +2 -1
  209. data/lib/active_admin/page_controller.rb +1 -0
  210. data/lib/active_admin/page_dsl.rb +2 -1
  211. data/lib/active_admin/page_presenter.rb +3 -1
  212. data/lib/active_admin/pundit_adapter.rb +73 -16
  213. data/lib/active_admin/resource/action_items.rb +12 -6
  214. data/lib/active_admin/resource/attributes.rb +9 -5
  215. data/lib/active_admin/resource/belongs_to.rb +9 -3
  216. data/lib/active_admin/resource/controllers.rb +2 -1
  217. data/lib/active_admin/resource/includes.rb +1 -0
  218. data/lib/active_admin/resource/menu.rb +6 -5
  219. data/lib/active_admin/resource/model.rb +16 -0
  220. data/lib/active_admin/resource/naming.rb +6 -5
  221. data/lib/active_admin/resource/ordering.rb +1 -0
  222. data/lib/active_admin/resource/page_presenters.rb +1 -0
  223. data/lib/active_admin/resource/pagination.rb +1 -0
  224. data/lib/active_admin/resource/routes.rb +26 -14
  225. data/lib/active_admin/resource/scope_to.rb +8 -7
  226. data/lib/active_admin/resource/scopes.rb +4 -3
  227. data/lib/active_admin/resource/sidebars.rb +3 -2
  228. data/lib/active_admin/resource.rb +37 -22
  229. data/lib/active_admin/resource_collection.rb +3 -2
  230. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  231. data/lib/active_admin/resource_controller/data_access.rb +31 -5
  232. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  233. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  234. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  235. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  236. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  237. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  238. data/lib/active_admin/resource_controller.rb +14 -10
  239. data/lib/active_admin/resource_dsl.rb +16 -28
  240. data/lib/active_admin/router.rb +91 -84
  241. data/lib/active_admin/scope.rb +20 -11
  242. data/lib/active_admin/settings_node.rb +20 -0
  243. data/lib/active_admin/sidebar_section.rb +4 -1
  244. data/lib/active_admin/version.rb +2 -1
  245. data/lib/active_admin/view_factory.rb +18 -17
  246. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  247. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  248. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  249. data/lib/active_admin/view_helpers/display_helper.rb +25 -8
  250. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  251. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  252. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  253. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  254. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  255. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  256. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  257. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  258. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  259. data/lib/active_admin/view_helpers.rb +2 -1
  260. data/lib/active_admin/views/action_items.rb +1 -0
  261. data/lib/active_admin/views/components/active_admin_form.rb +14 -8
  262. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  263. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  264. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  265. data/lib/active_admin/views/components/columns.rb +1 -0
  266. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  267. data/lib/active_admin/views/components/index_list.rb +4 -3
  268. data/lib/active_admin/views/components/menu.rb +33 -0
  269. data/lib/active_admin/views/components/menu_item.rb +59 -0
  270. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  271. data/lib/active_admin/views/components/panel.rb +2 -1
  272. data/lib/active_admin/views/components/scopes.rb +18 -8
  273. data/lib/active_admin/views/components/sidebar.rb +14 -0
  274. data/lib/active_admin/views/components/sidebar_section.rb +1 -3
  275. data/lib/active_admin/views/components/site_title.rb +7 -7
  276. data/lib/active_admin/views/components/status_tag.rb +14 -26
  277. data/lib/active_admin/views/components/table_for.rb +22 -29
  278. data/lib/active_admin/views/components/tabs.rb +18 -5
  279. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  280. data/lib/active_admin/views/footer.rb +6 -8
  281. data/lib/active_admin/views/header.rb +4 -15
  282. data/lib/active_admin/views/index_as_block.rb +1 -0
  283. data/lib/active_admin/views/index_as_blog.rb +3 -2
  284. data/lib/active_admin/views/index_as_grid.rb +27 -26
  285. data/lib/active_admin/views/index_as_table.rb +34 -25
  286. data/lib/active_admin/views/pages/base.rb +44 -60
  287. data/lib/active_admin/views/pages/form.rb +1 -0
  288. data/lib/active_admin/views/pages/index.rb +16 -13
  289. data/lib/active_admin/views/pages/layout.rb +1 -0
  290. data/lib/active_admin/views/pages/page.rb +1 -0
  291. data/lib/active_admin/views/pages/show.rb +1 -0
  292. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  293. data/lib/active_admin/views/title_bar.rb +2 -1
  294. data/lib/active_admin/views.rb +2 -1
  295. data/lib/active_admin.rb +68 -63
  296. data/lib/activeadmin.rb +2 -1
  297. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  298. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  299. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  300. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  301. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  302. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  303. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  304. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  305. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  306. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  307. data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
  308. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  309. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  310. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  311. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  312. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  313. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  314. data/lib/ransack_ext.rb +10 -9
  315. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  316. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  317. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  318. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  319. metadata +126 -558
  320. data/.github/ISSUE_TEMPLATE.md +0 -20
  321. data/.gitignore +0 -49
  322. data/.mdlrc +0 -1
  323. data/.rubocop.yml +0 -76
  324. data/.simplecov +0 -13
  325. data/.travis.yml +0 -51
  326. data/.yardopts +0 -7
  327. data/Gemfile +0 -58
  328. data/Rakefile +0 -54
  329. data/activeadmin.gemspec +0 -32
  330. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  331. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  332. data/app/assets/images/active_admin/orderable.png +0 -0
  333. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  334. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  335. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  336. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  337. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  338. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  339. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  340. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  341. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  342. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  343. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  344. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  345. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  346. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  347. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  348. data/codecov.yml +0 -25
  349. data/config/i18n-tasks.yml +0 -26
  350. data/config/mdl_style.rb +0 -9
  351. data/cucumber.yml +0 -3
  352. data/features/action_item.feature +0 -73
  353. data/features/authorization.feature +0 -64
  354. data/features/authorization_cancan.feature +0 -52
  355. data/features/authorization_pundit.feature +0 -37
  356. data/features/belongs_to.feature +0 -124
  357. data/features/breadcrumb.feature +0 -75
  358. data/features/comments/commenting.feature +0 -178
  359. data/features/comments/viewing_index.feature +0 -19
  360. data/features/create_another.feature +0 -55
  361. data/features/dashboard.feature +0 -16
  362. data/features/decorators.feature +0 -43
  363. data/features/development_reloading.feature +0 -28
  364. data/features/edit_page.feature +0 -116
  365. data/features/favicon.feature +0 -20
  366. data/features/first_boot.feature +0 -16
  367. data/features/footer.feature +0 -28
  368. data/features/global_navigation.feature +0 -29
  369. data/features/i18n.feature +0 -55
  370. data/features/index/batch_actions.feature +0 -218
  371. data/features/index/filters.feature +0 -250
  372. data/features/index/format_as_csv.feature +0 -220
  373. data/features/index/formats.feature +0 -88
  374. data/features/index/index_as_block.feature +0 -15
  375. data/features/index/index_as_blog.feature +0 -69
  376. data/features/index/index_as_grid.feature +0 -45
  377. data/features/index/index_as_table.feature +0 -291
  378. data/features/index/index_blank_slate.feature +0 -83
  379. data/features/index/index_parameters.feature +0 -75
  380. data/features/index/index_scope_to.feature +0 -56
  381. data/features/index/index_scopes.feature +0 -285
  382. data/features/index/page_title.feature +0 -41
  383. data/features/index/pagination.feature +0 -63
  384. data/features/index/switch_index_view.feature +0 -73
  385. data/features/menu.feature +0 -72
  386. data/features/meta_tags.feature +0 -21
  387. data/features/new_page.feature +0 -136
  388. data/features/registering_assets.feature +0 -38
  389. data/features/registering_pages.feature +0 -237
  390. data/features/registering_resources.feature +0 -33
  391. data/features/renamed_resource.feature +0 -30
  392. data/features/root_to.feature +0 -17
  393. data/features/show/attributes_table_title.feature +0 -54
  394. data/features/show/columns.feature +0 -40
  395. data/features/show/default_content.feature +0 -44
  396. data/features/show/page_title.feature +0 -58
  397. data/features/show/tabs.feature +0 -33
  398. data/features/sidebar_sections.feature +0 -210
  399. data/features/site_title.feature +0 -47
  400. data/features/specifying_actions.feature +0 -118
  401. data/features/step_definitions/action_item_steps.rb +0 -7
  402. data/features/step_definitions/action_link_steps.rb +0 -19
  403. data/features/step_definitions/additional_web_steps.rb +0 -81
  404. data/features/step_definitions/asset_steps.rb +0 -15
  405. data/features/step_definitions/attribute_steps.rb +0 -18
  406. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  407. data/features/step_definitions/batch_action_steps.rb +0 -81
  408. data/features/step_definitions/blog_steps.rb +0 -3
  409. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  410. data/features/step_definitions/column_steps.rb +0 -8
  411. data/features/step_definitions/comment_steps.rb +0 -32
  412. data/features/step_definitions/configuration_steps.rb +0 -100
  413. data/features/step_definitions/dashboard_steps.rb +0 -15
  414. data/features/step_definitions/factory_steps.rb +0 -35
  415. data/features/step_definitions/filter_steps.rb +0 -47
  416. data/features/step_definitions/flash_steps.rb +0 -11
  417. data/features/step_definitions/footer_steps.rb +0 -11
  418. data/features/step_definitions/format_steps.rb +0 -56
  419. data/features/step_definitions/i18n_steps.rb +0 -11
  420. data/features/step_definitions/index_scope_steps.rb +0 -29
  421. data/features/step_definitions/index_views_steps.rb +0 -3
  422. data/features/step_definitions/layout_steps.rb +0 -3
  423. data/features/step_definitions/member_link_steps.rb +0 -7
  424. data/features/step_definitions/menu_steps.rb +0 -11
  425. data/features/step_definitions/meta_tag_steps.rb +0 -3
  426. data/features/step_definitions/pagination_steps.rb +0 -15
  427. data/features/step_definitions/sidebar_steps.rb +0 -11
  428. data/features/step_definitions/site_title_steps.rb +0 -17
  429. data/features/step_definitions/tab_steps.rb +0 -8
  430. data/features/step_definitions/table_steps.rb +0 -116
  431. data/features/step_definitions/user_steps.rb +0 -52
  432. data/features/step_definitions/web_steps.rb +0 -86
  433. data/features/sti_resource.feature +0 -65
  434. data/features/strong_parameters.feature +0 -69
  435. data/features/support/env.rb +0 -122
  436. data/features/support/paths.rb +0 -73
  437. data/features/support/regular_env.rb +0 -7
  438. data/features/support/reload_env.rb +0 -7
  439. data/features/support/selectors.rb +0 -45
  440. data/features/users/logging_in.feature +0 -36
  441. data/features/users/logging_out.feature +0 -13
  442. data/features/users/resetting_password.feature +0 -34
  443. data/gemfiles/rails_42.gemfile +0 -10
  444. data/gemfiles/rails_50.gemfile +0 -10
  445. data/gemfiles/rails_51.gemfile +0 -10
  446. data/gemfiles/rails_52.gemfile +0 -11
  447. data/lib/active_admin/event.rb +0 -24
  448. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  449. data/lib/active_admin/helpers/settings.rb +0 -114
  450. data/lib/active_admin/reloader.rb +0 -25
  451. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  452. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  453. data/spec/bug_report_templates_spec.rb +0 -26
  454. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  455. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  456. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  457. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  458. data/spec/javascripts/fixtures/flashes.html +0 -2
  459. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  460. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  461. data/spec/javascripts/support/jasmine.yml +0 -74
  462. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  463. data/spec/rails_helper.rb +0 -59
  464. data/spec/requests/default_namespace_spec.rb +0 -81
  465. data/spec/requests/memory_spec.rb +0 -25
  466. data/spec/requests/stylesheets_spec.rb +0 -18
  467. data/spec/spec_helper.rb +0 -1
  468. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  469. data/spec/support/active_admin_request_helpers.rb +0 -39
  470. data/spec/support/rails_template.rb +0 -153
  471. data/spec/support/rails_template_with_data.rb +0 -327
  472. data/spec/support/templates/admin/stores.rb +0 -7
  473. data/spec/support/templates/en.yml +0 -8
  474. data/spec/support/templates/manifest.js +0 -3
  475. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  476. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  477. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  478. data/spec/support/templates/policies/application_policy.rb +0 -44
  479. data/spec/support/templates/policies/category_policy.rb +0 -7
  480. data/spec/support/templates/policies/post_policy.rb +0 -15
  481. data/spec/support/templates/policies/store_policy.rb +0 -11
  482. data/spec/support/templates/policies/user_policy.rb +0 -11
  483. data/spec/support/templates/post_decorator.rb +0 -24
  484. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  485. data/spec/unit/action_builder_spec.rb +0 -158
  486. data/spec/unit/active_admin_spec.rb +0 -11
  487. data/spec/unit/application_spec.rb +0 -184
  488. data/spec/unit/asset_registration_spec.rb +0 -81
  489. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  490. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  491. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  492. data/spec/unit/auto_link_spec.rb +0 -93
  493. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  494. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  495. data/spec/unit/belongs_to_spec.rb +0 -76
  496. data/spec/unit/cancan_adapter_spec.rb +0 -43
  497. data/spec/unit/comments_spec.rb +0 -176
  498. data/spec/unit/component_spec.rb +0 -18
  499. data/spec/unit/config_shared_examples.rb +0 -59
  500. data/spec/unit/controller_filters_spec.rb +0 -41
  501. data/spec/unit/csv_builder_spec.rb +0 -313
  502. data/spec/unit/dependency_spec.rb +0 -135
  503. data/spec/unit/devise_spec.rb +0 -110
  504. data/spec/unit/dsl_spec.rb +0 -120
  505. data/spec/unit/filters/active_filter_spec.rb +0 -189
  506. data/spec/unit/filters/active_spec.rb +0 -24
  507. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  508. data/spec/unit/filters/resource_spec.rb +0 -128
  509. data/spec/unit/form_builder_spec.rb +0 -990
  510. data/spec/unit/generators/install_spec.rb +0 -31
  511. data/spec/unit/helpers/collection_spec.rb +0 -68
  512. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  513. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  514. data/spec/unit/helpers/settings_spec.rb +0 -30
  515. data/spec/unit/i18n_spec.rb +0 -29
  516. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  517. data/spec/unit/menu_collection_spec.rb +0 -62
  518. data/spec/unit/menu_item_spec.rb +0 -141
  519. data/spec/unit/menu_spec.rb +0 -71
  520. data/spec/unit/namespace/authorization_spec.rb +0 -27
  521. data/spec/unit/namespace/register_page_spec.rb +0 -99
  522. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  523. data/spec/unit/namespace_spec.rb +0 -124
  524. data/spec/unit/order_clause_spec.rb +0 -81
  525. data/spec/unit/page_controller_spec.rb +0 -5
  526. data/spec/unit/page_spec.rb +0 -128
  527. data/spec/unit/pretty_format_spec.rb +0 -82
  528. data/spec/unit/pundit_adapter_spec.rb +0 -98
  529. data/spec/unit/resource/action_items_spec.rb +0 -69
  530. data/spec/unit/resource/attributes_spec.rb +0 -49
  531. data/spec/unit/resource/includes_spec.rb +0 -21
  532. data/spec/unit/resource/menu_spec.rb +0 -18
  533. data/spec/unit/resource/naming_spec.rb +0 -122
  534. data/spec/unit/resource/ordering_spec.rb +0 -35
  535. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  536. data/spec/unit/resource/pagination_spec.rb +0 -38
  537. data/spec/unit/resource/routes_spec.rb +0 -125
  538. data/spec/unit/resource/scopes_spec.rb +0 -50
  539. data/spec/unit/resource/sidebars_spec.rb +0 -43
  540. data/spec/unit/resource_collection_spec.rb +0 -175
  541. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  542. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  543. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  544. data/spec/unit/resource_controller_spec.rb +0 -273
  545. data/spec/unit/resource_registration_spec.rb +0 -61
  546. data/spec/unit/resource_spec.rb +0 -320
  547. data/spec/unit/routing_spec.rb +0 -211
  548. data/spec/unit/scope_spec.rb +0 -209
  549. data/spec/unit/settings_spec.rb +0 -117
  550. data/spec/unit/view_factory_spec.rb +0 -19
  551. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  552. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  553. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  554. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  555. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  556. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  557. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  558. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  559. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  560. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  561. data/spec/unit/views/components/columns_spec.rb +0 -187
  562. data/spec/unit/views/components/index_list_spec.rb +0 -49
  563. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  564. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  565. data/spec/unit/views/components/panel_spec.rb +0 -58
  566. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  567. data/spec/unit/views/components/site_title_spec.rb +0 -76
  568. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  569. data/spec/unit/views/components/table_for_spec.rb +0 -436
  570. data/spec/unit/views/components/tabs_spec.rb +0 -67
  571. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  572. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  573. data/spec/unit/views/pages/form_spec.rb +0 -54
  574. data/spec/unit/views/pages/index_spec.rb +0 -60
  575. data/spec/unit/views/pages/layout_spec.rb +0 -59
  576. data/spec/unit/views/pages/show_spec.rb +0 -32
  577. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  578. data/tasks/docs.rake +0 -64
  579. data/tasks/lint.rake +0 -21
  580. data/tasks/local.rake +0 -25
  581. data/tasks/parallel_tests.rake +0 -66
  582. data/tasks/test.rake +0 -29
@@ -1,43 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Resource::Sidebars do
4
-
5
- let(:resource) do
6
- namespace = ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
7
- namespace.register(Post)
8
- end
9
-
10
- let(:sidebar) { ActiveAdmin::SidebarSection.new(:help) }
11
-
12
- describe "adding a new sidebar section" do
13
-
14
- before do
15
- resource.clear_sidebar_sections!
16
- resource.sidebar_sections << sidebar
17
- end
18
-
19
- it "should add a sidebar section" do
20
- expect(resource.sidebar_sections.size).to eq(1)
21
- end
22
-
23
- end
24
-
25
- describe "retrieving sections for a controller action" do
26
-
27
- let(:only_index){ ActiveAdmin::SidebarSection.new(:help, only: :index) }
28
- let(:only_show){ ActiveAdmin::SidebarSection.new(:help, only: :show) }
29
-
30
- before do
31
- resource.clear_sidebar_sections!
32
- resource.sidebar_sections << only_index
33
- resource.sidebar_sections << only_show
34
- end
35
-
36
- it "should only return the relevant action items" do
37
- expect(resource.sidebar_sections.size).to eq(2)
38
- expect(resource.sidebar_sections_for("index")).to eq [only_index]
39
- end
40
-
41
- end
42
-
43
- end
@@ -1,175 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/resource_collection'
3
-
4
- RSpec.describe ActiveAdmin::ResourceCollection do
5
- let(:application) { ActiveAdmin::Application.new }
6
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
7
- let(:collection) { ActiveAdmin::ResourceCollection.new }
8
- let(:resource) { double resource_name: "MyResource" }
9
-
10
- it { is_expected.to respond_to :[] }
11
- it { is_expected.to respond_to :add }
12
- it { is_expected.to respond_to :each }
13
- it { is_expected.to respond_to :has_key? }
14
- it { is_expected.to respond_to :keys }
15
- it { is_expected.to respond_to :values }
16
- it { is_expected.to respond_to :size }
17
- it { is_expected.to respond_to :to_a }
18
-
19
- it "should have no resources when new" do
20
- expect(collection).to be_empty
21
- end
22
-
23
- it "should be enumerable" do
24
- collection.add(resource)
25
- collection.each{ |r| expect(r).to eq resource }
26
- end
27
-
28
- it "should return the available keys" do
29
- collection.add resource
30
- expect(collection.keys).to eq [resource.resource_name]
31
- end
32
-
33
- describe "#add" do
34
- it "should return the resource" do
35
- expect(collection.add(resource)).to eq resource
36
- end
37
-
38
- it "should add a new resource" do
39
- collection.add(resource)
40
- expect(collection.values).to eq [resource]
41
- end
42
-
43
- it "should be available by name" do
44
- collection.add(resource)
45
- expect(collection[resource.resource_name]).to eq resource
46
- end
47
-
48
- it "shouldn't happen twice" do
49
- collection.add(resource); collection.add(resource)
50
- expect(collection.values).to eq [resource]
51
- end
52
-
53
- it "shouldn't allow a resource name mismatch to occur" do
54
- expect {
55
- ActiveAdmin.register Category
56
- ActiveAdmin.register Post, as: "Category"
57
- }.to raise_error ActiveAdmin::ResourceCollection::ConfigMismatch
58
- end
59
-
60
- it "shouldn't allow a Page/Resource mismatch to occur" do
61
- expect {
62
- ActiveAdmin.register User
63
- ActiveAdmin.register_page 'User'
64
- }.to raise_error ActiveAdmin::ResourceCollection::IncorrectClass
65
- end
66
-
67
- describe "should store both renamed and non-renamed resources" do
68
- let(:resource) { ActiveAdmin::Resource.new namespace, Category }
69
- let(:renamed) { ActiveAdmin::Resource.new namespace, Category, as: "Subcategory" }
70
-
71
- it "when the renamed version is added first" do
72
- collection.add renamed
73
- collection.add resource
74
- expect(collection.values).to include(resource, renamed)
75
- end
76
-
77
- it "when the renamed version is added last" do
78
- collection.add resource
79
- collection.add renamed
80
- expect(collection.values).to include(resource, renamed)
81
- end
82
- end
83
- end
84
-
85
- describe "#[]" do
86
- let(:resource) { ActiveAdmin::Resource.new namespace, resource_class }
87
- let(:inherited_resource) { ActiveAdmin::Resource.new namespace, inherited_resource_class }
88
-
89
- let(:resource_class) { User }
90
- let(:inherited_resource_class) { Publisher }
91
- let(:unregistered_class) { Category }
92
-
93
- context "with resources" do
94
- before do
95
- collection.add resource
96
- collection.add inherited_resource
97
- end
98
-
99
- it "should find resource by class" do
100
- expect(collection[resource_class]).to eq resource
101
- end
102
-
103
- it "should find resource by class string" do
104
- expect(collection[resource_class.to_s]).to eq resource
105
- end
106
-
107
- it "should find inherited resource by class" do
108
- expect(collection[inherited_resource_class]).to eq inherited_resource
109
- end
110
-
111
- it "should find inherited resource by class string" do
112
- expect(collection[inherited_resource_class.to_s]).to eq inherited_resource
113
- end
114
-
115
- it "should return nil when the resource_class does not respond to base_class and it is not in the collection" do
116
- expect(collection[double]).to eq nil
117
- end
118
-
119
- it "should return nil when a resource class is NOT in the collection" do
120
- expect(collection[unregistered_class]).to eq nil
121
- end
122
- end
123
-
124
- context "without inherited resources" do
125
- before do
126
- collection.add resource
127
- end
128
-
129
- it "should find resource by inherited class" do
130
- expect(collection[inherited_resource_class]).to eq resource
131
- end
132
- end
133
-
134
- context "with a renamed resource" do
135
- let(:renamed_resource) { ActiveAdmin::Resource.new namespace, resource_class, as: name }
136
- let(:name) { "Administrators" }
137
-
138
- before do
139
- collection.add renamed_resource
140
- end
141
-
142
- it "should find resource by class" do
143
- expect(collection[resource_class]).to eq renamed_resource
144
- end
145
-
146
- it "should find resource by class string" do
147
- expect(collection[resource_class.to_s]).to eq renamed_resource
148
- end
149
-
150
- it "should find resource by name" do
151
- expect(collection[name]).to eq renamed_resource
152
- end
153
- end
154
-
155
- context "with a resource and a renamed resource added in disorder" do
156
- let(:resource) { ActiveAdmin::Resource.new namespace, resource_class }
157
- let(:renamed_resource) do
158
- ActiveAdmin::Resource.new namespace, resource_class, as: name
159
- end
160
- let(:name) { "Administrators" }
161
-
162
- before do
163
- collection.add renamed_resource
164
- collection.add resource
165
- end
166
-
167
- it "should find a resource by class when there are two resources with that class" do
168
- expect(collection[resource_class]).to eq resource
169
- end
170
- end
171
- end
172
-
173
- skip "specs for subclasses of Page and Resource"
174
-
175
- end
@@ -1,234 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ResourceController::DataAccess do
4
- before do
5
- load_resources { config }
6
- end
7
-
8
- let(:config) do
9
- ActiveAdmin.register Post do
10
- end
11
- end
12
-
13
- let(:http_params) do
14
- {}
15
- end
16
-
17
- let(:params) do
18
- ActionController::Parameters.new(http_params)
19
- end
20
-
21
- let(:controller) do
22
- rc = Admin::PostsController.new
23
- allow(rc).to receive(:params) do
24
- params
25
- end
26
- rc
27
- end
28
-
29
- describe "searching" do
30
- let(:http_params) {{ q: {} }}
31
- it "should call the search method" do
32
- chain = double "ChainObj"
33
- expect(chain).to receive(:ransack).with(params[:q]).once.and_return(Post.ransack)
34
- controller.send :apply_filtering, chain
35
- end
36
-
37
- context "params includes empty values" do
38
- let(:http_params) do
39
- { q: {id_eq: 1, position_eq: ""} }
40
- end
41
- it "should return relation without empty filters" do
42
- expect(Post).to receive(:ransack).with(params[:q]).once.and_wrap_original do |original, *args|
43
- chain = original.call(*args)
44
- expect(chain.conditions.size).to eq(1)
45
- chain
46
- end
47
- controller.send :apply_filtering, Post
48
- end
49
- end
50
- end
51
-
52
- describe "sorting" do
53
-
54
- context "valid clause" do
55
- let(:http_params) {{ order: "id_asc" }}
56
-
57
- it "reorders chain" do
58
- chain = double "ChainObj"
59
- expect(chain).to receive(:reorder).with('"posts"."id" asc').once.and_return(Post.search)
60
- controller.send :apply_sorting, chain
61
- end
62
- end
63
-
64
- context "invalid clause" do
65
- let(:http_params) {{ order: "_asc" }}
66
-
67
- it "returns chain untouched" do
68
- chain = double "ChainObj"
69
- expect(chain).not_to receive(:reorder)
70
- expect(controller.send(:apply_sorting, chain)).to eq chain
71
- end
72
- end
73
-
74
- context "custom strategy" do
75
- before do
76
- expect(controller.send(:active_admin_config)).to receive(:ordering).twice.and_return(
77
- {
78
- published_date: proc do |order_clause|
79
- [order_clause.to_sql, 'NULLS LAST'].join(' ') if order_clause.order == 'desc'
80
- end
81
- }.with_indifferent_access
82
- )
83
- end
84
-
85
- context "when params applicable" do
86
- let(:http_params) {{ order: "published_date_desc" }}
87
- it "reorders chain" do
88
- chain = double "ChainObj"
89
- expect(chain).to receive(:reorder).with('"posts"."published_date" desc NULLS LAST').once.and_return(Post.search)
90
- controller.send :apply_sorting, chain
91
- end
92
- end
93
- context "when params not applicable" do
94
- let(:http_params) {{ order: "published_date_asc" }}
95
- it "reorders chain" do
96
- chain = double "ChainObj"
97
- expect(chain).to receive(:reorder).with('"posts"."published_date" asc').once.and_return(Post.search)
98
- controller.send :apply_sorting, chain
99
- end
100
- end
101
- end
102
-
103
- end
104
-
105
- describe "scoping" do
106
-
107
- context "when no current scope" do
108
- it "should set collection_before_scope to the chain and return the chain" do
109
- chain = double "ChainObj"
110
- expect(controller.send(:apply_scoping, chain)).to eq chain
111
- expect(controller.send(:collection_before_scope)).to eq chain
112
- end
113
- end
114
-
115
- context "when current scope" do
116
- it "should set collection_before_scope to the chain and return the scoped chain" do
117
- chain = double "ChainObj"
118
- scoped_chain = double "ScopedChain"
119
- current_scope = double "CurrentScope"
120
- allow(controller).to receive(:current_scope) { current_scope }
121
-
122
- expect(controller).to receive(:scope_chain).with(current_scope, chain) { scoped_chain }
123
- expect(controller.send(:apply_scoping, chain)).to eq scoped_chain
124
- expect(controller.send(:collection_before_scope)).to eq chain
125
- end
126
- end
127
- end
128
-
129
- describe "includes" do
130
- context "with no includes" do
131
- it "should return the chain" do
132
- chain = double "ChainObj"
133
- expect(controller.send(:apply_includes, chain)).to eq chain
134
- end
135
- end
136
-
137
- context "with includes" do
138
- it "should return the chain with the includes" do
139
- chain = double "ChainObj"
140
- chain_with_includes = double "ChainObjWithIncludes"
141
- expect(chain).to receive(:includes).with(:taggings, :author).and_return(chain_with_includes)
142
- expect(controller.send(:active_admin_config)).to receive(:includes).twice.and_return([:taggings, :author])
143
- expect(controller.send(:apply_includes, chain)).to eq chain_with_includes
144
- end
145
- end
146
- end
147
-
148
- describe "find_collection" do
149
- let(:appliers) do
150
- ActiveAdmin::ResourceController::DataAccess::COLLECTION_APPLIES
151
- end
152
- let(:scoped_collection) do
153
- double "ScopedCollectionChain"
154
- end
155
- before do
156
- allow(controller).to receive(:scoped_collection).
157
- and_return(scoped_collection)
158
- end
159
-
160
- it "should return chain with all appliers " do
161
- appliers.each do |applier|
162
- expect(controller).to receive("apply_#{applier}").
163
- with(scoped_collection).
164
- once.
165
- and_return(scoped_collection)
166
- end
167
- expect(controller).to receive(:collection_applies).
168
- with({}).and_call_original.once
169
- controller.send :find_collection
170
- end
171
-
172
- describe "collection_applies" do
173
- context "excepting appliers" do
174
- let(:options) do
175
- { except:
176
- [:authorization_scope, :filtering, :scoping, :collection_decorator]
177
- }
178
- end
179
-
180
- it "should except appliers" do
181
- expect(controller.send :collection_applies, options).
182
- to eq([:sorting, :includes, :pagination])
183
- end
184
- end
185
-
186
- context "specifying only needed appliers" do
187
- let(:options) do
188
- { only: [:filtering, :scoping] }
189
- end
190
- it "should except appliers" do
191
- expect(controller.send :collection_applies, options).to eq(options[:only])
192
- end
193
- end
194
- end
195
- end
196
-
197
- describe "build_resource" do
198
-
199
- let(:config) do
200
- ActiveAdmin.register User do
201
- permit_params :type, posts_attributes: :custom_category_id
202
- end
203
- end
204
-
205
- let!(:category) { Category.create! }
206
-
207
- let(:params) do
208
- ActionController::Parameters.new(user: { type: 'User::VIP', posts_attributes: [custom_category_id: category.id] })
209
- end
210
-
211
- subject do
212
- controller.send :build_resource
213
- end
214
-
215
- let(:controller) do
216
- rc = Admin::UsersController.new
217
- allow(rc).to receive(:params) do
218
- params
219
- end
220
- rc
221
- end
222
-
223
- it "should return post with assigned attributes" do
224
- expect(subject).to be_a(User::VIP)
225
- end
226
-
227
- # see issue 4548
228
- it "should assign nested attributes once" do
229
- expect(subject.posts.size).to eq(1)
230
- end
231
-
232
- end
233
-
234
- end
@@ -1,94 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ResourceController::Decorators do
4
- let(:controller_class) do
5
- Class.new do
6
- def self.name
7
- "Test Controller using Decorators"
8
- end
9
-
10
- include ActiveAdmin::ResourceController::Decorators
11
-
12
- public :apply_decorator, :apply_collection_decorator
13
- end
14
- end
15
-
16
- let(:controller) { controller_class.new }
17
- let(:active_admin_config) { double(decorator_class: decorator_class) }
18
- before do
19
- allow(controller).to receive(:active_admin_config).and_return(active_admin_config)
20
- allow(controller).to receive(:action_name).and_return(action)
21
- end
22
-
23
- describe '#apply_decorator' do
24
- let(:action) { 'show' }
25
- let(:resource) { Post.new }
26
- subject(:applied) { controller.apply_decorator(resource) }
27
-
28
- context 'with a decorator configured' do
29
- let(:decorator_class) { PostDecorator }
30
- it { is_expected.to be_kind_of(PostDecorator) }
31
-
32
- context 'with form' do
33
- let(:action) { 'update' }
34
-
35
- it "does not decorate when :decorate is set to false" do
36
- form = double
37
- allow(form).to receive(:options).and_return(decorate: false)
38
- allow(active_admin_config).to receive(:get_page_presenter).and_return(form)
39
- is_expected.not_to be_kind_of(PostDecorator)
40
- end
41
- end
42
- end
43
-
44
- context 'with no decorator configured' do
45
- let(:decorator_class) { nil }
46
- it { is_expected.to be_kind_of(Post) }
47
- end
48
- end
49
-
50
- describe '#apply_collection_decorator' do
51
- before { Post.create! }
52
- let(:action) { 'index' }
53
- let(:collection) { Post.where nil }
54
- subject(:applied) { controller.apply_collection_decorator(collection) }
55
-
56
- context 'when a decorator is configured' do
57
- context 'and it is using a recent version of draper' do
58
- let(:decorator_class) { PostDecorator }
59
-
60
- it 'calling certain scope collections work' do
61
- # This is an example of one of the methods that was consistently
62
- # failing before this feature existed
63
- expect(applied.reorder('').count).to eq applied.count
64
- end
65
-
66
- it 'has a good description for the generated class' do
67
- expect(applied.class.name).to eq "Draper::CollectionDecorator of PostDecorator + ActiveAdmin"
68
- end
69
-
70
- end
71
- end
72
- end
73
-
74
- describe 'form actions' do
75
- let(:action) { 'edit' }
76
- let(:resource) { Post.new }
77
- let(:form_presenter) { double options: { decorate: decorate_form } }
78
- let(:decorator_class) { PostDecorator }
79
- before { allow(active_admin_config).to receive(:get_page_presenter).with(:form).and_return form_presenter }
80
-
81
- subject(:applied) { controller.apply_decorator(resource) }
82
-
83
- context 'when the form is not configured to decorate' do
84
- let(:decorate_form) { false }
85
- it { is_expected.to be_kind_of(Post) }
86
- end
87
-
88
- context 'when the form is configured to decorate' do
89
- let(:decorate_form) { true }
90
- it { is_expected.to be_kind_of(PostDecorator) }
91
- end
92
-
93
- end
94
- end
@@ -1,37 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ResourceController::Sidebars, type: :controller do
4
- let(:klass){ Admin::PostsController }
5
-
6
- shared_context 'with post config' do
7
- before do
8
- load_resources { post_config }
9
-
10
- @controller = klass.new
11
-
12
- get :index
13
- end
14
- end
15
-
16
- context 'without skip_sidebar! before filter' do
17
- include_context 'with post config' do
18
- let(:post_config) { ActiveAdmin.register Post }
19
- end
20
-
21
- it 'does not set @skip_sidebar' do
22
- expect(controller.instance_variable_get(:@skip_sidebar)).to eq nil
23
- end
24
- end
25
-
26
- context 'with skip_sidebar! before_action' do
27
- include_context 'with post config' do
28
- let(:post_config) do
29
- ActiveAdmin.register(Post) { before_action :skip_sidebar! }
30
- end
31
- end
32
-
33
- it 'works' do
34
- expect(controller.instance_variable_get(:@skip_sidebar)).to eq true
35
- end
36
- end
37
- end