nsm-activeadmin 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.gitignore +34 -0
- data/.travis.yml +4 -0
- data/.yardopts +8 -0
- data/CHANGELOG.rdoc +76 -0
- data/Gemfile +39 -0
- data/LICENSE +25 -0
- data/README.rdoc +487 -0
- data/Rakefile +27 -0
- data/activeadmin.gemspec +28 -0
- data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
- data/app/assets/images/active_admin/loading.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/base.js +12 -0
- data/app/assets/javascripts/active_admin/vendor.js +382 -0
- data/app/assets/stylesheets/active_admin/_base.css.scss +400 -0
- data/app/assets/stylesheets/active_admin/_forms.css.scss +256 -0
- data/app/assets/stylesheets/active_admin/_header.css.scss +110 -0
- data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
- data/app/assets/stylesheets/active_admin/_typography.css.scss +100 -0
- data/app/assets/stylesheets/active_admin/components/_comments.css.scss +40 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +38 -0
- data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +8 -0
- data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +27 -0
- data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +29 -0
- data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +20 -0
- data/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +165 -0
- data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +43 -0
- data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +34 -0
- data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +21 -0
- data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +21 -0
- data/app/views/active_admin/dashboard/index.html.arb +1 -0
- data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/active_admin/devise/passwords/edit.html.erb +16 -0
- data/app/views/active_admin/devise/passwords/new.html.erb +14 -0
- data/app/views/active_admin/devise/sessions/new.html.erb +18 -0
- data/app/views/active_admin/devise/shared/_links.erb +20 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +12 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -0
- data/app/views/active_admin/resource/index.csv.erb +20 -0
- data/app/views/active_admin/resource/index.html.arb +1 -0
- data/app/views/active_admin/resource/new.html.arb +1 -0
- data/app/views/active_admin/resource/show.html.arb +1 -0
- data/app/views/layouts/active_admin.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +35 -0
- data/cucumber.yml +2 -0
- data/docs/1-general-configuration.md +52 -0
- data/docs/2-resource-customization.md +35 -0
- data/docs/3-index-pages.md +55 -0
- data/docs/3-index-pages/index-as-block.md +16 -0
- data/docs/3-index-pages/index-as-blog.md +61 -0
- data/docs/3-index-pages/index-as-grid.md +21 -0
- data/docs/3-index-pages/index-as-table.md +74 -0
- data/docs/4-csv-format.md +14 -0
- data/docs/5-forms.md +39 -0
- data/docs/6-show-screens.md +22 -0
- data/docs/7-sidebars.md +35 -0
- data/docs/8-custom-actions.md +123 -0
- data/features/comments/commenting.feature +112 -0
- data/features/comments/viewing_index.feature +19 -0
- data/features/dashboard.feature +26 -0
- data/features/edit_page.feature +106 -0
- data/features/first_boot.feature +16 -0
- data/features/global_navigation.feature +30 -0
- data/features/index/format_as_csv.feature +46 -0
- data/features/index/formats.feature +12 -0
- data/features/index/index_as_block.feature +15 -0
- data/features/index/index_as_blog.feature +50 -0
- data/features/index/index_as_grid.feature +45 -0
- data/features/index/index_as_table.feature +81 -0
- data/features/index/index_blank_slate.feature +55 -0
- data/features/index/index_scopes.feature +52 -0
- data/features/index/pagination.feature +17 -0
- data/features/menu.feature +26 -0
- data/features/new_page.feature +75 -0
- data/features/registering_assets.feature +35 -0
- data/features/registering_resources.feature +33 -0
- data/features/show/default_content.feature +43 -0
- data/features/show/page_title.feature +33 -0
- data/features/sidebar_sections.feature +127 -0
- data/features/specifying_actions.feature +87 -0
- data/features/step_definitions/action_item_steps.rb +7 -0
- data/features/step_definitions/additional_web_steps.rb +77 -0
- data/features/step_definitions/asset_steps.rb +7 -0
- data/features/step_definitions/attribute_steps.rb +13 -0
- data/features/step_definitions/comment_steps.rb +8 -0
- data/features/step_definitions/configuration_steps.rb +31 -0
- data/features/step_definitions/dashboard_steps.rb +11 -0
- data/features/step_definitions/factory_steps.rb +29 -0
- data/features/step_definitions/flash_steps.rb +3 -0
- data/features/step_definitions/format_steps.rb +35 -0
- data/features/step_definitions/index_scope_steps.rb +20 -0
- data/features/step_definitions/layout_steps.rb +3 -0
- data/features/step_definitions/menu_steps.rb +7 -0
- data/features/step_definitions/pagination_steps.rb +8 -0
- data/features/step_definitions/sidebar_steps.rb +7 -0
- data/features/step_definitions/tab_steps.rb +3 -0
- data/features/step_definitions/user_steps.rb +26 -0
- data/features/step_definitions/web_steps.rb +211 -0
- data/features/sti_resource.feature +61 -0
- data/features/support/env.rb +90 -0
- data/features/support/paths.rb +50 -0
- data/features/support/selectors.rb +45 -0
- data/features/users/logging_in.feature +34 -0
- data/features/users/logging_out.feature +13 -0
- data/lib/active_admin.rb +74 -0
- data/lib/active_admin/abstract_view_factory.rb +95 -0
- data/lib/active_admin/application.rb +228 -0
- data/lib/active_admin/arbre.rb +23 -0
- data/lib/active_admin/arbre/attributes.rb +20 -0
- data/lib/active_admin/arbre/class_list.rb +28 -0
- data/lib/active_admin/arbre/collection.rb +27 -0
- data/lib/active_admin/arbre/context.rb +14 -0
- data/lib/active_admin/arbre/core_extensions.rb +5 -0
- data/lib/active_admin/arbre/document.rb +42 -0
- data/lib/active_admin/arbre/element.rb +151 -0
- data/lib/active_admin/arbre/html.rb +84 -0
- data/lib/active_admin/arbre/html5_elements.rb +47 -0
- data/lib/active_admin/arbre/tag.rb +137 -0
- data/lib/active_admin/arbre/text_node.rb +35 -0
- data/lib/active_admin/asset_registration.rb +34 -0
- data/lib/active_admin/callbacks.rb +89 -0
- data/lib/active_admin/comments.rb +88 -0
- data/lib/active_admin/comments/comment.rb +21 -0
- data/lib/active_admin/comments/configuration.rb +18 -0
- data/lib/active_admin/comments/namespace_helper.rb +14 -0
- data/lib/active_admin/comments/resource_helper.rb +17 -0
- data/lib/active_admin/comments/show_page_helper.rb +23 -0
- data/lib/active_admin/comments/views.rb +3 -0
- data/lib/active_admin/comments/views/active_admin_comment.rb +0 -0
- data/lib/active_admin/comments/views/active_admin_comments.rb +82 -0
- data/lib/active_admin/component.rb +22 -0
- data/lib/active_admin/controller_action.rb +12 -0
- data/lib/active_admin/csv_builder.rb +45 -0
- data/lib/active_admin/dashboards.rb +48 -0
- data/lib/active_admin/dashboards/dashboard_controller.rb +38 -0
- data/lib/active_admin/dashboards/section.rb +34 -0
- data/lib/active_admin/deprecation.rb +36 -0
- data/lib/active_admin/devise.rb +43 -0
- data/lib/active_admin/dsl.rb +224 -0
- data/lib/active_admin/engine.rb +4 -0
- data/lib/active_admin/event.rb +31 -0
- data/lib/active_admin/form_builder.rb +109 -0
- data/lib/active_admin/helpers/optional_display.rb +34 -0
- data/lib/active_admin/helpers/settings.rb +63 -0
- data/lib/active_admin/iconic.rb +51 -0
- data/lib/active_admin/iconic/icons.rb +142 -0
- data/lib/active_admin/locales/da.yml +28 -0
- data/lib/active_admin/locales/en.yml +40 -0
- data/lib/active_admin/locales/es.yml +39 -0
- data/lib/active_admin/locales/it.yml +39 -0
- data/lib/active_admin/locales/pt-BR.yml +36 -0
- data/lib/active_admin/locales/ru.yml +40 -0
- data/lib/active_admin/locales/zh_cn.yml +40 -0
- data/lib/active_admin/menu.rb +42 -0
- data/lib/active_admin/menu_item.rb +73 -0
- data/lib/active_admin/namespace.rb +206 -0
- data/lib/active_admin/page_config.rb +15 -0
- data/lib/active_admin/reloader.rb +30 -0
- data/lib/active_admin/renderer.rb +87 -0
- data/lib/active_admin/resource.rb +151 -0
- data/lib/active_admin/resource/action_items.rb +88 -0
- data/lib/active_admin/resource/belongs_to.rb +31 -0
- data/lib/active_admin/resource/menu.rb +45 -0
- data/lib/active_admin/resource/naming.rb +36 -0
- data/lib/active_admin/resource/scopes.rb +33 -0
- data/lib/active_admin/resource/sidebars.rb +36 -0
- data/lib/active_admin/resource_controller.rb +103 -0
- data/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/lib/active_admin/resource_controller/actions.rb +79 -0
- data/lib/active_admin/resource_controller/callbacks.rb +47 -0
- data/lib/active_admin/resource_controller/collection.rb +144 -0
- data/lib/active_admin/resource_controller/filters.rb +58 -0
- data/lib/active_admin/resource_controller/form.rb +42 -0
- data/lib/active_admin/resource_controller/menu.rb +29 -0
- data/lib/active_admin/resource_controller/page_configurations.rb +53 -0
- data/lib/active_admin/resource_controller/scoping.rb +36 -0
- data/lib/active_admin/resource_controller/sidebars.rb +18 -0
- data/lib/active_admin/router.rb +85 -0
- data/lib/active_admin/sass/active_admin.scss +3 -0
- data/lib/active_admin/sass/css_loader.rb +16 -0
- data/lib/active_admin/sass/helpers.rb +40 -0
- data/lib/active_admin/scope.rb +17 -0
- data/lib/active_admin/sidebar_section.rb +41 -0
- data/lib/active_admin/stylesheets/active_admin/mixins/_utilities.scss +0 -0
- data/lib/active_admin/version.rb +3 -0
- data/lib/active_admin/view_factory.rb +23 -0
- data/lib/active_admin/view_helpers.rb +22 -0
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +7 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +42 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +29 -0
- data/lib/active_admin/view_helpers/display_helper.rb +38 -0
- data/lib/active_admin/view_helpers/filter_form_helper.rb +186 -0
- data/lib/active_admin/view_helpers/form_helper.rb +13 -0
- data/lib/active_admin/view_helpers/icon_helper.rb +12 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +26 -0
- data/lib/active_admin/view_helpers/renderer_helper.rb +29 -0
- data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
- data/lib/active_admin/view_helpers/title_helper.rb +11 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
- data/lib/active_admin/views.rb +8 -0
- data/lib/active_admin/views/action_items.rb +17 -0
- data/lib/active_admin/views/components/attributes_table.rb +66 -0
- data/lib/active_admin/views/components/blank_slate.rb +33 -0
- data/lib/active_admin/views/components/columns.rb +47 -0
- data/lib/active_admin/views/components/paginated_collection.rb +92 -0
- data/lib/active_admin/views/components/panel.rb +26 -0
- data/lib/active_admin/views/components/scopes.rb +70 -0
- data/lib/active_admin/views/components/sidebar_section.rb +28 -0
- data/lib/active_admin/views/components/status_tag.rb +55 -0
- data/lib/active_admin/views/components/table_for.rb +193 -0
- data/lib/active_admin/views/dashboard_section_renderer.rb +19 -0
- data/lib/active_admin/views/header_renderer.rb +53 -0
- data/lib/active_admin/views/index_as_block.rb +29 -0
- data/lib/active_admin/views/index_as_blog.rb +129 -0
- data/lib/active_admin/views/index_as_grid.rb +70 -0
- data/lib/active_admin/views/index_as_table.rb +148 -0
- data/lib/active_admin/views/pages/base.rb +155 -0
- data/lib/active_admin/views/pages/dashboard.rb +62 -0
- data/lib/active_admin/views/pages/edit.rb +28 -0
- data/lib/active_admin/views/pages/index.rb +74 -0
- data/lib/active_admin/views/pages/layout.rb +26 -0
- data/lib/active_admin/views/pages/new.rb +28 -0
- data/lib/active_admin/views/pages/show.rb +56 -0
- data/lib/active_admin/views/tabs_renderer.rb +58 -0
- data/lib/activeadmin.rb +1 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +21 -0
- data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +427 -0
- data/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +6 -0
- data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +1 -0
- data/lib/generators/active_admin/assets/templates/dashboards.rb +36 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +49 -0
- data/lib/generators/active_admin/install/install_generator.rb +44 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +93 -0
- data/lib/generators/active_admin/install/templates/dashboards.rb +38 -0
- data/lib/generators/active_admin/install/templates/migrations/1_create_admin_notes.rb +16 -0
- data/lib/generators/active_admin/install/templates/migrations/2_move_admin_notes_to_comments.rb +25 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +16 -0
- data/lib/generators/active_admin/resource/templates/admin.rb +3 -0
- data/script/local +44 -0
- data/script/use_rails +45 -0
- data/spec/integration/belongs_to_spec.rb +42 -0
- data/spec/integration/default_namespace.rb +77 -0
- data/spec/integration/javascript_spec.rb +20 -0
- data/spec/integration/stylesheets_spec.rb +41 -0
- data/spec/spec_helper.rb +157 -0
- data/spec/support/detect_rails_version.rb +11 -0
- data/spec/support/integration_example_group.rb +33 -0
- data/spec/support/jslint.yml +80 -0
- data/spec/support/rails_template.rb +32 -0
- data/spec/support/rails_template_with_data.rb +33 -0
- data/spec/support/templates/cucumber.rb +24 -0
- data/spec/unit/abstract_view_factory_spec.rb +79 -0
- data/spec/unit/action_builder_spec.rb +88 -0
- data/spec/unit/application_spec.rb +78 -0
- data/spec/unit/arbre/html/context_spec.rb +22 -0
- data/spec/unit/arbre/html/element_finder_methods_spec.rb +54 -0
- data/spec/unit/arbre/html/element_spec.rb +224 -0
- data/spec/unit/arbre/html/tag_attributes_spec.rb +61 -0
- data/spec/unit/arbre/html/tag_spec.rb +63 -0
- data/spec/unit/arbre/html_spec.rb +210 -0
- data/spec/unit/asset_registration_spec.rb +37 -0
- data/spec/unit/auto_link_spec.rb +39 -0
- data/spec/unit/belongs_to_spec.rb +45 -0
- data/spec/unit/breadcrumbs_spec.rb +110 -0
- data/spec/unit/comments_spec.rb +57 -0
- data/spec/unit/component_spec.rb +18 -0
- data/spec/unit/controller_filters_spec.rb +34 -0
- data/spec/unit/csv_builder_spec.rb +83 -0
- data/spec/unit/dashboard_controller_spec.rb +26 -0
- data/spec/unit/dashboard_section_spec.rb +56 -0
- data/spec/unit/dashboards_spec.rb +59 -0
- data/spec/unit/display_name_spec.rb +29 -0
- data/spec/unit/event_spec.rb +41 -0
- data/spec/unit/filter_form_builder_spec.rb +182 -0
- data/spec/unit/form_builder_spec.rb +239 -0
- data/spec/unit/generators/install_rails_3_1_spec.rb +16 -0
- data/spec/unit/helpers/settings_spec.rb +30 -0
- data/spec/unit/menu_item_spec.rb +143 -0
- data/spec/unit/menu_spec.rb +53 -0
- data/spec/unit/namespace_spec.rb +214 -0
- data/spec/unit/pretty_format_spec.rb +35 -0
- data/spec/unit/rails_spec.rb +43 -0
- data/spec/unit/registration_spec.rb +76 -0
- data/spec/unit/reloader_spec.rb +28 -0
- data/spec/unit/renderer_spec.rb +108 -0
- data/spec/unit/resource/action_items_spec.rb +62 -0
- data/spec/unit/resource/menu_spec.rb +80 -0
- data/spec/unit/resource/naming_spec.rb +56 -0
- data/spec/unit/resource/scopes_spec.rb +30 -0
- data/spec/unit/resource/sidebars_spec.rb +50 -0
- data/spec/unit/resource_controller/collection_spec.rb +34 -0
- data/spec/unit/resource_controller_spec.rb +152 -0
- data/spec/unit/resource_spec.rb +260 -0
- data/spec/unit/routing_spec.rb +88 -0
- data/spec/unit/sass/helpers_spec.rb +47 -0
- data/spec/unit/scope_spec.rb +31 -0
- data/spec/unit/tabs_renderer_spec.rb +85 -0
- data/spec/unit/view_factory_spec.rb +19 -0
- data/spec/unit/views/components/attributes_table_spec.rb +100 -0
- data/spec/unit/views/components/blank_slate_spec.rb +31 -0
- data/spec/unit/views/components/columns_spec.rb +75 -0
- data/spec/unit/views/components/panel_spec.rb +31 -0
- data/spec/unit/views/components/sidebar_section_spec.rb +37 -0
- data/spec/unit/views/components/status_tag_spec.rb +81 -0
- data/spec/unit/views/components/table_for_spec.rb +130 -0
- data/spec/unit/views/pages/layout_spec.rb +22 -0
- data/tasks/docs.rake +39 -0
- data/tasks/test.rake +49 -0
- data/tasks/yard.rake +6 -0
- metadata +510 -0
|
@@ -0,0 +1,16 @@
|
|
|
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
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Feature: Global Navigation
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
Background:
|
|
5
|
+
Given a configuration of:
|
|
6
|
+
"""
|
|
7
|
+
ActiveAdmin.register Post
|
|
8
|
+
"""
|
|
9
|
+
Given I am logged in
|
|
10
|
+
And 10 posts exist
|
|
11
|
+
|
|
12
|
+
Scenario: Viewing the current section in the global navigation
|
|
13
|
+
Given I am on the index page for posts
|
|
14
|
+
Then the "Posts" tab should be selected
|
|
15
|
+
|
|
16
|
+
Scenario: Viewing the current section in the global navigation when on new page
|
|
17
|
+
Given I am on the index page for posts
|
|
18
|
+
And I follow "New Post"
|
|
19
|
+
Then the "Posts" tab should be selected
|
|
20
|
+
|
|
21
|
+
Scenario: Viewing the current section in the global navigation when on show page
|
|
22
|
+
Given I am on the index page for posts
|
|
23
|
+
And I follow "View"
|
|
24
|
+
Then the "Posts" tab should be selected
|
|
25
|
+
|
|
26
|
+
Scenario: Viewing the current section in the global navigation when on edit page
|
|
27
|
+
Given I am on the index page for posts
|
|
28
|
+
And I follow "View"
|
|
29
|
+
And I follow "Edit Post"
|
|
30
|
+
Then the "Posts" tab should be selected
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
Feature: Format as CSV
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given I am logged in
|
|
5
|
+
|
|
6
|
+
Scenario: Default
|
|
7
|
+
Given a configuration of:
|
|
8
|
+
"""
|
|
9
|
+
ActiveAdmin.register Post
|
|
10
|
+
"""
|
|
11
|
+
And a post with the title "Hello World" exists
|
|
12
|
+
When I am on the index page for posts
|
|
13
|
+
And I follow "CSV"
|
|
14
|
+
And I should download a CSV file for "posts" containing:
|
|
15
|
+
| Id | Title | Body | Published At | Created At | Updated At |
|
|
16
|
+
| \d+ | Hello World | | | (.*) | (.*) |
|
|
17
|
+
|
|
18
|
+
Scenario: Default with alias
|
|
19
|
+
Given a configuration of:
|
|
20
|
+
"""
|
|
21
|
+
ActiveAdmin.register Post, :as => "MyArticle"
|
|
22
|
+
"""
|
|
23
|
+
And 1 post exists
|
|
24
|
+
When I am on the index page for my_articles
|
|
25
|
+
And I follow "CSV"
|
|
26
|
+
And I should download a CSV file for "my-articles" containing:
|
|
27
|
+
| Id | Title | Body | Published At | Created At | Updated At |
|
|
28
|
+
|
|
29
|
+
Scenario: With CSV format customization
|
|
30
|
+
Given a configuration of:
|
|
31
|
+
"""
|
|
32
|
+
ActiveAdmin.register Post do
|
|
33
|
+
csv do
|
|
34
|
+
column :title
|
|
35
|
+
column("Last update") { |post| post.updated_at }
|
|
36
|
+
column("Copyright") { "Greg Bell" }
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
"""
|
|
40
|
+
And a post with the title "Hello, World" exists
|
|
41
|
+
When I am on the index page for posts
|
|
42
|
+
And I follow "CSV"
|
|
43
|
+
And I should download a CSV file for "posts" containing:
|
|
44
|
+
| Title | Last update | Copyright |
|
|
45
|
+
| Hello, World | (.*) | Greg Bell |
|
|
46
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Feature: Index Formats
|
|
2
|
+
|
|
3
|
+
Scenario: View index with default formats
|
|
4
|
+
Given an index configuration of:
|
|
5
|
+
"""
|
|
6
|
+
ActiveAdmin.register Post
|
|
7
|
+
"""
|
|
8
|
+
And 1 post exists
|
|
9
|
+
When I am on the index page for posts
|
|
10
|
+
Then I should see a link to download "CSV"
|
|
11
|
+
And I should see a link to download "XML"
|
|
12
|
+
And I should see a link to download "JSON"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Feature: Index as Block
|
|
2
|
+
|
|
3
|
+
Viewing the resource as a block which is renderered by the user
|
|
4
|
+
|
|
5
|
+
Scenario: Viewing the index as a block
|
|
6
|
+
Given a post with the title "Hello World from Block" exists
|
|
7
|
+
And an index configuration of:
|
|
8
|
+
"""
|
|
9
|
+
ActiveAdmin.register Post do
|
|
10
|
+
index :as => :block do |post|
|
|
11
|
+
span(link_to(post.title, admin_post_path(post)))
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
"""
|
|
15
|
+
Then I should see "Hello World from Block" within ".index_as_block"
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
Feature: Index as Blog
|
|
2
|
+
|
|
3
|
+
Viewing resources as a blog on the index page
|
|
4
|
+
|
|
5
|
+
Scenario: Viewing the blog with a resource
|
|
6
|
+
Given a post with the title "Hello World" exists
|
|
7
|
+
And an index configuration of:
|
|
8
|
+
"""
|
|
9
|
+
ActiveAdmin.register Post do
|
|
10
|
+
index :as => :blog
|
|
11
|
+
end
|
|
12
|
+
"""
|
|
13
|
+
And I am logged in
|
|
14
|
+
When I am on the index page for posts
|
|
15
|
+
Then I should see "Hello World" within "h3"
|
|
16
|
+
And I should see a link to "Hello World"
|
|
17
|
+
|
|
18
|
+
Scenario: Viewing the blog with a resource as a simple configuration
|
|
19
|
+
Given a post with the title "Hello World" and body "My great post body" exists
|
|
20
|
+
And an index configuration of:
|
|
21
|
+
"""
|
|
22
|
+
ActiveAdmin.register Post do
|
|
23
|
+
index :as => :blog do
|
|
24
|
+
title :title
|
|
25
|
+
body :body
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
"""
|
|
29
|
+
Then I should see "Hello World" within "h3"
|
|
30
|
+
And I should see a link to "Hello World"
|
|
31
|
+
And I should see "My great post body" within ".post"
|
|
32
|
+
|
|
33
|
+
Scenario: Viewing the blog with a resource as a block configuration
|
|
34
|
+
Given a post with the title "Hello World" and body "My great post body" exists
|
|
35
|
+
And an index configuration of:
|
|
36
|
+
"""
|
|
37
|
+
ActiveAdmin.register Post do
|
|
38
|
+
index :as => :blog do
|
|
39
|
+
title do |post|
|
|
40
|
+
post.title + " From Block"
|
|
41
|
+
end
|
|
42
|
+
body do |post|
|
|
43
|
+
post.body + " From Block"
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
"""
|
|
48
|
+
Then I should see "Hello World From Block" within "h3"
|
|
49
|
+
And I should see a link to "Hello World From Block"
|
|
50
|
+
And I should see "My great post body From Block" within ".post"
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Feature: Index as Grid
|
|
2
|
+
|
|
3
|
+
Viewing resources as a grid on the index page
|
|
4
|
+
|
|
5
|
+
Scenario: Viewing index as a grid with a simple block configuration
|
|
6
|
+
Given 9 posts exist
|
|
7
|
+
And an index configuration of:
|
|
8
|
+
"""
|
|
9
|
+
ActiveAdmin.register Post do
|
|
10
|
+
index :as => :grid do |post|
|
|
11
|
+
h2 auto_link(post)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
"""
|
|
15
|
+
Then the table ".index_grid" should have 3 rows
|
|
16
|
+
And the table ".index_grid" should have 3 columns
|
|
17
|
+
And there should be 9 "a" tags within index grid
|
|
18
|
+
|
|
19
|
+
Scenario: Viewing index as a grid and set the number of columns
|
|
20
|
+
Given 9 posts exist
|
|
21
|
+
And an index configuration of:
|
|
22
|
+
"""
|
|
23
|
+
ActiveAdmin.register Post do
|
|
24
|
+
index :as => :grid, :columns => 1 do |post|
|
|
25
|
+
h2 auto_link(post)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
"""
|
|
29
|
+
Then the table ".index_grid" should have 9 rows
|
|
30
|
+
And the table ".index_grid" should have 1 columns
|
|
31
|
+
And there should be 9 "a" tags within "table.index_grid"
|
|
32
|
+
|
|
33
|
+
Scenario: Viewing index as a grid with an odd number of items
|
|
34
|
+
Given 9 posts exist
|
|
35
|
+
And an index configuration of:
|
|
36
|
+
"""
|
|
37
|
+
ActiveAdmin.register Post do
|
|
38
|
+
index :as => :grid, :columns => 2 do |post|
|
|
39
|
+
h2 auto_link(post)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
"""
|
|
43
|
+
Then the table ".index_grid" should have 5 rows
|
|
44
|
+
And the table ".index_grid" should have 2 columns
|
|
45
|
+
And there should be 9 "a" tags within "table.index_grid"
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
Feature: Index as Table
|
|
2
|
+
|
|
3
|
+
Viewing resources as a table on the index page
|
|
4
|
+
|
|
5
|
+
Scenario: Viewing the default table with no resources
|
|
6
|
+
Given an index configuration of:
|
|
7
|
+
"""
|
|
8
|
+
ActiveAdmin.register Post
|
|
9
|
+
"""
|
|
10
|
+
And 1 post exists
|
|
11
|
+
When I am on the index page for posts
|
|
12
|
+
Then I should see a sortable table header with "ID"
|
|
13
|
+
And I should see a sortable table header with "Title"
|
|
14
|
+
|
|
15
|
+
Scenario: Viewing the default table with a resource
|
|
16
|
+
Given a post with the title "Hello World" exists
|
|
17
|
+
And an index configuration of:
|
|
18
|
+
"""
|
|
19
|
+
ActiveAdmin.register Post
|
|
20
|
+
"""
|
|
21
|
+
Then I should see "Hello World"
|
|
22
|
+
Then I should see nicely formatted datetimes
|
|
23
|
+
And I should see a link to "View"
|
|
24
|
+
And I should see a link to "Edit"
|
|
25
|
+
And I should see a link to "Delete"
|
|
26
|
+
|
|
27
|
+
Scenario: Customizing the columns with symbols
|
|
28
|
+
Given a post with the title "Hello World" and body "From the body" exists
|
|
29
|
+
And an index configuration of:
|
|
30
|
+
"""
|
|
31
|
+
ActiveAdmin.register Post do
|
|
32
|
+
index do
|
|
33
|
+
column :title
|
|
34
|
+
column :body
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
"""
|
|
38
|
+
Then I should see a sortable table header with "Title"
|
|
39
|
+
And I should see a sortable table header with "Body"
|
|
40
|
+
And I should see "Hello World"
|
|
41
|
+
And I should see "From the body"
|
|
42
|
+
|
|
43
|
+
Scenario: Customizing the columns with a block
|
|
44
|
+
Given a post with the title "Hello World" and body "From the body" exists
|
|
45
|
+
And an index configuration of:
|
|
46
|
+
"""
|
|
47
|
+
ActiveAdmin.register Post do
|
|
48
|
+
index do
|
|
49
|
+
column("My Title") do |post|
|
|
50
|
+
post.title
|
|
51
|
+
end
|
|
52
|
+
column("My Body") do |post|
|
|
53
|
+
post.body
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
"""
|
|
58
|
+
Then I should see a table header with "My Title"
|
|
59
|
+
And I should see a table header with "My Body"
|
|
60
|
+
And I should see "Hello World"
|
|
61
|
+
And I should see "From the body"
|
|
62
|
+
|
|
63
|
+
Scenario: Showing and Hiding columns
|
|
64
|
+
Given a post with the title "Hello World" and body "From the body" exists
|
|
65
|
+
And an index configuration of:
|
|
66
|
+
"""
|
|
67
|
+
ActiveAdmin.register Post do
|
|
68
|
+
index do
|
|
69
|
+
if current_active_admin_user
|
|
70
|
+
column :title
|
|
71
|
+
end
|
|
72
|
+
if current_active_admin_user.nil?
|
|
73
|
+
column :body
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
"""
|
|
78
|
+
Then I should see a sortable table header with "Title"
|
|
79
|
+
And I should not see a table header with "Body"
|
|
80
|
+
And I should see "Hello World"
|
|
81
|
+
And I should not see "From the body"
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
|
9
|
+
"""
|
|
10
|
+
Then I should not see a sortable table header
|
|
11
|
+
And I should see "There are no Posts yet. Create one"
|
|
12
|
+
And I should not see pagination
|
|
13
|
+
When I follow "Create one"
|
|
14
|
+
Then I should be on the new post page
|
|
15
|
+
|
|
16
|
+
Scenario: Viewing the default table with no resources and no 'new' action
|
|
17
|
+
Given an index configuration of:
|
|
18
|
+
"""
|
|
19
|
+
ActiveAdmin.register Post do
|
|
20
|
+
actions :index, :show
|
|
21
|
+
end
|
|
22
|
+
"""
|
|
23
|
+
And I should see "There are no Posts yet."
|
|
24
|
+
And I should not see "Create one"
|
|
25
|
+
|
|
26
|
+
Scenario: Viewing a index using a grid with no resources
|
|
27
|
+
Given an index configuration of:
|
|
28
|
+
"""
|
|
29
|
+
ActiveAdmin.register Post do
|
|
30
|
+
index :as => :grid do |post|
|
|
31
|
+
h2 auto_link(post)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
"""
|
|
35
|
+
And I should see "There are no Posts yet. Create one"
|
|
36
|
+
|
|
37
|
+
Scenario: Viewing a index using blocks with no resources
|
|
38
|
+
Given an index configuration of:
|
|
39
|
+
"""
|
|
40
|
+
ActiveAdmin.register Post do
|
|
41
|
+
index :as => :block do |post|
|
|
42
|
+
span(link_to(post.title, admin_post_path(post)))
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
"""
|
|
46
|
+
And I should see "There are no Posts yet. Create one"
|
|
47
|
+
|
|
48
|
+
Scenario: Viewing a blog with no resources
|
|
49
|
+
Given an index configuration of:
|
|
50
|
+
"""
|
|
51
|
+
ActiveAdmin.register Post do
|
|
52
|
+
index :as => :blog
|
|
53
|
+
end
|
|
54
|
+
"""
|
|
55
|
+
And I should see "There are no Posts yet. Create one"
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
Feature: Index Scoping
|
|
2
|
+
|
|
3
|
+
Viewing resources and scoping them
|
|
4
|
+
|
|
5
|
+
Scenario: Viewing resources with one scope and no default
|
|
6
|
+
Given 10 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 10
|
|
15
|
+
And I should see 10 posts in the table
|
|
16
|
+
|
|
17
|
+
Scenario: Viewing resources with one scope as the default
|
|
18
|
+
Given 10 posts exist
|
|
19
|
+
And an index configuration of:
|
|
20
|
+
"""
|
|
21
|
+
ActiveAdmin.register Post do
|
|
22
|
+
scope :all, :default => true
|
|
23
|
+
end
|
|
24
|
+
"""
|
|
25
|
+
Then I should see the scope "All" selected
|
|
26
|
+
And I should see the scope "All" with the count 10
|
|
27
|
+
And I should see 10 posts in the table
|
|
28
|
+
|
|
29
|
+
Scenario: Viewing resources with mulitple scopes as blocks
|
|
30
|
+
Given 10 posts exist
|
|
31
|
+
And an index configuration of:
|
|
32
|
+
"""
|
|
33
|
+
ActiveAdmin.register Post do
|
|
34
|
+
scope 'Today', :default => true do |posts|
|
|
35
|
+
posts.where(["created_at > ? AND created_at < ?", ::Time.zone.now.beginning_of_day, ::Time.zone.now.end_of_day])
|
|
36
|
+
end
|
|
37
|
+
scope 'Tomorrow' do |posts|
|
|
38
|
+
posts.where(["created_at > ? AND created_at < ?", ::Time.zone.now.beginning_of_day + 1.day, ::Time.zone.now.end_of_day + 1.day])
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
"""
|
|
42
|
+
Then I should see the scope "Today" selected
|
|
43
|
+
And I should see the scope "Tomorrow" not selected
|
|
44
|
+
And I should see the scope "Today" with the count 10
|
|
45
|
+
And I should see the scope "Tomorrow" with the count 0
|
|
46
|
+
And I should see 10 posts in the table
|
|
47
|
+
And I should see a link to "Tomorrow"
|
|
48
|
+
|
|
49
|
+
When I follow "Tomorrow"
|
|
50
|
+
Then I should see the scope "Tomorrow" selected
|
|
51
|
+
And I should see the scope "Today" not selected
|
|
52
|
+
And I should see a link to "Today"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Feature: Index Pagination
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given an index configuration of:
|
|
5
|
+
"""
|
|
6
|
+
ActiveAdmin.register Post
|
|
7
|
+
"""
|
|
8
|
+
Scenario: Viewing index when one page of resources exist
|
|
9
|
+
Given 20 posts exist
|
|
10
|
+
When I am on the index page for posts
|
|
11
|
+
Then I should see "Displaying all 20 Posts"
|
|
12
|
+
And I should not see pagination
|
|
13
|
+
|
|
14
|
+
Scenario: Viewing index when multiple pages of resources exist
|
|
15
|
+
Given 31 posts exist
|
|
16
|
+
When I am on the index page for posts
|
|
17
|
+
Then I should see pagination with 2 pages
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Feature: Menu
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given I am logged in
|
|
5
|
+
|
|
6
|
+
Scenario: Hide the menu item
|
|
7
|
+
Given a configuration of:
|
|
8
|
+
"""
|
|
9
|
+
ActiveAdmin.register Post do
|
|
10
|
+
menu false
|
|
11
|
+
end
|
|
12
|
+
"""
|
|
13
|
+
When I am on the dashboard
|
|
14
|
+
Then I should not see a menu item for "Posts"
|
|
15
|
+
|
|
16
|
+
@wip
|
|
17
|
+
Scenario: Set the menu item label
|
|
18
|
+
Given a configuration of:
|
|
19
|
+
"""
|
|
20
|
+
ActiveAdmin.register Post do
|
|
21
|
+
menu :label => "Articles"
|
|
22
|
+
end
|
|
23
|
+
"""
|
|
24
|
+
When I am on the dashboard
|
|
25
|
+
Then I should see a menu item for "Articles"
|
|
26
|
+
And I should not see a menu item for "Posts"
|