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,56 @@
|
|
|
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 ".index_table"
|
|
13
|
+
And I should not see pagination
|
|
14
|
+
When I follow "Create one"
|
|
15
|
+
Then I should be on the new post page
|
|
16
|
+
|
|
17
|
+
Scenario: Viewing the default table with no resources and no 'new' action
|
|
18
|
+
Given an index configuration of:
|
|
19
|
+
"""
|
|
20
|
+
ActiveAdmin.register Post do
|
|
21
|
+
actions :index, :show
|
|
22
|
+
end
|
|
23
|
+
"""
|
|
24
|
+
And I should see "There are no Posts yet."
|
|
25
|
+
And I should not see "Create one"
|
|
26
|
+
|
|
27
|
+
Scenario: Viewing a index using a grid with no resources
|
|
28
|
+
Given an index configuration of:
|
|
29
|
+
"""
|
|
30
|
+
ActiveAdmin.register Post do
|
|
31
|
+
index :as => :grid do |post|
|
|
32
|
+
h2 auto_link(post)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
"""
|
|
36
|
+
And I should see "There are no Posts yet. Create one"
|
|
37
|
+
|
|
38
|
+
Scenario: Viewing a index using blocks with no resources
|
|
39
|
+
Given an index configuration of:
|
|
40
|
+
"""
|
|
41
|
+
ActiveAdmin.register Post do
|
|
42
|
+
index :as => :block do |post|
|
|
43
|
+
span(link_to(post.title, admin_post_path(post)))
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
"""
|
|
47
|
+
And I should see "There are no Posts yet. Create one"
|
|
48
|
+
|
|
49
|
+
Scenario: Viewing a blog with no resources
|
|
50
|
+
Given an index configuration of:
|
|
51
|
+
"""
|
|
52
|
+
ActiveAdmin.register Post do
|
|
53
|
+
index :as => :blog
|
|
54
|
+
end
|
|
55
|
+
"""
|
|
56
|
+
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,37 @@
|
|
|
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
|
+
Scenario: Set the menu item label
|
|
17
|
+
Given a configuration of:
|
|
18
|
+
"""
|
|
19
|
+
ActiveAdmin.register Post do
|
|
20
|
+
menu :label => "Articles"
|
|
21
|
+
end
|
|
22
|
+
"""
|
|
23
|
+
When I am on the dashboard
|
|
24
|
+
Then I should see a menu item for "Articles"
|
|
25
|
+
And I should not see a menu item for "Posts"
|
|
26
|
+
|
|
27
|
+
Scenario: Set the site title and site title link
|
|
28
|
+
Given a configuration of:
|
|
29
|
+
"""
|
|
30
|
+
ActiveAdmin.application.site_title = "My Great Site"
|
|
31
|
+
ActiveAdmin.application.site_title_link = "http://www.google.com/"
|
|
32
|
+
"""
|
|
33
|
+
When I am on the dashboard
|
|
34
|
+
And I should see "My Great Site"
|
|
35
|
+
When I follow "My Great Site"
|
|
36
|
+
Then I should see "Ruby on Rails: Welcome aboard"
|
|
37
|
+
# Why won't it take me to the Googles??? It takes me to / instead. Oh well
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
Feature: New Page
|
|
2
|
+
|
|
3
|
+
Customizing the form to create new resources
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given a category named "Music" exists
|
|
7
|
+
Given a user named "John Doe" exists
|
|
8
|
+
And I am logged in
|
|
9
|
+
Given a configuration of:
|
|
10
|
+
"""
|
|
11
|
+
ActiveAdmin.register Post
|
|
12
|
+
"""
|
|
13
|
+
When I am on the index page for posts
|
|
14
|
+
|
|
15
|
+
Scenario: Default form with no config
|
|
16
|
+
Given I follow "New Post"
|
|
17
|
+
When I fill in "Title" with "Hello World"
|
|
18
|
+
And I fill in "Body" with "This is the body"
|
|
19
|
+
And I select "Music" from "Category"
|
|
20
|
+
And I select "John Doe" from "Author"
|
|
21
|
+
And I press "Create Post"
|
|
22
|
+
Then I should see "Post was successfully created."
|
|
23
|
+
And I should see the attribute "Title" with "Hello World"
|
|
24
|
+
And I should see the attribute "Body" with "This is the body"
|
|
25
|
+
And I should see the attribute "Category" with "Music"
|
|
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 "New Post"
|
|
45
|
+
Then I should see a fieldset titled "Your Post"
|
|
46
|
+
And I should see a fieldset titled "Publishing"
|
|
47
|
+
When I fill in "Title" with "Hello World"
|
|
48
|
+
And I fill in "Body" with "This is the body"
|
|
49
|
+
And I press "Create Post"
|
|
50
|
+
Then I should see "Post was successfully created."
|
|
51
|
+
And I should see the attribute "Title" with "Hello World"
|
|
52
|
+
And I should see the attribute "Body" with "This is the body"
|
|
53
|
+
|
|
54
|
+
Scenario: Generating a form from a partial
|
|
55
|
+
Given "app/views/admin/posts/_form.html.erb" contains:
|
|
56
|
+
"""
|
|
57
|
+
<% url = @post.new_record? ? admin_posts_path : admin_post_path(@post) %>
|
|
58
|
+
<%= active_admin_form_for @post, :url => url do |f|
|
|
59
|
+
f.inputs :title, :body
|
|
60
|
+
f.buttons
|
|
61
|
+
end %>
|
|
62
|
+
"""
|
|
63
|
+
Given a configuration of:
|
|
64
|
+
"""
|
|
65
|
+
ActiveAdmin.register Post do
|
|
66
|
+
form :partial => "form"
|
|
67
|
+
end
|
|
68
|
+
"""
|
|
69
|
+
Given I follow "New Post"
|
|
70
|
+
When I fill in "Title" with "Hello World"
|
|
71
|
+
And I fill in "Body" with "This is the body"
|
|
72
|
+
And I press "Create Post"
|
|
73
|
+
Then I should see "Post was successfully created."
|
|
74
|
+
And I should see the attribute "Title" with "Hello World"
|
|
75
|
+
And I should see the attribute "Body" with "This is the body"
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Feature: Registering Assets
|
|
2
|
+
|
|
3
|
+
Registering CSS and JS files
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given a configuration of:
|
|
7
|
+
"""
|
|
8
|
+
ActiveAdmin.register Post
|
|
9
|
+
"""
|
|
10
|
+
And I am logged in
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
Scenario: Viewing default asset files
|
|
14
|
+
When I am on the index page for posts
|
|
15
|
+
Then I should see the css file "admin/active_admin.css"
|
|
16
|
+
Then I should see the js file "active_admin_vendor.js"
|
|
17
|
+
Then I should see the js file "active_admin.js"
|
|
18
|
+
|
|
19
|
+
Scenario: Registering a CSS file
|
|
20
|
+
Given a configuration of:
|
|
21
|
+
"""
|
|
22
|
+
ActiveAdmin.application.register_stylesheet "some-random-css.css"
|
|
23
|
+
ActiveAdmin.register Post
|
|
24
|
+
"""
|
|
25
|
+
When I am on the index page for posts
|
|
26
|
+
Then I should see the css file "some-random-css.css"
|
|
27
|
+
|
|
28
|
+
Scenario: Registering a JS file
|
|
29
|
+
Given a configuration of:
|
|
30
|
+
"""
|
|
31
|
+
ActiveAdmin.application.register_javascript "some-random-js.js"
|
|
32
|
+
ActiveAdmin.register Post
|
|
33
|
+
"""
|
|
34
|
+
When I am on the index page for posts
|
|
35
|
+
Then I should see the js file "some-random-js.js"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
Feature: Registering Resources
|
|
2
|
+
|
|
3
|
+
Registering resources within Active Admin
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given I am logged in
|
|
7
|
+
And a post with the title "Hello World" exists
|
|
8
|
+
|
|
9
|
+
Scenario: Registering a resource with the defaults
|
|
10
|
+
Given a configuration of:
|
|
11
|
+
"""
|
|
12
|
+
ActiveAdmin.register Post
|
|
13
|
+
"""
|
|
14
|
+
When I go to the dashboard
|
|
15
|
+
Then I should see "Posts"
|
|
16
|
+
When I follow "Posts"
|
|
17
|
+
Then I should see "Hello World"
|
|
18
|
+
When I follow "View"
|
|
19
|
+
Then I should see "Hello World"
|
|
20
|
+
And I should be in the resource section for Post
|
|
21
|
+
|
|
22
|
+
Scenario: Registering a resource with another name
|
|
23
|
+
Given a configuration of:
|
|
24
|
+
"""
|
|
25
|
+
ActiveAdmin.register Post, :as => "My Post"
|
|
26
|
+
"""
|
|
27
|
+
When I go to the dashboard
|
|
28
|
+
Then I should see "My Posts"
|
|
29
|
+
When I follow "My Posts"
|
|
30
|
+
Then I should see "Hello World"
|
|
31
|
+
When I follow "View"
|
|
32
|
+
Then I should see "Hello World"
|
|
33
|
+
And I should be in the resource section for My Post
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Feature: Show - Default Content
|
|
2
|
+
|
|
3
|
+
Viewing the show page for a resource
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given a post with the title "Hello World" written by "Jane Doe" exists
|
|
7
|
+
|
|
8
|
+
Scenario: Viewing the default show page
|
|
9
|
+
Given a show configuration of:
|
|
10
|
+
"""
|
|
11
|
+
ActiveAdmin.register Post
|
|
12
|
+
"""
|
|
13
|
+
Then I should see the attribute "Title" with "Hello World"
|
|
14
|
+
And I should see the attribute "Body" with "Empty"
|
|
15
|
+
And I should see the attribute "Created At" with a nicely formatted datetime
|
|
16
|
+
And I should see the attribute "Author" with "jane_doe"
|
|
17
|
+
And I should see an action item button "Delete Post"
|
|
18
|
+
And I should see an action item button "Edit Post"
|
|
19
|
+
|
|
20
|
+
Scenario: Attributes should link when linked resource is registered
|
|
21
|
+
Given a show configuration of:
|
|
22
|
+
"""
|
|
23
|
+
ActiveAdmin.register User
|
|
24
|
+
ActiveAdmin.register Post
|
|
25
|
+
"""
|
|
26
|
+
Then I should see the attribute "Author" with "jane_doe"
|
|
27
|
+
And I should see a link to "jane_doe"
|
|
28
|
+
|
|
29
|
+
Scenario: Customizing the attributes table with a set of attributes
|
|
30
|
+
Given a show configuration of:
|
|
31
|
+
"""
|
|
32
|
+
ActiveAdmin.register Post do
|
|
33
|
+
|
|
34
|
+
show do
|
|
35
|
+
attributes_table :title, :body, :created_at, :updated_at
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
"""
|
|
40
|
+
Then I should see the attribute "Title" with "Hello World"
|
|
41
|
+
And I should see the attribute "Body" with "Empty"
|
|
42
|
+
And I should see the attribute "Created At" with a nicely formatted datetime
|
|
43
|
+
And I should not see the attribute "Author"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
Feature: Show - Page Title
|
|
2
|
+
|
|
3
|
+
Modifying the page title on the show screen
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given a post with the title "Hello World" written by "Jane Doe" exists
|
|
7
|
+
|
|
8
|
+
Scenario: Set a method to be called on the resource as the title
|
|
9
|
+
Given a show configuration of:
|
|
10
|
+
"""
|
|
11
|
+
ActiveAdmin.register Post do
|
|
12
|
+
show :title => :title
|
|
13
|
+
end
|
|
14
|
+
"""
|
|
15
|
+
Then I should see the page title "Hello World"
|
|
16
|
+
|
|
17
|
+
Scenario: Set a string as the title
|
|
18
|
+
Given a show configuration of:
|
|
19
|
+
"""
|
|
20
|
+
ActiveAdmin.register Post do
|
|
21
|
+
show :title => "Title From String"
|
|
22
|
+
end
|
|
23
|
+
"""
|
|
24
|
+
Then I should see the page title "Title From String"
|
|
25
|
+
|
|
26
|
+
Scenario: Set a proc as the title
|
|
27
|
+
Given a show configuration of:
|
|
28
|
+
"""
|
|
29
|
+
ActiveAdmin.register Post do
|
|
30
|
+
show :title => proc{|post| "Title: " + post.title }
|
|
31
|
+
end
|
|
32
|
+
"""
|
|
33
|
+
Then I should see the page title "Title: Hello World"
|
|
@@ -0,0 +1,127 @@
|
|
|
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 with deep content
|
|
80
|
+
Given a configuration of:
|
|
81
|
+
"""
|
|
82
|
+
ActiveAdmin.register Post do
|
|
83
|
+
sidebar :help do
|
|
84
|
+
ul do
|
|
85
|
+
li "First List First Item"
|
|
86
|
+
li "First List Second Item"
|
|
87
|
+
end
|
|
88
|
+
ul do
|
|
89
|
+
li "Second List First Item"
|
|
90
|
+
li "Second List Second Item"
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
"""
|
|
95
|
+
When I am on the index page for posts
|
|
96
|
+
Then I should see a sidebar titled "Help"
|
|
97
|
+
And I should see "First List First Item" within the "Help" sidebar
|
|
98
|
+
And I should see "Second List Second Item" within the "Help" sidebar
|
|
99
|
+
|
|
100
|
+
Scenario: Rendering sidebar by default without a block or partial name
|
|
101
|
+
Given "app/views/admin/posts/_help_sidebar.html.erb" contains:
|
|
102
|
+
"""
|
|
103
|
+
<p>Hello World from a partial</p>
|
|
104
|
+
"""
|
|
105
|
+
Given a configuration of:
|
|
106
|
+
"""
|
|
107
|
+
ActiveAdmin.register Post do
|
|
108
|
+
sidebar :help
|
|
109
|
+
end
|
|
110
|
+
"""
|
|
111
|
+
When I am on the index page for posts
|
|
112
|
+
Then I should see "Hello World from a partial" within the "Help" sidebar
|
|
113
|
+
|
|
114
|
+
Scenario: Rendering a partial as the sidebar content
|
|
115
|
+
Given "app/views/admin/posts/_custom_help_partial.html.erb" contains:
|
|
116
|
+
"""
|
|
117
|
+
<p>Hello World from a custom partial</p>
|
|
118
|
+
"""
|
|
119
|
+
Given a configuration of:
|
|
120
|
+
"""
|
|
121
|
+
ActiveAdmin.register Post do
|
|
122
|
+
sidebar :help, :partial => "custom_help_partial"
|
|
123
|
+
end
|
|
124
|
+
"""
|
|
125
|
+
When I am on the index page for posts
|
|
126
|
+
Then I should see "Hello World from a custom partial" within the "Help" sidebar
|
|
127
|
+
|