activeadmin 1.3.0 → 2.0.0.rc1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +307 -123
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +90 -46
- data/README.md +66 -19
- data/app/assets/javascripts/active_admin/base.es6 +23 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
- data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
- data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
- data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
- data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
- data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
- data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
- data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
- data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
- data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
- data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
- data/config/locales/bg.yml +0 -1
- data/config/locales/de.yml +10 -0
- data/config/locales/en.yml +19 -1
- data/config/locales/es.yml +20 -1
- data/config/locales/fi.yml +1 -1
- data/config/locales/he.yml +0 -1
- data/config/locales/hu.yml +4 -0
- data/config/locales/it.yml +4 -0
- data/config/locales/lt.yml +2 -2
- data/config/locales/nb.yml +15 -5
- data/config/locales/nl.yml +11 -0
- data/config/locales/pl.yml +71 -3
- data/config/locales/ru.yml +2 -0
- data/config/locales/tr.yml +9 -0
- data/config/locales/uk.yml +2 -0
- data/config/locales/zh-CN.yml +33 -5
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +2 -2
- data/docs/1-general-configuration.md +16 -1
- data/docs/10-custom-pages.md +14 -0
- data/docs/12-arbre-components.md +28 -1
- data/docs/13-authorization-adapter.md +40 -21
- data/docs/2-resource-customization.md +8 -3
- data/docs/3-index-pages/custom-index.md +1 -1
- data/docs/3-index-pages/index-as-blog.md +1 -1
- data/docs/3-index-pages/index-as-table.md +5 -5
- data/docs/3-index-pages.md +17 -0
- data/docs/5-forms.md +16 -2
- data/docs/8-custom-actions.md +11 -0
- data/docs/CNAME +1 -1
- data/docs/Gemfile +2 -0
- data/docs/Gemfile.lock +249 -0
- data/docs/_config.yml +1 -1
- data/docs/_includes/toc.html +1 -1
- data/docs/_includes/top-menu.html +9 -1
- data/docs/documentation.md +1 -1
- data/docs/images/tidelift.svg +14 -0
- data/docs/index.html +2 -2
- data/docs/stylesheets/main.css +26 -2
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +49 -155
- data/lib/active_admin/application_settings.rb +42 -0
- data/lib/active_admin/asset_registration.rb +0 -8
- data/lib/active_admin/base_controller/authorization.rb +3 -6
- data/lib/active_admin/base_controller.rb +6 -6
- data/lib/active_admin/batch_actions/controller.rb +2 -2
- data/lib/active_admin/batch_actions/resource_extension.rb +4 -4
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/csv_builder.rb +1 -1
- data/lib/active_admin/dependency.rb +1 -69
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/dsl.rb +1 -8
- data/lib/active_admin/dynamic_setting.rb +38 -0
- data/lib/active_admin/dynamic_settings_node.rb +28 -0
- data/lib/active_admin/engine.rb +5 -0
- data/lib/active_admin/error.rb +1 -1
- data/lib/active_admin/filters/active_filter.rb +4 -2
- data/lib/active_admin/filters/active_sidebar.rb +5 -1
- data/lib/active_admin/filters/forms.rb +7 -4
- data/lib/active_admin/filters/formtastic_addons.rb +1 -1
- data/lib/active_admin/filters/resource_extension.rb +4 -4
- data/lib/active_admin/form_builder.rb +97 -62
- data/lib/active_admin/generators/boilerplate.rb +1 -1
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +8 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
- data/lib/active_admin/menu.rb +2 -8
- data/lib/active_admin/menu_item.rb +4 -32
- data/lib/active_admin/namespace.rb +20 -8
- data/lib/active_admin/namespace_settings.rb +110 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
- data/lib/active_admin/orm/active_record/comments.rb +15 -4
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/pundit_adapter.rb +13 -4
- data/lib/active_admin/resource/action_items.rb +7 -2
- data/lib/active_admin/resource/attributes.rb +7 -4
- data/lib/active_admin/resource/menu.rb +3 -3
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/routes.rb +9 -4
- data/lib/active_admin/resource/scopes.rb +3 -3
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource.rb +2 -2
- data/lib/active_admin/resource_collection.rb +2 -2
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/decorators.rb +3 -3
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/resource_dsl.rb +5 -3
- data/lib/active_admin/router.rb +89 -84
- data/lib/active_admin/scope.rb +9 -5
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/display_helper.rb +10 -2
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
- data/lib/active_admin/view_helpers.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +9 -4
- data/lib/active_admin/views/components/attributes_table.rb +3 -3
- data/lib/active_admin/views/components/menu.rb +32 -0
- data/lib/active_admin/views/components/menu_item.rb +58 -0
- data/lib/active_admin/views/components/paginated_collection.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +11 -4
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/sidebar_section.rb +0 -3
- data/lib/active_admin/views/components/site_title.rb +5 -6
- data/lib/active_admin/views/components/status_tag.rb +1 -18
- data/lib/active_admin/views/components/table_for.rb +3 -12
- data/lib/active_admin/views/components/tabs.rb +15 -3
- data/lib/active_admin/views/footer.rb +3 -7
- data/lib/active_admin/views/header.rb +3 -15
- data/lib/active_admin/views/index_as_blog.rb +1 -1
- data/lib/active_admin/views/index_as_grid.rb +25 -25
- data/lib/active_admin/views/index_as_table.rb +11 -10
- data/lib/active_admin/views/pages/base.rb +30 -53
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin.rb +9 -4
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/install/install_generator.rb +6 -2
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -1
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
- data/lib/ransack_ext.rb +3 -3
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
- metadata +120 -523
- data/.github/ISSUE_TEMPLATE.md +0 -20
- data/.gitignore +0 -49
- data/.mdlrc +0 -1
- data/.rubocop.yml +0 -76
- data/.simplecov +0 -13
- data/.travis.yml +0 -51
- data/.yardopts +0 -7
- data/Gemfile +0 -58
- data/Rakefile +0 -54
- data/activeadmin.gemspec +0 -32
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
- data/codecov.yml +0 -25
- data/config/i18n-tasks.yml +0 -26
- data/config/mdl_style.rb +0 -9
- data/cucumber.yml +0 -3
- data/features/action_item.feature +0 -73
- data/features/authorization.feature +0 -64
- data/features/authorization_cancan.feature +0 -52
- data/features/authorization_pundit.feature +0 -37
- data/features/belongs_to.feature +0 -124
- data/features/breadcrumb.feature +0 -75
- data/features/comments/commenting.feature +0 -178
- data/features/comments/viewing_index.feature +0 -19
- data/features/create_another.feature +0 -55
- data/features/dashboard.feature +0 -16
- data/features/decorators.feature +0 -43
- data/features/development_reloading.feature +0 -28
- data/features/edit_page.feature +0 -116
- data/features/favicon.feature +0 -20
- data/features/first_boot.feature +0 -16
- data/features/footer.feature +0 -28
- data/features/global_navigation.feature +0 -29
- data/features/i18n.feature +0 -55
- data/features/index/batch_actions.feature +0 -218
- data/features/index/filters.feature +0 -250
- data/features/index/format_as_csv.feature +0 -220
- data/features/index/formats.feature +0 -88
- data/features/index/index_as_block.feature +0 -15
- data/features/index/index_as_blog.feature +0 -69
- data/features/index/index_as_grid.feature +0 -45
- data/features/index/index_as_table.feature +0 -291
- data/features/index/index_blank_slate.feature +0 -83
- data/features/index/index_parameters.feature +0 -75
- data/features/index/index_scope_to.feature +0 -56
- data/features/index/index_scopes.feature +0 -285
- data/features/index/page_title.feature +0 -41
- data/features/index/pagination.feature +0 -63
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -72
- data/features/meta_tags.feature +0 -21
- data/features/new_page.feature +0 -136
- data/features/registering_assets.feature +0 -38
- data/features/registering_pages.feature +0 -237
- data/features/registering_resources.feature +0 -33
- data/features/renamed_resource.feature +0 -30
- data/features/root_to.feature +0 -17
- data/features/show/attributes_table_title.feature +0 -54
- data/features/show/columns.feature +0 -40
- data/features/show/default_content.feature +0 -44
- data/features/show/page_title.feature +0 -58
- data/features/show/tabs.feature +0 -33
- data/features/sidebar_sections.feature +0 -210
- data/features/site_title.feature +0 -47
- data/features/specifying_actions.feature +0 -118
- data/features/step_definitions/action_item_steps.rb +0 -7
- data/features/step_definitions/action_link_steps.rb +0 -19
- data/features/step_definitions/additional_web_steps.rb +0 -81
- data/features/step_definitions/asset_steps.rb +0 -15
- data/features/step_definitions/attribute_steps.rb +0 -18
- data/features/step_definitions/attributes_table_title_steps.rb +0 -11
- data/features/step_definitions/batch_action_steps.rb +0 -81
- data/features/step_definitions/blog_steps.rb +0 -3
- data/features/step_definitions/breadcrumb_steps.rb +0 -3
- data/features/step_definitions/column_steps.rb +0 -8
- data/features/step_definitions/comment_steps.rb +0 -32
- data/features/step_definitions/configuration_steps.rb +0 -100
- data/features/step_definitions/dashboard_steps.rb +0 -15
- data/features/step_definitions/factory_steps.rb +0 -35
- data/features/step_definitions/filter_steps.rb +0 -47
- data/features/step_definitions/flash_steps.rb +0 -11
- data/features/step_definitions/footer_steps.rb +0 -11
- data/features/step_definitions/format_steps.rb +0 -56
- data/features/step_definitions/i18n_steps.rb +0 -11
- data/features/step_definitions/index_scope_steps.rb +0 -29
- data/features/step_definitions/index_views_steps.rb +0 -3
- data/features/step_definitions/layout_steps.rb +0 -3
- data/features/step_definitions/member_link_steps.rb +0 -7
- data/features/step_definitions/menu_steps.rb +0 -11
- data/features/step_definitions/meta_tag_steps.rb +0 -3
- data/features/step_definitions/pagination_steps.rb +0 -15
- data/features/step_definitions/sidebar_steps.rb +0 -11
- data/features/step_definitions/site_title_steps.rb +0 -17
- data/features/step_definitions/tab_steps.rb +0 -8
- data/features/step_definitions/table_steps.rb +0 -116
- data/features/step_definitions/user_steps.rb +0 -52
- data/features/step_definitions/web_steps.rb +0 -86
- data/features/sti_resource.feature +0 -65
- data/features/strong_parameters.feature +0 -69
- data/features/support/env.rb +0 -122
- data/features/support/paths.rb +0 -73
- data/features/support/regular_env.rb +0 -7
- data/features/support/reload_env.rb +0 -7
- data/features/support/selectors.rb +0 -45
- data/features/users/logging_in.feature +0 -36
- data/features/users/logging_out.feature +0 -13
- data/features/users/resetting_password.feature +0 -34
- data/gemfiles/rails_42.gemfile +0 -10
- data/gemfiles/rails_50.gemfile +0 -10
- data/gemfiles/rails_51.gemfile +0 -10
- data/gemfiles/rails_52.gemfile +0 -11
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
- data/lib/active_admin/helpers/settings.rb +0 -114
- data/lib/bug_report_templates/active_admin_master.rb +0 -112
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/spec/bug_report_templates_spec.rb +0 -26
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
- data/spec/javascripts/fixtures/checkboxes.html +0 -9
- data/spec/javascripts/fixtures/flashes.html +0 -2
- data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
- data/spec/javascripts/helpers/SpecHelper.js +0 -3
- data/spec/javascripts/support/jasmine.yml +0 -74
- data/spec/javascripts/support/jasmine_runner.rb +0 -19
- data/spec/rails_helper.rb +0 -59
- data/spec/requests/default_namespace_spec.rb +0 -81
- data/spec/requests/memory_spec.rb +0 -25
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -1
- data/spec/support/active_admin_integration_spec_helper.rb +0 -73
- data/spec/support/active_admin_request_helpers.rb +0 -39
- data/spec/support/rails_template.rb +0 -153
- data/spec/support/rails_template_with_data.rb +0 -327
- data/spec/support/templates/admin/stores.rb +0 -7
- data/spec/support/templates/en.yml +0 -8
- data/spec/support/templates/manifest.js +0 -3
- data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
- data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
- data/spec/support/templates/policies/admin_user_policy.rb +0 -11
- data/spec/support/templates/policies/application_policy.rb +0 -44
- data/spec/support/templates/policies/category_policy.rb +0 -7
- data/spec/support/templates/policies/post_policy.rb +0 -15
- data/spec/support/templates/policies/store_policy.rb +0 -11
- data/spec/support/templates/policies/user_policy.rb +0 -11
- data/spec/support/templates/post_decorator.rb +0 -24
- data/spec/unit/abstract_view_factory_spec.rb +0 -78
- data/spec/unit/action_builder_spec.rb +0 -158
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -184
- data/spec/unit/asset_registration_spec.rb +0 -81
- data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
- data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
- data/spec/unit/authorization/index_overriding_spec.rb +0 -23
- data/spec/unit/auto_link_spec.rb +0 -93
- data/spec/unit/batch_actions/resource_spec.rb +0 -84
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -76
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -176
- data/spec/unit/component_spec.rb +0 -18
- data/spec/unit/config_shared_examples.rb +0 -59
- data/spec/unit/controller_filters_spec.rb +0 -41
- data/spec/unit/csv_builder_spec.rb +0 -313
- data/spec/unit/dependency_spec.rb +0 -135
- data/spec/unit/devise_spec.rb +0 -110
- data/spec/unit/dsl_spec.rb +0 -120
- data/spec/unit/filters/active_filter_spec.rb +0 -189
- data/spec/unit/filters/active_spec.rb +0 -24
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
- data/spec/unit/filters/resource_spec.rb +0 -128
- data/spec/unit/form_builder_spec.rb +0 -990
- data/spec/unit/generators/install_spec.rb +0 -31
- data/spec/unit/helpers/collection_spec.rb +0 -68
- data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
- data/spec/unit/helpers/scope_chain_spec.rb +0 -35
- data/spec/unit/helpers/settings_spec.rb +0 -30
- data/spec/unit/i18n_spec.rb +0 -29
- data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
- data/spec/unit/menu_collection_spec.rb +0 -62
- data/spec/unit/menu_item_spec.rb +0 -141
- data/spec/unit/menu_spec.rb +0 -71
- data/spec/unit/namespace/authorization_spec.rb +0 -27
- data/spec/unit/namespace/register_page_spec.rb +0 -99
- data/spec/unit/namespace/register_resource_spec.rb +0 -162
- data/spec/unit/namespace_spec.rb +0 -124
- data/spec/unit/order_clause_spec.rb +0 -81
- data/spec/unit/page_controller_spec.rb +0 -5
- data/spec/unit/page_spec.rb +0 -128
- data/spec/unit/pretty_format_spec.rb +0 -82
- data/spec/unit/pundit_adapter_spec.rb +0 -98
- data/spec/unit/resource/action_items_spec.rb +0 -69
- data/spec/unit/resource/attributes_spec.rb +0 -49
- data/spec/unit/resource/includes_spec.rb +0 -21
- data/spec/unit/resource/menu_spec.rb +0 -18
- data/spec/unit/resource/naming_spec.rb +0 -122
- data/spec/unit/resource/ordering_spec.rb +0 -35
- data/spec/unit/resource/page_presenters_spec.rb +0 -44
- data/spec/unit/resource/pagination_spec.rb +0 -38
- data/spec/unit/resource/routes_spec.rb +0 -125
- data/spec/unit/resource/scopes_spec.rb +0 -50
- data/spec/unit/resource/sidebars_spec.rb +0 -43
- data/spec/unit/resource_collection_spec.rb +0 -175
- data/spec/unit/resource_controller/data_access_spec.rb +0 -234
- data/spec/unit/resource_controller/decorators_spec.rb +0 -94
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
- data/spec/unit/resource_controller_spec.rb +0 -273
- data/spec/unit/resource_registration_spec.rb +0 -61
- data/spec/unit/resource_spec.rb +0 -320
- data/spec/unit/routing_spec.rb +0 -211
- data/spec/unit/scope_spec.rb +0 -209
- data/spec/unit/settings_spec.rb +0 -117
- data/spec/unit/view_factory_spec.rb +0 -19
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
- data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
- data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
- data/spec/unit/views/components/attributes_table_spec.rb +0 -271
- data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
- data/spec/unit/views/components/blank_slate_spec.rb +0 -27
- data/spec/unit/views/components/columns_spec.rb +0 -187
- data/spec/unit/views/components/index_list_spec.rb +0 -49
- data/spec/unit/views/components/index_table_for_spec.rb +0 -127
- data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
- data/spec/unit/views/components/panel_spec.rb +0 -58
- data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
- data/spec/unit/views/components/site_title_spec.rb +0 -76
- data/spec/unit/views/components/status_tag_spec.rb +0 -265
- data/spec/unit/views/components/table_for_spec.rb +0 -436
- data/spec/unit/views/components/tabs_spec.rb +0 -67
- data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
- data/spec/unit/views/index_as_blog_spec.rb +0 -76
- data/spec/unit/views/pages/form_spec.rb +0 -54
- data/spec/unit/views/pages/index_spec.rb +0 -60
- data/spec/unit/views/pages/layout_spec.rb +0 -59
- data/spec/unit/views/pages/show_spec.rb +0 -32
- data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
- data/tasks/docs.rake +0 -64
- data/tasks/lint.rake +0 -21
- data/tasks/local.rake +0 -25
- data/tasks/parallel_tests.rake +0 -66
- data/tasks/test.rake +0 -29
data/features/show/tabs.feature
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
Feature: Show - Tabs
|
2
|
-
|
3
|
-
Add tabs with different content to the page
|
4
|
-
|
5
|
-
Background:
|
6
|
-
Given a post with the title "Hello World" written by "Jane Doe" exists
|
7
|
-
|
8
|
-
@javascript
|
9
|
-
Scenario: Set a method to be called on the resource as the title
|
10
|
-
Given a show configuration of:
|
11
|
-
"""
|
12
|
-
ActiveAdmin.register Post do
|
13
|
-
show do
|
14
|
-
tabs do
|
15
|
-
tab :overview do
|
16
|
-
span "tab 1"
|
17
|
-
end
|
18
|
-
|
19
|
-
tab 'テスト', id: :test_non_ascii do
|
20
|
-
span "tab 2"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
"""
|
26
|
-
|
27
|
-
Then show me the page
|
28
|
-
Then I should see two tabs "Overview" and "テスト"
|
29
|
-
And I should see the element "#overview span"
|
30
|
-
And I should not see the element "#test_non_ascii span"
|
31
|
-
Then I follow "テスト"
|
32
|
-
And I should see the element "#test_non_ascii span"
|
33
|
-
And I should not see the element "#overview span"
|
@@ -1,210 +0,0 @@
|
|
1
|
-
Feature: Sidebar Sections
|
2
|
-
|
3
|
-
Creating and Configuring sidebar sections
|
4
|
-
|
5
|
-
Background:
|
6
|
-
Given I am logged in
|
7
|
-
And a post with the title "Hello World" exists
|
8
|
-
|
9
|
-
Scenario: Create a sidebar for all actions
|
10
|
-
Given a configuration of:
|
11
|
-
"""
|
12
|
-
ActiveAdmin.register Post do
|
13
|
-
sidebar :help do
|
14
|
-
"Need help? Email us at help@example.com"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
"""
|
18
|
-
When I am on the index page for posts
|
19
|
-
Then I should see a sidebar titled "Help"
|
20
|
-
Then I should see "Need help" within the "Help" sidebar
|
21
|
-
|
22
|
-
When I follow "View"
|
23
|
-
Then I should see a sidebar titled "Help"
|
24
|
-
|
25
|
-
When I follow "Edit Post"
|
26
|
-
Then I should see a sidebar titled "Help"
|
27
|
-
|
28
|
-
When I am on the index page for posts
|
29
|
-
When I follow "New Post"
|
30
|
-
Then I should see a sidebar titled "Help"
|
31
|
-
|
32
|
-
|
33
|
-
Scenario: Create a sidebar for only one action
|
34
|
-
Given a configuration of:
|
35
|
-
"""
|
36
|
-
ActiveAdmin.register Post do
|
37
|
-
sidebar :help, only: :index do
|
38
|
-
"Need help? Email us at help@example.com"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
"""
|
42
|
-
When I am on the index page for posts
|
43
|
-
Then I should see a sidebar titled "Help"
|
44
|
-
Then I should see "Need help" within the "Help" sidebar
|
45
|
-
|
46
|
-
When I follow "View"
|
47
|
-
Then I should not see a sidebar titled "Help"
|
48
|
-
|
49
|
-
When I follow "Edit Post"
|
50
|
-
Then I should not see a sidebar titled "Help"
|
51
|
-
|
52
|
-
When I am on the index page for posts
|
53
|
-
When I follow "New Post"
|
54
|
-
Then I should not see a sidebar titled "Help"
|
55
|
-
|
56
|
-
|
57
|
-
Scenario: Create a sidebar for all except one action
|
58
|
-
Given a configuration of:
|
59
|
-
"""
|
60
|
-
ActiveAdmin.register Post do
|
61
|
-
sidebar :help, except: :index do
|
62
|
-
"Need help? Email us at help@example.com"
|
63
|
-
end
|
64
|
-
end
|
65
|
-
"""
|
66
|
-
When I am on the index page for posts
|
67
|
-
Then I should not see a sidebar titled "Help"
|
68
|
-
|
69
|
-
When I follow "View"
|
70
|
-
Then I should see a sidebar titled "Help"
|
71
|
-
|
72
|
-
When I follow "Edit Post"
|
73
|
-
Then I should see a sidebar titled "Help"
|
74
|
-
|
75
|
-
When I am on the index page for posts
|
76
|
-
When I follow "New Post"
|
77
|
-
Then I should see a sidebar titled "Help"
|
78
|
-
|
79
|
-
Scenario: Create a sidebar for only one action with if clause that returns false
|
80
|
-
Given a configuration of:
|
81
|
-
"""
|
82
|
-
ActiveAdmin.register Post do
|
83
|
-
sidebar :help, only: :index, if: proc{ current_active_admin_user.nil? } do
|
84
|
-
"Need help? Email us at help@example.com"
|
85
|
-
end
|
86
|
-
end
|
87
|
-
"""
|
88
|
-
When I am on the index page for posts
|
89
|
-
Then I should not see a sidebar titled "Help"
|
90
|
-
|
91
|
-
When I follow "View"
|
92
|
-
Then I should not see a sidebar titled "Help"
|
93
|
-
|
94
|
-
When I follow "Edit Post"
|
95
|
-
Then I should not see a sidebar titled "Help"
|
96
|
-
|
97
|
-
When I am on the index page for posts
|
98
|
-
When I follow "New Post"
|
99
|
-
Then I should not see a sidebar titled "Help"
|
100
|
-
|
101
|
-
Scenario: Create a sidebar for only one action with if clause with method symbol
|
102
|
-
Given a configuration of:
|
103
|
-
"""
|
104
|
-
module SidebarHelper
|
105
|
-
def can_sidebar?; false; end
|
106
|
-
end
|
107
|
-
ActiveAdmin.register Post do
|
108
|
-
controller { helper SidebarHelper }
|
109
|
-
sidebar :help, only: :index, if: :can_sidebar? do
|
110
|
-
"Need help? Email us at help@example.com"
|
111
|
-
end
|
112
|
-
end
|
113
|
-
"""
|
114
|
-
When I am on the index page for posts
|
115
|
-
Then I should not see a sidebar titled "Help"
|
116
|
-
|
117
|
-
When I follow "View"
|
118
|
-
Then I should not see a sidebar titled "Help"
|
119
|
-
|
120
|
-
When I follow "Edit Post"
|
121
|
-
Then I should not see a sidebar titled "Help"
|
122
|
-
|
123
|
-
When I am on the index page for posts
|
124
|
-
When I follow "New Post"
|
125
|
-
Then I should not see a sidebar titled "Help"
|
126
|
-
|
127
|
-
Scenario: Create a sidebar for only one action with if clause that returns true
|
128
|
-
Given a configuration of:
|
129
|
-
"""
|
130
|
-
ActiveAdmin.register Post do
|
131
|
-
sidebar :help, only: :show, if: proc{ !current_active_admin_user.nil? } do
|
132
|
-
"Need help? Email us at help@example.com"
|
133
|
-
end
|
134
|
-
end
|
135
|
-
"""
|
136
|
-
When I am on the index page for posts
|
137
|
-
Then I should not see a sidebar titled "Help"
|
138
|
-
|
139
|
-
When I follow "View"
|
140
|
-
Then I should see a sidebar titled "Help"
|
141
|
-
Then I should see "Need help" within the "Help" sidebar
|
142
|
-
|
143
|
-
When I follow "Edit Post"
|
144
|
-
Then I should not see a sidebar titled "Help"
|
145
|
-
|
146
|
-
When I am on the index page for posts
|
147
|
-
When I follow "New Post"
|
148
|
-
Then I should not see a sidebar titled "Help"
|
149
|
-
|
150
|
-
Scenario: Create a sidebar with deep content
|
151
|
-
Given a configuration of:
|
152
|
-
"""
|
153
|
-
ActiveAdmin.register Post do
|
154
|
-
sidebar :help do
|
155
|
-
ul do
|
156
|
-
li "First List First Item"
|
157
|
-
li "First List Second Item"
|
158
|
-
end
|
159
|
-
ul do
|
160
|
-
li "Second List First Item"
|
161
|
-
li "Second List Second Item"
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
165
|
-
"""
|
166
|
-
When I am on the index page for posts
|
167
|
-
Then I should see a sidebar titled "Help"
|
168
|
-
And I should see "First List First Item" within the "Help" sidebar
|
169
|
-
And I should see "Second List Second Item" within the "Help" sidebar
|
170
|
-
|
171
|
-
Scenario: Rendering sidebar by default without a block or partial name
|
172
|
-
Given "app/views/admin/posts/_help_sidebar.html.erb" contains:
|
173
|
-
"""
|
174
|
-
<p>Hello World from a partial</p>
|
175
|
-
"""
|
176
|
-
Given a configuration of:
|
177
|
-
"""
|
178
|
-
ActiveAdmin.register Post do
|
179
|
-
sidebar :help
|
180
|
-
end
|
181
|
-
"""
|
182
|
-
When I am on the index page for posts
|
183
|
-
Then I should see "Hello World from a partial" within the "Help" sidebar
|
184
|
-
|
185
|
-
Scenario: Rendering a partial as the sidebar content
|
186
|
-
Given "app/views/admin/posts/_custom_help_partial.html.erb" contains:
|
187
|
-
"""
|
188
|
-
<p>Hello World from a custom partial</p>
|
189
|
-
"""
|
190
|
-
Given a configuration of:
|
191
|
-
"""
|
192
|
-
ActiveAdmin.register Post do
|
193
|
-
sidebar :help, partial: "custom_help_partial"
|
194
|
-
end
|
195
|
-
"""
|
196
|
-
When I am on the index page for posts
|
197
|
-
Then I should see "Hello World from a custom partial" within the "Help" sidebar
|
198
|
-
|
199
|
-
|
200
|
-
Scenario: Position sidebar at the top using priority option
|
201
|
-
Given a configuration of:
|
202
|
-
"""
|
203
|
-
ActiveAdmin.register Post do
|
204
|
-
sidebar :help, priority: 0 do
|
205
|
-
"Need help? Email us at help@example.com"
|
206
|
-
end
|
207
|
-
end
|
208
|
-
"""
|
209
|
-
When I am on the index page for posts
|
210
|
-
Then I should see a sidebar titled "Help" above sidebar titled "Filters"
|
data/features/site_title.feature
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
Feature: Site title
|
2
|
-
|
3
|
-
As a developer
|
4
|
-
In order to customize the site title
|
5
|
-
I want to set it in the configuration
|
6
|
-
|
7
|
-
Background:
|
8
|
-
Given I am logged in
|
9
|
-
|
10
|
-
Scenario: Set the site title and site title link
|
11
|
-
Given a configuration of:
|
12
|
-
"""
|
13
|
-
ActiveAdmin.application.site_title = "My Great Site"
|
14
|
-
ActiveAdmin.application.site_title_link = "/admin"
|
15
|
-
"""
|
16
|
-
When I am on the dashboard
|
17
|
-
And I should see the site title "My Great Site"
|
18
|
-
When I follow "My Great Site"
|
19
|
-
Then I should see the site title "My Great Site"
|
20
|
-
|
21
|
-
Scenario: Set the site title image
|
22
|
-
Given a configuration of:
|
23
|
-
"""
|
24
|
-
ActiveAdmin.application.site_title_image = "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
|
25
|
-
"""
|
26
|
-
When I am on the dashboard
|
27
|
-
And I should not see the site title "My Great Site"
|
28
|
-
And I should see the site title image "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
|
29
|
-
|
30
|
-
Scenario: Set the site title image with link
|
31
|
-
Given a configuration of:
|
32
|
-
"""
|
33
|
-
ActiveAdmin.application.site_title_link = "http://www.google.com"
|
34
|
-
ActiveAdmin.application.site_title_image = "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
|
35
|
-
"""
|
36
|
-
When I am on the dashboard
|
37
|
-
And I should see the site title image "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
|
38
|
-
And I should see the site title image linked to "http://www.google.com"
|
39
|
-
|
40
|
-
Scenario: Set the site title to a proc
|
41
|
-
Given a configuration of:
|
42
|
-
"""
|
43
|
-
ActiveAdmin.application.site_title_image = nil # Configuration is not reset between scenarios
|
44
|
-
ActiveAdmin.application.site_title = proc { "Hello #{controller.current_admin_user.try(:email) || 'you!'}" }
|
45
|
-
"""
|
46
|
-
When I am on the dashboard
|
47
|
-
And I should see the site title "Hello admin@example.com"
|
@@ -1,118 +0,0 @@
|
|
1
|
-
Feature: Specifying Actions
|
2
|
-
|
3
|
-
Specifying which actions to allow on my resource
|
4
|
-
|
5
|
-
Scenario: Only creating the index action
|
6
|
-
Given a configuration of:
|
7
|
-
"""
|
8
|
-
ActiveAdmin.register Post do
|
9
|
-
actions :index
|
10
|
-
index do
|
11
|
-
column do |post|
|
12
|
-
link_to "View", "/admin/posts/1"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
"""
|
17
|
-
And I am logged in
|
18
|
-
And a post with the title "Hello World" exists
|
19
|
-
When I am on the index page for posts
|
20
|
-
Then an "ActionController::RoutingError" exception should be raised when I follow "View"
|
21
|
-
|
22
|
-
Scenario: Specify a custom collection action with template
|
23
|
-
Given a configuration of:
|
24
|
-
"""
|
25
|
-
ActiveAdmin.register Post do
|
26
|
-
action_item(:import, only: :index) do
|
27
|
-
link_to('Import Posts', import_admin_posts_path)
|
28
|
-
end
|
29
|
-
|
30
|
-
collection_action :import
|
31
|
-
end
|
32
|
-
"""
|
33
|
-
Given "app/views/admin/posts/import.html.arb" contains:
|
34
|
-
"""
|
35
|
-
para "We are currently working on this feature..."
|
36
|
-
"""
|
37
|
-
And I am logged in
|
38
|
-
When I am on the index page for posts
|
39
|
-
And I follow "Import"
|
40
|
-
Then I should see "We are currently working on this feature"
|
41
|
-
|
42
|
-
Scenario: Specify a custom member action with template
|
43
|
-
Given a configuration of:
|
44
|
-
"""
|
45
|
-
ActiveAdmin.register Post do
|
46
|
-
action_item(:review, only: :show) do
|
47
|
-
link_to('Review', review_admin_post_path)
|
48
|
-
end
|
49
|
-
|
50
|
-
member_action :review do
|
51
|
-
@post = Post.find(params[:id])
|
52
|
-
end
|
53
|
-
end
|
54
|
-
"""
|
55
|
-
Given "app/views/admin/posts/review.html.erb" contains:
|
56
|
-
"""
|
57
|
-
<h1>Review: <%= @post.title %></h1>
|
58
|
-
"""
|
59
|
-
And I am logged in
|
60
|
-
And a post with the title "Hello World" exists
|
61
|
-
When I am on the index page for posts
|
62
|
-
And I follow "View"
|
63
|
-
And I follow "Review"
|
64
|
-
Then I should see "Review: Hello World"
|
65
|
-
And I should see the page title "Review"
|
66
|
-
And I should see the Active Admin layout
|
67
|
-
|
68
|
-
Scenario: Specify a custom member action with template using arb
|
69
|
-
Given a configuration of:
|
70
|
-
"""
|
71
|
-
ActiveAdmin.register Post do
|
72
|
-
action_item(:review, only: :show) do
|
73
|
-
link_to('Review', review_admin_post_path)
|
74
|
-
end
|
75
|
-
|
76
|
-
member_action :review do
|
77
|
-
@post = Post.find(params[:id])
|
78
|
-
end
|
79
|
-
end
|
80
|
-
"""
|
81
|
-
Given "app/views/admin/posts/review.html.arb" contains:
|
82
|
-
"""
|
83
|
-
h1 "Review: #{post.title}"
|
84
|
-
"""
|
85
|
-
And I am logged in
|
86
|
-
And a post with the title "Hello World" exists
|
87
|
-
When I am on the index page for posts
|
88
|
-
And I follow "View"
|
89
|
-
And I follow "Review"
|
90
|
-
Then I should see "Review: Hello World"
|
91
|
-
And I should see the page title "Review"
|
92
|
-
And I should see the Active Admin layout
|
93
|
-
|
94
|
-
Scenario: Specify a custom member action with multiple http methods
|
95
|
-
Given a configuration of:
|
96
|
-
"""
|
97
|
-
ActiveAdmin.register Post do
|
98
|
-
action_item(:get_check, only: :show) do
|
99
|
-
link_to('Get Check', check_admin_post_path)
|
100
|
-
end
|
101
|
-
|
102
|
-
action_item(:post_check, only: :show) do
|
103
|
-
link_to('Post Check', check_admin_post_path, method: :post)
|
104
|
-
end
|
105
|
-
|
106
|
-
member_action :check, method: [:get, :post] do
|
107
|
-
redirect_to admin_post_path(resource), notice: "Checked via #{request.method}"
|
108
|
-
end
|
109
|
-
end
|
110
|
-
"""
|
111
|
-
And I am logged in
|
112
|
-
And a post with the title "Hello World" exists
|
113
|
-
When I am on the index page for posts
|
114
|
-
And I follow "View"
|
115
|
-
And I follow "Get Check"
|
116
|
-
Then I should see "Checked via GET"
|
117
|
-
When I follow "Post Check"
|
118
|
-
Then I should see "Checked via POST"
|
@@ -1,19 +0,0 @@
|
|
1
|
-
Then /^I should see a member link to "([^"]*)"$/ do |name|
|
2
|
-
expect(page).to have_css('a.member_link', text: name)
|
3
|
-
end
|
4
|
-
|
5
|
-
Then /^I should not see a member link to "([^"]*)"$/ do |name|
|
6
|
-
%{Then I should not see "#{name}" within "a.member_link"}
|
7
|
-
end
|
8
|
-
|
9
|
-
Then /^I should see the actions column with the class "([^"]*)" and the title "([^"]*)"$/ do |klass, title|
|
10
|
-
expect(page).to have_css "th#{'.'+klass}", text: title
|
11
|
-
end
|
12
|
-
|
13
|
-
Then /^I should see a dropdown menu item to "([^"]*)"$/ do |name|
|
14
|
-
expect(page).to have_css('ul.dropdown_menu_list li a', text: name)
|
15
|
-
end
|
16
|
-
|
17
|
-
Then /^I should not see a dropdown menu item to "([^"]*)"$/ do |name|
|
18
|
-
%{Then I should not see "#{name}" within "ul.dropdown_menu_list li a"}
|
19
|
-
end
|
@@ -1,81 +0,0 @@
|
|
1
|
-
Then /^I should see a table header with "([^"]*)"$/ do |content|
|
2
|
-
expect(page).to have_xpath '//th', text: content
|
3
|
-
end
|
4
|
-
|
5
|
-
Then /^I should not see a table header with "([^"]*)"$/ do |content|
|
6
|
-
expect(page).to_not have_xpath '//th', text: content
|
7
|
-
end
|
8
|
-
|
9
|
-
Then /^I should see a sortable table header with "([^"]*)"$/ do |content|
|
10
|
-
expect(page).to have_css 'th.sortable', text: content
|
11
|
-
end
|
12
|
-
|
13
|
-
Then /^I should not see a sortable table header with "([^"]*)"$/ do |content|
|
14
|
-
expect(page).to_not have_css 'th.sortable', text: content
|
15
|
-
end
|
16
|
-
|
17
|
-
Then /^I should not see a sortable table header$/ do
|
18
|
-
step %{I should not see "th.sortable"}
|
19
|
-
end
|
20
|
-
|
21
|
-
Then /^the table "([^"]*)" should have (\d+) rows/ do |selector, count|
|
22
|
-
trs = page.find(selector).all :css, 'tr'
|
23
|
-
expect(trs.size).to eq count.to_i
|
24
|
-
end
|
25
|
-
|
26
|
-
Then /^the table "([^"]*)" should have (\d+) columns/ do |selector, count|
|
27
|
-
tds = page.find(selector).find('tr:first').all :css, 'td'
|
28
|
-
expect(tds.size).to eq count.to_i
|
29
|
-
end
|
30
|
-
|
31
|
-
Then /^there should be (\d+) "([^"]*)" tags$/ do |count, tag|
|
32
|
-
expect(page.all(:css, tag).size).to eq count.to_i
|
33
|
-
end
|
34
|
-
|
35
|
-
Then /^I should see a link to "([^"]*)"$/ do |link|
|
36
|
-
expect(page).to have_xpath '//a', text: link
|
37
|
-
end
|
38
|
-
|
39
|
-
Then /^an "([^"]*)" exception should be raised when I follow "([^"]*)"$/ do |error, link|
|
40
|
-
expect {
|
41
|
-
step "I follow \"#{link}\""
|
42
|
-
}.to raise_error(error.constantize)
|
43
|
-
end
|
44
|
-
|
45
|
-
Then /^I should be in the resource section for (.+)$/ do |resource_name|
|
46
|
-
expect(current_url).to include resource_name.tr(' ', '').underscore.pluralize
|
47
|
-
end
|
48
|
-
|
49
|
-
Then /^I should wait and see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
|
50
|
-
sleep 1
|
51
|
-
step 'show me the page'
|
52
|
-
selector ||= "*"
|
53
|
-
locate(:xpath, "//#{selector}[text()='#{text}']")
|
54
|
-
end
|
55
|
-
|
56
|
-
Then /^I should see the page title "([^"]*)"$/ do |title|
|
57
|
-
within('h2#page_title') do
|
58
|
-
expect(page).to have_content title
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
Then /^I should see a fieldset titled "([^"]*)"$/ do |title|
|
63
|
-
expect(page).to have_css 'fieldset legend', text: title
|
64
|
-
end
|
65
|
-
|
66
|
-
Then /^the "([^"]*)" field should contain the option "([^"]*)"$/ do |field, option|
|
67
|
-
field = find_field(field)
|
68
|
-
expect(field).to have_css 'option', text: option
|
69
|
-
end
|
70
|
-
|
71
|
-
Then /^I should see the content "([^"]*)"$/ do |content|
|
72
|
-
expect(page).to have_css '#active_admin_content', text: content
|
73
|
-
end
|
74
|
-
|
75
|
-
Then /^I should see a validation error "([^"]*)"$/ do |error_message|
|
76
|
-
expect(page).to have_css '.inline-errors', text: error_message
|
77
|
-
end
|
78
|
-
|
79
|
-
Then /^I should see a table with id "([^"]*)"$/ do |dom_id|
|
80
|
-
page.find("table##{dom_id}")
|
81
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
Then /^I should see the css file "([^"]*)"$/ do |path|
|
2
|
-
step %{I should see the css file "#{path}" of media "screen"}
|
3
|
-
end
|
4
|
-
|
5
|
-
Then /^I should see the css file "([^"]*)" of media "([^"]*)"$/ do |path, media|
|
6
|
-
expect(page).to have_xpath("//link[contains(@href, '#{path}') and contains(@media, '#{media}')]", visible: false)
|
7
|
-
end
|
8
|
-
|
9
|
-
Then /^I should see the js file "([^"]*)"$/ do |path|
|
10
|
-
expect(page).to have_xpath("//script[contains(@src, '#{path}')]", visible: false)
|
11
|
-
end
|
12
|
-
|
13
|
-
Then /^I should see the favicon "([^"]*)"$/ do |path|
|
14
|
-
expect(page).to have_xpath("//link[contains(@href, '#{path}')]", visible: false)
|
15
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
Then /^I should see the attribute "([^"]*)" with "([^"]*)"$/ do |title, value|
|
2
|
-
elems = all ".attributes_table th:contains('#{title}') ~ td:contains('#{value}')"
|
3
|
-
expect(elems.first).to_not eq(nil), "attribute missing"
|
4
|
-
end
|
5
|
-
|
6
|
-
Then /^I should see the attribute "([^"]*)" with a nicely formatted datetime$/ do |title|
|
7
|
-
text = all(".attributes_table th:contains('#{title}') ~ td").first.text
|
8
|
-
expect(text).to match /\w+ \d{1,2}, \d{4} \d{2}:\d{2}/
|
9
|
-
end
|
10
|
-
|
11
|
-
Then /^the attribute "([^"]*)" should be empty$/ do |title|
|
12
|
-
elems = all ".attributes_table th:contains('#{title}') ~ td > span.empty"
|
13
|
-
expect(elems.first).to_not eq(nil), 'attribute not empty'
|
14
|
-
end
|
15
|
-
|
16
|
-
Then /^I should not see the attribute "([^"]*)"$/ do |title|
|
17
|
-
expect(page).to_not have_css '.attributes_table th', text: title
|
18
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
Then /^I should see the panel title "([^"]*)"$/ do |title|
|
2
|
-
expect(page).to have_css '.panel > h3', text: title
|
3
|
-
end
|
4
|
-
|
5
|
-
Then /^I should not see the panel title "([^"]*)"$/ do |title|
|
6
|
-
expect(page).to_not have_css '.panel > h3', text: title
|
7
|
-
end
|
8
|
-
|
9
|
-
Then /^I should see the attributes table$/ do
|
10
|
-
expect(page).to have_css '.panel .attributes_table'
|
11
|
-
end
|
@@ -1,81 +0,0 @@
|
|
1
|
-
Then /^I (should|should not) be asked to confirm "([^"]*)" for "([^"]*)"$/ do |maybe, confirmation, title|
|
2
|
-
selector = "#batch_actions_popover a.batch_action:contains('#{title}')"
|
3
|
-
selector << "[data-confirm='#{confirmation}']" if maybe == 'should'
|
4
|
-
|
5
|
-
verb = maybe == 'should' ? :to : :to_not
|
6
|
-
expect(page).send verb, have_css(selector)
|
7
|
-
end
|
8
|
-
|
9
|
-
Then /^I (should|should not) see the batch action :([^\s]*) "([^"]*)"$/ do |maybe, sym, title|
|
10
|
-
selector = ".batch_actions_selector a.batch_action"
|
11
|
-
selector << "[href='#'][data-action='#{sym}']" if maybe == 'should'
|
12
|
-
|
13
|
-
verb = maybe == 'should' ? :to : :to_not
|
14
|
-
expect(page).send verb, have_css(selector, text: title)
|
15
|
-
end
|
16
|
-
|
17
|
-
Then /^the (\d+)(?:st|nd|rd|th) batch action should be "([^"]*)"$/ do |index, title|
|
18
|
-
batch_action = page.all('.batch_actions_selector a.batch_action')[index.to_i - 1]
|
19
|
-
expect(batch_action.text).to match title
|
20
|
-
end
|
21
|
-
|
22
|
-
When /^I check the (\d+)(?:st|nd|rd|th) record$/ do |index|
|
23
|
-
page.all("table.index_table input[type=checkbox]")[index.to_i].set true
|
24
|
-
end
|
25
|
-
|
26
|
-
When /^I toggle the collection selection$/ do
|
27
|
-
page.find("#collection_selection_toggle_all").click
|
28
|
-
end
|
29
|
-
|
30
|
-
Then /^I should see that the batch action button is disabled$/ do
|
31
|
-
expect(page).to have_css ".batch_actions_selector .dropdown_menu_button.disabled"
|
32
|
-
end
|
33
|
-
|
34
|
-
Then /^I (should|should not) see the batch action (button|selector)$/ do |maybe, type|
|
35
|
-
selector = "div.table_tools .batch_actions_selector"
|
36
|
-
selector << ' .dropdown_menu_button' if maybe == 'should' && type == 'button'
|
37
|
-
|
38
|
-
verb = maybe == 'should' ? :to : :to_not
|
39
|
-
expect(page).send verb, have_css(selector)
|
40
|
-
end
|
41
|
-
|
42
|
-
Then /^I should see the batch action popover exists$/ do
|
43
|
-
expect(page).to have_css '.batch_actions_selector'
|
44
|
-
end
|
45
|
-
|
46
|
-
Given /^I submit the batch action form with "([^"]*)"$/ do |action|
|
47
|
-
page.find("#batch_action", visible: false).set action
|
48
|
-
form = page.find "#collection_selection"
|
49
|
-
params = page.all("#main_content input", visible: false).each_with_object({}) do |input, obj|
|
50
|
-
key, value = input['name'], input['value']
|
51
|
-
if key == 'collection_selection[]'
|
52
|
-
(obj[key] ||= []).push value if input.checked?
|
53
|
-
else
|
54
|
-
obj[key] = value
|
55
|
-
end
|
56
|
-
end
|
57
|
-
page.driver.submit form['method'], form['action'], params
|
58
|
-
end
|
59
|
-
|
60
|
-
When /^I click "(.*?)" and accept confirmation$/ do |link|
|
61
|
-
# Use this implementation instead if poltergeist ever implements it
|
62
|
-
# page.driver.accept_modal(:confirm) { click_link(link) }
|
63
|
-
|
64
|
-
click_link(link)
|
65
|
-
expect(page).to have_content("Are you sure you want to delete these posts?")
|
66
|
-
click_button("OK")
|
67
|
-
end
|
68
|
-
|
69
|
-
Then /^I should not see checkboxes in the table$/ do
|
70
|
-
expect(page).to_not have_css '.paginated_collection table input[type=checkbox]'
|
71
|
-
end
|
72
|
-
|
73
|
-
Then /^I should be show a input with name "([^"]*)" and type "([^"]*)"$/ do |name, type|
|
74
|
-
selector = ".batch_actions_selector a.batch_action:first"
|
75
|
-
expect(page.find(selector)["data-inputs"]).to eq "{\"#{name}\":\"#{type}\"}"
|
76
|
-
end
|
77
|
-
|
78
|
-
Then /^I should be show a select with name "([^"]*)" with the values "([^"]*)"$/ do |name, values|
|
79
|
-
selector = ".batch_actions_selector a.batch_action:first"
|
80
|
-
expect(JSON[page.find(selector)["data-inputs"]]).to eq Hash[name, values.split(', ')]
|
81
|
-
end
|