activeadmin 1.3.1 → 1.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 (333) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +467 -0
  3. data/.gitignore +2 -5
  4. data/.rspec +1 -0
  5. data/.rspec_parallel +2 -0
  6. data/.rubocop.yml +25 -7
  7. data/.simplecov +4 -6
  8. data/CHANGELOG.md +175 -83
  9. data/CODE_OF_CONDUCT.md +64 -12
  10. data/CONTRIBUTING.md +77 -40
  11. data/Gemfile +7 -55
  12. data/Gemfile.common +53 -0
  13. data/Gemfile.lock +431 -0
  14. data/README.md +39 -18
  15. data/Rakefile +1 -32
  16. data/app/assets/stylesheets/active_admin/_forms.scss +1 -1
  17. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  18. data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
  19. data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
  20. data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
  21. data/app/views/active_admin/devise/registrations/new.html.erb +1 -1
  22. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  23. data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
  24. data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
  25. data/bin/install_chromedriver.sh +17 -0
  26. data/config/locales/de.yml +10 -0
  27. data/config/locales/en.yml +19 -1
  28. data/config/locales/es.yml +20 -1
  29. data/config/locales/fi.yml +1 -1
  30. data/config/locales/it.yml +4 -0
  31. data/config/locales/nb.yml +15 -5
  32. data/config/locales/nl.yml +11 -0
  33. data/config/locales/pl.yml +71 -3
  34. data/config/locales/ru.yml +2 -0
  35. data/config/locales/tr.yml +9 -0
  36. data/config/locales/zh-CN.yml +33 -5
  37. data/config/mdl_style.rb +2 -0
  38. data/cucumber.yml +7 -3
  39. data/docs/.gitignore +1 -0
  40. data/docs/1-general-configuration.md +16 -1
  41. data/docs/10-custom-pages.md +14 -0
  42. data/docs/12-arbre-components.md +28 -1
  43. data/docs/13-authorization-adapter.md +36 -17
  44. data/docs/2-resource-customization.md +8 -3
  45. data/docs/3-index-pages.md +17 -0
  46. data/docs/3-index-pages/custom-index.md +1 -1
  47. data/docs/3-index-pages/index-as-blog.md +1 -1
  48. data/docs/3-index-pages/index-as-table.md +5 -5
  49. data/docs/5-forms.md +16 -2
  50. data/docs/8-custom-actions.md +11 -0
  51. data/docs/Gemfile +2 -0
  52. data/docs/Gemfile.lock +249 -0
  53. data/docs/_config.yml +1 -1
  54. data/docs/_includes/toc.html +1 -1
  55. data/docs/_includes/top-menu.html +9 -1
  56. data/docs/documentation.md +1 -1
  57. data/docs/images/tidelift.svg +14 -0
  58. data/docs/stylesheets/main.css +26 -2
  59. data/gemfiles/rails_42.gemfile +2 -2
  60. data/gemfiles/rails_42.gemfile.lock +410 -0
  61. data/gemfiles/rails_50.gemfile +2 -2
  62. data/gemfiles/rails_50.gemfile.lock +424 -0
  63. data/gemfiles/rails_51.gemfile +2 -2
  64. data/gemfiles/rails_51.gemfile.lock +423 -0
  65. data/lib/active_admin/abstract_view_factory.rb +13 -51
  66. data/lib/active_admin/application.rb +42 -142
  67. data/lib/active_admin/application_settings.rb +39 -0
  68. data/lib/active_admin/base_controller/authorization.rb +1 -2
  69. data/lib/active_admin/batch_actions/controller.rb +1 -1
  70. data/lib/active_admin/dependency.rb +8 -0
  71. data/lib/active_admin/deprecation.rb +0 -25
  72. data/lib/active_admin/dynamic_setting.rb +38 -0
  73. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  74. data/lib/active_admin/engine.rb +5 -0
  75. data/lib/active_admin/filters/active_filter.rb +1 -1
  76. data/lib/active_admin/filters/resource_extension.rb +1 -1
  77. data/lib/active_admin/form_builder.rb +95 -60
  78. data/lib/active_admin/inputs/datepicker_input.rb +7 -0
  79. data/lib/active_admin/menu.rb +2 -8
  80. data/lib/active_admin/menu_item.rb +3 -31
  81. data/lib/active_admin/namespace.rb +18 -6
  82. data/lib/active_admin/namespace_settings.rb +107 -0
  83. data/lib/active_admin/orm/active_record/comments.rb +11 -0
  84. data/lib/active_admin/orm/active_record/comments/comment.rb +1 -1
  85. data/lib/active_admin/resource/action_items.rb +6 -1
  86. data/lib/active_admin/resource_controller/decorators.rb +3 -3
  87. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  88. data/lib/active_admin/router.rb +89 -84
  89. data/lib/active_admin/scope.rb +5 -1
  90. data/lib/active_admin/settings_node.rb +19 -0
  91. data/lib/active_admin/version.rb +1 -1
  92. data/lib/active_admin/views/components/active_admin_form.rb +2 -3
  93. data/lib/active_admin/views/components/menu.rb +32 -0
  94. data/lib/active_admin/views/components/menu_item.rb +58 -0
  95. data/lib/active_admin/views/components/scopes.rb +11 -4
  96. data/lib/active_admin/views/components/sidebar.rb +13 -0
  97. data/lib/active_admin/views/components/site_title.rb +5 -6
  98. data/lib/active_admin/views/components/table_for.rb +1 -10
  99. data/lib/active_admin/views/components/tabs.rb +4 -1
  100. data/lib/active_admin/views/footer.rb +2 -6
  101. data/lib/active_admin/views/header.rb +3 -15
  102. data/lib/active_admin/views/index_as_blog.rb +1 -1
  103. data/lib/active_admin/views/index_as_grid.rb +25 -25
  104. data/lib/active_admin/views/index_as_table.rb +6 -6
  105. data/lib/active_admin/views/pages/base.rb +27 -53
  106. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  107. data/lib/bug_report_templates/active_admin_master.rb +2 -3
  108. data/tasks/application_generator.rb +48 -0
  109. data/tasks/gemfiles.rake +8 -0
  110. data/tasks/lint.rake +96 -7
  111. data/tasks/local.rake +10 -8
  112. data/tasks/test.rake +30 -16
  113. metadata +26 -440
  114. data/.travis.yml +0 -51
  115. data/features/action_item.feature +0 -73
  116. data/features/authorization.feature +0 -64
  117. data/features/authorization_cancan.feature +0 -52
  118. data/features/authorization_pundit.feature +0 -37
  119. data/features/belongs_to.feature +0 -124
  120. data/features/breadcrumb.feature +0 -75
  121. data/features/comments/commenting.feature +0 -178
  122. data/features/comments/viewing_index.feature +0 -19
  123. data/features/create_another.feature +0 -55
  124. data/features/dashboard.feature +0 -16
  125. data/features/decorators.feature +0 -43
  126. data/features/development_reloading.feature +0 -28
  127. data/features/edit_page.feature +0 -116
  128. data/features/favicon.feature +0 -20
  129. data/features/first_boot.feature +0 -16
  130. data/features/footer.feature +0 -28
  131. data/features/global_navigation.feature +0 -29
  132. data/features/i18n.feature +0 -55
  133. data/features/index/batch_actions.feature +0 -218
  134. data/features/index/filters.feature +0 -250
  135. data/features/index/format_as_csv.feature +0 -220
  136. data/features/index/formats.feature +0 -88
  137. data/features/index/index_as_block.feature +0 -15
  138. data/features/index/index_as_blog.feature +0 -69
  139. data/features/index/index_as_grid.feature +0 -45
  140. data/features/index/index_as_table.feature +0 -291
  141. data/features/index/index_blank_slate.feature +0 -83
  142. data/features/index/index_parameters.feature +0 -75
  143. data/features/index/index_scope_to.feature +0 -56
  144. data/features/index/index_scopes.feature +0 -285
  145. data/features/index/page_title.feature +0 -41
  146. data/features/index/pagination.feature +0 -63
  147. data/features/index/switch_index_view.feature +0 -73
  148. data/features/menu.feature +0 -72
  149. data/features/meta_tags.feature +0 -21
  150. data/features/new_page.feature +0 -136
  151. data/features/registering_assets.feature +0 -38
  152. data/features/registering_pages.feature +0 -237
  153. data/features/registering_resources.feature +0 -33
  154. data/features/renamed_resource.feature +0 -30
  155. data/features/root_to.feature +0 -17
  156. data/features/show/attributes_table_title.feature +0 -54
  157. data/features/show/columns.feature +0 -40
  158. data/features/show/default_content.feature +0 -44
  159. data/features/show/page_title.feature +0 -58
  160. data/features/show/tabs.feature +0 -33
  161. data/features/sidebar_sections.feature +0 -210
  162. data/features/site_title.feature +0 -47
  163. data/features/specifying_actions.feature +0 -118
  164. data/features/step_definitions/action_item_steps.rb +0 -7
  165. data/features/step_definitions/action_link_steps.rb +0 -19
  166. data/features/step_definitions/additional_web_steps.rb +0 -81
  167. data/features/step_definitions/asset_steps.rb +0 -15
  168. data/features/step_definitions/attribute_steps.rb +0 -18
  169. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  170. data/features/step_definitions/batch_action_steps.rb +0 -81
  171. data/features/step_definitions/blog_steps.rb +0 -3
  172. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  173. data/features/step_definitions/column_steps.rb +0 -8
  174. data/features/step_definitions/comment_steps.rb +0 -32
  175. data/features/step_definitions/configuration_steps.rb +0 -100
  176. data/features/step_definitions/dashboard_steps.rb +0 -15
  177. data/features/step_definitions/factory_steps.rb +0 -35
  178. data/features/step_definitions/filter_steps.rb +0 -47
  179. data/features/step_definitions/flash_steps.rb +0 -11
  180. data/features/step_definitions/footer_steps.rb +0 -11
  181. data/features/step_definitions/format_steps.rb +0 -56
  182. data/features/step_definitions/i18n_steps.rb +0 -11
  183. data/features/step_definitions/index_scope_steps.rb +0 -29
  184. data/features/step_definitions/index_views_steps.rb +0 -3
  185. data/features/step_definitions/layout_steps.rb +0 -3
  186. data/features/step_definitions/member_link_steps.rb +0 -7
  187. data/features/step_definitions/menu_steps.rb +0 -11
  188. data/features/step_definitions/meta_tag_steps.rb +0 -3
  189. data/features/step_definitions/pagination_steps.rb +0 -15
  190. data/features/step_definitions/sidebar_steps.rb +0 -11
  191. data/features/step_definitions/site_title_steps.rb +0 -17
  192. data/features/step_definitions/tab_steps.rb +0 -8
  193. data/features/step_definitions/table_steps.rb +0 -116
  194. data/features/step_definitions/user_steps.rb +0 -52
  195. data/features/step_definitions/web_steps.rb +0 -86
  196. data/features/sti_resource.feature +0 -65
  197. data/features/strong_parameters.feature +0 -69
  198. data/features/support/env.rb +0 -122
  199. data/features/support/paths.rb +0 -73
  200. data/features/support/regular_env.rb +0 -7
  201. data/features/support/reload_env.rb +0 -7
  202. data/features/support/selectors.rb +0 -45
  203. data/features/users/logging_in.feature +0 -36
  204. data/features/users/logging_out.feature +0 -13
  205. data/features/users/resetting_password.feature +0 -34
  206. data/gemfiles/rails_52.gemfile +0 -11
  207. data/lib/active_admin/helpers/settings.rb +0 -114
  208. data/spec/bug_report_templates_spec.rb +0 -26
  209. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  210. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  211. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  212. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  213. data/spec/javascripts/fixtures/flashes.html +0 -2
  214. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  215. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  216. data/spec/javascripts/support/jasmine.yml +0 -74
  217. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  218. data/spec/rails_helper.rb +0 -59
  219. data/spec/requests/default_namespace_spec.rb +0 -81
  220. data/spec/requests/memory_spec.rb +0 -25
  221. data/spec/requests/stylesheets_spec.rb +0 -18
  222. data/spec/spec_helper.rb +0 -1
  223. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  224. data/spec/support/active_admin_request_helpers.rb +0 -39
  225. data/spec/support/rails_template.rb +0 -153
  226. data/spec/support/rails_template_with_data.rb +0 -327
  227. data/spec/support/templates/admin/stores.rb +0 -7
  228. data/spec/support/templates/en.yml +0 -8
  229. data/spec/support/templates/manifest.js +0 -3
  230. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  231. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  232. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  233. data/spec/support/templates/policies/application_policy.rb +0 -44
  234. data/spec/support/templates/policies/category_policy.rb +0 -7
  235. data/spec/support/templates/policies/post_policy.rb +0 -15
  236. data/spec/support/templates/policies/store_policy.rb +0 -11
  237. data/spec/support/templates/policies/user_policy.rb +0 -11
  238. data/spec/support/templates/post_decorator.rb +0 -24
  239. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  240. data/spec/unit/action_builder_spec.rb +0 -158
  241. data/spec/unit/active_admin_spec.rb +0 -11
  242. data/spec/unit/application_spec.rb +0 -184
  243. data/spec/unit/asset_registration_spec.rb +0 -81
  244. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  245. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  246. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  247. data/spec/unit/auto_link_spec.rb +0 -93
  248. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  249. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  250. data/spec/unit/belongs_to_spec.rb +0 -76
  251. data/spec/unit/cancan_adapter_spec.rb +0 -43
  252. data/spec/unit/comments_spec.rb +0 -176
  253. data/spec/unit/component_spec.rb +0 -18
  254. data/spec/unit/config_shared_examples.rb +0 -59
  255. data/spec/unit/controller_filters_spec.rb +0 -41
  256. data/spec/unit/csv_builder_spec.rb +0 -313
  257. data/spec/unit/dependency_spec.rb +0 -135
  258. data/spec/unit/devise_spec.rb +0 -110
  259. data/spec/unit/dsl_spec.rb +0 -120
  260. data/spec/unit/filters/active_filter_spec.rb +0 -189
  261. data/spec/unit/filters/active_spec.rb +0 -24
  262. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  263. data/spec/unit/filters/resource_spec.rb +0 -128
  264. data/spec/unit/form_builder_spec.rb +0 -990
  265. data/spec/unit/generators/install_spec.rb +0 -31
  266. data/spec/unit/helpers/collection_spec.rb +0 -68
  267. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  268. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  269. data/spec/unit/helpers/settings_spec.rb +0 -30
  270. data/spec/unit/i18n_spec.rb +0 -29
  271. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  272. data/spec/unit/menu_collection_spec.rb +0 -62
  273. data/spec/unit/menu_item_spec.rb +0 -141
  274. data/spec/unit/menu_spec.rb +0 -71
  275. data/spec/unit/namespace/authorization_spec.rb +0 -27
  276. data/spec/unit/namespace/register_page_spec.rb +0 -99
  277. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  278. data/spec/unit/namespace_spec.rb +0 -124
  279. data/spec/unit/order_clause_spec.rb +0 -81
  280. data/spec/unit/page_controller_spec.rb +0 -5
  281. data/spec/unit/page_spec.rb +0 -128
  282. data/spec/unit/pretty_format_spec.rb +0 -82
  283. data/spec/unit/pundit_adapter_spec.rb +0 -98
  284. data/spec/unit/resource/action_items_spec.rb +0 -69
  285. data/spec/unit/resource/attributes_spec.rb +0 -49
  286. data/spec/unit/resource/includes_spec.rb +0 -21
  287. data/spec/unit/resource/menu_spec.rb +0 -18
  288. data/spec/unit/resource/naming_spec.rb +0 -122
  289. data/spec/unit/resource/ordering_spec.rb +0 -35
  290. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  291. data/spec/unit/resource/pagination_spec.rb +0 -38
  292. data/spec/unit/resource/routes_spec.rb +0 -125
  293. data/spec/unit/resource/scopes_spec.rb +0 -50
  294. data/spec/unit/resource/sidebars_spec.rb +0 -43
  295. data/spec/unit/resource_collection_spec.rb +0 -175
  296. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  297. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  298. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  299. data/spec/unit/resource_controller_spec.rb +0 -273
  300. data/spec/unit/resource_registration_spec.rb +0 -61
  301. data/spec/unit/resource_spec.rb +0 -320
  302. data/spec/unit/routing_spec.rb +0 -211
  303. data/spec/unit/scope_spec.rb +0 -209
  304. data/spec/unit/settings_spec.rb +0 -117
  305. data/spec/unit/view_factory_spec.rb +0 -19
  306. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  307. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  308. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  309. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  310. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  311. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  312. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  313. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  314. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  315. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  316. data/spec/unit/views/components/columns_spec.rb +0 -187
  317. data/spec/unit/views/components/index_list_spec.rb +0 -49
  318. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  319. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  320. data/spec/unit/views/components/panel_spec.rb +0 -58
  321. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  322. data/spec/unit/views/components/site_title_spec.rb +0 -76
  323. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  324. data/spec/unit/views/components/table_for_spec.rb +0 -436
  325. data/spec/unit/views/components/tabs_spec.rb +0 -67
  326. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  327. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  328. data/spec/unit/views/pages/form_spec.rb +0 -54
  329. data/spec/unit/views/pages/index_spec.rb +0 -60
  330. data/spec/unit/views/pages/layout_spec.rb +0 -59
  331. data/spec/unit/views/pages/show_spec.rb +0 -32
  332. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  333. data/tasks/parallel_tests.rake +0 -66
@@ -1,83 +0,0 @@
1
- Feature: Index Blank Slate
2
-
3
- Viewing an index page with no resources yet
4
-
5
- Scenario: Viewing the default table with no resources
6
- Given an index configuration of:
7
- """
8
- ActiveAdmin.register Post do
9
- batch_action :favourite do
10
- # nothing
11
- end
12
- scope :all, default: true
13
- end
14
- """
15
- Then I should not see a sortable table header
16
- And I should see "There are no Posts yet. Create one"
17
- And I should not see ".index_table"
18
- And I should not see pagination
19
- When I follow "Create one"
20
- Then I should be on the new post page
21
-
22
- Scenario: Viewing the default table with no resources and no 'new' action
23
- Given an index configuration of:
24
- """
25
- ActiveAdmin.register Post do
26
- actions :index, :show
27
- end
28
- """
29
- And I should see "There are no Posts yet."
30
- And I should not see "Create one"
31
-
32
- Scenario: Viewing a index using a grid with no resources
33
- Given an index configuration of:
34
- """
35
- ActiveAdmin.register Post do
36
- index as: :grid do |post|
37
- h2 auto_link(post)
38
- end
39
- end
40
- """
41
- And I should see "There are no Posts yet. Create one"
42
-
43
- Scenario: Viewing a index using blocks with no resources
44
- Given an index configuration of:
45
- """
46
- ActiveAdmin.register Post do
47
- index as: :block do |post|
48
- span(link_to(post.title, admin_post_path(post)))
49
- end
50
- end
51
- """
52
- And I should see "There are no Posts yet. Create one"
53
-
54
- Scenario: Viewing a blog with no resources
55
- Given an index configuration of:
56
- """
57
- ActiveAdmin.register Post do
58
- index as: :blog
59
- end
60
- """
61
- And I should see "There are no Posts yet. Create one"
62
-
63
- Scenario: Customizing the default table with no resources
64
- Given an index configuration of:
65
- """
66
- ActiveAdmin.register Post do
67
- index blank_slate_link: ->{link_to("Go to dashboard", admin_root_path)} do |post|
68
- end
69
- end
70
- """
71
- When I follow "Go to dashboard"
72
- Then I should see "Dashboard"
73
-
74
- Scenario: Customizing the default table with no blank slate link
75
- Given an index configuration of:
76
- """
77
- ActiveAdmin.register Post do
78
- index blank_slate_link: false do |post|
79
- end
80
- end
81
- """
82
- Then I should see "There are no Posts yet."
83
- And I should not see "Create one"
@@ -1,75 +0,0 @@
1
- Feature: Index Parameters
2
-
3
- Scenario: Viewing index when download_links disabled
4
- Given an index configuration of:
5
- """
6
- ActiveAdmin.register Post do
7
- index as: :table, download_links: false
8
- end
9
- """
10
- Given 31 posts exist
11
- When I am on the index page for posts
12
- Then I should not see a link to download "CSV"
13
-
14
- Scenario: Viewing index when download_links disabled globally
15
- Given a configuration of:
16
- """
17
- ActiveAdmin.application.download_links = false
18
- """
19
- Given an index configuration of:
20
- """
21
- ActiveAdmin.register Post do
22
- index as: :table
23
- end
24
- """
25
- Given 1 posts exist
26
- When I am on the index page for posts
27
- Then I should be on the index page for posts
28
- Then I should not see a link to download "CSV"
29
- Given a configuration of:
30
- """
31
- ActiveAdmin.application.download_links = true
32
- """
33
-
34
- Scenario: Viewing index when download_links disabled only in one namespace
35
- Given a configuration of:
36
- """
37
- ActiveAdmin.application.namespace(:superadmin).download_links = false
38
- ActiveAdmin.register AdminUser, namespace: :superadmin
39
- """
40
- Given an index configuration of:
41
- """
42
- ActiveAdmin.register Post do
43
- index as: :table
44
- end
45
- ActiveAdmin.register Post, namespace: :superadmin do
46
- index as: :table
47
- end
48
- """
49
- Given 1 posts exist
50
- When I am on the index page for posts in the superadmin namespace
51
- Then I should be on the index page for posts in the superadmin namespace
52
- Then I should not see a link to download "CSV"
53
- When I am on the index page for posts
54
- Then I should be on the index page for posts
55
- Then I should see a link to download "CSV"
56
-
57
- Scenario: Viewing index when download_links enabled only for a resource
58
- Given a configuration of:
59
- """
60
- ActiveAdmin.application.namespace(:superadmin).download_links = false
61
- ActiveAdmin.register AdminUser, namespace: :superadmin
62
- """
63
- Given an index configuration of:
64
- """
65
- ActiveAdmin.register Post do
66
- index as: :table
67
- end
68
- ActiveAdmin.register Post, namespace: :superadmin do
69
- index as: :table, download_links: true
70
- end
71
- """
72
- Given 1 posts exist
73
- When I am on the index page for posts in the superadmin namespace
74
- Then I should be on the index page for posts in the superadmin namespace
75
- Then I should see a link to download "CSV"
@@ -1,56 +0,0 @@
1
- Feature: Index Scope To
2
-
3
- Viewing resource configs scoped to another object
4
-
5
- Background:
6
- Given 10 posts exist
7
- And a post with the title "Hello World" written by "John Doe" exists
8
- And a published post with the title "Hello World" written by "John Doe" exists
9
- Given an index configuration of:
10
- """
11
- ActiveAdmin.register Post do
12
- # Scope section to a specific author
13
- scope_to do
14
- User.find_by_first_name_and_last_name "John", "Doe"
15
- end
16
-
17
- # Set up some scopes
18
- scope :all, default: true
19
- scope :published do |posts|
20
- posts.where "published_date IS NOT NULL"
21
- end
22
- end
23
- """
24
-
25
- Scenario: Viewing the default scope counts
26
- When I am on the index page for posts
27
- Then I should see the scope "All" selected
28
- And I should see the scope "All" with the count 2
29
- And I should see 2 posts in the table
30
-
31
- When I follow "Published"
32
- Then I should see 1 posts in the table
33
-
34
- Scenario: Viewing the index with conditional scope :if
35
- Given an index configuration of:
36
- """
37
- ActiveAdmin.register Post do
38
- scope_to if: proc{ false } do
39
- User.find_by_first_name_and_last_name("John", "Doe")
40
- end
41
- end
42
- """
43
- When I am on the index page for posts
44
- Then I should see 12 posts in the table
45
-
46
- Scenario: Viewing the index with conditional scope :unless
47
- Given an index configuration of:
48
- """
49
- ActiveAdmin.register Post do
50
- scope_to unless: proc{ true } do
51
- User.find_by_first_name_and_last_name("John", "Doe")
52
- end
53
- end
54
- """
55
- When I am on the index page for posts
56
- Then I should see 12 posts in the table
@@ -1,285 +0,0 @@
1
- Feature: Index Scoping
2
-
3
- Viewing resources and scoping them
4
-
5
- Scenario: Viewing resources with one scope and no default
6
- Given 3 posts exist
7
- And an index configuration of:
8
- """
9
- ActiveAdmin.register Post do
10
- scope :all
11
- end
12
- """
13
- Then I should see the scope "All" not selected
14
- And I should see the scope "All" with the count 3
15
- And I should see 3 posts in the table
16
-
17
- Scenario: Viewing resources with one scope with dynamic name
18
- Given 3 posts exist
19
- And an index configuration of:
20
- """
21
- ActiveAdmin.register Post do
22
- scope -> { scope_title }, :all
23
-
24
- controller do
25
- def scope_title
26
- 'Neat scope'
27
- end
28
-
29
- helper_method :scope_title
30
- end
31
- end
32
- """
33
- Then I should see the scope with label "Neat scope"
34
- And I should see 3 posts in the table
35
- When I follow "Neat scope"
36
- And I should see 3 posts in the table
37
- And I should see the current scope with label "Neat scope"
38
-
39
- Scenario: Viewing resources with one scope as the default
40
- Given 3 posts exist
41
- And an index configuration of:
42
- """
43
- ActiveAdmin.register Post do
44
- scope :all, default: true
45
- end
46
- """
47
- Then I should see the scope "All" selected
48
- And I should see the scope "All" with the count 3
49
- And I should see 3 posts in the table
50
-
51
- Scenario: Viewing resources with one scope that is set as not default
52
- Given 3 posts exist
53
- And an index configuration of:
54
- """
55
- ActiveAdmin.register Post do
56
- scope :all, default: proc{ false }
57
- end
58
- """
59
- Then I should see the scope "All" not selected
60
- And I should see the scope "All" with the count 3
61
- And I should see 3 posts in the table
62
-
63
- Scenario: Viewing resources with a scope and no results
64
- Given 3 posts exist
65
- And an index configuration of:
66
- """
67
- ActiveAdmin.register Post do
68
- scope :all, default: true
69
- filter :title
70
- end
71
- """
72
- When I fill in "Title" with "Non Existing Post"
73
- And I press "Filter"
74
- Then I should see the scope "All" selected
75
-
76
-
77
- Scenario: Viewing resources with a scope but scope_count turned off
78
- Given 3 posts exist
79
- And an index configuration of:
80
- """
81
- ActiveAdmin.register Post do
82
- scope :all, default: true
83
- index as: :table, scope_count: false
84
- end
85
- """
86
- Then I should see the scope "All" selected
87
- And I should see the scope "All" with no count
88
- And I should see 3 posts in the table
89
-
90
- @scope
91
- Scenario: Viewing resources with a scope and scope count turned off for a single scope
92
- Given 3 posts exist
93
- And an index configuration of:
94
- """
95
- ActiveAdmin.register Post do
96
- scope :all, default: true, show_count: false
97
- end
98
- """
99
- Then I should see the scope "All" selected
100
- And I should see the scope "All" with no count
101
- And I should see 3 posts in the table
102
-
103
- Scenario: Viewing resources when scoping
104
- Given 2 posts exist
105
- And 3 published posts exist
106
- And an index configuration of:
107
- """
108
- ActiveAdmin.register Post do
109
- scope :all, default: true
110
- scope :published do |posts|
111
- posts.where("published_date IS NOT NULL")
112
- end
113
- end
114
- """
115
- Then I should see the scope "All" with the count 5
116
- And I should see 5 posts in the table
117
- And I should see the scope "Published" with the count 3
118
- When I follow "Published"
119
- Then I should see the scope "Published" selected
120
- Then I should see the current scope with label "Published"
121
- And I should see 3 posts in the table
122
-
123
- Scenario: Viewing resources when scoping and filtering
124
- Given 2 posts written by "Daft Punk" exist
125
- Given 1 published posts written by "Daft Punk" exist
126
-
127
- Given 1 posts written by "Alfred" exist
128
- Given 2 published posts written by "Alfred" exist
129
-
130
- And an index configuration of:
131
- """
132
- ActiveAdmin.register Post do
133
- scope :all, default: true
134
- scope :published do |posts|
135
- posts.where("published_date IS NOT NULL")
136
- end
137
- end
138
- """
139
- Then I should see the scope "All" with the count 6
140
- And I should see the scope "Published" with the count 3
141
- And I should see 6 posts in the table
142
-
143
- When I follow "Published"
144
- Then I should see the scope "Published" selected
145
- And I should see the current scope with label "Published"
146
- And I should see the scope "All" with the count 6
147
- And I should see the scope "Published" with the count 3
148
- And I should see 3 posts in the table
149
-
150
- When I select "Daft Punk" from "Author"
151
- And I press "Filter"
152
-
153
- Then I should see the scope "Published" selected
154
- And I should see the scope "All" with the count 3
155
- And I should see the scope "Published" with the count 1
156
- And I should see 1 posts in the table
157
-
158
- Scenario: Viewing resources with optional scopes
159
- Given 3 posts exist
160
- And an index configuration of:
161
- """
162
- ActiveAdmin.register Post do
163
- scope :all, if: proc { false }
164
- scope "Shown", if: proc { true } do |posts|
165
- posts
166
- end
167
- scope "Default", default: true do |posts|
168
- posts
169
- end
170
- scope 'Today', if: proc { false } do |posts|
171
- posts.where(["created_at > ? AND created_at < ?", ::Time.zone.now.beginning_of_day, ::Time.zone.now.end_of_day])
172
- end
173
- end
174
- """
175
- Then I should see the scope "Default" selected
176
- And I should not see the scope "All"
177
- And I should not see the scope "Today"
178
- And I should see the scope "Shown"
179
- And I should see the scope "Default" with the count 3
180
-
181
- Scenario: Viewing resources with multiple scopes as blocks
182
- Given 3 posts exist
183
- And an index configuration of:
184
- """
185
- ActiveAdmin.register Post do
186
- scope 'Today', default: true do |posts|
187
- posts.where(["created_at > ? AND created_at < ?", ::Time.zone.now.beginning_of_day, ::Time.zone.now.end_of_day])
188
- end
189
- scope 'Tomorrow' do |posts|
190
- posts.where(["created_at > ? AND created_at < ?", ::Time.zone.now.beginning_of_day + 1.day, ::Time.zone.now.end_of_day + 1.day])
191
- end
192
- end
193
- """
194
- Then I should see the scope "Today" selected
195
- And I should see the scope "Tomorrow" not selected
196
- And I should see the scope "Today" with the count 3
197
- And I should see the scope "Tomorrow" with the count 0
198
- And I should see 3 posts in the table
199
- And I should see a link to "Tomorrow"
200
-
201
- When I follow "Tomorrow"
202
- Then I should see the scope "Tomorrow" selected
203
- And I should see the scope "Today" not selected
204
- And I should see a link to "Today"
205
- And I should see the current scope with label "Tomorrow"
206
-
207
- Scenario: Viewing resources with scopes when scoping to user
208
- Given 2 posts written by "Daft Punk" exist
209
- And a post with the title "Monkey Wrench" written by "Foo Fighters" exists
210
- And a post with the title "Everlong" written by "Foo Fighters" exists
211
- And an index configuration of:
212
- """
213
- ActiveAdmin.register Post do
214
- scope_to :current_user
215
- scope :all, default: true
216
-
217
- filter :title
218
-
219
- controller do
220
- def current_user
221
- User.find_by_username('foo_fighters')
222
- end
223
- end
224
- end
225
- """
226
- Then I should see the scope "All" selected
227
- And I should see the scope "All" with the count 2
228
- When I fill in "Title" with "Monkey"
229
- And I press "Filter"
230
- Then I should see the scope "All" selected
231
- And I should see the scope "All" with the count 1
232
-
233
- Scenario: Viewing resources when scoping and filtering and group bys and stuff
234
- Given 2 posts written by "Daft Punk" exist
235
- Given 1 published posts written by "Daft Punk" exist
236
-
237
- Given 1 posts written by "Alfred" exist
238
-
239
- And an index configuration of:
240
- """
241
- ActiveAdmin.register Post do
242
- scope :all, default: true
243
- scope :published do |posts|
244
- posts.where("published_date IS NOT NULL")
245
- end
246
- scope :single do |posts|
247
- posts.page(1).per(1)
248
- end
249
-
250
- index do
251
- column :author_id
252
- column :count
253
- end
254
-
255
- config.sort_order = "author_id_asc"
256
-
257
- controller do
258
- def scoped_collection
259
- Post.select("author_id, count(*) as count").group("author_id")
260
- end
261
- end
262
- end
263
- """
264
- Then I should see the scope "All" with the count 2
265
- And I should see the scope "Published" with the count 1
266
- And I should see the scope "Single" with the count 1
267
- And I should see 2 posts in the table
268
-
269
- When I follow "Single"
270
- Then I should see 1 posts in the table
271
-
272
- When I follow "Published"
273
- Then I should see the scope "Published" selected
274
- And I should see the scope "All" with the count 2
275
- And I should see the scope "Published" with the count 1
276
- And I should see 1 posts in the table
277
-
278
- When I select "Daft Punk" from "Author"
279
- And I press "Filter"
280
-
281
- Then I should see the scope "Published" selected
282
- And I should see the scope "All" with the count 1
283
- And I should see the scope "Published" with the count 1
284
- And I should see 1 posts in the table
285
- And I should see the current scope with label "Published"