activeadmin 1.1.0 → 2.4.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 (465) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +469 -100
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +89 -47
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  8. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  9. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  10. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  11. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  12. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  13. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
  14. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  15. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  16. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  17. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  18. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  19. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  20. data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
  21. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  22. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  23. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  25. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  26. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  27. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  28. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  29. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  30. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  31. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  32. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  33. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  34. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  35. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  36. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  37. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  38. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  39. data/config/locales/ar.yml +3 -2
  40. data/config/locales/bg.yml +1 -1
  41. data/config/locales/bs.yml +1 -0
  42. data/config/locales/ca.yml +1 -1
  43. data/config/locales/cs.yml +1 -0
  44. data/config/locales/da.yml +1 -0
  45. data/config/locales/de-CH.yml +1 -0
  46. data/config/locales/de.yml +29 -0
  47. data/config/locales/el.yml +1 -0
  48. data/config/locales/en-CA.yml +1 -0
  49. data/config/locales/en-GB.yml +1 -0
  50. data/config/locales/en.yml +21 -1
  51. data/config/locales/eo.yml +145 -0
  52. data/config/locales/es-MX.yml +1 -0
  53. data/config/locales/es.yml +21 -1
  54. data/config/locales/fa.yml +1 -0
  55. data/config/locales/fi.yml +2 -1
  56. data/config/locales/fr.yml +2 -1
  57. data/config/locales/he.yml +1 -1
  58. data/config/locales/hr.yml +1 -0
  59. data/config/locales/hu.yml +5 -0
  60. data/config/locales/id.yml +1 -0
  61. data/config/locales/it.yml +13 -3
  62. data/config/locales/ja.yml +6 -0
  63. data/config/locales/ko.yml +1 -0
  64. data/config/locales/lt.yml +3 -2
  65. data/config/locales/lv.yml +1 -0
  66. data/config/locales/mk.yml +134 -0
  67. data/config/locales/nb.yml +16 -5
  68. data/config/locales/nl.yml +12 -0
  69. data/config/locales/pl.yml +72 -3
  70. data/config/locales/pt-BR.yml +9 -0
  71. data/config/locales/pt-PT.yml +1 -0
  72. data/config/locales/ro.yml +1 -0
  73. data/config/locales/ru.yml +3 -0
  74. data/config/locales/sk.yml +60 -0
  75. data/config/locales/sv-SE.yml +3 -0
  76. data/config/locales/tr.yml +10 -0
  77. data/config/locales/uk.yml +3 -0
  78. data/config/locales/vi.yml +48 -6
  79. data/config/locales/zh-CN.yml +34 -5
  80. data/config/locales/zh-TW.yml +1 -0
  81. data/docs/.gitignore +1 -0
  82. data/docs/0-installation.md +2 -2
  83. data/docs/1-general-configuration.md +16 -1
  84. data/docs/10-custom-pages.md +14 -0
  85. data/docs/12-arbre-components.md +41 -1
  86. data/docs/13-authorization-adapter.md +41 -22
  87. data/docs/2-resource-customization.md +10 -5
  88. data/docs/3-index-pages/custom-index.md +1 -1
  89. data/docs/3-index-pages/index-as-blog.md +1 -1
  90. data/docs/3-index-pages/index-as-table.md +12 -5
  91. data/docs/3-index-pages.md +17 -0
  92. data/docs/5-forms.md +16 -2
  93. data/docs/8-custom-actions.md +11 -0
  94. data/docs/CNAME +1 -1
  95. data/docs/Gemfile +2 -1
  96. data/docs/Gemfile.lock +248 -0
  97. data/docs/_config.yml +3 -1
  98. data/docs/_includes/toc.html +1 -1
  99. data/docs/_includes/top-menu.html +9 -1
  100. data/docs/documentation.md +1 -1
  101. data/docs/images/tidelift.svg +14 -0
  102. data/docs/index.html +109 -8
  103. data/docs/stylesheets/main.css +55 -2
  104. data/lib/active_admin/abstract_view_factory.rb +13 -51
  105. data/lib/active_admin/application.rb +52 -159
  106. data/lib/active_admin/application_settings.rb +42 -0
  107. data/lib/active_admin/asset_registration.rb +0 -8
  108. data/lib/active_admin/base_controller/authorization.rb +4 -6
  109. data/lib/active_admin/base_controller.rb +6 -6
  110. data/lib/active_admin/batch_actions/controller.rb +2 -2
  111. data/lib/active_admin/batch_actions/resource_extension.rb +9 -5
  112. data/lib/active_admin/callbacks.rb +1 -1
  113. data/lib/active_admin/controller_action.rb +2 -1
  114. data/lib/active_admin/csv_builder.rb +10 -7
  115. data/lib/active_admin/dependency.rb +3 -67
  116. data/lib/active_admin/deprecation.rb +0 -25
  117. data/lib/active_admin/dsl.rb +1 -8
  118. data/lib/active_admin/dynamic_setting.rb +38 -0
  119. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  120. data/lib/active_admin/engine.rb +5 -0
  121. data/lib/active_admin/error.rb +4 -2
  122. data/lib/active_admin/filters/active_filter.rb +49 -12
  123. data/lib/active_admin/filters/active_sidebar.rb +6 -2
  124. data/lib/active_admin/filters/forms.rb +7 -4
  125. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  126. data/lib/active_admin/filters/resource_extension.rb +28 -4
  127. data/lib/active_admin/form_builder.rb +98 -63
  128. data/lib/active_admin/generators/boilerplate.rb +12 -4
  129. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  130. data/lib/active_admin/inputs/datepicker_input.rb +8 -1
  131. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  132. data/lib/active_admin/inputs/filters/select_input.rb +5 -1
  133. data/lib/active_admin/menu.rb +2 -8
  134. data/lib/active_admin/menu_item.rb +4 -32
  135. data/lib/active_admin/namespace.rb +20 -8
  136. data/lib/active_admin/namespace_settings.rb +123 -0
  137. data/lib/active_admin/order_clause.rb +2 -2
  138. data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
  139. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +17 -7
  140. data/lib/active_admin/orm/active_record/comments.rb +15 -4
  141. data/lib/active_admin/page_dsl.rb +1 -1
  142. data/lib/active_admin/page_presenter.rb +2 -1
  143. data/lib/active_admin/pundit_adapter.rb +18 -5
  144. data/lib/active_admin/resource/action_items.rb +7 -2
  145. data/lib/active_admin/resource/attributes.rb +7 -4
  146. data/lib/active_admin/resource/belongs_to.rb +6 -1
  147. data/lib/active_admin/resource/menu.rb +3 -3
  148. data/lib/active_admin/resource/model.rb +15 -0
  149. data/lib/active_admin/resource/naming.rb +3 -3
  150. data/lib/active_admin/resource/routes.rb +20 -7
  151. data/lib/active_admin/resource/scopes.rb +3 -3
  152. data/lib/active_admin/resource/sidebars.rb +1 -1
  153. data/lib/active_admin/resource.rb +17 -3
  154. data/lib/active_admin/resource_collection.rb +2 -2
  155. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  156. data/lib/active_admin/resource_controller/data_access.rb +5 -1
  157. data/lib/active_admin/resource_controller/decorators.rb +5 -5
  158. data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
  159. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  160. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  161. data/lib/active_admin/resource_controller.rb +2 -0
  162. data/lib/active_admin/resource_dsl.rb +7 -3
  163. data/lib/active_admin/router.rb +90 -84
  164. data/lib/active_admin/scope.rb +16 -8
  165. data/lib/active_admin/settings_node.rb +19 -0
  166. data/lib/active_admin/sidebar_section.rb +3 -1
  167. data/lib/active_admin/version.rb +1 -1
  168. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
  169. data/lib/active_admin/view_helpers/display_helper.rb +13 -4
  170. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  171. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  172. data/lib/active_admin/view_helpers.rb +1 -1
  173. data/lib/active_admin/views/components/active_admin_form.rb +9 -4
  174. data/lib/active_admin/views/components/attributes_table.rb +3 -3
  175. data/lib/active_admin/views/components/menu.rb +32 -0
  176. data/lib/active_admin/views/components/menu_item.rb +58 -0
  177. data/lib/active_admin/views/components/paginated_collection.rb +3 -3
  178. data/lib/active_admin/views/components/scopes.rb +11 -4
  179. data/lib/active_admin/views/components/sidebar.rb +13 -0
  180. data/lib/active_admin/views/components/site_title.rb +5 -6
  181. data/lib/active_admin/views/components/status_tag.rb +6 -19
  182. data/lib/active_admin/views/components/table_for.rb +3 -12
  183. data/lib/active_admin/views/components/tabs.rb +15 -3
  184. data/lib/active_admin/views/footer.rb +3 -7
  185. data/lib/active_admin/views/header.rb +3 -15
  186. data/lib/active_admin/views/index_as_blog.rb +1 -1
  187. data/lib/active_admin/views/index_as_grid.rb +25 -25
  188. data/lib/active_admin/views/index_as_table.rb +18 -10
  189. data/lib/active_admin/views/pages/base.rb +30 -53
  190. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  191. data/lib/active_admin/views.rb +1 -1
  192. data/lib/active_admin.rb +10 -4
  193. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  194. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  195. data/lib/generators/active_admin/install/install_generator.rb +7 -3
  196. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +38 -3
  197. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  198. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  199. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  200. data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
  201. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  202. data/lib/ransack_ext.rb +3 -3
  203. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  204. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  205. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  206. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  207. metadata +127 -523
  208. data/.github/ISSUE_TEMPLATE.md +0 -20
  209. data/.gitignore +0 -49
  210. data/.mdlrc +0 -1
  211. data/.rubocop.yml +0 -76
  212. data/.simplecov +0 -13
  213. data/.travis.yml +0 -51
  214. data/.yardopts +0 -7
  215. data/Gemfile +0 -58
  216. data/Rakefile +0 -54
  217. data/activeadmin.gemspec +0 -32
  218. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  219. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  220. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  221. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  222. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  223. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  224. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  225. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  226. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  227. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  228. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  229. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  230. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  231. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  232. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  233. data/codecov.yml +0 -25
  234. data/config/i18n-tasks.yml +0 -26
  235. data/config/mdl_style.rb +0 -9
  236. data/cucumber.yml +0 -3
  237. data/features/action_item.feature +0 -73
  238. data/features/authorization.feature +0 -64
  239. data/features/authorization_cancan.feature +0 -52
  240. data/features/authorization_pundit.feature +0 -37
  241. data/features/belongs_to.feature +0 -124
  242. data/features/breadcrumb.feature +0 -75
  243. data/features/comments/commenting.feature +0 -178
  244. data/features/comments/viewing_index.feature +0 -19
  245. data/features/create_another.feature +0 -55
  246. data/features/dashboard.feature +0 -16
  247. data/features/decorators.feature +0 -43
  248. data/features/development_reloading.feature +0 -28
  249. data/features/edit_page.feature +0 -116
  250. data/features/favicon.feature +0 -20
  251. data/features/first_boot.feature +0 -16
  252. data/features/footer.feature +0 -28
  253. data/features/global_navigation.feature +0 -29
  254. data/features/i18n.feature +0 -55
  255. data/features/index/batch_actions.feature +0 -218
  256. data/features/index/filters.feature +0 -239
  257. data/features/index/format_as_csv.feature +0 -220
  258. data/features/index/formats.feature +0 -88
  259. data/features/index/index_as_block.feature +0 -15
  260. data/features/index/index_as_blog.feature +0 -69
  261. data/features/index/index_as_grid.feature +0 -45
  262. data/features/index/index_as_table.feature +0 -291
  263. data/features/index/index_blank_slate.feature +0 -83
  264. data/features/index/index_parameters.feature +0 -75
  265. data/features/index/index_scope_to.feature +0 -56
  266. data/features/index/index_scopes.feature +0 -285
  267. data/features/index/page_title.feature +0 -41
  268. data/features/index/pagination.feature +0 -63
  269. data/features/index/switch_index_view.feature +0 -73
  270. data/features/menu.feature +0 -72
  271. data/features/meta_tags.feature +0 -21
  272. data/features/new_page.feature +0 -107
  273. data/features/registering_assets.feature +0 -38
  274. data/features/registering_pages.feature +0 -237
  275. data/features/registering_resources.feature +0 -33
  276. data/features/renamed_resource.feature +0 -30
  277. data/features/root_to.feature +0 -17
  278. data/features/show/attributes_table_title.feature +0 -54
  279. data/features/show/columns.feature +0 -40
  280. data/features/show/default_content.feature +0 -44
  281. data/features/show/page_title.feature +0 -58
  282. data/features/show/tabs.feature +0 -33
  283. data/features/sidebar_sections.feature +0 -210
  284. data/features/site_title.feature +0 -47
  285. data/features/specifying_actions.feature +0 -118
  286. data/features/step_definitions/action_item_steps.rb +0 -7
  287. data/features/step_definitions/action_link_steps.rb +0 -19
  288. data/features/step_definitions/additional_web_steps.rb +0 -81
  289. data/features/step_definitions/asset_steps.rb +0 -15
  290. data/features/step_definitions/attribute_steps.rb +0 -18
  291. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  292. data/features/step_definitions/batch_action_steps.rb +0 -81
  293. data/features/step_definitions/blog_steps.rb +0 -3
  294. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  295. data/features/step_definitions/column_steps.rb +0 -8
  296. data/features/step_definitions/comment_steps.rb +0 -32
  297. data/features/step_definitions/configuration_steps.rb +0 -100
  298. data/features/step_definitions/dashboard_steps.rb +0 -15
  299. data/features/step_definitions/factory_steps.rb +0 -35
  300. data/features/step_definitions/filter_steps.rb +0 -48
  301. data/features/step_definitions/flash_steps.rb +0 -11
  302. data/features/step_definitions/footer_steps.rb +0 -11
  303. data/features/step_definitions/format_steps.rb +0 -56
  304. data/features/step_definitions/i18n_steps.rb +0 -11
  305. data/features/step_definitions/index_scope_steps.rb +0 -29
  306. data/features/step_definitions/index_views_steps.rb +0 -3
  307. data/features/step_definitions/layout_steps.rb +0 -3
  308. data/features/step_definitions/member_link_steps.rb +0 -7
  309. data/features/step_definitions/menu_steps.rb +0 -11
  310. data/features/step_definitions/meta_tag_steps.rb +0 -3
  311. data/features/step_definitions/pagination_steps.rb +0 -15
  312. data/features/step_definitions/sidebar_steps.rb +0 -11
  313. data/features/step_definitions/site_title_steps.rb +0 -17
  314. data/features/step_definitions/tab_steps.rb +0 -8
  315. data/features/step_definitions/table_steps.rb +0 -116
  316. data/features/step_definitions/user_steps.rb +0 -52
  317. data/features/step_definitions/web_steps.rb +0 -86
  318. data/features/sti_resource.feature +0 -65
  319. data/features/strong_parameters.feature +0 -69
  320. data/features/support/env.rb +0 -122
  321. data/features/support/paths.rb +0 -73
  322. data/features/support/regular_env.rb +0 -7
  323. data/features/support/reload_env.rb +0 -7
  324. data/features/support/selectors.rb +0 -45
  325. data/features/users/logging_in.feature +0 -36
  326. data/features/users/logging_out.feature +0 -13
  327. data/features/users/resetting_password.feature +0 -34
  328. data/gemfiles/rails_42.gemfile +0 -10
  329. data/gemfiles/rails_50.gemfile +0 -10
  330. data/gemfiles/rails_51.gemfile +0 -10
  331. data/lib/active_admin/event.rb +0 -24
  332. data/lib/active_admin/helpers/settings.rb +0 -114
  333. data/lib/active_admin/reloader.rb +0 -25
  334. data/lib/bug_report_templates/active_admin_master.rb +0 -113
  335. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  336. data/spec/bug_report_templates_spec.rb +0 -26
  337. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  338. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  339. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  340. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  341. data/spec/javascripts/fixtures/flashes.html +0 -2
  342. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  343. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  344. data/spec/javascripts/support/jasmine.yml +0 -74
  345. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  346. data/spec/rails_helper.rb +0 -59
  347. data/spec/requests/default_namespace_spec.rb +0 -81
  348. data/spec/requests/memory_spec.rb +0 -25
  349. data/spec/requests/stylesheets_spec.rb +0 -18
  350. data/spec/spec_helper.rb +0 -1
  351. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  352. data/spec/support/active_admin_request_helpers.rb +0 -39
  353. data/spec/support/rails_template.rb +0 -150
  354. data/spec/support/rails_template_with_data.rb +0 -327
  355. data/spec/support/templates/admin/stores.rb +0 -7
  356. data/spec/support/templates/en.yml +0 -8
  357. data/spec/support/templates/manifest.js +0 -3
  358. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  359. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  360. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  361. data/spec/support/templates/policies/application_policy.rb +0 -44
  362. data/spec/support/templates/policies/category_policy.rb +0 -7
  363. data/spec/support/templates/policies/post_policy.rb +0 -15
  364. data/spec/support/templates/policies/store_policy.rb +0 -11
  365. data/spec/support/templates/policies/user_policy.rb +0 -11
  366. data/spec/support/templates/post_decorator.rb +0 -10
  367. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  368. data/spec/unit/action_builder_spec.rb +0 -125
  369. data/spec/unit/active_admin_spec.rb +0 -11
  370. data/spec/unit/application_spec.rb +0 -184
  371. data/spec/unit/asset_registration_spec.rb +0 -81
  372. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  373. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  374. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  375. data/spec/unit/auto_link_spec.rb +0 -93
  376. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  377. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  378. data/spec/unit/belongs_to_spec.rb +0 -76
  379. data/spec/unit/cancan_adapter_spec.rb +0 -43
  380. data/spec/unit/comments_spec.rb +0 -176
  381. data/spec/unit/component_spec.rb +0 -18
  382. data/spec/unit/config_shared_examples.rb +0 -59
  383. data/spec/unit/controller_filters_spec.rb +0 -41
  384. data/spec/unit/csv_builder_spec.rb +0 -304
  385. data/spec/unit/dependency_spec.rb +0 -135
  386. data/spec/unit/devise_spec.rb +0 -110
  387. data/spec/unit/dsl_spec.rb +0 -120
  388. data/spec/unit/filters/active_filter_spec.rb +0 -135
  389. data/spec/unit/filters/active_spec.rb +0 -24
  390. data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
  391. data/spec/unit/filters/resource_spec.rb +0 -128
  392. data/spec/unit/form_builder_spec.rb +0 -990
  393. data/spec/unit/generators/install_spec.rb +0 -31
  394. data/spec/unit/helpers/collection_spec.rb +0 -68
  395. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  396. data/spec/unit/helpers/settings_spec.rb +0 -30
  397. data/spec/unit/i18n_spec.rb +0 -29
  398. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  399. data/spec/unit/menu_collection_spec.rb +0 -62
  400. data/spec/unit/menu_item_spec.rb +0 -141
  401. data/spec/unit/menu_spec.rb +0 -71
  402. data/spec/unit/namespace/authorization_spec.rb +0 -27
  403. data/spec/unit/namespace/register_page_spec.rb +0 -99
  404. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  405. data/spec/unit/namespace_spec.rb +0 -124
  406. data/spec/unit/order_clause_spec.rb +0 -81
  407. data/spec/unit/page_controller_spec.rb +0 -5
  408. data/spec/unit/page_spec.rb +0 -128
  409. data/spec/unit/pretty_format_spec.rb +0 -82
  410. data/spec/unit/pundit_adapter_spec.rb +0 -98
  411. data/spec/unit/resource/action_items_spec.rb +0 -69
  412. data/spec/unit/resource/attributes_spec.rb +0 -49
  413. data/spec/unit/resource/includes_spec.rb +0 -21
  414. data/spec/unit/resource/menu_spec.rb +0 -18
  415. data/spec/unit/resource/naming_spec.rb +0 -122
  416. data/spec/unit/resource/ordering_spec.rb +0 -35
  417. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  418. data/spec/unit/resource/pagination_spec.rb +0 -38
  419. data/spec/unit/resource/routes_spec.rb +0 -125
  420. data/spec/unit/resource/scopes_spec.rb +0 -50
  421. data/spec/unit/resource/sidebars_spec.rb +0 -43
  422. data/spec/unit/resource_collection_spec.rb +0 -175
  423. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  424. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  425. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  426. data/spec/unit/resource_controller_spec.rb +0 -273
  427. data/spec/unit/resource_registration_spec.rb +0 -61
  428. data/spec/unit/resource_spec.rb +0 -320
  429. data/spec/unit/routing_spec.rb +0 -211
  430. data/spec/unit/scope_spec.rb +0 -209
  431. data/spec/unit/settings_spec.rb +0 -117
  432. data/spec/unit/view_factory_spec.rb +0 -19
  433. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  434. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  435. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  436. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  437. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  438. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  439. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  440. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  441. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  442. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  443. data/spec/unit/views/components/columns_spec.rb +0 -187
  444. data/spec/unit/views/components/index_list_spec.rb +0 -49
  445. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  446. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  447. data/spec/unit/views/components/panel_spec.rb +0 -58
  448. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  449. data/spec/unit/views/components/site_title_spec.rb +0 -76
  450. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  451. data/spec/unit/views/components/table_for_spec.rb +0 -436
  452. data/spec/unit/views/components/tabs_spec.rb +0 -67
  453. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  454. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  455. data/spec/unit/views/pages/form_spec.rb +0 -54
  456. data/spec/unit/views/pages/index_spec.rb +0 -60
  457. data/spec/unit/views/pages/layout_spec.rb +0 -59
  458. data/spec/unit/views/pages/show_spec.rb +0 -32
  459. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  460. data/tasks/docs.rake +0 -64
  461. data/tasks/lint.rake +0 -21
  462. data/tasks/local.rake +0 -25
  463. data/tasks/parallel_tests.rake +0 -66
  464. data/tasks/test.rake +0 -29
  465. /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
@@ -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,230 +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 Post do
201
- permit_params :body, taggings_attributes: [:id, :tag_id]
202
- end
203
- end
204
-
205
- let!(:tag) { Tag.create! }
206
-
207
- let(:params) do
208
- ActionController::Parameters.new({ post: { body: 'Body', taggings_attributes: [tag_id: tag.id] } })
209
- end
210
-
211
- before do
212
- expect(Post).to receive(:new).with(a_hash_including(:body, :taggings_attributes)).and_call_original
213
- end
214
-
215
- subject do
216
- controller.send :build_resource
217
- end
218
-
219
- it "should return post with assigned attributes" do
220
- expect(subject.body).to be_present
221
- end
222
-
223
- # see issue 4548
224
- it "should assign nested attributes once" do
225
- expect(subject.taggings.size).to eq(1)
226
- end
227
-
228
- end
229
-
230
- 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