activeadministration 0.0.1
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 +47 -0
- data/.travis.yml +19 -0
- data/.yardopts +9 -0
- data/CHANGELOG.md +1074 -0
- data/CONTRIBUTING.md +139 -0
- data/Gemfile +52 -0
- data/Guardfile +7 -0
- data/LICENSE +25 -0
- data/README.md +8 -0
- data/Rakefile +33 -0
- data/activeadministration.gemspec +34 -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 +30 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +14 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +36 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +85 -0
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +75 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +36 -0
- data/app/assets/javascripts/active_admin/lib/popover.js.coffee +68 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +24 -0
- data/app/assets/stylesheets/active_admin/_base.css.scss +42 -0
- data/app/assets/stylesheets/active_admin/_forms.css.scss +329 -0
- data/app/assets/stylesheets/active_admin/_header.css.scss +156 -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 +127 -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/_modal_dialog.scss +31 -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 +16 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +65 -0
- data/app/assets/stylesheets/active_admin/components/_tables.css.scss +111 -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 +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 +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 +34 -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 +46 -0
- data/app/views/active_admin/dashboard/index.html.arb +1 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +14 -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/registrations/new.html.erb +22 -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/kaminari/active_admin/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin/_paginator.html.erb +23 -0
- data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -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 +102 -0
- data/config/locales/bs.yml +121 -0
- data/config/locales/ca.yml +102 -0
- data/config/locales/cs.yml +106 -0
- data/config/locales/da.yml +103 -0
- data/config/locales/de-CH.yml +118 -0
- data/config/locales/de.yml +143 -0
- data/config/locales/el.yml +111 -0
- data/config/locales/en-GB.yml +95 -0
- data/config/locales/en.yml +117 -0
- data/config/locales/es.yml +127 -0
- data/config/locales/es_MX.yml +110 -0
- data/config/locales/fi.yml +110 -0
- data/config/locales/fr.yml +109 -0
- data/config/locales/he.yml +92 -0
- data/config/locales/hr.yml +121 -0
- data/config/locales/hu.yml +96 -0
- data/config/locales/it.yml +114 -0
- data/config/locales/ja.yml +114 -0
- data/config/locales/ko.yml +85 -0
- data/config/locales/lt.yml +118 -0
- data/config/locales/lv.yml +90 -0
- data/config/locales/nl.yml +94 -0
- data/config/locales/no-NB.yml +111 -0
- data/config/locales/pl.yml +100 -0
- data/config/locales/pt-BR.yml +117 -0
- data/config/locales/pt-PT.yml +90 -0
- data/config/locales/ro.yml +94 -0
- data/config/locales/ru.yml +121 -0
- data/config/locales/sv-SE.yml +90 -0
- data/config/locales/tr.yml +94 -0
- data/config/locales/uk.yml +121 -0
- data/config/locales/vi.yml +91 -0
- data/config/locales/zh-CN.yml +112 -0
- data/config/locales/zh-TW.yml +94 -0
- data/cucumber.yml +3 -0
- data/docs/0-installation.md +84 -0
- data/docs/1-general-configuration.md +138 -0
- data/docs/10-custom-pages.md +84 -0
- data/docs/11-decorators.md +50 -0
- data/docs/12-arbre-components.md +150 -0
- data/docs/13-authorization-adapter.md +239 -0
- data/docs/2-resource-customization.md +359 -0
- data/docs/3-index-pages.md +245 -0
- data/docs/3-index-pages/create-an-index.md +31 -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 +163 -0
- data/docs/4-csv-format.md +39 -0
- data/docs/5-forms.md +118 -0
- data/docs/6-show-pages.md +77 -0
- data/docs/7-sidebars.md +63 -0
- data/docs/8-custom-actions.md +159 -0
- data/docs/9-batch-actions.md +233 -0
- data/features/action_item.feature +73 -0
- data/features/authorization.feature +64 -0
- data/features/authorization_cancan.feature +52 -0
- data/features/authorization_pundit.feature +37 -0
- data/features/belongs_to.feature +66 -0
- data/features/breadcrumb.feature +75 -0
- data/features/comments/commenting.feature +159 -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 +114 -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 +43 -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 +208 -0
- data/features/index/index_blank_slate.feature +83 -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 +41 -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 +106 -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 +58 -0
- data/features/sidebar_sections.feature +210 -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 +18 -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 +12 -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 +41 -0
- data/features/step_definitions/web_steps.rb +86 -0
- data/features/sti_resource.feature +65 -0
- data/features/strong_parameters.feature +72 -0
- data/features/support/env.rb +119 -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.rb +135 -0
- data/lib/active_admin/abstract_view_factory.rb +86 -0
- data/lib/active_admin/application.rb +250 -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.rb +78 -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/batch_actions.rb +17 -0
- data/lib/active_admin/batch_actions/controller.rb +29 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +154 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +38 -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 +57 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
- data/lib/active_admin/callbacks.rb +84 -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 +70 -0
- data/lib/active_admin/dependencies.rb +38 -0
- data/lib/active_admin/deprecation.rb +35 -0
- data/lib/active_admin/devise.rb +80 -0
- data/lib/active_admin/dsl.rb +165 -0
- data/lib/active_admin/engine.rb +7 -0
- data/lib/active_admin/error.rb +22 -0
- data/lib/active_admin/event.rb +33 -0
- data/lib/active_admin/filters.rb +9 -0
- data/lib/active_admin/filters/dsl.rb +21 -0
- data/lib/active_admin/filters/forms.rb +87 -0
- data/lib/active_admin/filters/formtastic_addons.rb +73 -0
- data/lib/active_admin/filters/resource_extension.rb +135 -0
- data/lib/active_admin/form_builder.rb +185 -0
- data/lib/active_admin/helpers/collection.rb +23 -0
- data/lib/active_admin/helpers/i18n.rb +7 -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 +106 -0
- data/lib/active_admin/iconic.rb +54 -0
- data/lib/active_admin/iconic/icons.rb +142 -0
- data/lib/active_admin/inputs.rb +15 -0
- data/lib/active_admin/inputs/datepicker_input.rb +20 -0
- data/lib/active_admin/inputs/filter_base.rb +40 -0
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
- data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +48 -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 +53 -0
- data/lib/active_admin/inputs/filter_string_input.rb +24 -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 +231 -0
- data/lib/active_admin/order_clause.rb +26 -0
- data/lib/active_admin/orm/active_record.rb +3 -0
- data/lib/active_admin/orm/active_record/comments.rb +84 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +49 -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.rb +2 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +75 -0
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/orm/mongoid/.gitkeep +0 -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/pundit_adapter.rb +42 -0
- data/lib/active_admin/resource.rb +156 -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 +28 -0
- data/lib/active_admin/resource_collection.rb +70 -0
- data/lib/active_admin/resource_controller.rb +50 -0
- data/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/lib/active_admin/resource_controller/data_access.rb +284 -0
- data/lib/active_admin/resource_controller/decorators.rb +100 -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_dsl.rb +171 -0
- data/lib/active_admin/router.rb +106 -0
- data/lib/active_admin/scope.rb +57 -0
- data/lib/active_admin/sidebar_section.rb +45 -0
- data/lib/active_admin/version.rb +3 -0
- data/lib/active_admin/view_factory.rb +27 -0
- data/lib/active_admin/view_helpers.rb +21 -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 +37 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +27 -0
- data/lib/active_admin/view_helpers/display_helper.rb +64 -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 +21 -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/views.rb +8 -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 +105 -0
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +157 -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 +126 -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 +29 -0
- data/lib/active_admin/views/components/site_title.rb +55 -0
- data/lib/active_admin/views/components/status_tag.rb +67 -0
- data/lib/active_admin/views/components/table_for.rb +212 -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 +277 -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 +163 -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 +55 -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 +66 -0
- data/lib/generators/active_admin/install/install_generator.rb +46 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +243 -0
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +30 -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 +17 -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 +18 -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 +182 -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 +117 -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/policies/active_admin/comment_policy.rb +9 -0
- data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
- data/spec/support/templates/policies/admin_user_policy.rb +11 -0
- data/spec/support/templates/policies/application_policy.rb +45 -0
- data/spec/support/templates/policies/category_policy.rb +7 -0
- data/spec/support/templates/policies/post_policy.rb +15 -0
- data/spec/support/templates/policies/store_policy.rb +11 -0
- data/spec/support/templates/policies/user_policy.rb +11 -0
- data/spec/support/templates/post_decorator.rb +11 -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 +140 -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 +34 -0
- data/spec/unit/batch_actions/resource_spec.rb +92 -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 +144 -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 +37 -0
- data/spec/unit/csv_builder_spec.rb +134 -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 +418 -0
- data/spec/unit/filters/resource_spec.rb +121 -0
- data/spec/unit/form_builder_spec.rb +576 -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/order_clause_spec.rb +57 -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 +63 -0
- data/spec/unit/pundit_adapter_spec.rb +36 -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 +50 -0
- data/spec/unit/resource/sidebars_spec.rb +43 -0
- data/spec/unit/resource_collection_spec.rb +158 -0
- data/spec/unit/resource_controller/data_access_spec.rb +73 -0
- data/spec/unit/resource_controller/decorators_spec.rb +86 -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 +263 -0
- data/spec/unit/routing_spec.rb +172 -0
- data/spec/unit/scope_spec.rb +114 -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 +180 -0
- data/spec/unit/view_helpers/display_name_spec.rb +68 -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 +42 -0
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +97 -0
- data/spec/unit/views/components/action_list_popover_spec.rb +29 -0
- data/spec/unit/views/components/attributes_table_spec.rb +259 -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 +172 -0
- data/spec/unit/views/components/index_list_spec.rb +32 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +229 -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 +47 -0
- data/spec/unit/views/components/site_title_spec.rb +78 -0
- data/spec/unit/views/components/status_tag_spec.rb +102 -0
- data/spec/unit/views/components/table_for_spec.rb +242 -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 +741 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Feature: Favicon
|
|
2
|
+
|
|
3
|
+
Configuring a Favicon file
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given a configuration of:
|
|
7
|
+
"""
|
|
8
|
+
ActiveAdmin.register Post
|
|
9
|
+
ActiveAdmin.application.favicon = "a/favicon.ico"
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
Scenario: Logged out views show Favicon
|
|
13
|
+
Given I am logged out
|
|
14
|
+
When I am on the login page
|
|
15
|
+
Then I should see the favicon "a/favicon.ico"
|
|
16
|
+
|
|
17
|
+
Scenario: Logged in views show Favicon
|
|
18
|
+
Given I am logged in
|
|
19
|
+
When I am on the dashboard
|
|
20
|
+
Then I should see the favicon "a/favicon.ico"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Feature: First Boot
|
|
2
|
+
|
|
3
|
+
As a developer
|
|
4
|
+
In order to ensure I have a great first experience
|
|
5
|
+
I want Active Admin to just work on install
|
|
6
|
+
|
|
7
|
+
Scenario: Visiting /admin and logging in with no configurations
|
|
8
|
+
Given a configuration of:
|
|
9
|
+
"""
|
|
10
|
+
"""
|
|
11
|
+
And an admin user "admin@example.com" exists
|
|
12
|
+
When I go to the dashboard
|
|
13
|
+
When I fill in "Email" with "admin@example.com"
|
|
14
|
+
And I fill in "Password" with "password"
|
|
15
|
+
And I press "Login"
|
|
16
|
+
Then I should be on the the dashboard
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
Feature: Global Navigation
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given a configuration of:
|
|
5
|
+
"""
|
|
6
|
+
ActiveAdmin.register Post
|
|
7
|
+
"""
|
|
8
|
+
Given I am logged in
|
|
9
|
+
And 10 posts exist
|
|
10
|
+
|
|
11
|
+
Scenario: Viewing the current section in the global navigation
|
|
12
|
+
Given I am on the index page for posts
|
|
13
|
+
Then the "Posts" tab should be selected
|
|
14
|
+
|
|
15
|
+
Scenario: Viewing the current section in the global navigation when on new page
|
|
16
|
+
Given I am on the index page for posts
|
|
17
|
+
And I follow "New Post"
|
|
18
|
+
Then the "Posts" tab should be selected
|
|
19
|
+
|
|
20
|
+
Scenario: Viewing the current section in the global navigation when on show page
|
|
21
|
+
Given I am on the index page for posts
|
|
22
|
+
And I follow "View"
|
|
23
|
+
Then the "Posts" tab should be selected
|
|
24
|
+
|
|
25
|
+
Scenario: Viewing the current section in the global navigation when on edit page
|
|
26
|
+
Given I am on the index page for posts
|
|
27
|
+
And I follow "View"
|
|
28
|
+
And I follow "Edit Post"
|
|
29
|
+
Then the "Posts" tab should be selected
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Feature: Internationalization
|
|
2
|
+
|
|
3
|
+
ActiveAdmin should use the translations provided by the host app.
|
|
4
|
+
|
|
5
|
+
Scenario: Store's model name was translated to "Bookstore"
|
|
6
|
+
Given I am logged in
|
|
7
|
+
And a store named "Hello words" exists
|
|
8
|
+
When I go to the dashboard
|
|
9
|
+
Then I should see "Bookstores"
|
|
10
|
+
|
|
11
|
+
When I follow "Bookstores"
|
|
12
|
+
Then I should see the page title "Bookstores"
|
|
13
|
+
Then I should see "Hello words"
|
|
14
|
+
|
|
15
|
+
When I follow "View"
|
|
16
|
+
Then I should see "Bookstore Details"
|
|
17
|
+
And I should see "Hello words"
|
|
18
|
+
And I should see a link to "Delete Bookstore"
|
|
19
|
+
|
|
20
|
+
When I follow "Edit Bookstore"
|
|
21
|
+
Then I should see "Edit Bookstore"
|
|
22
|
+
|
|
23
|
+
When I press "Update Bookstore"
|
|
24
|
+
Then I should see a flash with "Bookstore was successfully updated."
|
|
25
|
+
|
|
26
|
+
Scenario: Switching language at runtime
|
|
27
|
+
Given I am logged in
|
|
28
|
+
When I set my locale to "fr"
|
|
29
|
+
And I go to the dashboard
|
|
30
|
+
Then I should see "Store"
|
|
31
|
+
Then I should see "Déconnexion"
|
|
32
|
+
|
|
33
|
+
When I set my locale to "en"
|
|
34
|
+
And I go to the dashboard
|
|
35
|
+
Then I should see "Bookstore"
|
|
36
|
+
Then I should see "Logout"
|
|
37
|
+
|
|
38
|
+
Scenario: Overriding translations
|
|
39
|
+
Given I am logged in
|
|
40
|
+
And a store named "Hello words" exists
|
|
41
|
+
When I go to the dashboard
|
|
42
|
+
When I follow "Bookstores"
|
|
43
|
+
Then I should see "Download this:"
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
Feature: Batch Actions
|
|
2
|
+
|
|
3
|
+
Scenario: Use default (destroy) batch action
|
|
4
|
+
Given 10 posts exist
|
|
5
|
+
And an index configuration of:
|
|
6
|
+
"""
|
|
7
|
+
ActiveAdmin.register Post
|
|
8
|
+
"""
|
|
9
|
+
Then I should see the batch action button
|
|
10
|
+
And I should see that the batch action button is disabled
|
|
11
|
+
And I should see the batch action popover exists
|
|
12
|
+
And I should see 10 posts in the table
|
|
13
|
+
|
|
14
|
+
When I check the 1st record
|
|
15
|
+
And I check the 2nd record
|
|
16
|
+
And I follow "Batch Actions"
|
|
17
|
+
Then I should see the batch action :destroy "Delete Selected"
|
|
18
|
+
|
|
19
|
+
Given I submit the batch action form with "destroy"
|
|
20
|
+
Then I should see a flash with "Successfully destroyed 2 posts"
|
|
21
|
+
And I should see 8 posts in the table
|
|
22
|
+
|
|
23
|
+
Scenario: Use default (destroy) batch action on a nested resource
|
|
24
|
+
Given I am logged in
|
|
25
|
+
And 5 posts written by "John Doe" exist
|
|
26
|
+
And a configuration of:
|
|
27
|
+
"""
|
|
28
|
+
ActiveAdmin.register User
|
|
29
|
+
ActiveAdmin.register Post do
|
|
30
|
+
belongs_to :user
|
|
31
|
+
end
|
|
32
|
+
"""
|
|
33
|
+
When I go to the last author's posts
|
|
34
|
+
Then I should see the batch action button
|
|
35
|
+
And I should see that the batch action button is disabled
|
|
36
|
+
And I should see the batch action popover exists
|
|
37
|
+
And I should see 5 posts in the table
|
|
38
|
+
|
|
39
|
+
When I check the 2nd record
|
|
40
|
+
And I check the 4th record
|
|
41
|
+
And I follow "Batch Actions"
|
|
42
|
+
Then I should see the batch action :destroy "Delete Selected"
|
|
43
|
+
|
|
44
|
+
Given I submit the batch action form with "destroy"
|
|
45
|
+
Then I should see a flash with "Successfully destroyed 2 posts"
|
|
46
|
+
And I should see 3 posts in the table
|
|
47
|
+
|
|
48
|
+
Scenario: Using a custom batch action
|
|
49
|
+
Given 10 posts exist
|
|
50
|
+
And an index configuration of:
|
|
51
|
+
"""
|
|
52
|
+
ActiveAdmin.register Post do
|
|
53
|
+
batch_action(:flag) do
|
|
54
|
+
redirect_to collection_path, :notice => "Successfully flagged 10 posts"
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
"""
|
|
58
|
+
When I check the 1st record
|
|
59
|
+
Given I submit the batch action form with "flag"
|
|
60
|
+
Then I should see a flash with "Successfully flagged 10 posts"
|
|
61
|
+
|
|
62
|
+
Scenario: Disabling batch actions for a resource
|
|
63
|
+
Given 10 posts exist
|
|
64
|
+
And an index configuration of:
|
|
65
|
+
"""
|
|
66
|
+
ActiveAdmin.register Post do
|
|
67
|
+
config.batch_actions = false
|
|
68
|
+
end
|
|
69
|
+
"""
|
|
70
|
+
Then I should not see the batch action selector
|
|
71
|
+
And I should not see checkboxes in the table
|
|
72
|
+
|
|
73
|
+
Scenario: Disabling the default destroy batch action
|
|
74
|
+
Given 10 posts exist
|
|
75
|
+
And an index configuration of:
|
|
76
|
+
"""
|
|
77
|
+
ActiveAdmin.register Post do
|
|
78
|
+
batch_action :destroy, false
|
|
79
|
+
batch_action(:flag) {}
|
|
80
|
+
end
|
|
81
|
+
"""
|
|
82
|
+
Then I should see the batch action :flag "Flag Selected"
|
|
83
|
+
And I should not see the batch action :destroy "Delete Selected"
|
|
84
|
+
|
|
85
|
+
Scenario: Optional display of batch actions
|
|
86
|
+
Given 10 posts exist
|
|
87
|
+
And an index configuration of:
|
|
88
|
+
"""
|
|
89
|
+
ActiveAdmin.register Post do
|
|
90
|
+
batch_action(:flag, :if => proc { true }) {}
|
|
91
|
+
batch_action(:unflag, :if => proc { false }) {}
|
|
92
|
+
end
|
|
93
|
+
"""
|
|
94
|
+
Then I should see the batch action :flag "Flag Selected"
|
|
95
|
+
And I should not see the batch action :unflag "Unflag Selected"
|
|
96
|
+
|
|
97
|
+
Scenario: Sort order priority
|
|
98
|
+
Given 10 posts exist
|
|
99
|
+
And an index configuration of:
|
|
100
|
+
"""
|
|
101
|
+
ActiveAdmin.register Post do
|
|
102
|
+
batch_action(:test, :priority => 3) {}
|
|
103
|
+
batch_action(:flag, :priority => 2) {}
|
|
104
|
+
batch_action(:unflag, :priority => 1) {}
|
|
105
|
+
end
|
|
106
|
+
"""
|
|
107
|
+
Then the 4th batch action should be "Delete Selected"
|
|
108
|
+
And the 3rd batch action should be "Test Selected"
|
|
109
|
+
And the 2nd batch action should be "Flag Selected"
|
|
110
|
+
And the 1st batch action should be "Unflag Selected"
|
|
111
|
+
|
|
112
|
+
Scenario: Complex naming
|
|
113
|
+
Given 10 posts exist
|
|
114
|
+
And an index configuration of:
|
|
115
|
+
"""
|
|
116
|
+
ActiveAdmin.register Post do
|
|
117
|
+
batch_action("Very Complex and Time Consuming") {}
|
|
118
|
+
batch_action(:passing_a_symbol) {}
|
|
119
|
+
end
|
|
120
|
+
"""
|
|
121
|
+
Then I should see the batch action :very_complex_and_time_consuming "Very Complex and Time Consuming Selected"
|
|
122
|
+
And I should see the batch action :passing_a_symbol "Passing A Symbol Selected"
|
|
123
|
+
|
|
@@ -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
|