activeadmin 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- data/.gitignore +5 -1
- data/.travis.yml +1 -1
- data/.yardopts +2 -3
- data/CHANGELOG.md +180 -36
- data/CONTRIBUTING.md +12 -2
- data/Gemfile +9 -3
- data/README.rdoc +38 -65
- data/Rakefile +1 -3
- data/activeadmin.gemspec +10 -11
- data/app/assets/images/active_admin/index_list_icons/block_icon.svg +1 -1
- data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +1 -1
- data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +1 -1
- data/app/assets/images/active_admin/index_list_icons/table_icon.svg +1 -1
- data/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +2 -2
- data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +2 -2
- data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +2 -2
- data/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +2 -2
- data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +2 -1
- data/app/assets/javascripts/active_admin/pages/application.js.coffee +6 -1
- data/app/assets/stylesheets/active_admin/_base.css.scss +29 -34
- data/app/assets/stylesheets/active_admin/_forms.css.scss +65 -62
- data/app/assets/stylesheets/active_admin/_header.css.scss +57 -45
- data/app/assets/stylesheets/active_admin/_typography.css.scss +9 -9
- data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +5 -5
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_comments.css.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +20 -20
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +16 -16
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +25 -23
- data/app/assets/stylesheets/active_admin/components/_grid.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_index_list.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -10
- data/app/assets/stylesheets/active_admin/components/_panels.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +27 -27
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +10 -10
- data/app/assets/stylesheets/active_admin/components/_tables.css.scss +9 -9
- data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +3 -3
- data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +4 -4
- data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +4 -7
- data/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +5 -5
- data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +3 -3
- data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +6 -6
- data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +8 -8
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +9 -1
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +1 -1
- data/app/assets/stylesheets/active_admin/print.css.scss +2 -8
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +5 -5
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +13 -13
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +14 -14
- data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/shared/_links.erb +8 -1
- data/app/views/active_admin/resource/index.csv.erb +3 -3
- data/app/views/layouts/active_admin_logged_out.html.erb +5 -3
- data/config/locales/bg.yml +101 -0
- data/{lib/active_admin → config}/locales/ca.yml +24 -7
- data/{lib/active_admin → config}/locales/cs.yml +34 -12
- data/{lib/active_admin → config}/locales/da.yml +29 -7
- data/config/locales/de-CH.yml +117 -0
- data/{lib/active_admin → config}/locales/de.yml +19 -9
- data/config/locales/en-GB.yml +90 -0
- data/{lib/active_admin → config}/locales/en.yml +16 -6
- data/config/locales/es.yml +106 -0
- data/{lib/active_admin/locales/es.yml → config/locales/es_MX.yml} +14 -8
- data/{lib/active_admin → config}/locales/fr.yml +14 -6
- data/{lib/active_admin → config}/locales/he.yml +16 -6
- data/{lib/active_admin → config}/locales/hr.yml +14 -6
- data/{lib/active_admin → config}/locales/hu.yml +31 -6
- data/{lib/active_admin → config}/locales/it.yml +14 -6
- data/{lib/active_admin → config}/locales/ja.yml +32 -7
- data/{lib/active_admin → config}/locales/ko.yml +14 -6
- data/{lib/active_admin → config}/locales/lt.yml +15 -6
- data/{lib/active_admin → config}/locales/lv.yml +14 -6
- data/{lib/active_admin → config}/locales/nl.yml +14 -6
- data/{lib/active_admin → config}/locales/no-NB.yml +14 -6
- data/{lib/active_admin → config}/locales/pl.yml +14 -6
- data/{lib/active_admin → config}/locales/pt-BR.yml +14 -6
- data/{lib/active_admin → config}/locales/pt-PT.yml +14 -6
- data/{lib/active_admin → config}/locales/ro.yml +32 -7
- data/{lib/active_admin → config}/locales/ru.yml +30 -8
- data/{lib/active_admin → config}/locales/sv-SE.yml +14 -6
- data/{lib/active_admin → config}/locales/tr.yml +15 -6
- data/config/locales/uk.yml +100 -0
- data/{lib/active_admin → config}/locales/vi.yml +15 -6
- data/{lib/active_admin → config}/locales/zh-CN.yml +15 -6
- data/{lib/active_admin → config}/locales/zh-TW.yml +15 -6
- data/docs/0-installation.md +22 -18
- data/docs/1-general-configuration.md +1 -1
- data/docs/10-custom-pages.md +3 -3
- data/docs/11-decorators.md +18 -2
- data/docs/12-arbre-components.md +53 -54
- data/docs/13-authorization-adapter.md +31 -10
- data/docs/2-resource-customization.md +16 -1
- data/docs/3-index-pages.md +13 -1
- data/docs/3-index-pages/create-an-index.md +4 -4
- data/docs/3-index-pages/index-as-block.md +1 -1
- data/docs/3-index-pages/index-as-blog.md +1 -1
- data/docs/3-index-pages/index-as-grid.md +1 -1
- data/docs/4-csv-format.md +4 -4
- data/docs/5-forms.md +46 -3
- data/docs/{6-show-screens.md → 6-show-pages.md} +3 -3
- data/docs/8-custom-actions.md +3 -3
- data/docs/9-batch-actions.md +9 -1
- data/features/action_item.feature +6 -6
- data/features/authorization_cancan.feature +1 -1
- data/features/belongs_to.feature +3 -3
- data/features/breadcrumb.feature +2 -2
- data/features/comments/commenting.feature +7 -5
- data/features/dashboard.feature +0 -51
- data/features/favicon.feature +20 -0
- data/features/global_navigation.feature +0 -1
- data/features/index/batch_actions.feature +12 -11
- data/features/index/filters.feature +6 -6
- data/features/index/format_as_csv.feature +4 -5
- data/features/index/index_as_blog.feature +20 -1
- data/features/index/index_as_table.feature +1 -1
- data/features/index/index_blank_slate.feature +3 -3
- data/features/index/index_parameters.feature +4 -10
- data/features/index/index_scope_to.feature +24 -0
- data/features/index/index_scopes.feature +17 -5
- data/features/index/pagination.feature +15 -0
- data/features/registering_pages.feature +1 -1
- data/features/registering_resources.feature +2 -2
- data/features/show/default_content.feature +3 -3
- data/features/sidebar_sections.feature +3 -3
- data/features/specifying_actions.feature +1 -1
- data/features/step_definitions/additional_web_steps.rb +3 -16
- data/features/step_definitions/asset_steps.rb +5 -1
- data/features/step_definitions/attribute_steps.rb +4 -4
- data/features/step_definitions/batch_action_steps.rb +25 -74
- data/features/step_definitions/breadcrumb_steps.rb +1 -3
- data/features/step_definitions/comment_steps.rb +0 -1
- data/features/step_definitions/configuration_steps.rb +53 -69
- data/features/step_definitions/dashboard_steps.rb +2 -2
- data/features/step_definitions/factory_steps.rb +17 -33
- data/features/step_definitions/filter_steps.rb +2 -2
- data/features/step_definitions/format_steps.rb +10 -14
- data/features/step_definitions/index_scope_steps.rb +9 -25
- data/features/step_definitions/index_views_steps.rb +1 -1
- data/features/step_definitions/sidebar_steps.rb +2 -1
- data/features/step_definitions/site_title_steps.rb +1 -1
- data/features/step_definitions/table_steps.rb +6 -1
- data/features/step_definitions/user_steps.rb +23 -38
- data/features/step_definitions/web_steps.rb +18 -147
- data/features/support/env.rb +13 -34
- data/features/support/paths.rb +2 -0
- data/features/users/logging_in.feature +2 -2
- data/features/users/logging_out.feature +0 -12
- data/features/users/resetting_password.feature +1 -1
- data/lib/active_admin.rb +4 -17
- data/lib/active_admin/abstract_view_factory.rb +1 -1
- data/lib/active_admin/application.rb +19 -28
- data/lib/active_admin/asset_registration.rb +7 -25
- data/lib/active_admin/authorization_adapter.rb +9 -5
- data/lib/active_admin/base_controller.rb +2 -2
- data/lib/active_admin/base_controller/authorization.rb +25 -27
- data/lib/active_admin/batch_actions/resource_extension.rb +3 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
- data/lib/active_admin/batch_actions/views/selection_cells.rb +1 -1
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/cancan_adapter.rb +2 -2
- data/lib/active_admin/comments.rb +32 -38
- data/lib/active_admin/comments/comment.rb +6 -8
- data/lib/active_admin/comments/views.rb +0 -1
- data/lib/active_admin/comments/views/active_admin_comments.rb +27 -38
- data/lib/active_admin/csv_builder.rb +4 -6
- data/lib/active_admin/dependency_checker.rb +4 -0
- data/lib/active_admin/deprecation.rb +3 -3
- data/lib/active_admin/dsl.rb +5 -5
- data/lib/active_admin/engine.rb +1 -1
- data/lib/active_admin/filters.rb +2 -1
- data/lib/active_admin/filters/forms.rb +36 -43
- data/lib/active_admin/filters/formtastic_addons.rb +45 -0
- data/lib/active_admin/filters/resource_extension.rb +9 -1
- data/lib/active_admin/form_builder.rb +30 -19
- data/lib/active_admin/helpers/optional_display.rb +11 -13
- data/lib/active_admin/helpers/settings.rb +50 -8
- data/lib/active_admin/inputs/filter_base.rb +5 -18
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
- data/lib/active_admin/inputs/filter_boolean_input.rb +6 -14
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +1 -1
- data/lib/active_admin/inputs/filter_numeric_input.rb +2 -47
- data/lib/active_admin/inputs/filter_select_input.rb +32 -10
- data/lib/active_admin/inputs/filter_string_input.rb +12 -14
- data/lib/active_admin/namespace.rb +8 -40
- data/lib/active_admin/page.rb +2 -2
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/reloader.rb +3 -3
- data/lib/active_admin/resource.rb +16 -23
- data/lib/active_admin/resource/belongs_to.rb +8 -5
- data/lib/active_admin/resource/menu.rb +10 -23
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/page_presenters.rb +2 -2
- data/lib/active_admin/resource/routes.rb +74 -21
- data/lib/active_admin/resource/scope_to.rb +74 -0
- data/lib/active_admin/resource/scopes.rb +8 -4
- data/lib/active_admin/resource_collection.rb +20 -66
- data/lib/active_admin/resource_controller.rb +12 -16
- data/lib/active_admin/resource_controller/data_access.rb +19 -22
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -2
- data/lib/active_admin/resource_controller/scoping.rb +4 -9
- data/lib/active_admin/resource_dsl.rb +5 -32
- data/lib/active_admin/router.rb +34 -47
- data/lib/active_admin/scope.rb +5 -3
- data/lib/active_admin/sidebar_section.rb +1 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +1 -1
- data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -1
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +8 -8
- data/lib/active_admin/view_helpers/display_helper.rb +15 -6
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -2
- data/lib/active_admin/view_helpers/form_helper.rb +6 -1
- data/lib/active_admin/view_helpers/icon_helper.rb +1 -1
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +5 -5
- data/lib/active_admin/view_helpers/title_helper.rb +1 -1
- data/lib/active_admin/views/components/action_list_popover.rb +6 -6
- data/lib/active_admin/views/components/attributes_table.rb +9 -12
- data/lib/active_admin/views/components/blank_slate.rb +4 -4
- data/lib/active_admin/views/components/columns.rb +1 -1
- data/lib/active_admin/views/components/index_list.rb +1 -1
- data/lib/active_admin/views/components/paginated_collection.rb +20 -12
- data/lib/active_admin/views/components/panel.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +2 -1
- data/lib/active_admin/views/components/sidebar_section.rb +1 -1
- data/lib/active_admin/views/components/status_tag.rb +1 -1
- data/lib/active_admin/views/header.rb +2 -2
- data/lib/active_admin/views/index_as_blog.rb +16 -3
- data/lib/active_admin/views/index_as_table.rb +2 -2
- data/lib/active_admin/views/pages/base.rb +8 -3
- data/lib/active_admin/views/pages/form.rb +2 -2
- data/lib/active_admin/views/pages/index.rb +19 -17
- data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +1 -1
- data/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +1 -13
- data/lib/generators/active_admin/devise/devise_generator.rb +22 -1
- data/lib/generators/active_admin/install/install_generator.rb +1 -5
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +40 -19
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +18 -18
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
- data/lib/generators/active_admin/resource/templates/admin.rb +1 -1
- data/script/use_rails +1 -1
- data/spec/integration/memory_spec.rb +3 -2
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +4 -4
- data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +1 -1
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +2 -2
- data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +4 -4
- data/spec/javascripts/compiled/jquery.aa.popover-spec.js +1 -1
- data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +2 -2
- data/spec/spec_helper.rb +16 -6
- data/spec/spec_helper_without_rails.rb +2 -0
- data/spec/support/deferred_garbage_collection.rb +19 -0
- data/spec/support/jslint.yml +1 -1
- data/spec/support/rails_template.rb +29 -27
- data/spec/support/templates/admin/stores.rb +5 -1
- data/spec/unit/abstract_view_factory_spec.rb +1 -1
- data/spec/unit/action_builder_spec.rb +7 -7
- data/spec/unit/active_admin_spec.rb +0 -14
- data/spec/unit/application_spec.rb +16 -17
- data/spec/unit/asset_registration_spec.rb +21 -8
- data/spec/unit/authorization/authorization_adapter_spec.rb +3 -3
- data/spec/unit/authorization/controller_authorization_spec.rb +16 -24
- data/spec/unit/batch_actions/resource_spec.rb +11 -11
- data/spec/unit/belongs_to_spec.rb +1 -1
- data/spec/unit/cancan_adapter_spec.rb +11 -3
- data/spec/unit/comments_spec.rb +10 -28
- data/spec/unit/controller_filters_spec.rb +22 -24
- data/spec/unit/csv_builder_spec.rb +3 -3
- data/spec/unit/devise_spec.rb +10 -10
- data/spec/unit/filters/filter_form_builder_spec.rb +140 -45
- data/spec/unit/filters/resource_spec.rb +20 -19
- data/spec/unit/form_builder_spec.rb +122 -70
- data/spec/unit/menu_item_spec.rb +3 -3
- data/spec/unit/namespace/authorization_spec.rb +4 -8
- data/spec/unit/namespace/register_page_spec.rb +1 -1
- data/spec/unit/namespace/register_resource_spec.rb +12 -7
- data/spec/unit/namespace_spec.rb +4 -10
- data/spec/unit/page_spec.rb +1 -1
- data/spec/unit/resource/menu_spec.rb +1 -1
- data/spec/unit/resource/naming_spec.rb +9 -0
- data/spec/unit/resource/pagination_spec.rb +2 -2
- data/spec/unit/resource/routes_spec.rb +73 -0
- data/spec/unit/resource/scopes_spec.rb +1 -1
- data/spec/unit/resource_collection_spec.rb +95 -43
- data/spec/unit/resource_registration_spec.rb +3 -12
- data/spec/unit/resource_spec.rb +41 -48
- data/spec/unit/routing_spec.rb +10 -64
- data/spec/unit/scope_spec.rb +19 -0
- data/spec/unit/settings_spec.rb +88 -0
- data/spec/unit/view_factory_spec.rb +1 -0
- data/spec/unit/{breadcrumbs_spec.rb → view_helpers/breadcrumbs_spec.rb} +16 -7
- data/spec/unit/view_helpers/display_name_spec.rb +41 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +36 -2
- data/spec/unit/views/components/attributes_table_spec.rb +17 -9
- data/spec/unit/views/components/batch_action_popover_spec.rb +4 -4
- data/spec/unit/views/components/index_list_spec.rb +2 -2
- data/spec/unit/views/components/paginated_collection_spec.rb +42 -0
- data/spec/unit/views/components/panel_spec.rb +8 -0
- data/spec/unit/views/components/site_title_spec.rb +2 -2
- data/spec/unit/views/components/table_for_spec.rb +4 -4
- data/spec/unit/views/pages/form_spec.rb +35 -0
- data/spec/unit/views/pages/layout_spec.rb +1 -1
- data/spec/unit/views/tabbed_navigation_spec.rb +10 -10
- data/tasks/parallel_tests.rake +1 -1
- data/tasks/test.rake +4 -1
- metadata +117 -106
- data/app/assets/stylesheets/active_admin/pages/_dashboard.scss +0 -5
- data/lib/active_admin/comments/views/active_admin_comment.rb +0 -0
- data/lib/active_admin/dashboards.rb +0 -68
- data/lib/active_admin/dashboards/dashboard_controller.rb +0 -50
- data/lib/active_admin/dashboards/section.rb +0 -34
- data/lib/active_admin/locales/bg.yml +0 -77
- data/lib/generators/active_admin/install/templates/migrations/1_create_admin_notes.rb +0 -17
- data/lib/generators/active_admin/install/templates/migrations/2_move_admin_notes_to_comments.rb +0 -26
- data/spec/unit/base_controller_spec.rb +0 -6
- data/spec/unit/dashboard_controller_spec.rb +0 -76
- data/spec/unit/dashboard_section_spec.rb +0 -56
- data/spec/unit/dashboards_spec.rb +0 -59
- data/spec/unit/display_name_spec.rb +0 -29
@@ -8,7 +8,7 @@ Feature: Registering Resources
|
|
8
8
|
|
9
9
|
Scenario: Registering a resource with the defaults
|
10
10
|
Given a configuration of:
|
11
|
-
"""
|
11
|
+
"""
|
12
12
|
ActiveAdmin.register Post
|
13
13
|
"""
|
14
14
|
When I go to the dashboard
|
@@ -21,7 +21,7 @@ Feature: Registering Resources
|
|
21
21
|
|
22
22
|
Scenario: Registering a resource with another name
|
23
23
|
Given a configuration of:
|
24
|
-
"""
|
24
|
+
"""
|
25
25
|
ActiveAdmin.register Post, :as => "My Post"
|
26
26
|
"""
|
27
27
|
When I go to the dashboard
|
@@ -13,7 +13,7 @@ Feature: Show - Default Content
|
|
13
13
|
Then I should see the attribute "Title" with "Hello World"
|
14
14
|
And I should see the attribute "Body" with "Empty"
|
15
15
|
And I should see the attribute "Created At" with a nicely formatted datetime
|
16
|
-
And I should see the attribute "Author" with "
|
16
|
+
And I should see the attribute "Author" with "Jane Doe"
|
17
17
|
And I should see an action item button "Delete Post"
|
18
18
|
And I should see an action item button "Edit Post"
|
19
19
|
|
@@ -23,8 +23,8 @@ Feature: Show - Default Content
|
|
23
23
|
ActiveAdmin.register Post
|
24
24
|
ActiveAdmin.register User
|
25
25
|
"""
|
26
|
-
Then I should see the attribute "Author" with "
|
27
|
-
And I should see a link to "
|
26
|
+
Then I should see the attribute "Author" with "Jane Doe"
|
27
|
+
And I should see a link to "Jane Doe"
|
28
28
|
|
29
29
|
Scenario: Customizing the attributes table with a set of attributes
|
30
30
|
Given a show configuration of:
|
@@ -17,7 +17,7 @@ Feature: Sidebar Sections
|
|
17
17
|
"""
|
18
18
|
When I am on the index page for posts
|
19
19
|
Then I should see a sidebar titled "Help"
|
20
|
-
Then I should see
|
20
|
+
Then I should see "Need help" within the "Help" sidebar
|
21
21
|
|
22
22
|
When I follow "View"
|
23
23
|
Then I should see a sidebar titled "Help"
|
@@ -41,7 +41,7 @@ Feature: Sidebar Sections
|
|
41
41
|
"""
|
42
42
|
When I am on the index page for posts
|
43
43
|
Then I should see a sidebar titled "Help"
|
44
|
-
Then I should see
|
44
|
+
Then I should see "Need help" within the "Help" sidebar
|
45
45
|
|
46
46
|
When I follow "View"
|
47
47
|
Then I should not see a sidebar titled "Help"
|
@@ -138,7 +138,7 @@ Feature: Sidebar Sections
|
|
138
138
|
|
139
139
|
When I follow "View"
|
140
140
|
Then I should see a sidebar titled "Help"
|
141
|
-
Then I should see
|
141
|
+
Then I should see "Need help" within the "Help" sidebar
|
142
142
|
|
143
143
|
When I follow "Edit Post"
|
144
144
|
Then I should not see a sidebar titled "Help"
|
@@ -15,7 +15,7 @@ Then /^I should not see a sortable table header with "([^"]*)"$/ do |content|
|
|
15
15
|
end
|
16
16
|
|
17
17
|
Then /^I should not see a sortable table header$/ do
|
18
|
-
step
|
18
|
+
step %{I should not see "th.sortable"}
|
19
19
|
end
|
20
20
|
|
21
21
|
Then /^the table "([^"]*)" should have (\d+) rows/ do |selector, count|
|
@@ -34,20 +34,7 @@ Then /^there should be (\d+) "([^"]*)" tags$/ do |count, tag|
|
|
34
34
|
end
|
35
35
|
|
36
36
|
Then /^I should see a link to "([^"]*)"$/ do |link|
|
37
|
-
|
38
|
-
page.should have_xpath('//a', :text => link)
|
39
|
-
else
|
40
|
-
assert page.has_xpath?('//a', :text => link)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
Then /^I should see a link to \/([^\/]*)\/$/ do |regexp|
|
45
|
-
regexp = Regexp.new(regexp)
|
46
|
-
if page.respond_to? :should
|
47
|
-
page.should have_xpath('//a', :text => regexp)
|
48
|
-
else
|
49
|
-
assert page.has_xpath?('//a', :text => regexp)
|
50
|
-
end
|
37
|
+
page.should have_xpath('//a', :text => link)
|
51
38
|
end
|
52
39
|
|
53
40
|
Then /^an "([^"]*)" exception should be raised when I follow "([^"]*)"$/ do |error, link|
|
@@ -57,7 +44,7 @@ Then /^an "([^"]*)" exception should be raised when I follow "([^"]*)"$/ do |err
|
|
57
44
|
end
|
58
45
|
|
59
46
|
Then /^I should be in the resource section for (.+)$/ do |resource_name|
|
60
|
-
current_url.should include
|
47
|
+
current_url.should include resource_name.gsub(' ', '').underscore.pluralize
|
61
48
|
end
|
62
49
|
|
63
50
|
Then /^I should wait and see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
Then /^I should see the css file "([^"]*)"$/ do |path|
|
2
|
-
step %{I should see the css file "#{path}" of media "screen"}
|
2
|
+
step %{I should see the css file "#{path}" of media "screen"}
|
3
3
|
end
|
4
4
|
|
5
5
|
Then /^I should see the css file "([^"]*)" of media "([^"]*)"$/ do |path, media|
|
@@ -9,3 +9,7 @@ end
|
|
9
9
|
Then /^I should see the js file "([^"]*)"$/ do |path|
|
10
10
|
page.should have_xpath("//script[contains(@src, /javascripts/#{path})]")
|
11
11
|
end
|
12
|
+
|
13
|
+
Then /^I should see the favicon "([^"]*)"$/ do |path|
|
14
|
+
page.should have_xpath("//link[contains(@href, \"#{path}\")]")
|
15
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
Then /^I should see the attribute "([^"]*)" with "([^"]*)"$/ do |title, value|
|
2
|
-
|
3
|
-
|
2
|
+
elems = all ".attributes_table th:contains('#{title}') ~ td:contains('#{value}')"
|
3
|
+
elems.first.should_not be_nil, 'attribute missing'
|
4
4
|
end
|
5
5
|
|
6
6
|
Then /^I should see the attribute "([^"]*)" with a nicely formatted datetime$/ do |title|
|
7
|
-
|
8
|
-
|
7
|
+
text = all(".attributes_table th:contains('#{title}') ~ td").first.text
|
8
|
+
text.should match /\w+ \d{1,2}, \d{4} \d{2}:\d{2}/
|
9
9
|
end
|
10
10
|
|
11
11
|
Then /^I should not see the attribute "([^"]*)"$/ do |title|
|
@@ -1,104 +1,55 @@
|
|
1
|
-
Then /^I (should|should not) see the batch action "([^"]*)"$/ do |maybe, title|
|
2
|
-
%{Then I #{maybe} see the batch action :#{title.gsub(' ','').gsub(" Selected", "").underscore} "#{title}"}
|
3
|
-
end
|
4
|
-
|
5
1
|
Then /^I (should|should not) be asked to confirm "([^"]*)" for "([^"]*)"$/ do |maybe, confirmation, title|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
link["data-confirm"].should match( confirmation )
|
10
|
-
else
|
11
|
-
page.should_not have_css("a.batch_action", :text => title)
|
12
|
-
end
|
13
|
-
end
|
2
|
+
selector = "#batch_actions_popover a.batch_action:contains('#{title}')"
|
3
|
+
selector << "[data-confirm='#{confirmation}']" if maybe == 'should'
|
4
|
+
page.send maybe.sub(' ', '_'), have_css(selector)
|
14
5
|
end
|
15
6
|
|
16
7
|
Then /^I (should|should not) see the batch action :([^\s]*) "([^"]*)"$/ do |maybe, sym, title|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
link["data-action"].should match( sym )
|
21
|
-
link[:href].should match( "#" )
|
22
|
-
else
|
23
|
-
page.should_not have_css("a.batch_action", :text => title)
|
24
|
-
end
|
25
|
-
end
|
8
|
+
selector = "#batch_actions_selector a.batch_action:contains('#{title}')"
|
9
|
+
selector << "[href='#'][data-action='#{sym}']" if maybe == 'should'
|
10
|
+
page.send maybe.sub(' ', '_'), have_css(selector)
|
26
11
|
end
|
27
12
|
|
28
13
|
Then /^the (\d+)(?:st|nd|rd|th) batch action should be "([^"]*)"$/ do |index, title|
|
29
|
-
|
30
|
-
page.all( "a.batch_action" )[index.to_i - 1].text.should match( title )
|
31
|
-
end
|
14
|
+
page.all("#batch_actions_selector a.batch_action")[index.to_i - 1].text.should match title
|
32
15
|
end
|
33
16
|
|
34
17
|
When /^I check the (\d+)(?:st|nd|rd|th) record$/ do |index|
|
35
|
-
page.all(
|
36
|
-
end
|
37
|
-
|
38
|
-
When /^I uncheck the (\d+)(?:st|nd|rd|th) record$/ do |index|
|
39
|
-
page.all( "table.index_table input[type='checkbox']" )[index.to_i].set( false )
|
18
|
+
page.all("table.index_table input[type=checkbox]")[index.to_i].set true
|
40
19
|
end
|
41
20
|
|
42
21
|
When /^I toggle the collection selection$/ do
|
43
|
-
|
44
|
-
toggle_box.click
|
45
|
-
end
|
46
|
-
|
47
|
-
Then /^I should see (\d+) record(?:s)? selected$/ do |count|
|
48
|
-
within "table.index_table" do
|
49
|
-
unless count.to_i == 0
|
50
|
-
page.should have_xpath(".//input[@type='checkbox' and @checked='checked']", :count => count)
|
51
|
-
else
|
52
|
-
page.should have_no_xpath(".//input[@type='checkbox' and @checked='checked']")
|
53
|
-
end
|
54
|
-
end
|
22
|
+
page.find("#collection_selection_toggle_all").click
|
55
23
|
end
|
56
24
|
|
57
25
|
Then /^I should see that the batch action button is disabled$/ do
|
58
|
-
page.should have_css
|
59
|
-
end
|
60
|
-
|
61
|
-
Then /^I (should|should not) see the batch action button$/ do |maybe|
|
62
|
-
if maybe == "should not"
|
63
|
-
page.should_not have_css("div.table_tools #batch_actions_selector .dropdown_menu_button")
|
64
|
-
else
|
65
|
-
page.should have_css("div.table_tools #batch_actions_selector .dropdown_menu_button")
|
66
|
-
end
|
26
|
+
page.should have_css "#batch_actions_selector .dropdown_menu_button.disabled"
|
67
27
|
end
|
68
28
|
|
69
|
-
Then
|
70
|
-
|
29
|
+
Then /^I (should|should not) see the batch action (button|selector)$/ do |maybe, type|
|
30
|
+
selector = "div.table_tools #batch_actions_selector"
|
31
|
+
selector << ' .dropdown_menu_button' if maybe == 'should' && type == 'button'
|
32
|
+
page.send maybe.sub(' ', '_'), have_css(selector)
|
71
33
|
end
|
72
34
|
|
73
35
|
Then /^I should see the batch action popover exists$/ do
|
74
|
-
page.should have_css
|
36
|
+
page.should have_css "#batch_actions_selector"
|
75
37
|
end
|
76
38
|
|
77
39
|
Given /^I submit the batch action form with "([^"]*)"$/ do |action|
|
78
|
-
page.find(
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
# the collection_selection should be sent as an array containing only IDs of checked rows
|
87
|
-
acc[param_key] ||= Array.new
|
88
|
-
acc[param_key] << param_value if input.checked?
|
89
|
-
else
|
90
|
-
# other inputs, just send the value normally
|
91
|
-
acc.store(param_key, param_value)
|
92
|
-
end
|
93
|
-
acc
|
40
|
+
page.find("#batch_action").set action
|
41
|
+
form = page.find "#collection_selection"
|
42
|
+
params = page.all("#main_content input").each_with_object({}) do |input, obj|
|
43
|
+
key, value = input['name'], input['value']
|
44
|
+
if key == 'collection_selection[]'
|
45
|
+
(obj[key] ||= []).push value if input.checked?
|
46
|
+
else
|
47
|
+
obj[key] = value
|
94
48
|
end
|
95
49
|
end
|
96
|
-
|
97
|
-
form = page.find("#collection_selection")
|
98
|
-
|
99
|
-
page.driver.submit(form['method'].to_sym, form['action'], @params)
|
50
|
+
page.driver.submit form['method'], form['action'], params
|
100
51
|
end
|
101
52
|
|
102
53
|
Then /^I should not see checkboxes in the table$/ do
|
103
|
-
page.should_not have_css
|
54
|
+
page.should_not have_css ".paginated_collection table input[type=checkbox]"
|
104
55
|
end
|
@@ -1,109 +1,93 @@
|
|
1
1
|
module ActiveAdminReloading
|
2
|
-
|
3
|
-
def load_active_admin_configuration(configuration_content)
|
2
|
+
def load_aa_config(config_content)
|
4
3
|
ActiveAdmin::Event.dispatch ActiveAdmin::Application::BeforeLoadEvent, ActiveAdmin.application
|
5
|
-
eval(
|
6
|
-
ActiveAdmin::Event.dispatch ActiveAdmin::Application::AfterLoadEvent,
|
4
|
+
eval(config_content)
|
5
|
+
ActiveAdmin::Event.dispatch ActiveAdmin::Application::AfterLoadEvent, ActiveAdmin.application
|
7
6
|
Rails.application.reload_routes!
|
8
|
-
ActiveAdmin.application.namespaces.values.each
|
7
|
+
ActiveAdmin.application.namespaces.values.each &:reset_menu!
|
9
8
|
end
|
10
|
-
|
11
9
|
end
|
12
10
|
|
13
11
|
module ActiveAdminContentsRollback
|
14
|
-
|
15
|
-
def self.recorded_files
|
12
|
+
def files
|
16
13
|
@files ||= {}
|
17
14
|
end
|
18
15
|
|
19
16
|
# Records the contents of a file the first time we are
|
20
17
|
# about to change it
|
21
|
-
def
|
22
|
-
contents
|
23
|
-
|
18
|
+
def record(filename)
|
19
|
+
contents = File.read(filename) rescue nil
|
20
|
+
files[filename] = contents unless files.has_key? filename
|
24
21
|
end
|
25
22
|
|
26
23
|
# Rolls the recorded files back to their original states
|
27
|
-
def
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
File.open(filename, "w") {|f| f << contents }
|
32
|
-
else
|
33
|
-
File.delete(filename)
|
24
|
+
def rollback!
|
25
|
+
files.each{ |file, contents| rollback_file(file, contents) }
|
26
|
+
@files = {}
|
27
|
+
end
|
34
28
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
29
|
+
# If the file originally had content, override the stuff on disk.
|
30
|
+
# Else, remove the file and its parent folder structure until Rails.root OR other files exist.
|
31
|
+
def rollback_file(file, contents)
|
32
|
+
if contents.present?
|
33
|
+
File.open(file,'w') { |f| f << contents }
|
34
|
+
else
|
35
|
+
File.delete(file)
|
36
|
+
begin
|
37
|
+
dir = File.dirname(file)
|
38
|
+
until dir == Rails.root
|
39
|
+
Dir.rmdir(dir) # delete current folder
|
40
|
+
dir = dir.split('/')[0..-2].join('/') # select parent folder
|
44
41
|
end
|
45
|
-
|
42
|
+
rescue Errno::ENOTEMPTY # Directory not empty
|
46
43
|
end
|
47
44
|
end
|
48
|
-
|
49
|
-
@files = {}
|
50
45
|
end
|
51
|
-
|
52
46
|
end
|
53
47
|
|
54
48
|
World(ActiveAdminReloading)
|
49
|
+
World(ActiveAdminContentsRollback)
|
55
50
|
|
56
51
|
After do
|
57
|
-
|
52
|
+
rollback!
|
58
53
|
end
|
59
54
|
|
60
|
-
Given /^a configuration of:$/ do |
|
61
|
-
|
62
|
-
end
|
63
|
-
|
64
|
-
Given /^an index configuration of:$/ do |configuration_content|
|
65
|
-
load_active_admin_configuration(configuration_content)
|
66
|
-
|
67
|
-
step 'I am logged in'
|
68
|
-
step "I am on the index page for posts"
|
69
|
-
end
|
70
|
-
|
71
|
-
Given /^a show configuration of:$/ do |configuration_content|
|
72
|
-
resource = configuration_content.match(/ActiveAdmin\.register (\w+)/)[1]
|
73
|
-
load_active_admin_configuration(configuration_content)
|
55
|
+
Given /^a(?:n? (index|show))? configuration of:$/ do |action, config_content|
|
56
|
+
load_aa_config(config_content)
|
74
57
|
|
75
|
-
case
|
76
|
-
when
|
58
|
+
case action
|
59
|
+
when 'index'
|
77
60
|
step 'I am logged in'
|
78
|
-
step
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
61
|
+
step 'I am on the index page for posts'
|
62
|
+
when 'show'
|
63
|
+
case resource = config_content.match(/ActiveAdmin\.register (\w+)/)[1]
|
64
|
+
when 'Post'
|
65
|
+
step 'I am logged in'
|
66
|
+
step 'I am on the index page for posts'
|
67
|
+
step 'I follow "View"'
|
68
|
+
when 'Tag'
|
69
|
+
step 'I am logged in'
|
70
|
+
Tag.create!
|
71
|
+
visit admin_tag_path Tag.last
|
72
|
+
else
|
73
|
+
raise "#{resource} is not supported"
|
74
|
+
end
|
86
75
|
end
|
87
76
|
end
|
88
77
|
|
89
78
|
Given /^"([^"]*)" contains:$/ do |filename, contents|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
ActiveAdminContentsRollback.record(filepath)
|
79
|
+
path = Rails.root + filename
|
80
|
+
FileUtils.mkdir_p File.dirname path
|
81
|
+
record path
|
94
82
|
|
95
|
-
File.open(
|
83
|
+
File.open(path,'w+'){ |f| f << contents }
|
96
84
|
end
|
97
85
|
|
98
86
|
Given /^I add "([^"]*)" to the "([^"]*)" model$/ do |code, model_name|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
# Update the file
|
103
|
-
contents = File.read(filename)
|
104
|
-
File.open(filename, "w+") do |f|
|
105
|
-
f << contents.gsub(/^(class .+)$/, "\\1\n #{code}\n")
|
106
|
-
end
|
87
|
+
path = File.join Rails.root, "app", "models", "#{model_name}.rb"
|
88
|
+
record path
|
107
89
|
|
90
|
+
str = File.read(path).gsub /^(class .+)$/, "\\1\n #{code}\n"
|
91
|
+
File.open(path, 'w+') { |f| f << str }
|
108
92
|
ActiveSupport::Dependencies.clear
|
109
93
|
end
|