yousty-activeadmin 1.0.0.pre
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.
- checksums.yaml +7 -0
- data/.gitignore +43 -0
- data/.travis.yml +8 -0
- data/.yardopts +9 -0
- data/CHANGELOG.md +1056 -0
- data/CONTRIBUTING.md +110 -0
- data/Gemfile +41 -0
- data/Guardfile +7 -0
- data/LICENSE +25 -0
- data/README.md +67 -0
- data/Rakefile +25 -0
- data/activeadmin.gemspec +33 -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/index_list_icons/block_icon.svg +10 -0
- data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +4 -0
- data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +13 -0
- data/app/assets/images/active_admin/index_list_icons/table_icon.svg +3 -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/application.js.coffee +6 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +5 -0
- data/app/assets/javascripts/active_admin/components/application.js.coffee +23 -0
- data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +26 -0
- data/app/assets/javascripts/active_admin/components/has_many.js.coffee +41 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +37 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +105 -0
- data/app/assets/javascripts/active_admin/lib/popover.js.coffee +97 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +25 -0
- data/app/assets/stylesheets/active_admin/_base.css.scss +41 -0
- data/app/assets/stylesheets/active_admin/_forms.css.scss +293 -0
- data/app/assets/stylesheets/active_admin/_header.css.scss +152 -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/_batch_actions.css.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +31 -0
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_comments.css.scss +41 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +39 -0
- data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
- data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
- data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +34 -0
- data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +95 -0
- data/app/assets/stylesheets/active_admin/components/_tables.css.scss +110 -0
- data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +11 -0
- data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +66 -0
- data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +38 -0
- data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +21 -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 +36 -0
- data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +22 -0
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +26 -0
- data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +32 -0
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
- data/app/assets/stylesheets/active_admin/print.css.scss +284 -0
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +43 -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 +19 -0
- data/app/views/active_admin/devise/passwords/new.html.erb +14 -0
- data/app/views/active_admin/devise/sessions/new.html.erb +20 -0
- data/app/views/active_admin/devise/shared/_links.erb +27 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +14 -0
- data/app/views/active_admin/page/index.html.arb +1 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -0
- data/app/views/active_admin/resource/index.csv.erb +17 -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 +37 -0
- data/config/locales/bg.yml +101 -0
- data/config/locales/ca.yml +98 -0
- data/config/locales/cs.yml +105 -0
- data/config/locales/da.yml +102 -0
- data/config/locales/de-CH.yml +117 -0
- data/config/locales/de.yml +119 -0
- data/config/locales/en-GB.yml +91 -0
- data/config/locales/en.yml +110 -0
- data/config/locales/es.yml +106 -0
- data/config/locales/es_MX.yml +104 -0
- data/config/locales/fi.yml +109 -0
- data/config/locales/fr.yml +97 -0
- data/config/locales/he.yml +91 -0
- data/config/locales/hr.yml +93 -0
- data/config/locales/hu.yml +92 -0
- data/config/locales/it.yml +89 -0
- data/config/locales/ja.yml +104 -0
- data/config/locales/ko.yml +84 -0
- data/config/locales/lt.yml +90 -0
- data/config/locales/lv.yml +89 -0
- data/config/locales/nl.yml +90 -0
- data/config/locales/no-NB.yml +85 -0
- data/config/locales/pl.yml +93 -0
- data/config/locales/pt-BR.yml +90 -0
- data/config/locales/pt-PT.yml +89 -0
- data/config/locales/ro.yml +93 -0
- data/config/locales/ru.yml +103 -0
- data/config/locales/sv-SE.yml +89 -0
- data/config/locales/tr.yml +90 -0
- data/config/locales/uk.yml +100 -0
- data/config/locales/vi.yml +90 -0
- data/config/locales/zh-CN.yml +90 -0
- data/config/locales/zh-TW.yml +90 -0
- data/cucumber.yml +3 -0
- data/docs/0-installation.md +84 -0
- data/docs/1-general-configuration.md +137 -0
- data/docs/10-custom-pages.md +98 -0
- data/docs/11-decorators.md +66 -0
- data/docs/12-arbre-components.md +144 -0
- data/docs/13-authorization-adapter.md +227 -0
- data/docs/2-resource-customization.md +340 -0
- data/docs/3-index-pages/create-an-index.md +29 -0
- data/docs/3-index-pages/index-as-block.md +21 -0
- data/docs/3-index-pages/index-as-blog.md +71 -0
- data/docs/3-index-pages/index-as-grid.md +29 -0
- data/docs/3-index-pages/index-as-table.md +154 -0
- data/docs/3-index-pages.md +206 -0
- data/docs/4-csv-format.md +39 -0
- data/docs/5-forms.md +110 -0
- data/docs/6-show-pages.md +77 -0
- data/docs/7-sidebars.md +42 -0
- data/docs/8-custom-actions.md +139 -0
- data/docs/9-batch-actions.md +155 -0
- data/features/action_item.feature +73 -0
- data/features/authorization.feature +64 -0
- data/features/authorization_cancan.feature +52 -0
- data/features/belongs_to.feature +63 -0
- data/features/breadcrumb.feature +27 -0
- data/features/comments/commenting.feature +140 -0
- data/features/comments/viewing_index.feature +19 -0
- data/features/dashboard.feature +16 -0
- data/features/decorators.feature +41 -0
- data/features/development_reloading.feature +31 -0
- data/features/edit_page.feature +127 -0
- data/features/favicon.feature +20 -0
- data/features/first_boot.feature +16 -0
- data/features/global_navigation.feature +29 -0
- data/features/i18n.feature +38 -0
- data/features/index/batch_actions.feature +123 -0
- data/features/index/filters.feature +138 -0
- data/features/index/format_as_csv.feature +117 -0
- data/features/index/formats.feature +66 -0
- data/features/index/index_as_block.feature +15 -0
- data/features/index/index_as_blog.feature +69 -0
- data/features/index/index_as_grid.feature +45 -0
- data/features/index/index_as_table.feature +195 -0
- data/features/index/index_blank_slate.feature +61 -0
- data/features/index/index_parameters.feature +75 -0
- data/features/index/index_scope_to.feature +56 -0
- data/features/index/index_scopes.feature +251 -0
- data/features/index/page_title.feature +30 -0
- data/features/index/pagination.feature +59 -0
- data/features/index/switch_index_view.feature +73 -0
- data/features/menu.feature +53 -0
- data/features/new_page.feature +119 -0
- data/features/registering_assets.feature +35 -0
- data/features/registering_pages.feature +148 -0
- data/features/registering_resources.feature +33 -0
- data/features/root_to.feature +17 -0
- data/features/show/default_content.feature +43 -0
- data/features/show/page_title.feature +47 -0
- data/features/sidebar_sections.feature +198 -0
- data/features/site_title.feature +47 -0
- data/features/specifying_actions.feature +93 -0
- data/features/step_definitions/action_item_steps.rb +7 -0
- data/features/step_definitions/action_link_steps.rb +7 -0
- data/features/step_definitions/additional_web_steps.rb +82 -0
- data/features/step_definitions/asset_steps.rb +15 -0
- data/features/step_definitions/attribute_steps.rb +13 -0
- data/features/step_definitions/batch_action_steps.rb +55 -0
- data/features/step_definitions/breadcrumb_steps.rb +3 -0
- data/features/step_definitions/comment_steps.rb +12 -0
- data/features/step_definitions/configuration_steps.rb +100 -0
- data/features/step_definitions/dashboard_steps.rb +15 -0
- data/features/step_definitions/factory_steps.rb +34 -0
- data/features/step_definitions/filter_steps.rb +17 -0
- data/features/step_definitions/flash_steps.rb +11 -0
- data/features/step_definitions/format_steps.rb +45 -0
- data/features/step_definitions/i18n_steps.rb +3 -0
- data/features/step_definitions/index_scope_steps.rb +21 -0
- data/features/step_definitions/index_views_steps.rb +3 -0
- data/features/step_definitions/layout_steps.rb +3 -0
- data/features/step_definitions/member_link_steps.rb +7 -0
- data/features/step_definitions/menu_steps.rb +11 -0
- data/features/step_definitions/pagination_steps.rb +8 -0
- data/features/step_definitions/sidebar_steps.rb +8 -0
- data/features/step_definitions/site_title_steps.rb +15 -0
- data/features/step_definitions/symbol_leak_steps.rb +3 -0
- data/features/step_definitions/tab_steps.rb +3 -0
- data/features/step_definitions/table_steps.rb +119 -0
- data/features/step_definitions/user_steps.rb +39 -0
- data/features/step_definitions/web_steps.rb +86 -0
- data/features/sti_resource.feature +73 -0
- data/features/support/env.rb +112 -0
- data/features/support/paths.rb +71 -0
- data/features/support/selectors.rb +45 -0
- data/features/symbol_leak.feature +35 -0
- data/features/users/logging_in.feature +34 -0
- data/features/users/logging_out.feature +13 -0
- data/features/users/resetting_password.feature +34 -0
- data/lib/active_admin/abstract_view_factory.rb +95 -0
- data/lib/active_admin/application.rb +242 -0
- data/lib/active_admin/asset_registration.rb +29 -0
- data/lib/active_admin/authorization_adapter.rb +132 -0
- data/lib/active_admin/base_controller/authorization.rb +151 -0
- data/lib/active_admin/base_controller/menu.rb +34 -0
- data/lib/active_admin/base_controller.rb +78 -0
- data/lib/active_admin/batch_actions/controller.rb +24 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +127 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
- data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +66 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
- data/lib/active_admin/batch_actions.rb +17 -0
- data/lib/active_admin/callbacks.rb +87 -0
- data/lib/active_admin/cancan_adapter.rb +40 -0
- data/lib/active_admin/component.rb +5 -0
- data/lib/active_admin/controller_action.rb +12 -0
- data/lib/active_admin/csv_builder.rb +49 -0
- data/lib/active_admin/deprecation.rb +36 -0
- data/lib/active_admin/devise.rb +70 -0
- data/lib/active_admin/dsl.rb +166 -0
- data/lib/active_admin/engine.rb +7 -0
- data/lib/active_admin/event.rb +33 -0
- data/lib/active_admin/filters/dsl.rb +21 -0
- data/lib/active_admin/filters/forms.rb +89 -0
- data/lib/active_admin/filters/formtastic_addons.rb +70 -0
- data/lib/active_admin/filters/resource_extension.rb +136 -0
- data/lib/active_admin/filters.rb +9 -0
- data/lib/active_admin/form_builder.rb +152 -0
- data/lib/active_admin/helpers/collection.rb +23 -0
- data/lib/active_admin/helpers/optional_display.rb +38 -0
- data/lib/active_admin/helpers/scope_chain.rb +23 -0
- data/lib/active_admin/helpers/settings.rb +108 -0
- data/lib/active_admin/iconic/icons.rb +142 -0
- data/lib/active_admin/iconic.rb +51 -0
- data/lib/active_admin/inputs/datepicker_input.rb +20 -0
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
- data/lib/active_admin/inputs/filter_base.rb +33 -0
- data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +51 -0
- data/lib/active_admin/inputs/filter_date_range_input.rb +34 -0
- data/lib/active_admin/inputs/filter_numeric_input.rb +10 -0
- data/lib/active_admin/inputs/filter_select_input.rb +61 -0
- data/lib/active_admin/inputs/filter_string_input.rb +24 -0
- data/lib/active_admin/inputs.rb +15 -0
- data/lib/active_admin/menu.rb +107 -0
- data/lib/active_admin/menu_collection.rb +96 -0
- data/lib/active_admin/menu_item.rb +97 -0
- data/lib/active_admin/namespace.rb +224 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +39 -0
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +14 -0
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +17 -0
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +23 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +75 -0
- data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
- data/lib/active_admin/orm/active_record/comments.rb +84 -0
- data/lib/active_admin/orm/active_record.rb +3 -0
- data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/page.rb +88 -0
- data/lib/active_admin/page_controller.rb +29 -0
- data/lib/active_admin/page_dsl.rb +28 -0
- data/lib/active_admin/page_presenter.rb +32 -0
- data/lib/active_admin/resource/action_items.rb +91 -0
- data/lib/active_admin/resource/belongs_to.rb +36 -0
- data/lib/active_admin/resource/controllers.rb +18 -0
- data/lib/active_admin/resource/menu.rb +64 -0
- data/lib/active_admin/resource/naming.rb +84 -0
- data/lib/active_admin/resource/page_presenters.rb +82 -0
- data/lib/active_admin/resource/pagination.rb +19 -0
- data/lib/active_admin/resource/routes.rb +99 -0
- data/lib/active_admin/resource/scope_to.rb +74 -0
- data/lib/active_admin/resource/scopes.rb +50 -0
- data/lib/active_admin/resource/sidebars.rb +27 -0
- data/lib/active_admin/resource.rb +153 -0
- data/lib/active_admin/resource_collection.rb +42 -0
- data/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/lib/active_admin/resource_controller/data_access.rb +298 -0
- data/lib/active_admin/resource_controller/decorators.rb +20 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
- data/lib/active_admin/resource_controller/scoping.rb +31 -0
- data/lib/active_admin/resource_controller/sidebars.rb +18 -0
- data/lib/active_admin/resource_controller.rb +50 -0
- data/lib/active_admin/resource_dsl.rb +134 -0
- data/lib/active_admin/router.rb +106 -0
- data/lib/active_admin/scope.rb +57 -0
- data/lib/active_admin/sidebar_section.rb +37 -0
- data/lib/active_admin/version.rb +3 -0
- data/lib/active_admin/view_factory.rb +27 -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 +34 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +26 -0
- data/lib/active_admin/view_helpers/display_helper.rb +49 -0
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +49 -0
- data/lib/active_admin/view_helpers/fields_for.rb +50 -0
- data/lib/active_admin/view_helpers/flash_helper.rb +13 -0
- data/lib/active_admin/view_helpers/form_helper.rb +24 -0
- data/lib/active_admin/view_helpers/icon_helper.rb +12 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +93 -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/view_helpers.rb +21 -0
- data/lib/active_admin/views/action_items.rb +17 -0
- data/lib/active_admin/views/components/action_list_popover.rb +29 -0
- data/lib/active_admin/views/components/attributes_table.rb +103 -0
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +150 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
- data/lib/active_admin/views/components/index_list.rb +68 -0
- data/lib/active_admin/views/components/paginated_collection.rb +125 -0
- data/lib/active_admin/views/components/panel.rb +34 -0
- data/lib/active_admin/views/components/popover.rb +27 -0
- data/lib/active_admin/views/components/scopes.rb +66 -0
- data/lib/active_admin/views/components/sidebar_section.rb +28 -0
- data/lib/active_admin/views/components/site_title.rb +55 -0
- data/lib/active_admin/views/components/status_tag.rb +56 -0
- data/lib/active_admin/views/components/table_for.rb +191 -0
- data/lib/active_admin/views/footer.rb +20 -0
- data/lib/active_admin/views/header.rb +32 -0
- data/lib/active_admin/views/index_as_block.rb +36 -0
- data/lib/active_admin/views/index_as_blog.rb +156 -0
- data/lib/active_admin/views/index_as_grid.rb +80 -0
- data/lib/active_admin/views/index_as_table.rb +264 -0
- data/lib/active_admin/views/pages/base.rb +139 -0
- data/lib/active_admin/views/pages/form.rb +51 -0
- data/lib/active_admin/views/pages/index.rb +147 -0
- data/lib/active_admin/views/pages/layout.rb +26 -0
- data/lib/active_admin/views/pages/page.rb +30 -0
- data/lib/active_admin/views/pages/show.rb +59 -0
- data/lib/active_admin/views/tabbed_navigation.rb +62 -0
- data/lib/active_admin/views/title_bar.rb +53 -0
- data/lib/active_admin/views.rb +8 -0
- data/lib/active_admin.rb +125 -0
- data/lib/activeadmin.rb +1 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +16 -0
- data/lib/generators/active_admin/assets/templates/active_admin.css.scss +17 -0
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +86 -0
- data/lib/generators/active_admin/install/install_generator.rb +46 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +235 -0
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +27 -0
- data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +16 -0
- data/lib/generators/active_admin/resource/templates/admin.rb +3 -0
- data/lib/ransack_ext.rb +12 -0
- data/script/local +44 -0
- data/script/use_rails +53 -0
- data/spec/integration/default_namespace_spec.rb +61 -0
- data/spec/integration/javascript_spec.rb +20 -0
- data/spec/integration/memory_spec.rb +29 -0
- data/spec/integration/stylesheets_spec.rb +41 -0
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
- data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
- data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
- data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
- data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
- data/spec/javascripts/fixtures/checkboxes.html +9 -0
- data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
- data/spec/javascripts/helpers/SpecHelper.js +3 -0
- data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
- data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
- data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
- data/spec/javascripts/support/jasmine.yml +74 -0
- data/spec/javascripts/support/jasmine_config.rb +23 -0
- data/spec/javascripts/support/jasmine_runner.rb +32 -0
- data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
- data/spec/javascripts/support/jquery.min.js +4 -0
- data/spec/spec_helper.rb +175 -0
- data/spec/spec_helper_without_rails.rb +16 -0
- data/spec/support/deferred_garbage_collection.rb +19 -0
- data/spec/support/detect_rails_version.rb +42 -0
- data/spec/support/integration_example_group.rb +31 -0
- data/spec/support/jslint.yml +80 -0
- data/spec/support/rails_template.rb +111 -0
- data/spec/support/rails_template_with_data.rb +59 -0
- data/spec/support/templates/admin/stores.rb +11 -0
- data/spec/support/templates/cucumber.rb +24 -0
- data/spec/support/templates/cucumber_with_reloading.rb +5 -0
- data/spec/support/templates/en.yml +8 -0
- data/spec/support/templates/post_decorator.rb +53 -0
- data/spec/unit/abstract_view_factory_spec.rb +79 -0
- data/spec/unit/action_builder_spec.rb +126 -0
- data/spec/unit/active_admin_spec.rb +11 -0
- data/spec/unit/application_spec.rb +141 -0
- data/spec/unit/asset_registration_spec.rb +52 -0
- data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
- data/spec/unit/authorization/controller_authorization_spec.rb +39 -0
- data/spec/unit/auto_link_spec.rb +32 -0
- data/spec/unit/batch_actions/resource_spec.rb +91 -0
- data/spec/unit/batch_actions/settings_spec.rb +61 -0
- data/spec/unit/belongs_to_spec.rb +42 -0
- data/spec/unit/cancan_adapter_spec.rb +43 -0
- data/spec/unit/comments_spec.rb +106 -0
- data/spec/unit/component_spec.rb +18 -0
- data/spec/unit/config_shared_examples.rb +59 -0
- data/spec/unit/controller_filters_spec.rb +32 -0
- data/spec/unit/csv_builder_spec.rb +103 -0
- data/spec/unit/devise_spec.rb +116 -0
- data/spec/unit/dsl_spec.rb +61 -0
- data/spec/unit/event_spec.rb +47 -0
- data/spec/unit/filters/filter_form_builder_spec.rb +423 -0
- data/spec/unit/filters/resource_spec.rb +119 -0
- data/spec/unit/form_builder_spec.rb +514 -0
- data/spec/unit/generators/install_spec.rb +23 -0
- data/spec/unit/helpers/collection_spec.rb +65 -0
- data/spec/unit/helpers/scope_chain_spec.rb +36 -0
- data/spec/unit/helpers/settings_spec.rb +30 -0
- data/spec/unit/menu_collection_spec.rb +62 -0
- data/spec/unit/menu_item_spec.rb +143 -0
- data/spec/unit/menu_spec.rb +71 -0
- data/spec/unit/namespace/authorization_spec.rb +27 -0
- data/spec/unit/namespace/register_page_spec.rb +74 -0
- data/spec/unit/namespace/register_resource_spec.rb +163 -0
- data/spec/unit/namespace_spec.rb +103 -0
- data/spec/unit/page_controller_spec.rb +5 -0
- data/spec/unit/page_spec.rb +72 -0
- data/spec/unit/pretty_format_spec.rb +35 -0
- data/spec/unit/resource/action_items_spec.rb +62 -0
- data/spec/unit/resource/menu_spec.rb +18 -0
- data/spec/unit/resource/naming_spec.rb +122 -0
- data/spec/unit/resource/page_presenters_spec.rb +44 -0
- data/spec/unit/resource/pagination_spec.rb +38 -0
- data/spec/unit/resource/routes_spec.rb +73 -0
- data/spec/unit/resource/scopes_spec.rb +43 -0
- data/spec/unit/resource/sidebars_spec.rb +43 -0
- data/spec/unit/resource_collection_spec.rb +160 -0
- data/spec/unit/resource_controller/data_access_spec.rb +73 -0
- data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
- data/spec/unit/resource_controller_spec.rb +265 -0
- data/spec/unit/resource_registration_spec.rb +56 -0
- data/spec/unit/resource_spec.rb +243 -0
- data/spec/unit/routing_spec.rb +172 -0
- data/spec/unit/scope_spec.rb +108 -0
- data/spec/unit/settings_spec.rb +88 -0
- data/spec/unit/view_factory_spec.rb +21 -0
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +149 -0
- data/spec/unit/view_helpers/display_name_spec.rb +41 -0
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
- data/spec/unit/view_helpers/fields_for_spec.rb +50 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +56 -0
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +101 -0
- data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
- data/spec/unit/views/components/attributes_table_spec.rb +230 -0
- data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
- data/spec/unit/views/components/blank_slate_spec.rb +17 -0
- data/spec/unit/views/components/columns_spec.rb +142 -0
- data/spec/unit/views/components/index_list_spec.rb +32 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +227 -0
- data/spec/unit/views/components/panel_spec.rb +51 -0
- data/spec/unit/views/components/popover_spec.rb +33 -0
- data/spec/unit/views/components/sidebar_section_spec.rb +37 -0
- data/spec/unit/views/components/site_title_spec.rb +78 -0
- data/spec/unit/views/components/status_tag_spec.rb +95 -0
- data/spec/unit/views/components/table_for_spec.rb +201 -0
- data/spec/unit/views/pages/form_spec.rb +35 -0
- data/spec/unit/views/pages/layout_spec.rb +63 -0
- data/spec/unit/views/pages/show_spec.rb +20 -0
- data/spec/unit/views/tabbed_navigation_spec.rb +149 -0
- data/tasks/docs.rake +37 -0
- data/tasks/js.rake +32 -0
- data/tasks/parallel_tests.rake +60 -0
- data/tasks/test.rake +79 -0
- data/tasks/yard.rake +7 -0
- metadata +896 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
Feature: Index Filtering
|
|
2
|
+
|
|
3
|
+
Scenario: Default Resources Filters
|
|
4
|
+
Given 3 posts exist
|
|
5
|
+
And an index configuration of:
|
|
6
|
+
"""
|
|
7
|
+
ActiveAdmin.register Post
|
|
8
|
+
"""
|
|
9
|
+
When I am on the index page for posts
|
|
10
|
+
Then I should see "Displaying all 3 Posts"
|
|
11
|
+
And I should see the following filters:
|
|
12
|
+
| Author | select |
|
|
13
|
+
| Category | select |
|
|
14
|
+
| Title | string |
|
|
15
|
+
| Body | string |
|
|
16
|
+
| Published at | date range |
|
|
17
|
+
| Created at | date range |
|
|
18
|
+
| Updated at | date range |
|
|
19
|
+
|
|
20
|
+
When I fill in "Title" with "Hello World 2"
|
|
21
|
+
And I press "Filter"
|
|
22
|
+
And I should see 1 posts in the table
|
|
23
|
+
And I should see "Hello World 2" within ".index_table"
|
|
24
|
+
|
|
25
|
+
Scenario: Filtering posts with no results
|
|
26
|
+
Given 3 posts exist
|
|
27
|
+
And an index configuration of:
|
|
28
|
+
"""
|
|
29
|
+
ActiveAdmin.register Post
|
|
30
|
+
"""
|
|
31
|
+
When I am on the index page for posts
|
|
32
|
+
Then I should see "Displaying all 3 Posts"
|
|
33
|
+
|
|
34
|
+
When I fill in "Title" with "THIS IS NOT AN EXISTING TITLE!!"
|
|
35
|
+
And I press "Filter"
|
|
36
|
+
Then I should not see ".index_table"
|
|
37
|
+
And I should not see a sortable table header
|
|
38
|
+
And I should not see pagination
|
|
39
|
+
And I should see "No Posts found"
|
|
40
|
+
|
|
41
|
+
Scenario: Filtering posts while not on the first page
|
|
42
|
+
Given 9 posts exist
|
|
43
|
+
And an index configuration of:
|
|
44
|
+
"""
|
|
45
|
+
ActiveAdmin.register Post do
|
|
46
|
+
config.per_page = 5
|
|
47
|
+
end
|
|
48
|
+
"""
|
|
49
|
+
When I follow "2"
|
|
50
|
+
Then I should see "Displaying Posts 6 - 9 of 9 in total"
|
|
51
|
+
|
|
52
|
+
When I fill in "Title" with "Hello World 2"
|
|
53
|
+
And I press "Filter"
|
|
54
|
+
And I should see 1 posts in the table
|
|
55
|
+
And I should see "Hello World 2" within ".index_table"
|
|
56
|
+
|
|
57
|
+
Scenario: Checkboxes - Filtering posts written by anyone
|
|
58
|
+
Given 1 post exists
|
|
59
|
+
And a post with the title "Hello World" written by "Jane Doe" exists
|
|
60
|
+
And an index configuration of:
|
|
61
|
+
"""
|
|
62
|
+
ActiveAdmin.register Post do
|
|
63
|
+
filter :author, :as => :check_boxes
|
|
64
|
+
end
|
|
65
|
+
"""
|
|
66
|
+
When I press "Filter"
|
|
67
|
+
Then I should see 2 posts in the table
|
|
68
|
+
And I should see "Hello World" within ".index_table"
|
|
69
|
+
And the "Jane Doe" checkbox should not be checked
|
|
70
|
+
|
|
71
|
+
Scenario: Checkboxes - Filtering posts written by Jane Doe
|
|
72
|
+
Given 1 post exists
|
|
73
|
+
And a post with the title "Hello World" written by "Jane Doe" exists
|
|
74
|
+
And an index configuration of:
|
|
75
|
+
"""
|
|
76
|
+
ActiveAdmin.register Post do
|
|
77
|
+
filter :author, :as => :check_boxes
|
|
78
|
+
end
|
|
79
|
+
"""
|
|
80
|
+
When I check "Jane Doe"
|
|
81
|
+
And I press "Filter"
|
|
82
|
+
Then I should see 1 posts in the table
|
|
83
|
+
And I should see "Hello World" within ".index_table"
|
|
84
|
+
And the "Jane Doe" checkbox should be checked
|
|
85
|
+
|
|
86
|
+
Scenario: Disabling filters
|
|
87
|
+
Given an index configuration of:
|
|
88
|
+
"""
|
|
89
|
+
ActiveAdmin.register Post do
|
|
90
|
+
config.filters = false
|
|
91
|
+
end
|
|
92
|
+
"""
|
|
93
|
+
Then I should not see a sidebar titled "Filters"
|
|
94
|
+
|
|
95
|
+
Scenario: Select - Filtering categories with posts written by Jane Doe
|
|
96
|
+
Given a category named "Mystery" exists
|
|
97
|
+
And 1 post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
|
|
98
|
+
And an index configuration of:
|
|
99
|
+
"""
|
|
100
|
+
ActiveAdmin.register Category
|
|
101
|
+
"""
|
|
102
|
+
When I select "Jane Doe" from "Authors"
|
|
103
|
+
And I press "Filter"
|
|
104
|
+
Then I should see 1 categories in the table
|
|
105
|
+
And I should see "Non-Fiction" within ".index_table"
|
|
106
|
+
And I should not see "Mystery" within ".index_table"
|
|
107
|
+
|
|
108
|
+
Scenario: Checkboxes - Filtering categories via posts written by anyone
|
|
109
|
+
Given a category named "Mystery" exists
|
|
110
|
+
And a post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
|
|
111
|
+
And an index configuration of:
|
|
112
|
+
"""
|
|
113
|
+
ActiveAdmin.register Category do
|
|
114
|
+
filter :authors, :as => :check_boxes
|
|
115
|
+
end
|
|
116
|
+
"""
|
|
117
|
+
When I press "Filter"
|
|
118
|
+
Then I should see 2 posts in the table
|
|
119
|
+
And I should see "Mystery" within ".index_table"
|
|
120
|
+
And I should see "Non-Fiction" within ".index_table"
|
|
121
|
+
And the "Jane Doe" checkbox should not be checked
|
|
122
|
+
|
|
123
|
+
Scenario: Checkboxes - Filtering categories via posts written by Jane Doe
|
|
124
|
+
Given a category named "Mystery" exists
|
|
125
|
+
And a post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
|
|
126
|
+
And an index configuration of:
|
|
127
|
+
"""
|
|
128
|
+
ActiveAdmin.register Category do
|
|
129
|
+
filter :authors, :as => :check_boxes
|
|
130
|
+
end
|
|
131
|
+
"""
|
|
132
|
+
When I check "Jane Doe"
|
|
133
|
+
And I press "Filter"
|
|
134
|
+
Then I should see 1 categories in the table
|
|
135
|
+
And I should see "Non-Fiction" within ".index_table"
|
|
136
|
+
And the "Jane Doe" checkbox should be checked
|
|
137
|
+
|
|
138
|
+
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
Feature: Format as CSV
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given I am logged in
|
|
5
|
+
|
|
6
|
+
Scenario: Default
|
|
7
|
+
Given a configuration of:
|
|
8
|
+
"""
|
|
9
|
+
ActiveAdmin.register Post
|
|
10
|
+
"""
|
|
11
|
+
And a post with the title "Hello World" exists
|
|
12
|
+
When I am on the index page for posts
|
|
13
|
+
And I follow "CSV"
|
|
14
|
+
And I should download a CSV file for "posts" containing:
|
|
15
|
+
| Id | Title | Body | Published At | Starred | Created At | Updated At |
|
|
16
|
+
| \d+ | Hello World | | | | (.*) | (.*) |
|
|
17
|
+
|
|
18
|
+
Scenario: Default with alias
|
|
19
|
+
Given a configuration of:
|
|
20
|
+
"""
|
|
21
|
+
ActiveAdmin.register Post, :as => "MyArticle"
|
|
22
|
+
"""
|
|
23
|
+
And 1 post exists
|
|
24
|
+
When I am on the index page for my_articles
|
|
25
|
+
And I follow "CSV"
|
|
26
|
+
And I should download a CSV file for "my-articles" containing:
|
|
27
|
+
| Id | Title | Body | Published At | Starred | Created At | Updated At |
|
|
28
|
+
|
|
29
|
+
Scenario: With CSV format customization
|
|
30
|
+
Given a configuration of:
|
|
31
|
+
"""
|
|
32
|
+
ActiveAdmin.register Post do
|
|
33
|
+
csv do
|
|
34
|
+
column :title
|
|
35
|
+
column("Last update") { |post| post.updated_at }
|
|
36
|
+
column("Copyright") { "Greg Bell" }
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
"""
|
|
40
|
+
And a post with the title "Hello, World" exists
|
|
41
|
+
When I am on the index page for posts
|
|
42
|
+
And I follow "CSV"
|
|
43
|
+
And I should download a CSV file for "posts" containing:
|
|
44
|
+
| Title | Last update | Copyright |
|
|
45
|
+
| Hello, World | (.*) | Greg Bell |
|
|
46
|
+
|
|
47
|
+
Scenario: With CSV format customization
|
|
48
|
+
Given a configuration of:
|
|
49
|
+
"""
|
|
50
|
+
ActiveAdmin.register Post do
|
|
51
|
+
csv :col_sep => ';' do
|
|
52
|
+
column :title
|
|
53
|
+
column :body
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
"""
|
|
57
|
+
And a post with the title "Hello, World" exists
|
|
58
|
+
When I am on the index page for posts
|
|
59
|
+
And I follow "CSV"
|
|
60
|
+
And I should download a CSV file with ";" separator for "posts" containing:
|
|
61
|
+
| Title | Body |
|
|
62
|
+
| Hello, World | (.*) |
|
|
63
|
+
|
|
64
|
+
Scenario: With CSV option customization
|
|
65
|
+
Given a configuration of:
|
|
66
|
+
"""
|
|
67
|
+
ActiveAdmin.register Post do
|
|
68
|
+
csv :force_quotes => true do
|
|
69
|
+
column :title
|
|
70
|
+
column :body
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
"""
|
|
74
|
+
And a post with the title "012345" exists
|
|
75
|
+
When I am on the index page for posts
|
|
76
|
+
And I follow "CSV"
|
|
77
|
+
And I should download a CSV file with "," separator for "posts" containing:
|
|
78
|
+
| Title | Body |
|
|
79
|
+
| 012345 | (.*) |
|
|
80
|
+
And the CSV file should contain "012345" in quotes
|
|
81
|
+
|
|
82
|
+
Scenario: With default CSV separator option
|
|
83
|
+
Given a configuration of:
|
|
84
|
+
"""
|
|
85
|
+
ActiveAdmin.application.csv_options = { :col_sep => ';' }
|
|
86
|
+
ActiveAdmin.register Post do
|
|
87
|
+
csv do
|
|
88
|
+
column :title
|
|
89
|
+
column :body
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
"""
|
|
93
|
+
And a post with the title "Hello, World" exists
|
|
94
|
+
When I am on the index page for posts
|
|
95
|
+
And I follow "CSV"
|
|
96
|
+
And I should download a CSV file with ";" separator for "posts" containing:
|
|
97
|
+
| Title | Body |
|
|
98
|
+
| Hello, World | (.*) |
|
|
99
|
+
|
|
100
|
+
Scenario: With default CSV options
|
|
101
|
+
Given a configuration of:
|
|
102
|
+
"""
|
|
103
|
+
ActiveAdmin.application.csv_options = {:col_sep => ',', :force_quotes => true}
|
|
104
|
+
ActiveAdmin.register Post do
|
|
105
|
+
csv do
|
|
106
|
+
column :title
|
|
107
|
+
column :body
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
"""
|
|
111
|
+
And a post with the title "012345" exists
|
|
112
|
+
When I am on the index page for posts
|
|
113
|
+
And I follow "CSV"
|
|
114
|
+
And I should download a CSV file with "," separator for "posts" containing:
|
|
115
|
+
| Title | Body |
|
|
116
|
+
| 012345 | (.*) |
|
|
117
|
+
And the CSV file should contain "012345" in quotes
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Feature: Index Formats
|
|
2
|
+
|
|
3
|
+
Scenario: View index with default formats
|
|
4
|
+
Given an index configuration of:
|
|
5
|
+
"""
|
|
6
|
+
ActiveAdmin.register Post
|
|
7
|
+
"""
|
|
8
|
+
And 1 post exists
|
|
9
|
+
When I am on the index page for posts
|
|
10
|
+
Then I should see a link to download "CSV"
|
|
11
|
+
And I should see a link to download "XML"
|
|
12
|
+
And I should see a link to download "JSON"
|
|
13
|
+
|
|
14
|
+
Scenario: View index with download_links set to false
|
|
15
|
+
Given an index configuration of:
|
|
16
|
+
"""
|
|
17
|
+
ActiveAdmin.register Post do
|
|
18
|
+
index :download_links => false
|
|
19
|
+
end
|
|
20
|
+
"""
|
|
21
|
+
And 1 post exists
|
|
22
|
+
When I am on the index page for posts
|
|
23
|
+
Then I should not see a link to download "CSV"
|
|
24
|
+
And I should not see a link to download "XML"
|
|
25
|
+
And I should not see a link to download "JSON"
|
|
26
|
+
|
|
27
|
+
Scenario: View index with pdf download link set
|
|
28
|
+
Given an index configuration of:
|
|
29
|
+
"""
|
|
30
|
+
ActiveAdmin.register Post do
|
|
31
|
+
index :download_links => [:pdf]
|
|
32
|
+
end
|
|
33
|
+
"""
|
|
34
|
+
And 1 post exists
|
|
35
|
+
When I am on the index page for posts
|
|
36
|
+
Then I should not see a link to download "CSV"
|
|
37
|
+
And I should not see a link to download "XML"
|
|
38
|
+
And I should not see a link to download "JSON"
|
|
39
|
+
And I should see a link to download "PDF"
|
|
40
|
+
|
|
41
|
+
Scenario: View index with download_links block which returns false
|
|
42
|
+
Given an index configuration of:
|
|
43
|
+
"""
|
|
44
|
+
ActiveAdmin.register Post do
|
|
45
|
+
index :download_links => proc { false }
|
|
46
|
+
end
|
|
47
|
+
"""
|
|
48
|
+
And 1 post exists
|
|
49
|
+
When I am on the index page for posts
|
|
50
|
+
Then I should not see a link to download "CSV"
|
|
51
|
+
And I should not see a link to download "XML"
|
|
52
|
+
And I should not see a link to download "JSON"
|
|
53
|
+
|
|
54
|
+
Scenario: View index with download_links block which returns [:csv]
|
|
55
|
+
Given an index configuration of:
|
|
56
|
+
"""
|
|
57
|
+
ActiveAdmin.register Post do
|
|
58
|
+
index :download_links => -> { [:csv] }
|
|
59
|
+
end
|
|
60
|
+
"""
|
|
61
|
+
And 1 post exists
|
|
62
|
+
When I am on the index page for posts
|
|
63
|
+
Then I should see a link to download "CSV"
|
|
64
|
+
And I should not see a link to download "XML"
|
|
65
|
+
And I should not see a link to download "JSON"
|
|
66
|
+
And I should not see a link to download "PDF"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Feature: Index as Block
|
|
2
|
+
|
|
3
|
+
Viewing the resource as a block which is renderered by the user
|
|
4
|
+
|
|
5
|
+
Scenario: Viewing the index as a block
|
|
6
|
+
Given a post with the title "Hello World from Block" exists
|
|
7
|
+
And an index configuration of:
|
|
8
|
+
"""
|
|
9
|
+
ActiveAdmin.register Post do
|
|
10
|
+
index :as => :block do |post|
|
|
11
|
+
span(link_to(post.title, admin_post_path(post)))
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
"""
|
|
15
|
+
Then I should see "Hello World from Block" within ".index_as_block"
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
Feature: Index as Blog
|
|
2
|
+
|
|
3
|
+
Viewing resources as a blog on the index page
|
|
4
|
+
|
|
5
|
+
Scenario: Viewing the blog with a resource
|
|
6
|
+
Given a post with the title "Hello World" exists
|
|
7
|
+
And an index configuration of:
|
|
8
|
+
"""
|
|
9
|
+
ActiveAdmin.register Post do
|
|
10
|
+
index :as => :blog
|
|
11
|
+
end
|
|
12
|
+
"""
|
|
13
|
+
And I am logged in
|
|
14
|
+
When I am on the index page for posts
|
|
15
|
+
Then I should see "Hello World" within "h3"
|
|
16
|
+
And I should see a link to "Hello World"
|
|
17
|
+
|
|
18
|
+
Scenario: Viewing the blog with a resource as a simple configuration
|
|
19
|
+
Given a post with the title "Hello World" and body "My great post body" exists
|
|
20
|
+
And an index configuration of:
|
|
21
|
+
"""
|
|
22
|
+
ActiveAdmin.register Post do
|
|
23
|
+
index :as => :blog do
|
|
24
|
+
title :title
|
|
25
|
+
body :body
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
"""
|
|
29
|
+
Then I should see "Hello World" within "h3"
|
|
30
|
+
And I should see a link to "Hello World"
|
|
31
|
+
And I should see "My great post body" within ".post"
|
|
32
|
+
|
|
33
|
+
Scenario: Viewing the blog with a resource as a block configuration
|
|
34
|
+
Given a post with the title "Hello World" and body "My great post body" exists
|
|
35
|
+
And an index configuration of:
|
|
36
|
+
"""
|
|
37
|
+
ActiveAdmin.register Post do
|
|
38
|
+
index :as => :blog do
|
|
39
|
+
title do |post|
|
|
40
|
+
post.title + " From Block"
|
|
41
|
+
end
|
|
42
|
+
body do |post|
|
|
43
|
+
post.body + " From Block"
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
"""
|
|
48
|
+
Then I should see "Hello World From Block" within "h3"
|
|
49
|
+
And I should see a link to "Hello World From Block"
|
|
50
|
+
And I should see "My great post body From Block" within ".post"
|
|
51
|
+
|
|
52
|
+
Scenario: Viewing a blog with a resource as a block configuration should render Abre components
|
|
53
|
+
Given a post with the title "Hello World" and body "My great post body" exists
|
|
54
|
+
And an index configuration of:
|
|
55
|
+
"""
|
|
56
|
+
ActiveAdmin.register Post do
|
|
57
|
+
index :as => :blog do
|
|
58
|
+
title do |post|
|
|
59
|
+
span(:class => :title_span) { post.title + " From Block " }
|
|
60
|
+
end
|
|
61
|
+
body do |post|
|
|
62
|
+
span(:class => :body_span) { post.body + " From Block" }
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
"""
|
|
67
|
+
Then I should see "Hello World From Block" within "span.title_span"
|
|
68
|
+
And I should see a link to "Hello World From Block"
|
|
69
|
+
And I should see "My great post body From Block" within ".post span.body_span"
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Feature: Index as Grid
|
|
2
|
+
|
|
3
|
+
Viewing resources as a grid on the index page
|
|
4
|
+
|
|
5
|
+
Scenario: Viewing index as a grid with a simple block configuration
|
|
6
|
+
Given 9 posts exist
|
|
7
|
+
And an index configuration of:
|
|
8
|
+
"""
|
|
9
|
+
ActiveAdmin.register Post do
|
|
10
|
+
index :as => :grid do |post|
|
|
11
|
+
h2 auto_link(post)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
"""
|
|
15
|
+
Then the table ".index_grid" should have 3 rows
|
|
16
|
+
And the table ".index_grid" should have 3 columns
|
|
17
|
+
And there should be 9 "a" tags within index grid
|
|
18
|
+
|
|
19
|
+
Scenario: Viewing index as a grid and set the number of columns
|
|
20
|
+
Given 9 posts exist
|
|
21
|
+
And an index configuration of:
|
|
22
|
+
"""
|
|
23
|
+
ActiveAdmin.register Post do
|
|
24
|
+
index :as => :grid, :columns => 1 do |post|
|
|
25
|
+
h2 auto_link(post)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
"""
|
|
29
|
+
Then the table ".index_grid" should have 9 rows
|
|
30
|
+
And the table ".index_grid" should have 1 columns
|
|
31
|
+
And there should be 9 "a" tags within "table.index_grid"
|
|
32
|
+
|
|
33
|
+
Scenario: Viewing index as a grid with an odd number of items
|
|
34
|
+
Given 9 posts exist
|
|
35
|
+
And an index configuration of:
|
|
36
|
+
"""
|
|
37
|
+
ActiveAdmin.register Post do
|
|
38
|
+
index :as => :grid, :columns => 2 do |post|
|
|
39
|
+
h2 auto_link(post)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
"""
|
|
43
|
+
Then the table ".index_grid" should have 5 rows
|
|
44
|
+
And the table ".index_grid" should have 2 columns
|
|
45
|
+
And there should be 9 "a" tags within "table.index_grid"
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
Feature: Index as Table
|
|
2
|
+
|
|
3
|
+
Viewing resources as a table on the index page
|
|
4
|
+
|
|
5
|
+
Scenario: Viewing the default table with one resources
|
|
6
|
+
Given an index configuration of:
|
|
7
|
+
"""
|
|
8
|
+
ActiveAdmin.register Post
|
|
9
|
+
"""
|
|
10
|
+
And 1 post exists
|
|
11
|
+
When I am on the index page for posts
|
|
12
|
+
Then I should see a sortable table header with "Id"
|
|
13
|
+
And I should see a sortable table header with "Title"
|
|
14
|
+
And I should see a table with id "index_table_posts"
|
|
15
|
+
|
|
16
|
+
Scenario: Viewing the default table with a resource
|
|
17
|
+
Given a post with the title "Hello World" exists
|
|
18
|
+
And an index configuration of:
|
|
19
|
+
"""
|
|
20
|
+
ActiveAdmin.register Post
|
|
21
|
+
"""
|
|
22
|
+
Then I should see "Hello World"
|
|
23
|
+
Then I should see nicely formatted datetimes
|
|
24
|
+
And I should see a link to "View"
|
|
25
|
+
And I should see a link to "Edit"
|
|
26
|
+
And I should see a link to "Delete"
|
|
27
|
+
|
|
28
|
+
Scenario: Customizing the columns with symbols
|
|
29
|
+
Given a post with the title "Hello World" and body "From the body" exists
|
|
30
|
+
And an index configuration of:
|
|
31
|
+
"""
|
|
32
|
+
ActiveAdmin.register Post do
|
|
33
|
+
index do
|
|
34
|
+
column :title
|
|
35
|
+
column :body
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
"""
|
|
39
|
+
Then I should see a sortable table header with "Title"
|
|
40
|
+
And I should see a sortable table header with "Body"
|
|
41
|
+
And I should see "Hello World"
|
|
42
|
+
And I should see "From the body"
|
|
43
|
+
|
|
44
|
+
Scenario: Customizing the columns with a block
|
|
45
|
+
Given a post with the title "Hello World" and body "From the body" exists
|
|
46
|
+
And an index configuration of:
|
|
47
|
+
"""
|
|
48
|
+
ActiveAdmin.register Post do
|
|
49
|
+
index do
|
|
50
|
+
column("My Title") do |post|
|
|
51
|
+
post.title
|
|
52
|
+
end
|
|
53
|
+
column("My Body") do |post|
|
|
54
|
+
post.body
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
"""
|
|
59
|
+
Then I should see a table header with "My Title"
|
|
60
|
+
And I should see a table header with "My Body"
|
|
61
|
+
And I should see "Hello World"
|
|
62
|
+
And I should see "From the body"
|
|
63
|
+
|
|
64
|
+
Scenario: Showing and Hiding columns
|
|
65
|
+
Given a post with the title "Hello World" and body "From the body" exists
|
|
66
|
+
And an index configuration of:
|
|
67
|
+
"""
|
|
68
|
+
ActiveAdmin.register Post do
|
|
69
|
+
index do
|
|
70
|
+
if current_active_admin_user
|
|
71
|
+
column :title
|
|
72
|
+
end
|
|
73
|
+
if current_active_admin_user.nil?
|
|
74
|
+
column :body
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
"""
|
|
79
|
+
Then I should see a sortable table header with "Title"
|
|
80
|
+
And I should not see a table header with "Body"
|
|
81
|
+
And I should see "Hello World"
|
|
82
|
+
And I should not see "From the body"
|
|
83
|
+
|
|
84
|
+
Scenario: Default Actions
|
|
85
|
+
Given a post with the title "Hello World" and body "From the body" exists
|
|
86
|
+
And an index configuration of:
|
|
87
|
+
"""
|
|
88
|
+
ActiveAdmin.register Post do
|
|
89
|
+
actions :index, :show, :edit, :update
|
|
90
|
+
end
|
|
91
|
+
"""
|
|
92
|
+
Then I should see a member link to "View"
|
|
93
|
+
And I should see a member link to "Edit"
|
|
94
|
+
And I should not see a member link to "Delete"
|
|
95
|
+
|
|
96
|
+
Scenario: Actions with defaults and custom actions
|
|
97
|
+
Given a post with the title "Hello World" and body "From the body" exists
|
|
98
|
+
And an index configuration of:
|
|
99
|
+
"""
|
|
100
|
+
ActiveAdmin.register Post do
|
|
101
|
+
actions :index, :show, :edit, :update
|
|
102
|
+
|
|
103
|
+
index do
|
|
104
|
+
column :category
|
|
105
|
+
actions do |resource|
|
|
106
|
+
link_to 'Custom Action', edit_admin_post_path(resource), :class => 'member_link'
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
"""
|
|
111
|
+
Then I should see a member link to "View"
|
|
112
|
+
And I should see a member link to "Edit"
|
|
113
|
+
And I should not see a member link to "Delete"
|
|
114
|
+
And I should see a member link to "Custom Action"
|
|
115
|
+
|
|
116
|
+
Scenario: Actions without default actions
|
|
117
|
+
Given a post with the title "Hello World" and body "From the body" exists
|
|
118
|
+
And an index configuration of:
|
|
119
|
+
"""
|
|
120
|
+
ActiveAdmin.register Post do
|
|
121
|
+
actions :index, :show, :edit, :update
|
|
122
|
+
|
|
123
|
+
index do
|
|
124
|
+
column :category
|
|
125
|
+
actions :defaults => false do |resource|
|
|
126
|
+
link_to 'Custom Action', edit_admin_post_path(resource), :class => 'member_link'
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
"""
|
|
131
|
+
Then I should not see a member link to "View"
|
|
132
|
+
And I should not see a member link to "Edit"
|
|
133
|
+
And I should not see a member link to "Delete"
|
|
134
|
+
And I should see a member link to "Custom Action"
|
|
135
|
+
|
|
136
|
+
Scenario: Associations are not sortable
|
|
137
|
+
Given 1 post exists
|
|
138
|
+
And an index configuration of:
|
|
139
|
+
"""
|
|
140
|
+
ActiveAdmin.register Post do
|
|
141
|
+
index do
|
|
142
|
+
column :category
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
"""
|
|
146
|
+
Then I should not see a sortable table header with "Category"
|
|
147
|
+
|
|
148
|
+
Scenario: Sorting
|
|
149
|
+
Given a post with the title "Hello World" and body "From the body" exists
|
|
150
|
+
And a post with the title "Bye bye world" and body "Move your..." exists
|
|
151
|
+
And an index configuration of:
|
|
152
|
+
"""
|
|
153
|
+
ActiveAdmin.register Post
|
|
154
|
+
"""
|
|
155
|
+
When I am on the index page for posts
|
|
156
|
+
Then I should see the "index_table_posts" table:
|
|
157
|
+
| [ ] | Id | Title | Body | Published At | Starred | Created At | Updated At | |
|
|
158
|
+
| [ ] | 2 | Bye bye world | Move your... | | | /.*/ | /.*/ | ViewEditDelete |
|
|
159
|
+
| [ ] | 1 | Hello World | From the body | | | /.*/ | /.*/ | ViewEditDelete |
|
|
160
|
+
When I follow "Id"
|
|
161
|
+
Then I should see the "index_table_posts" table:
|
|
162
|
+
| [ ] | Id | Title | Body | Published At | Starred | Created At | Updated At | |
|
|
163
|
+
| [ ] | 1 | Hello World | From the body | | | /.*/ | /.*/ | ViewEditDelete |
|
|
164
|
+
| [ ] | 2 | Bye bye world | Move your... | | | /.*/ | /.*/ | ViewEditDelete |
|
|
165
|
+
|
|
166
|
+
Scenario: Sorting by a virtual column
|
|
167
|
+
Given a post with the title "Hello World" exists
|
|
168
|
+
And a post with the title "Bye bye world" exists
|
|
169
|
+
And an index configuration of:
|
|
170
|
+
"""
|
|
171
|
+
ActiveAdmin.register Post do
|
|
172
|
+
controller do
|
|
173
|
+
def scoped_collection
|
|
174
|
+
Post.select("id, title, length(title) as title_length")
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
index do
|
|
179
|
+
column :id
|
|
180
|
+
column :title
|
|
181
|
+
column("Title Length", :sortable => :title_length) { |post| post.title_length }
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
"""
|
|
185
|
+
When I am on the index page for posts
|
|
186
|
+
And I follow "Title Length"
|
|
187
|
+
Then I should see the "index_table_posts" table:
|
|
188
|
+
| Id | Title | Title Length |
|
|
189
|
+
| 2 | Bye bye world | 13 |
|
|
190
|
+
| 1 | Hello World | 11 |
|
|
191
|
+
When I follow "Title Length"
|
|
192
|
+
Then I should see the "index_table_posts" table:
|
|
193
|
+
| Id | Title | Title Length |
|
|
194
|
+
| 1 | Hello World | 11 |
|
|
195
|
+
| 2 | Bye bye world | 13 |
|