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,20 +0,0 @@
1
- Feature: Favicon
2
-
3
- Configuring a Favicon file
4
-
5
- Background:
6
- Given a configuration of:
7
- """
8
- ActiveAdmin.register Post
9
- ActiveAdmin.application.favicon = "a/favicon.ico"
10
- """
11
-
12
- Scenario: Logged out views show Favicon
13
- Given I am logged out
14
- When I am on the login page
15
- Then I should see the favicon "favicon"
16
-
17
- Scenario: Logged in views show Favicon
18
- Given I am logged in
19
- When I am on the dashboard
20
- Then I should see the favicon "favicon"
@@ -1,16 +0,0 @@
1
- Feature: First Boot
2
-
3
- As a developer
4
- In order to ensure I have a great first experience
5
- I want Active Admin to just work on install
6
-
7
- Scenario: Visiting /admin and logging in with no configurations
8
- Given a configuration of:
9
- """
10
- """
11
- And an admin user "admin@example.com" exists
12
- When I go to the dashboard
13
- When I fill in "Email" with "admin@example.com"
14
- And I fill in "Password" with "password"
15
- And I press "Login"
16
- Then I should be on the the dashboard
@@ -1,28 +0,0 @@
1
- Feature: Site title
2
-
3
- As a developer
4
- In order to customize the site footer
5
- I want to set it in the configuration
6
-
7
- Background:
8
- Given I am logged in
9
-
10
- Scenario: No footer is set in the configuration (default)
11
- When I am on the dashboard
12
- And I should see the default footer
13
-
14
- Scenario: Set the footer in the configuration
15
- Given a configuration of:
16
- """
17
- ActiveAdmin.application.footer = "MyApp Revision 123"
18
- """
19
- When I am on the dashboard
20
- And I should see the footer "MyApp Revision 123"
21
-
22
- Scenario: Set the footer to a proc
23
- Given a configuration of:
24
- """
25
- ActiveAdmin.application.footer = proc { "Enjoy MyApp Revision 123, #{controller.current_admin_user.try(:email)}!" }
26
- """
27
- When I am on the dashboard
28
- And I should see the footer "Enjoy MyApp Revision 123, admin@example.com!"
@@ -1,29 +0,0 @@
1
- Feature: Global Navigation
2
-
3
- Background:
4
- Given a configuration of:
5
- """
6
- ActiveAdmin.register Post
7
- """
8
- Given I am logged in
9
- And 10 posts exist
10
-
11
- Scenario: Viewing the current section in the global navigation
12
- Given I am on the index page for posts
13
- Then the "Posts" tab should be selected
14
-
15
- Scenario: Viewing the current section in the global navigation when on new page
16
- Given I am on the index page for posts
17
- And I follow "New Post"
18
- Then the "Posts" tab should be selected
19
-
20
- Scenario: Viewing the current section in the global navigation when on show page
21
- Given I am on the index page for posts
22
- And I follow "View"
23
- Then the "Posts" tab should be selected
24
-
25
- Scenario: Viewing the current section in the global navigation when on edit page
26
- Given I am on the index page for posts
27
- And I follow "View"
28
- And I follow "Edit Post"
29
- Then the "Posts" tab should be selected
@@ -1,55 +0,0 @@
1
- @locale_manipulation
2
- Feature: Internationalization
3
-
4
- ActiveAdmin should use the translations provided by the host app.
5
-
6
- Scenario: Store's model name was translated to "Bookstore"
7
- Given I am logged in
8
- And a store named "Hello words" exists
9
- When I go to the dashboard
10
- Then I should see "Bookstores"
11
-
12
- When I follow "Bookstores"
13
- Then I should see the page title "Bookstores"
14
- Then I should see "Hello words"
15
-
16
- When I follow "View"
17
- Then I should see "Bookstore Details"
18
- And I should see "Hello words"
19
- And I should see a link to "Delete Bookstore"
20
-
21
- When I follow "Edit Bookstore"
22
- Then I should see "Edit Bookstore"
23
-
24
- When I press "Update Bookstore"
25
- Then I should see a flash with "Bookstore was successfully updated."
26
-
27
- Scenario: Switching language at runtime
28
- Given I am logged in
29
- When I set my locale to "fr"
30
- And I go to the dashboard
31
- Then I should see "Store"
32
- Then I should see "Déconnexion"
33
-
34
- When I set my locale to "en"
35
- And I go to the dashboard
36
- Then I should see "Bookstore"
37
- Then I should see "Logout"
38
-
39
- Scenario: Overriding translations
40
- Given I am logged in
41
- And a store named "Hello words" exists
42
- When I go to the dashboard
43
- When I follow "Bookstores"
44
- Then I should see "Download this:"
45
-
46
- Scenario: Overriding resource details table title
47
- Given a configuration of:
48
- """
49
- ActiveAdmin.register Post
50
- """
51
- And String "Post detailed information" corresponds to "resources.post.details"
52
- And I am logged in
53
- And a post exists
54
- When I go to the last post's show page
55
- Then I should see "Post detailed information"
@@ -1,218 +0,0 @@
1
- Feature: Batch Actions
2
-
3
- @javascript
4
- Scenario: Use default (destroy) batch action
5
- Given 10 posts exist
6
- And an index configuration of:
7
- """
8
- ActiveAdmin.register Post
9
- """
10
- Then I should see the batch action button
11
- And I should see that the batch action button is disabled
12
- And I should see the batch action popover exists
13
- And I should see 10 posts in the table
14
-
15
- When I check the 1st record
16
- And I check the 2nd record
17
- And I follow "Batch Actions"
18
- Then I should see the batch action :destroy "Delete Selected"
19
-
20
- Given I click "Delete Selected" and accept confirmation
21
- Then I should see a flash with "Successfully destroyed 2 posts"
22
- And I should see 8 posts in the table
23
-
24
- Scenario: Use default (destroy) batch action when default_url_options present
25
- Given 3 posts exist
26
- And an index configuration of:
27
- """
28
- ActiveAdmin.register Post do
29
- controller do
30
- protected
31
-
32
- def default_url_options
33
- { locale: I18n.locale }
34
- end
35
- end
36
- end
37
- """
38
- When I check the 1st record
39
- And I follow "Batch Actions"
40
- Then I should see the batch action :destroy "Delete Selected"
41
-
42
- Given I submit the batch action form with "destroy"
43
- Then I should see a flash with "Successfully destroyed 1 post"
44
- And I should see 2 posts in the table
45
-
46
- Scenario: Use default (destroy) batch action on a decorated resource
47
- Given 5 posts exist
48
- And an index configuration of:
49
- """
50
- ActiveAdmin.register Post do
51
- decorate_with PostDecorator
52
- end
53
- """
54
- When I check the 2nd record
55
- And I check the 4th record
56
- And I follow "Batch Actions"
57
- Then I should see the batch action :destroy "Delete Selected"
58
-
59
- Given I submit the batch action form with "destroy"
60
- Then I should see a flash with "Successfully destroyed 2 posts"
61
- And I should see 3 posts in the table
62
-
63
- @javascript
64
- Scenario: Use default (destroy) batch action on a nested resource
65
- Given I am logged in
66
- And 5 posts written by "John Doe" exist
67
- And a configuration of:
68
- """
69
- ActiveAdmin.register User
70
- ActiveAdmin.register Post do
71
- belongs_to :user
72
- end
73
- """
74
- When I go to the last author's posts
75
- Then I should see the batch action button
76
- And I should see that the batch action button is disabled
77
- And I should see the batch action popover exists
78
- And I should see 5 posts in the table
79
-
80
- When I check the 2nd record
81
- And I check the 4th record
82
- And I follow "Batch Actions"
83
- Then I should see the batch action :destroy "Delete Selected"
84
-
85
- Given I click "Delete Selected" and accept confirmation
86
- Then I should see a flash with "Successfully destroyed 2 posts"
87
- And I should see 3 posts in the table
88
-
89
- Scenario: Disable display of batch action button if all nested buttons hide
90
- Given 1 post exist
91
- And an index configuration of:
92
- """
93
- ActiveAdmin.register Post do
94
- batch_action :destroy, false
95
- batch_action(:flag, if: proc { false } ) do
96
- render text: 42
97
- end
98
- end
99
- """
100
- Then I should not see the batch action selector
101
-
102
- Scenario: Using a custom batch action
103
- Given 10 posts exist
104
- And an index configuration of:
105
- """
106
- ActiveAdmin.register Post do
107
- batch_action(:flag) do
108
- redirect_to collection_path, notice: "Successfully flagged 10 posts"
109
- end
110
- end
111
- """
112
- When I check the 1st record
113
- Given I submit the batch action form with "flag"
114
- Then I should see a flash with "Successfully flagged 10 posts"
115
-
116
- Scenario: Disabling batch actions for a resource
117
- Given 10 posts exist
118
- And an index configuration of:
119
- """
120
- ActiveAdmin.register Post do
121
- config.batch_actions = false
122
- end
123
- """
124
- Then I should not see the batch action selector
125
- And I should not see checkboxes in the table
126
-
127
- Scenario: Disabling the default destroy batch action
128
- Given 10 posts exist
129
- And an index configuration of:
130
- """
131
- ActiveAdmin.register Post do
132
- batch_action :destroy, false
133
- batch_action(:flag) {}
134
- end
135
- """
136
- Then I should see the batch action :flag "Flag Selected"
137
- And I should not see the batch action :destroy "Delete Selected"
138
-
139
- Scenario: Optional display of batch actions
140
- Given 10 posts exist
141
- And an index configuration of:
142
- """
143
- ActiveAdmin.register Post do
144
- batch_action(:flag, if: proc { true }) {}
145
- batch_action(:unflag, if: proc { false }) {}
146
- end
147
- """
148
- Then I should see the batch action :flag "Flag Selected"
149
- And I should not see the batch action :unflag "Unflag Selected"
150
-
151
- Scenario: Sort order priority
152
- Given 10 posts exist
153
- And an index configuration of:
154
- """
155
- ActiveAdmin.register Post do
156
- batch_action(:test, priority: 3) {}
157
- batch_action(:flag, priority: 2) {}
158
- batch_action(:unflag, priority: 1) {}
159
- end
160
- """
161
- Then the 4th batch action should be "Delete Selected"
162
- And the 3rd batch action should be "Test Selected"
163
- And the 2nd batch action should be "Flag Selected"
164
- And the 1st batch action should be "Unflag Selected"
165
-
166
- Scenario: Complex naming
167
- Given 10 posts exist
168
- And an index configuration of:
169
- """
170
- ActiveAdmin.register Post do
171
- batch_action("Very Complex and Time Consuming") {}
172
- batch_action(:passing_a_symbol) {}
173
- end
174
- """
175
- Then I should see the batch action :very_complex_and_time_consuming "Very Complex and Time Consuming Selected"
176
- And I should see the batch action :passing_a_symbol "Passing A Symbol Selected"
177
-
178
- Scenario: Use a Form with text
179
- Given 10 posts exist
180
- And an index configuration of:
181
- """
182
- ActiveAdmin.register Post do
183
- batch_action :destroy, false
184
- batch_action(:action_with_form, form: { name: :text }) {}
185
- end
186
- """
187
-
188
- When I check the 1st record
189
- And I follow "Batch Actions"
190
- Then I should be show a input with name "name" and type "text"
191
-
192
- Scenario: Use a Form with select
193
- Given 10 posts exist
194
- And an index configuration of:
195
- """
196
- ActiveAdmin.register Post do
197
- batch_action :destroy, false
198
- batch_action(:action_with_form, form: { type: ["a", "b"] }) {}
199
- end
200
- """
201
-
202
- When I check the 1st record
203
- And I follow "Batch Actions"
204
- Then I should be show a select with name "type" with the values "a, b"
205
-
206
- Scenario: Use a Form with select values from proc
207
- Given 10 posts exist
208
- And an index configuration of:
209
- """
210
- ActiveAdmin.register Post do
211
- batch_action :destroy, false
212
- batch_action(:action_with_form, form: ->{ {type: ["a", "b"]} }) {}
213
- end
214
- """
215
-
216
- When I check the 1st record
217
- And I follow "Batch Actions"
218
- Then I should be show a select with name "type" with the values "a, b"
@@ -1,250 +0,0 @@
1
- Feature: Index Filtering
2
-
3
- Scenario: Default Resources Filters
4
- Given 3 posts exist
5
- And an index configuration of:
6
- """
7
- ActiveAdmin.register Post
8
- """
9
- When I am on the index page for posts
10
- Then I should see "Displaying all 3 Posts"
11
- And I should see the following filters:
12
- | Author | select |
13
- | Category | select |
14
- | Title | string |
15
- | Body | string |
16
- | Published date | date range |
17
- | Created at | date range |
18
- | Updated at | date range |
19
-
20
- When I fill in "Title" with "Hello World 2"
21
- And I press "Filter"
22
- And I should see 1 posts in the table
23
- And I should see "Hello World 2" within ".index_table"
24
- And I should see current filter "title_contains" equal to "Hello World 2" with label "Title contains"
25
-
26
- Scenario: No XSS in Resources Filters
27
- Given an index configuration of:
28
- """
29
- ActiveAdmin.register Post do
30
- filter :title
31
- end
32
- """
33
- When I fill in "Title" with "<script>alert('hax')</script>"
34
- And I press "Filter"
35
- Then I should see current filter "title_contains" equal to "<script>alert('hax')</script>" with label "Title contains"
36
-
37
- Scenario: Filtering posts with no results
38
- Given 3 posts exist
39
- And an index configuration of:
40
- """
41
- ActiveAdmin.register Post
42
- """
43
- When I am on the index page for posts
44
- Then I should see "Displaying all 3 Posts"
45
-
46
- When I fill in "Title" with "THIS IS NOT AN EXISTING TITLE!!"
47
- And I press "Filter"
48
- Then I should not see ".index_table"
49
- And I should not see a sortable table header
50
- And I should not see pagination
51
- And I should see "No Posts found"
52
-
53
- Scenario: Filtering posts with pagination
54
- Given 7 posts with the title "Hello World 3" exist
55
- And 1 post with the title "Hello World 4" exist
56
- And an index configuration of:
57
- """
58
- ActiveAdmin.register Post do
59
- config.per_page = 2
60
- end
61
- """
62
- When I fill in "Title" with "Hello World 3"
63
- And I press "Filter"
64
-
65
- Then I follow "2"
66
- Then I should see "Displaying Posts 3 - 4 of 7 in total"
67
-
68
- Then I follow "3"
69
- Then I should see "Displaying Posts 5 - 6 of 7 in total"
70
-
71
- Scenario: Filtering posts while not on the first page
72
- Given 9 posts exist
73
- And an index configuration of:
74
- """
75
- ActiveAdmin.register Post do
76
- config.per_page = 5
77
- end
78
- """
79
- When I follow "2"
80
- Then I should see "Displaying Posts 6 - 9 of 9 in total"
81
-
82
- When I fill in "Title" with "Hello World 2"
83
- And I press "Filter"
84
- And I should see 1 posts in the table
85
- And I should see "Hello World 2" within ".index_table"
86
-
87
- Scenario: Checkboxes - Filtering posts written by anyone
88
- Given 1 post exists
89
- And a post with the title "Hello World" written by "Jane Doe" exists
90
- And an index configuration of:
91
- """
92
- ActiveAdmin.register Post do
93
- filter :author, as: :check_boxes
94
- end
95
- """
96
- When I press "Filter"
97
- Then I should see 2 posts in the table
98
- And I should see "Hello World" within ".index_table"
99
- And the "Jane Doe" checkbox should not be checked
100
-
101
- Scenario: Checkboxes - Filtering posts written by Jane Doe
102
- Given 1 post exists
103
- And a post with the title "Hello World" written by "Jane Doe" exists
104
- And an index configuration of:
105
- """
106
- ActiveAdmin.register Post do
107
- filter :author, as: :check_boxes
108
- end
109
- """
110
- When I check "Jane Doe"
111
- And I press "Filter"
112
- Then I should see 1 posts in the table
113
- And I should see "Hello World" within ".index_table"
114
- And the "Jane Doe" checkbox should be checked
115
- And I should see current filter "author_id_in" equal to "Jane Doe"
116
-
117
- Scenario: Disabling filters
118
- Given an index configuration of:
119
- """
120
- ActiveAdmin.register Post do
121
- config.filters = false
122
- end
123
- """
124
- Then I should not see a sidebar titled "Filters"
125
-
126
- Scenario: Select - Filtering categories with posts written by Jane Doe
127
- Given a category named "Mystery" exists
128
- And 1 post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
129
- And an index configuration of:
130
- """
131
- ActiveAdmin.register Category
132
- """
133
- When I select "Jane Doe" from "Authors"
134
- And I press "Filter"
135
- Then I should see 1 categories in the table
136
- And I should see "Non-Fiction" within ".index_table"
137
- And I should not see "Mystery" within ".index_table"
138
- And I should see current filter "posts_author_id_eq" equal to "Jane Doe"
139
-
140
- @javascript
141
- Scenario: Clearing filter preserves custom parameters
142
- Given a category named "Mystery" exists
143
- And 1 post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
144
- And 1 post with the title "Lorem Ipsum" written by "Joe Smith" in category "Mystery" exists
145
- And an index configuration of:
146
- """
147
- ActiveAdmin.register Category
148
- ActiveAdmin.application.favicon = false
149
- """
150
- Then I should see "Displaying all 2 Categories"
151
- When I add parameter "scope" with value "all" to the URL
152
- And I add parameter "foo" with value "bar" to the URL
153
- And I select "Hello World" from "Posts"
154
- And I press "Filter"
155
- Then I should see "Non-Fiction"
156
- And I should not see "Mystery"
157
- When I click "Clear Filters"
158
- Then I should see "Non-Fiction"
159
- And I should see "Mystery"
160
- And I should have parameter "foo" with value "bar"
161
- And I should have parameter "scope" with value "all"
162
-
163
- Scenario: Checkboxes - Filtering categories via posts written by anyone
164
- Given a category named "Mystery" exists
165
- And a post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
166
- And an index configuration of:
167
- """
168
- ActiveAdmin.register Category do
169
- filter :authors, as: :check_boxes
170
- end
171
- """
172
- When I press "Filter"
173
- Then I should see 2 posts in the table
174
- And I should see "Mystery" within ".index_table"
175
- And I should see "Non-Fiction" within ".index_table"
176
- And the "Jane Doe" checkbox should not be checked
177
- And should not see a sidebar titled "Search Status:"
178
-
179
- Scenario: Checkboxes - Filtering categories via posts written by Jane Doe
180
- Given a category named "Mystery" exists
181
- And a post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
182
- And an index configuration of:
183
- """
184
- ActiveAdmin.register Category do
185
- filter :authors, as: :check_boxes
186
- end
187
-
188
- """
189
- When I check "Jane Doe"
190
- And I press "Filter"
191
- Then I should see 1 categories in the table
192
- And I should see "Non-Fiction" within ".index_table"
193
- And the "Jane Doe" checkbox should be checked
194
-
195
- Scenario: Filtering posts without default scope
196
-
197
- Given a post with the title "Hello World" written by "Jane Doe" exists
198
- Given an index configuration of:
199
- """
200
- ActiveAdmin.register Post do
201
- scope :all
202
- scope :published do |posts|
203
- posts.where("published_date IS NOT NULL")
204
- end
205
-
206
- filter :title
207
- end
208
- """
209
- When I fill in "Title" with "Hello"
210
- And I press "Filter"
211
- Then I should see current filter "title_contains" equal to "Hello" with label "Title contains"
212
-
213
- Scenario: Filtering posts by category
214
- Given a category named "Mystery" exists
215
- And a post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
216
- Given an index configuration of:
217
- """
218
- ActiveAdmin.register Category
219
- ActiveAdmin.register Post do
220
- filter :category
221
- end
222
- """
223
- And I am on the index page for posts
224
-
225
- When I select "Non-Fiction" from "Category"
226
- And I press "Filter"
227
- Then I should see a sidebar titled "Search Status:"
228
- And I should see link "Non-Fiction" in current filters
229
-
230
- Scenario: Enabling filters status sidebar
231
- Given an index configuration of:
232
- """
233
- ActiveAdmin.application.current_filters = false
234
- ActiveAdmin.register Post do
235
- config.current_filters = true
236
- end
237
- """
238
- And I press "Filter"
239
- Then I should see a sidebar titled "Search Status:"
240
-
241
- Scenario: Disabling filters status sidebar
242
- Given an index configuration of:
243
- """
244
- ActiveAdmin.application.current_filters = true
245
- ActiveAdmin.register Post do
246
- config.current_filters = false
247
- end
248
- """
249
- And I press "Filter"
250
- Then I should not see a sidebar titled "Search Status:"