andrewroth_activeadmin 0.3.4
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 +35 -0
- data/.travis.yml +4 -0
- data/.yardopts +8 -0
- data/CHANGELOG.md +301 -0
- data/Gemfile +40 -0
- data/Guardfile +8 -0
- data/LICENSE +25 -0
- data/README.rdoc +113 -0
- data/Rakefile +18 -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 +363 -0
- data/app/assets/stylesheets/active_admin/_forms.css.scss +259 -0
- data/app/assets/stylesheets/active_admin/_header.css.scss +121 -0
- data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
- data/app/assets/stylesheets/active_admin/_typography.css.scss +102 -0
- data/app/assets/stylesheets/active_admin/components/_comments.css.scss +43 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +125 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +39 -0
- data/app/assets/stylesheets/active_admin/components/_tables.css.scss +68 -0
- data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +10 -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/_utilities.scss +17 -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/0-installation.md +50 -0
- data/docs/1-general-configuration.md +43 -0
- data/docs/2-resource-customization.md +114 -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 +90 -0
- data/docs/4-csv-format.md +14 -0
- data/docs/5-forms.md +39 -0
- data/docs/6-show-screens.md +36 -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/filters.feature +35 -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 +56 -0
- data/features/index/index_scopes.feature +52 -0
- data/features/index/pagination.feature +17 -0
- data/features/menu.feature +37 -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 +96 -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 +82 -0
- data/lib/active_admin/abstract_view_factory.rb +95 -0
- data/lib/active_admin/application.rb +231 -0
- data/lib/active_admin/arbre.rb +23 -0
- data/lib/active_admin/arbre/builder.rb +111 -0
- data/lib/active_admin/arbre/context.rb +45 -0
- data/lib/active_admin/arbre/core_extensions.rb +5 -0
- data/lib/active_admin/arbre/html/attributes.rb +20 -0
- data/lib/active_admin/arbre/html/class_list.rb +28 -0
- data/lib/active_admin/arbre/html/collection.rb +27 -0
- data/lib/active_admin/arbre/html/document.rb +42 -0
- data/lib/active_admin/arbre/html/element.rb +151 -0
- data/lib/active_admin/arbre/html/html5_elements.rb +47 -0
- data/lib/active_admin/arbre/html/tag.rb +137 -0
- data/lib/active_admin/arbre/html/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/dependency_checker.rb +30 -0
- data/lib/active_admin/deprecation.rb +36 -0
- data/lib/active_admin/devise.rb +54 -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 +118 -0
- data/lib/active_admin/helpers/optional_display.rb +34 -0
- data/lib/active_admin/helpers/scope_chain.rb +23 -0
- data/lib/active_admin/helpers/settings.rb +70 -0
- data/lib/active_admin/iconic.rb +51 -0
- data/lib/active_admin/iconic/icons.rb +142 -0
- data/lib/active_admin/locales/bg.yml +40 -0
- data/lib/active_admin/locales/cs.yml +34 -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 +40 -0
- data/lib/active_admin/locales/fr.yml +40 -0
- data/lib/active_admin/locales/it.yml +40 -0
- data/lib/active_admin/locales/ja.yml +40 -0
- data/lib/active_admin/locales/pl.yml +34 -0
- data/lib/active_admin/locales/pt-BR.yml +41 -0
- data/lib/active_admin/locales/ru.yml +40 -0
- data/lib/active_admin/locales/sv-SE.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 +64 -0
- data/lib/active_admin/renderer.rb +87 -0
- data/lib/active_admin/resource.rb +159 -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 +50 -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 +105 -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 +138 -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 +45 -0
- data/lib/active_admin/scope.rb +31 -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 +17 -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 +69 -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 +57 -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 +164 -0
- data/lib/active_admin/views/pages/base.rb +167 -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 +91 -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/tabbed_navigation.rb +94 -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 +103 -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 +46 -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/memory_spec.rb +38 -0
- data/spec/integration/stylesheets_spec.rb +41 -0
- data/spec/spec_helper.rb +167 -0
- data/spec/support/detect_rails_version.rb +10 -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/active_admin_spec.rb +17 -0
- data/spec/unit/application_spec.rb +87 -0
- data/spec/unit/arbre/context_spec.rb +35 -0
- data/spec/unit/arbre/html/element_finder_methods_spec.rb +54 -0
- data/spec/unit/arbre/html/element_spec.rb +223 -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 +209 -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/devise_spec.rb +66 -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 +256 -0
- data/spec/unit/generators/install_rails_3_1_spec.rb +16 -0
- data/spec/unit/helpers/scope_chain_spec.rb +36 -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 +80 -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 +75 -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 +269 -0
- data/spec/unit/routing_spec.rb +88 -0
- data/spec/unit/sass/helpers_spec.rb +47 -0
- data/spec/unit/scope_spec.rb +41 -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 +15 -0
- data/spec/unit/views/components/columns_spec.rb +75 -0
- data/spec/unit/views/components/panel_spec.rb +29 -0
- data/spec/unit/views/components/sidebar_section_spec.rb +37 -0
- data/spec/unit/views/components/status_tag_spec.rb +79 -0
- data/spec/unit/views/components/table_for_spec.rb +131 -0
- data/spec/unit/views/pages/layout_spec.rb +22 -0
- data/spec/unit/views/tabbed_navigation_spec.rb +125 -0
- data/tasks/docs.rake +39 -0
- data/tasks/test.rake +57 -0
- data/tasks/yard.rake +6 -0
- metadata +646 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Feature: Viewing Index of Comments
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given a post with the title "Hello World" written by "Jane Doe" exists
|
|
5
|
+
Given a show configuration of:
|
|
6
|
+
"""
|
|
7
|
+
ActiveAdmin.register Post
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
Scenario: Viewing all commments for a namespace
|
|
11
|
+
When I add a comment "Hello from Comment"
|
|
12
|
+
When I am on the index page for comments
|
|
13
|
+
Then I should see a table header with "Body"
|
|
14
|
+
And I should see a table header with "Resource"
|
|
15
|
+
And I should see a table header with "Author"
|
|
16
|
+
And I should see "Hello from Comment"
|
|
17
|
+
And I should see a link to "Hello World"
|
|
18
|
+
And I should see "admin@example.com"
|
|
19
|
+
And I should not see an action item button "New Comment"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Feature: Dashboard
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given I am logged in
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Scenario: With no configuration
|
|
8
|
+
Given a configuration of:
|
|
9
|
+
"""
|
|
10
|
+
"""
|
|
11
|
+
When I go to the dashboard
|
|
12
|
+
Then I should see the default welcome message
|
|
13
|
+
|
|
14
|
+
Scenario: Displaying a dashboard widget
|
|
15
|
+
Given a configuration of:
|
|
16
|
+
"""
|
|
17
|
+
ActiveAdmin::Dashboards.build do
|
|
18
|
+
section 'Hello World' do
|
|
19
|
+
para "Hello world from the content"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
"""
|
|
23
|
+
When I go to the dashboard
|
|
24
|
+
Then I should not see the default welcome message
|
|
25
|
+
And I should see a dashboard widget "Hello World"
|
|
26
|
+
And I should see "Hello world from the content"
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
Feature: Edit Page
|
|
2
|
+
|
|
3
|
+
Customizing the form to edit resources
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given a category named "Music" exists
|
|
7
|
+
And a user named "John Doe" exists
|
|
8
|
+
And a post with the title "Hello World" written by "John Doe" exists
|
|
9
|
+
And I am logged in
|
|
10
|
+
Given a configuration of:
|
|
11
|
+
"""
|
|
12
|
+
ActiveAdmin.register Post
|
|
13
|
+
"""
|
|
14
|
+
When I am on the index page for posts
|
|
15
|
+
|
|
16
|
+
Scenario: Default form with no config
|
|
17
|
+
Given I follow "Edit"
|
|
18
|
+
Then the "Title" field should contain "Hello World"
|
|
19
|
+
And the "Body" field should contain ""
|
|
20
|
+
And the "Category" field should contain ""
|
|
21
|
+
And the "Author" field should contain the option "John Doe"
|
|
22
|
+
When I fill in "Title" with "Hello World from update"
|
|
23
|
+
When I press "Update Post"
|
|
24
|
+
Then I should see "Post was successfully updated."
|
|
25
|
+
And I should see the attribute "Title" with "Hello World from update"
|
|
26
|
+
And I should see the attribute "Author" with "John Doe"
|
|
27
|
+
|
|
28
|
+
Scenario: Generating a custom form
|
|
29
|
+
Given a configuration of:
|
|
30
|
+
"""
|
|
31
|
+
ActiveAdmin.register Post do
|
|
32
|
+
form do |f|
|
|
33
|
+
f.inputs "Your Post" do
|
|
34
|
+
f.input :title
|
|
35
|
+
f.input :body
|
|
36
|
+
end
|
|
37
|
+
f.inputs "Publishing" do
|
|
38
|
+
f.input :published_at
|
|
39
|
+
end
|
|
40
|
+
f.buttons
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
"""
|
|
44
|
+
Given I follow "Edit"
|
|
45
|
+
Then I should see a fieldset titled "Your Post"
|
|
46
|
+
And I should see a fieldset titled "Publishing"
|
|
47
|
+
And the "Title" field should contain "Hello World"
|
|
48
|
+
And the "Body" field should contain ""
|
|
49
|
+
When I fill in "Title" with "Hello World from update"
|
|
50
|
+
When I press "Update Post"
|
|
51
|
+
Then I should see "Post was successfully updated."
|
|
52
|
+
And I should see the attribute "Title" with "Hello World from update"
|
|
53
|
+
And I should see the attribute "Author" with "John Doe"
|
|
54
|
+
|
|
55
|
+
Scenario: Generating a custom form with :html set, visiting the new page first (bug probing issue #109)
|
|
56
|
+
Given a configuration of:
|
|
57
|
+
"""
|
|
58
|
+
ActiveAdmin.register Post do
|
|
59
|
+
form :html => {} do |f|
|
|
60
|
+
f.inputs "Your Post" do
|
|
61
|
+
f.input :title
|
|
62
|
+
f.input :body
|
|
63
|
+
end
|
|
64
|
+
f.inputs "Publishing" do
|
|
65
|
+
f.input :published_at
|
|
66
|
+
end
|
|
67
|
+
f.buttons
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
"""
|
|
71
|
+
Given I follow "New"
|
|
72
|
+
Then I follow "Posts"
|
|
73
|
+
Then I follow "Edit"
|
|
74
|
+
Then I should see a fieldset titled "Your Post"
|
|
75
|
+
And I should see a fieldset titled "Publishing"
|
|
76
|
+
And the "Title" field should contain "Hello World"
|
|
77
|
+
And the "Body" field should contain ""
|
|
78
|
+
When I fill in "Title" with "Hello World from update"
|
|
79
|
+
When I press "Update Post"
|
|
80
|
+
Then I should see "Post was successfully updated."
|
|
81
|
+
And I should see the attribute "Title" with "Hello World from update"
|
|
82
|
+
And I should see the attribute "Author" with "John Doe"
|
|
83
|
+
|
|
84
|
+
Scenario: Generating a form from a partial
|
|
85
|
+
Given "app/views/admin/posts/_form.html.erb" contains:
|
|
86
|
+
"""
|
|
87
|
+
<% url = @post.new_record? ? admin_posts_path : admin_post_path(@post) %>
|
|
88
|
+
<%= active_admin_form_for @post, :url => url do |f|
|
|
89
|
+
f.inputs :title, :body
|
|
90
|
+
f.buttons
|
|
91
|
+
end %>
|
|
92
|
+
"""
|
|
93
|
+
Given a configuration of:
|
|
94
|
+
"""
|
|
95
|
+
ActiveAdmin.register Post do
|
|
96
|
+
form :partial => "form"
|
|
97
|
+
end
|
|
98
|
+
"""
|
|
99
|
+
Given I follow "Edit"
|
|
100
|
+
Then the "Title" field should contain "Hello World"
|
|
101
|
+
And the "Body" field should contain ""
|
|
102
|
+
When I fill in "Title" with "Hello World from update"
|
|
103
|
+
When I press "Update Post"
|
|
104
|
+
Then I should see "Post was successfully updated."
|
|
105
|
+
And I should see the attribute "Title" with "Hello World from update"
|
|
106
|
+
And I should see the attribute "Author" with "John Doe"
|
|
@@ -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,35 @@
|
|
|
1
|
+
Feature: Index Pagination
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given an index configuration of:
|
|
5
|
+
"""
|
|
6
|
+
ActiveAdmin.register Post
|
|
7
|
+
"""
|
|
8
|
+
Scenario: Filtering posts
|
|
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 see "Author" within ".filter_form"
|
|
13
|
+
And I should see "Category" within ".filter_form"
|
|
14
|
+
And I should see "Search Title" within ".filter_form"
|
|
15
|
+
And I should see "Search Body" within ".filter_form"
|
|
16
|
+
And I should see "Published at" within ".filter_form"
|
|
17
|
+
And I should see "Created at" within ".filter_form"
|
|
18
|
+
And I should see "Updated at" within ".filter_form"
|
|
19
|
+
|
|
20
|
+
When I fill in "Search Title" with "Hello World 17"
|
|
21
|
+
And I press "Filter"
|
|
22
|
+
And I should see 1 posts in the table
|
|
23
|
+
And I should see "Hello World 17" within ".index_table"
|
|
24
|
+
|
|
25
|
+
Scenario: Filtering posts with no results
|
|
26
|
+
Given 20 posts exist
|
|
27
|
+
When I am on the index page for posts
|
|
28
|
+
Then I should see "Displaying all 20 Posts"
|
|
29
|
+
When I fill in "Search Title" with "THIS IS NOT AN EXISTING TITLE!!"
|
|
30
|
+
And I press "Filter"
|
|
31
|
+
|
|
32
|
+
And I should not see ".index_table"
|
|
33
|
+
Then I should not see a sortable table header
|
|
34
|
+
And I should not see pagination
|
|
35
|
+
And I should see "No Posts found"
|
|
@@ -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"
|