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,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
|
+
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
Feature: Specifying Actions
|
|
2
|
+
|
|
3
|
+
Specifying which actions to allow on my resource
|
|
4
|
+
|
|
5
|
+
Scenario: Only creating the index action
|
|
6
|
+
Given a configuration of:
|
|
7
|
+
"""
|
|
8
|
+
ActiveAdmin.register Post do
|
|
9
|
+
actions :index
|
|
10
|
+
end
|
|
11
|
+
"""
|
|
12
|
+
And I am logged in
|
|
13
|
+
And a post with the title "Hello World" exists
|
|
14
|
+
When I am on the index page for posts
|
|
15
|
+
Then an "AbstractController::ActionNotFound" exception should be raised when I follow "View"
|
|
16
|
+
|
|
17
|
+
Scenario: Specify a custom collection action with template
|
|
18
|
+
Given a configuration of:
|
|
19
|
+
"""
|
|
20
|
+
ActiveAdmin.register Post do
|
|
21
|
+
action_item(:only => :index) do
|
|
22
|
+
link_to('Import Posts', import_admin_posts_path)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
collection_action :import
|
|
26
|
+
end
|
|
27
|
+
"""
|
|
28
|
+
Given "app/views/admin/posts/import.html.erb" contains:
|
|
29
|
+
"""
|
|
30
|
+
<p>We are currently working on this feature...</p>
|
|
31
|
+
"""
|
|
32
|
+
And I am logged in
|
|
33
|
+
When I am on the index page for posts
|
|
34
|
+
And I follow "Import"
|
|
35
|
+
Then I should see "We are currently working on this feature"
|
|
36
|
+
|
|
37
|
+
Scenario: Specify a custom member action with template
|
|
38
|
+
Given a configuration of:
|
|
39
|
+
"""
|
|
40
|
+
ActiveAdmin.register Post do
|
|
41
|
+
action_item(:only => :show) do
|
|
42
|
+
link_to('Review', review_admin_post_path)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
member_action :review do
|
|
46
|
+
@post = Post.find(params[:id])
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
"""
|
|
50
|
+
Given "app/views/admin/posts/review.html.erb" contains:
|
|
51
|
+
"""
|
|
52
|
+
<h1>Review: <%= @post.title %></h1>
|
|
53
|
+
"""
|
|
54
|
+
And I am logged in
|
|
55
|
+
And a post with the title "Hello World" exists
|
|
56
|
+
When I am on the index page for posts
|
|
57
|
+
And I follow "View"
|
|
58
|
+
And I follow "Review"
|
|
59
|
+
Then I should see "Review: Hello World"
|
|
60
|
+
And I should see the page title "Review"
|
|
61
|
+
And I should see the Active Admin layout
|
|
62
|
+
|
|
63
|
+
Scenario: Specify a custom member action with template using arb
|
|
64
|
+
Given a configuration of:
|
|
65
|
+
"""
|
|
66
|
+
ActiveAdmin.register Post do
|
|
67
|
+
action_item(:only => :show) do
|
|
68
|
+
link_to('Review', review_admin_post_path)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
member_action :review do
|
|
72
|
+
@post = Post.find(params[:id])
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
"""
|
|
76
|
+
Given "app/views/admin/posts/review.html.arb" contains:
|
|
77
|
+
"""
|
|
78
|
+
h1 "Review: #{@post.title}"
|
|
79
|
+
"""
|
|
80
|
+
And I am logged in
|
|
81
|
+
And a post with the title "Hello World" exists
|
|
82
|
+
When I am on the index page for posts
|
|
83
|
+
And I follow "View"
|
|
84
|
+
And I follow "Review"
|
|
85
|
+
Then I should see "Review: Hello World"
|
|
86
|
+
And I should see the page title "Review"
|
|
87
|
+
And I should see the Active Admin layout
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Then /^I should see an action item button "([^"]*)"$/ do |content|
|
|
2
|
+
page.should have_css(".action_items a", :text => content)
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
Then /^I should not see an action item button "([^"]*)"$/ do |content|
|
|
6
|
+
page.should_not have_css(".action_items", :text => content)
|
|
7
|
+
end
|