activeadmin-rb 1.4.0
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/.codeclimate.yml +64 -0
- data/.github/ISSUE_TEMPLATE.md +20 -0
- data/.gitignore +21 -0
- data/.mdlrc +1 -0
- data/.rubocop.yml +84 -0
- data/.simplecov +13 -0
- data/.travis.yml +49 -0
- data/.yardopts +7 -0
- data/CHANGELOG.md +389 -0
- data/CODE_OF_CONDUCT.md +22 -0
- data/CONTRIBUTING.md +184 -0
- data/Gemfile +58 -0
- data/LICENSE +20 -0
- data/README.md +75 -0
- data/Rakefile +54 -0
- data/activeadmin-rb.gemspec +32 -0
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +13 -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/initializers/batch_actions.js.coffee +11 -0
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +14 -0
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +26 -0
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +7 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +42 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +46 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +104 -0
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +45 -0
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +46 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +22 -0
- data/app/assets/stylesheets/active_admin/_base.scss +41 -0
- data/app/assets/stylesheets/active_admin/_forms.scss +338 -0
- data/app/assets/stylesheets/active_admin/_header.scss +156 -0
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -0
- data/app/assets/stylesheets/active_admin/_typography.scss +100 -0
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +30 -0
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_comments.scss +41 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.scss +149 -0
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +152 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -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 +34 -0
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +55 -0
- data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +13 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +17 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
- data/app/assets/stylesheets/active_admin/components/_tables.scss +113 -0
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
- data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -0
- data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +65 -0
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
- data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
- data/app/assets/stylesheets/active_admin/mixins/_sections.scss +41 -0
- data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +15 -0
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +17 -0
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +34 -0
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
- data/app/assets/stylesheets/active_admin/print.scss +287 -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 +41 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +15 -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 +18 -0
- data/app/views/active_admin/devise/passwords/new.html.erb +15 -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 +33 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +15 -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.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 +25 -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 +39 -0
- data/codecov.yml +25 -0
- data/config/i18n-tasks.yml +26 -0
- data/config/locales/ar.yml +134 -0
- data/config/locales/bg.yml +119 -0
- data/config/locales/bs.yml +120 -0
- data/config/locales/ca.yml +105 -0
- data/config/locales/cs.yml +108 -0
- data/config/locales/da.yml +136 -0
- data/config/locales/de-CH.yml +100 -0
- data/config/locales/de.yml +143 -0
- data/config/locales/el.yml +125 -0
- data/config/locales/en-CA.yml +138 -0
- data/config/locales/en-GB.yml +138 -0
- data/config/locales/en.yml +161 -0
- data/config/locales/eo.yml +144 -0
- data/config/locales/es-MX.yml +95 -0
- data/config/locales/es.yml +161 -0
- data/config/locales/fa.yml +118 -0
- data/config/locales/fi.yml +111 -0
- data/config/locales/fr.yml +140 -0
- data/config/locales/he.yml +141 -0
- data/config/locales/hr.yml +122 -0
- data/config/locales/hu.yml +97 -0
- data/config/locales/id.yml +134 -0
- data/config/locales/it.yml +143 -0
- data/config/locales/ja.yml +140 -0
- data/config/locales/ko.yml +119 -0
- data/config/locales/lt.yml +141 -0
- data/config/locales/lv.yml +91 -0
- data/config/locales/nb.yml +129 -0
- data/config/locales/nl.yml +143 -0
- data/config/locales/pl.yml +167 -0
- data/config/locales/pt-BR.yml +142 -0
- data/config/locales/pt-PT.yml +91 -0
- data/config/locales/ro.yml +95 -0
- data/config/locales/ru.yml +140 -0
- data/config/locales/sk.yml +108 -0
- data/config/locales/sv-SE.yml +134 -0
- data/config/locales/tr.yml +143 -0
- data/config/locales/uk.yml +135 -0
- data/config/locales/vi.yml +133 -0
- data/config/locales/zh-CN.yml +142 -0
- data/config/locales/zh-TW.yml +134 -0
- data/config/mdl_style.rb +9 -0
- data/cucumber.yml +6 -0
- data/docs/0-installation.md +118 -0
- data/docs/1-general-configuration.md +204 -0
- data/docs/10-custom-pages.md +150 -0
- data/docs/11-decorators.md +59 -0
- data/docs/12-arbre-components.md +203 -0
- data/docs/13-authorization-adapter.md +285 -0
- data/docs/14-gotchas.md +138 -0
- data/docs/2-resource-customization.md +466 -0
- data/docs/3-index-pages.md +328 -0
- data/docs/3-index-pages/custom-index.md +35 -0
- data/docs/3-index-pages/index-as-block.md +19 -0
- data/docs/3-index-pages/index-as-blog.md +69 -0
- data/docs/3-index-pages/index-as-grid.md +27 -0
- data/docs/3-index-pages/index-as-table.md +225 -0
- data/docs/4-csv-format.md +74 -0
- data/docs/5-forms.md +231 -0
- data/docs/6-show-pages.md +81 -0
- data/docs/7-sidebars.md +75 -0
- data/docs/8-custom-actions.md +177 -0
- data/docs/9-batch-actions.md +237 -0
- data/docs/CNAME +1 -0
- data/docs/Gemfile +2 -0
- data/docs/README.md +24 -0
- data/docs/_config.yml +2 -0
- data/docs/_includes/footer.html +8 -0
- data/docs/_includes/google-analytics.html +16 -0
- data/docs/_includes/head.html +7 -0
- data/docs/_includes/toc.html +98 -0
- data/docs/_includes/top-menu.html +9 -0
- data/docs/_layouts/default.html +21 -0
- data/docs/documentation.md +60 -0
- data/docs/images/activeadmin.png +0 -0
- data/docs/images/code-header.png +0 -0
- data/docs/images/divider.png +0 -0
- data/docs/images/features.png +0 -0
- data/docs/index.html +125 -0
- data/docs/stylesheets/main.css +1152 -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 +124 -0
- data/features/breadcrumb.feature +76 -0
- data/features/comments/commenting.feature +178 -0
- data/features/comments/viewing_index.feature +19 -0
- data/features/create_another.feature +55 -0
- data/features/dashboard.feature +16 -0
- data/features/decorators.feature +43 -0
- data/features/development_reloading.feature +28 -0
- data/features/edit_page.feature +116 -0
- data/features/favicon.feature +20 -0
- data/features/first_boot.feature +16 -0
- data/features/footer.feature +29 -0
- data/features/global_navigation.feature +29 -0
- data/features/i18n.feature +55 -0
- data/features/index/batch_actions.feature +218 -0
- data/features/index/filters.feature +251 -0
- data/features/index/format_as_csv.feature +227 -0
- data/features/index/formats.feature +88 -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 +291 -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 +325 -0
- data/features/index/page_title.feature +41 -0
- data/features/index/pagination.feature +63 -0
- data/features/index/switch_index_view.feature +73 -0
- data/features/menu.feature +85 -0
- data/features/meta_tags.feature +21 -0
- data/features/new_page.feature +136 -0
- data/features/registering_assets.feature +38 -0
- data/features/registering_pages.feature +237 -0
- data/features/registering_resources.feature +33 -0
- data/features/renamed_resource.feature +30 -0
- data/features/root_to.feature +18 -0
- data/features/show/attributes_table_title.feature +54 -0
- data/features/show/columns.feature +40 -0
- data/features/show/default_content.feature +44 -0
- data/features/show/page_title.feature +58 -0
- data/features/show/tabs.feature +33 -0
- data/features/sidebar_sections.feature +210 -0
- data/features/site_title.feature +47 -0
- data/features/specifying_actions.feature +118 -0
- data/features/step_definitions/action_item_steps.rb +7 -0
- data/features/step_definitions/action_link_steps.rb +19 -0
- data/features/step_definitions/additional_web_steps.rb +81 -0
- data/features/step_definitions/asset_steps.rb +15 -0
- data/features/step_definitions/attribute_steps.rb +18 -0
- data/features/step_definitions/attributes_table_title_steps.rb +11 -0
- data/features/step_definitions/batch_action_steps.rb +81 -0
- data/features/step_definitions/blog_steps.rb +3 -0
- data/features/step_definitions/breadcrumb_steps.rb +13 -0
- data/features/step_definitions/column_steps.rb +8 -0
- data/features/step_definitions/comment_steps.rb +32 -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 +35 -0
- data/features/step_definitions/filter_steps.rb +57 -0
- data/features/step_definitions/flash_steps.rb +11 -0
- data/features/step_definitions/footer_steps.rb +21 -0
- data/features/step_definitions/format_steps.rb +58 -0
- data/features/step_definitions/i18n_steps.rb +11 -0
- data/features/step_definitions/index_scope_steps.rb +42 -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/meta_tag_steps.rb +3 -0
- data/features/step_definitions/pagination_steps.rb +15 -0
- data/features/step_definitions/root_steps.rb +9 -0
- data/features/step_definitions/sidebar_steps.rb +11 -0
- data/features/step_definitions/site_title_steps.rb +31 -0
- data/features/step_definitions/tab_steps.rb +8 -0
- data/features/step_definitions/table_steps.rb +116 -0
- data/features/step_definitions/user_steps.rb +52 -0
- data/features/step_definitions/web_steps.rb +86 -0
- data/features/sti_resource.feature +65 -0
- data/features/strong_parameters.feature +69 -0
- data/features/support/env.rb +121 -0
- data/features/support/paths.rb +73 -0
- data/features/support/regular_env.rb +7 -0
- data/features/support/reload_env.rb +7 -0
- data/features/support/selectors.rb +45 -0
- data/features/users/logging_in.feature +32 -0
- data/features/users/logging_out.feature +29 -0
- data/features/users/resetting_password.feature +30 -0
- data/gemfiles/rails_42.gemfile +11 -0
- data/gemfiles/rails_50.gemfile +11 -0
- data/gemfiles/rails_51.gemfile +11 -0
- data/gemfiles/rails_52.gemfile +12 -0
- data/lib/active_admin.rb +128 -0
- data/lib/active_admin/abstract_view_factory.rb +47 -0
- data/lib/active_admin/application.rb +241 -0
- data/lib/active_admin/application_settings.rb +39 -0
- data/lib/active_admin/asset_registration.rb +37 -0
- data/lib/active_admin/authorization_adapter.rb +129 -0
- data/lib/active_admin/base_controller.rb +81 -0
- data/lib/active_admin/base_controller/authorization.rb +128 -0
- data/lib/active_admin/base_controller/menu.rb +34 -0
- data/lib/active_admin/batch_actions.rb +16 -0
- data/lib/active_admin/batch_actions/controller.rb +40 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +151 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +38 -0
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +58 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +38 -0
- data/lib/active_admin/callbacks.rb +88 -0
- data/lib/active_admin/cancan_adapter.rb +36 -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 +131 -0
- data/lib/active_admin/dependency.rb +172 -0
- data/lib/active_admin/deprecation.rb +10 -0
- data/lib/active_admin/devise.rb +80 -0
- data/lib/active_admin/dsl.rb +167 -0
- data/lib/active_admin/dynamic_setting.rb +38 -0
- data/lib/active_admin/dynamic_settings_node.rb +28 -0
- data/lib/active_admin/engine.rb +21 -0
- data/lib/active_admin/error.rb +62 -0
- data/lib/active_admin/event.rb +24 -0
- data/lib/active_admin/filters.rb +11 -0
- data/lib/active_admin/filters/active.rb +29 -0
- data/lib/active_admin/filters/active_filter.rb +123 -0
- data/lib/active_admin/filters/active_sidebar.rb +50 -0
- data/lib/active_admin/filters/dsl.rb +21 -0
- data/lib/active_admin/filters/forms.rb +85 -0
- data/lib/active_admin/filters/formtastic_addons.rb +79 -0
- data/lib/active_admin/filters/resource_extension.rb +155 -0
- data/lib/active_admin/form_builder.rb +182 -0
- data/lib/active_admin/generators/boilerplate.rb +45 -0
- data/lib/active_admin/helpers/collection.rb +19 -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/output_safety_helper.rb +35 -0
- data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
- data/lib/active_admin/helpers/scope_chain.rb +23 -0
- data/lib/active_admin/inputs.rb +21 -0
- data/lib/active_admin/inputs/datepicker_input.rb +27 -0
- data/lib/active_admin/inputs/filters/base.rb +44 -0
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
- data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
- data/lib/active_admin/inputs/filters/date_picker_input.rb +13 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +49 -0
- data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
- data/lib/active_admin/inputs/filters/select_input.rb +58 -0
- data/lib/active_admin/inputs/filters/string_input.rb +26 -0
- data/lib/active_admin/inputs/filters/text_input.rb +25 -0
- data/lib/active_admin/localizers.rb +11 -0
- data/lib/active_admin/localizers/resource_localizer.rb +35 -0
- data/lib/active_admin/menu.rb +102 -0
- data/lib/active_admin/menu_collection.rb +91 -0
- data/lib/active_admin/menu_item.rb +69 -0
- data/lib/active_admin/namespace.rb +266 -0
- data/lib/active_admin/namespace_settings.rb +107 -0
- data/lib/active_admin/order_clause.rb +48 -0
- data/lib/active_admin/orm/active_record.rb +5 -0
- data/lib/active_admin/orm/active_record/comments.rb +101 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +31 -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 +95 -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 +111 -0
- data/lib/active_admin/page_controller.rb +29 -0
- data/lib/active_admin/page_dsl.rb +32 -0
- data/lib/active_admin/page_presenter.rb +32 -0
- data/lib/active_admin/pundit_adapter.rb +68 -0
- data/lib/active_admin/reloader.rb +25 -0
- data/lib/active_admin/resource.rb +206 -0
- data/lib/active_admin/resource/action_items.rb +120 -0
- data/lib/active_admin/resource/attributes.rb +44 -0
- data/lib/active_admin/resource/belongs_to.rb +48 -0
- data/lib/active_admin/resource/controllers.rb +19 -0
- data/lib/active_admin/resource/includes.rb +12 -0
- data/lib/active_admin/resource/menu.rb +67 -0
- data/lib/active_admin/resource/naming.rb +62 -0
- data/lib/active_admin/resource/ordering.rb +11 -0
- data/lib/active_admin/resource/page_presenters.rb +82 -0
- data/lib/active_admin/resource/pagination.rb +23 -0
- data/lib/active_admin/resource/routes.rb +134 -0
- data/lib/active_admin/resource/scope_to.rb +74 -0
- data/lib/active_admin/resource/scopes.rb +52 -0
- data/lib/active_admin/resource/sidebars.rb +28 -0
- data/lib/active_admin/resource_collection.rb +72 -0
- data/lib/active_admin/resource_controller.rb +64 -0
- data/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/lib/active_admin/resource_controller/data_access.rb +322 -0
- data/lib/active_admin/resource_controller/decorators.rb +102 -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/streaming.rb +43 -0
- data/lib/active_admin/resource_dsl.rb +222 -0
- data/lib/active_admin/router.rb +113 -0
- data/lib/active_admin/scope.rb +60 -0
- data/lib/active_admin/settings_node.rb +19 -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.rb +20 -0
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +45 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +33 -0
- data/lib/active_admin/view_helpers/display_helper.rb +95 -0
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +58 -0
- data/lib/active_admin/view_helpers/fields_for.rb +50 -0
- data/lib/active_admin/view_helpers/flash_helper.rb +14 -0
- data/lib/active_admin/view_helpers/form_helper.rb +20 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +97 -0
- data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -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/active_admin_form.rb +149 -0
- data/lib/active_admin/views/components/attributes_table.rb +94 -0
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +161 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +71 -0
- data/lib/active_admin/views/components/index_list.rb +69 -0
- data/lib/active_admin/views/components/menu.rb +32 -0
- data/lib/active_admin/views/components/menu_item.rb +58 -0
- data/lib/active_admin/views/components/paginated_collection.rb +159 -0
- data/lib/active_admin/views/components/panel.rb +38 -0
- data/lib/active_admin/views/components/scopes.rb +72 -0
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/sidebar_section.rb +37 -0
- data/lib/active_admin/views/components/site_title.rb +54 -0
- data/lib/active_admin/views/components/status_tag.rb +88 -0
- data/lib/active_admin/views/components/table_for.rb +209 -0
- data/lib/active_admin/views/components/tabs.rb +31 -0
- data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
- data/lib/active_admin/views/footer.rb +30 -0
- data/lib/active_admin/views/header.rb +19 -0
- data/lib/active_admin/views/index_as_block.rb +36 -0
- data/lib/active_admin/views/index_as_blog.rb +155 -0
- data/lib/active_admin/views/index_as_grid.rb +80 -0
- data/lib/active_admin/views/index_as_table.rb +389 -0
- data/lib/active_admin/views/pages/base.rb +123 -0
- data/lib/active_admin/views/pages/form.rb +64 -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 +65 -0
- data/lib/active_admin/views/tabbed_navigation.rb +11 -0
- data/lib/active_admin/views/title_bar.rb +55 -0
- data/lib/activeadmin-rb.rb +1 -0
- data/lib/bug_report_templates/active_admin_master.rb +112 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +14 -0
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
- data/lib/generators/active_admin/assets/templates/active_admin.scss +17 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +68 -0
- data/lib/generators/active_admin/install/install_generator.rb +45 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +293 -0
- data/lib/generators/active_admin/install/templates/admin_users.rb.erb +28 -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.erb +30 -0
- data/lib/generators/active_admin/page/USAGE +8 -0
- data/lib/generators/active_admin/page/page_generator.rb +12 -0
- data/lib/generators/active_admin/page/templates/page.rb +5 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +20 -0
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +43 -0
- data/lib/ransack_ext.rb +20 -0
- data/spec/bug_report_templates_spec.rb +26 -0
- data/spec/changelog_spec.rb +15 -0
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
- data/spec/javascripts/fixtures/checkboxes.html +9 -0
- data/spec/javascripts/fixtures/flashes.html +2 -0
- data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
- data/spec/javascripts/helpers/SpecHelper.js +3 -0
- data/spec/javascripts/support/jasmine.yml +74 -0
- data/spec/javascripts/support/jasmine_runner.rb +19 -0
- data/spec/rails_helper.rb +60 -0
- data/spec/requests/default_namespace_spec.rb +81 -0
- data/spec/requests/memory_spec.rb +25 -0
- data/spec/requests/stylesheets_spec.rb +18 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/support/active_admin_integration_spec_helper.rb +73 -0
- data/spec/support/active_admin_request_helpers.rb +39 -0
- data/spec/support/rails_template.rb +156 -0
- data/spec/support/rails_template_with_data.rb +327 -0
- data/spec/support/templates/admin/stores.rb +7 -0
- data/spec/support/templates/en.yml +8 -0
- data/spec/support/templates/manifest.js +3 -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 +44 -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 +24 -0
- data/spec/unit/abstract_view_factory_spec.rb +78 -0
- data/spec/unit/action_builder_spec.rb +158 -0
- data/spec/unit/active_admin_spec.rb +11 -0
- data/spec/unit/application_spec.rb +180 -0
- data/spec/unit/asset_registration_spec.rb +81 -0
- data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
- data/spec/unit/authorization/controller_authorization_spec.rb +43 -0
- data/spec/unit/authorization/index_overriding_spec.rb +23 -0
- data/spec/unit/auto_link_spec.rb +93 -0
- data/spec/unit/batch_actions/resource_spec.rb +84 -0
- data/spec/unit/batch_actions/settings_spec.rb +61 -0
- data/spec/unit/belongs_to_spec.rb +76 -0
- data/spec/unit/cancan_adapter_spec.rb +43 -0
- data/spec/unit/comments_spec.rb +189 -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 +41 -0
- data/spec/unit/csv_builder_spec.rb +313 -0
- data/spec/unit/dependency_spec.rb +135 -0
- data/spec/unit/devise_spec.rb +110 -0
- data/spec/unit/dsl_spec.rb +120 -0
- data/spec/unit/dynamic_settings_spec.rb +28 -0
- data/spec/unit/filters/active_filter_spec.rb +218 -0
- data/spec/unit/filters/active_spec.rb +24 -0
- data/spec/unit/filters/filter_form_builder_spec.rb +524 -0
- data/spec/unit/filters/resource_spec.rb +128 -0
- data/spec/unit/form_builder_spec.rb +1012 -0
- data/spec/unit/generators/install_spec.rb +31 -0
- data/spec/unit/helpers/collection_spec.rb +68 -0
- data/spec/unit/helpers/output_safety_helper_spec.rb +79 -0
- data/spec/unit/helpers/scope_chain_spec.rb +35 -0
- data/spec/unit/i18n_spec.rb +29 -0
- data/spec/unit/localizers/resource_localizer_spec.rb +36 -0
- data/spec/unit/menu_collection_spec.rb +62 -0
- data/spec/unit/menu_item_spec.rb +82 -0
- data/spec/unit/menu_spec.rb +60 -0
- data/spec/unit/namespace/authorization_spec.rb +27 -0
- data/spec/unit/namespace/register_page_spec.rb +99 -0
- data/spec/unit/namespace/register_resource_spec.rb +162 -0
- data/spec/unit/namespace_spec.rb +126 -0
- data/spec/unit/order_clause_spec.rb +81 -0
- data/spec/unit/page_controller_spec.rb +5 -0
- data/spec/unit/page_spec.rb +128 -0
- data/spec/unit/pretty_format_spec.rb +82 -0
- data/spec/unit/pundit_adapter_spec.rb +98 -0
- data/spec/unit/resource/action_items_spec.rb +83 -0
- data/spec/unit/resource/attributes_spec.rb +49 -0
- data/spec/unit/resource/includes_spec.rb +21 -0
- data/spec/unit/resource/menu_spec.rb +18 -0
- data/spec/unit/resource/naming_spec.rb +120 -0
- data/spec/unit/resource/ordering_spec.rb +35 -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 +125 -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 +175 -0
- data/spec/unit/resource_controller/data_access_spec.rb +234 -0
- data/spec/unit/resource_controller/decorators_spec.rb +94 -0
- data/spec/unit/resource_controller/sidebars_spec.rb +37 -0
- data/spec/unit/resource_controller_spec.rb +273 -0
- data/spec/unit/resource_registration_spec.rb +61 -0
- data/spec/unit/resource_spec.rb +320 -0
- data/spec/unit/routing_spec.rb +211 -0
- data/spec/unit/scope_spec.rb +225 -0
- data/spec/unit/settings_node_spec.rb +26 -0
- data/spec/unit/view_factory_spec.rb +19 -0
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +253 -0
- data/spec/unit/view_helpers/display_helper_spec.rb +203 -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/flash_helper_spec.rb +24 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +42 -0
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +138 -0
- data/spec/unit/views/components/attributes_table_spec.rb +271 -0
- data/spec/unit/views/components/batch_action_selector_spec.rb +43 -0
- data/spec/unit/views/components/blank_slate_spec.rb +27 -0
- data/spec/unit/views/components/columns_spec.rb +187 -0
- data/spec/unit/views/components/index_list_spec.rb +49 -0
- data/spec/unit/views/components/index_table_for_spec.rb +127 -0
- data/spec/unit/views/components/menu_item_spec.rb +29 -0
- data/spec/unit/views/components/menu_spec.rb +168 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +249 -0
- data/spec/unit/views/components/panel_spec.rb +58 -0
- data/spec/unit/views/components/sidebar_section_spec.rb +68 -0
- data/spec/unit/views/components/sidebar_spec.rb +24 -0
- data/spec/unit/views/components/site_title_spec.rb +82 -0
- data/spec/unit/views/components/status_tag_spec.rb +265 -0
- data/spec/unit/views/components/table_for_spec.rb +441 -0
- data/spec/unit/views/components/tabs_spec.rb +71 -0
- data/spec/unit/views/components/unsupported_browser_spec.rb +39 -0
- data/spec/unit/views/index_as_blog_spec.rb +76 -0
- data/spec/unit/views/pages/base_spec.rb +14 -0
- data/spec/unit/views/pages/form_spec.rb +54 -0
- data/spec/unit/views/pages/index_spec.rb +60 -0
- data/spec/unit/views/pages/layout_spec.rb +59 -0
- data/spec/unit/views/pages/show_spec.rb +32 -0
- data/tasks/docs.rake +64 -0
- data/tasks/lint.rake +21 -0
- data/tasks/local.rake +25 -0
- data/tasks/parallel_tests.rake +66 -0
- data/tasks/test.rake +24 -0
- data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
- data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
- data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
- data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
- data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
- metadata +1037 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
@filters
|
|
2
|
+
Feature: Index Filtering
|
|
3
|
+
|
|
4
|
+
Scenario: Default Resources Filters
|
|
5
|
+
Given 3 posts exist
|
|
6
|
+
And an index configuration of:
|
|
7
|
+
"""
|
|
8
|
+
ActiveAdmin.register Post
|
|
9
|
+
"""
|
|
10
|
+
When I am on the index page for posts
|
|
11
|
+
Then I should see "Displaying all 3 Posts"
|
|
12
|
+
And I should see the following filters:
|
|
13
|
+
| Author | select |
|
|
14
|
+
| Category | select |
|
|
15
|
+
| Title | string |
|
|
16
|
+
| Body | string |
|
|
17
|
+
| Published date | date range |
|
|
18
|
+
| Created at | date range |
|
|
19
|
+
| Updated at | date range |
|
|
20
|
+
|
|
21
|
+
When I fill in "Title" with "Hello World 2"
|
|
22
|
+
And I press "Filter"
|
|
23
|
+
And I should see 1 posts in the table
|
|
24
|
+
And I should see "Hello World 2" within ".index_table"
|
|
25
|
+
And I should see current filter "title_contains" equal to "Hello World 2" with label "Title contains"
|
|
26
|
+
|
|
27
|
+
Scenario: No XSS in Resources Filters
|
|
28
|
+
Given an index configuration of:
|
|
29
|
+
"""
|
|
30
|
+
ActiveAdmin.register Post do
|
|
31
|
+
filter :title
|
|
32
|
+
end
|
|
33
|
+
"""
|
|
34
|
+
When I fill in "Title" with "<script>alert('hax')</script>"
|
|
35
|
+
And I press "Filter"
|
|
36
|
+
Then I should see current filter "title_contains" equal to "<script>alert('hax')</script>" with label "Title contains"
|
|
37
|
+
|
|
38
|
+
Scenario: Filtering posts with no results
|
|
39
|
+
Given 3 posts exist
|
|
40
|
+
And an index configuration of:
|
|
41
|
+
"""
|
|
42
|
+
ActiveAdmin.register Post
|
|
43
|
+
"""
|
|
44
|
+
When I am on the index page for posts
|
|
45
|
+
Then I should see "Displaying all 3 Posts"
|
|
46
|
+
|
|
47
|
+
When I fill in "Title" with "THIS IS NOT AN EXISTING TITLE!!"
|
|
48
|
+
And I press "Filter"
|
|
49
|
+
Then I should not see ".index_table"
|
|
50
|
+
And I should not see a sortable table header
|
|
51
|
+
And I should not see pagination
|
|
52
|
+
And I should see "No Posts found"
|
|
53
|
+
|
|
54
|
+
Scenario: Filtering posts with pagination
|
|
55
|
+
Given 7 posts with the title "Hello World 3" exist
|
|
56
|
+
And 1 post with the title "Hello World 4" exist
|
|
57
|
+
And an index configuration of:
|
|
58
|
+
"""
|
|
59
|
+
ActiveAdmin.register Post do
|
|
60
|
+
config.per_page = 2
|
|
61
|
+
end
|
|
62
|
+
"""
|
|
63
|
+
When I fill in "Title" with "Hello World 3"
|
|
64
|
+
And I press "Filter"
|
|
65
|
+
|
|
66
|
+
Then I follow "2"
|
|
67
|
+
Then I should see "Displaying Posts 3 - 4 of 7 in total"
|
|
68
|
+
|
|
69
|
+
Then I follow "3"
|
|
70
|
+
Then I should see "Displaying Posts 5 - 6 of 7 in total"
|
|
71
|
+
|
|
72
|
+
Scenario: Filtering posts while not on the first page
|
|
73
|
+
Given 9 posts exist
|
|
74
|
+
And an index configuration of:
|
|
75
|
+
"""
|
|
76
|
+
ActiveAdmin.register Post do
|
|
77
|
+
config.per_page = 5
|
|
78
|
+
end
|
|
79
|
+
"""
|
|
80
|
+
When I follow "2"
|
|
81
|
+
Then I should see "Displaying Posts 6 - 9 of 9 in total"
|
|
82
|
+
|
|
83
|
+
When I fill in "Title" with "Hello World 2"
|
|
84
|
+
And I press "Filter"
|
|
85
|
+
And I should see 1 posts in the table
|
|
86
|
+
And I should see "Hello World 2" within ".index_table"
|
|
87
|
+
|
|
88
|
+
Scenario: Checkboxes - Filtering posts written by anyone
|
|
89
|
+
Given 1 post exists
|
|
90
|
+
And a post with the title "Hello World" written by "Jane Doe" exists
|
|
91
|
+
And an index configuration of:
|
|
92
|
+
"""
|
|
93
|
+
ActiveAdmin.register Post do
|
|
94
|
+
filter :author, as: :check_boxes
|
|
95
|
+
end
|
|
96
|
+
"""
|
|
97
|
+
When I press "Filter"
|
|
98
|
+
Then I should see 2 posts in the table
|
|
99
|
+
And I should see "Hello World" within ".index_table"
|
|
100
|
+
And the "Jane Doe" checkbox should not be checked
|
|
101
|
+
|
|
102
|
+
Scenario: Checkboxes - Filtering posts written by Jane Doe
|
|
103
|
+
Given 1 post exists
|
|
104
|
+
And a post with the title "Hello World" written by "Jane Doe" exists
|
|
105
|
+
And an index configuration of:
|
|
106
|
+
"""
|
|
107
|
+
ActiveAdmin.register Post do
|
|
108
|
+
filter :author, as: :check_boxes
|
|
109
|
+
end
|
|
110
|
+
"""
|
|
111
|
+
When I check "Jane Doe"
|
|
112
|
+
And I press "Filter"
|
|
113
|
+
Then I should see 1 posts in the table
|
|
114
|
+
And I should see "Hello World" within ".index_table"
|
|
115
|
+
And the "Jane Doe" checkbox should be checked
|
|
116
|
+
And I should see current filter "author_id_in" equal to "Jane Doe"
|
|
117
|
+
|
|
118
|
+
Scenario: Disabling filters
|
|
119
|
+
Given an index configuration of:
|
|
120
|
+
"""
|
|
121
|
+
ActiveAdmin.register Post do
|
|
122
|
+
config.filters = false
|
|
123
|
+
end
|
|
124
|
+
"""
|
|
125
|
+
Then I should not see a sidebar titled "Filters"
|
|
126
|
+
|
|
127
|
+
Scenario: Select - Filtering categories with posts written by Jane Doe
|
|
128
|
+
Given a category named "Mystery" exists
|
|
129
|
+
And 1 post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
|
|
130
|
+
And an index configuration of:
|
|
131
|
+
"""
|
|
132
|
+
ActiveAdmin.register Category
|
|
133
|
+
"""
|
|
134
|
+
When I select "Jane Doe" from "Authors"
|
|
135
|
+
And I press "Filter"
|
|
136
|
+
Then I should see 1 categories in the table
|
|
137
|
+
And I should see "Non-Fiction" within ".index_table"
|
|
138
|
+
And I should not see "Mystery" within ".index_table"
|
|
139
|
+
And I should see current filter "posts_author_id_eq" equal to "Jane Doe"
|
|
140
|
+
|
|
141
|
+
@javascript
|
|
142
|
+
Scenario: Clearing filter preserves custom parameters
|
|
143
|
+
Given a category named "Mystery" exists
|
|
144
|
+
And 1 post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
|
|
145
|
+
And 1 post with the title "Lorem Ipsum" written by "Joe Smith" in category "Mystery" exists
|
|
146
|
+
And an index configuration of:
|
|
147
|
+
"""
|
|
148
|
+
ActiveAdmin.register Category
|
|
149
|
+
ActiveAdmin.application.favicon = false
|
|
150
|
+
"""
|
|
151
|
+
Then I should see "Displaying all 2 Categories"
|
|
152
|
+
When I add parameter "scope" with value "all" to the URL
|
|
153
|
+
And I add parameter "foo" with value "bar" to the URL
|
|
154
|
+
And I select "Hello World" from "Posts"
|
|
155
|
+
And I press "Filter"
|
|
156
|
+
Then I should see "Non-Fiction"
|
|
157
|
+
And I should not see "Mystery"
|
|
158
|
+
When I click "Clear Filters"
|
|
159
|
+
Then I should see "Non-Fiction"
|
|
160
|
+
And I should see "Mystery"
|
|
161
|
+
And I should have parameter "foo" with value "bar"
|
|
162
|
+
And I should have parameter "scope" with value "all"
|
|
163
|
+
|
|
164
|
+
Scenario: Checkboxes - Filtering categories via posts written by anyone
|
|
165
|
+
Given a category named "Mystery" exists
|
|
166
|
+
And a post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
|
|
167
|
+
And an index configuration of:
|
|
168
|
+
"""
|
|
169
|
+
ActiveAdmin.register Category do
|
|
170
|
+
filter :authors, as: :check_boxes
|
|
171
|
+
end
|
|
172
|
+
"""
|
|
173
|
+
When I press "Filter"
|
|
174
|
+
Then I should see 2 posts in the table
|
|
175
|
+
And I should see "Mystery" within ".index_table"
|
|
176
|
+
And I should see "Non-Fiction" within ".index_table"
|
|
177
|
+
And the "Jane Doe" checkbox should not be checked
|
|
178
|
+
And should not see a sidebar titled "Search Status:"
|
|
179
|
+
|
|
180
|
+
Scenario: Checkboxes - Filtering categories via posts written by Jane Doe
|
|
181
|
+
Given a category named "Mystery" exists
|
|
182
|
+
And a post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
|
|
183
|
+
And an index configuration of:
|
|
184
|
+
"""
|
|
185
|
+
ActiveAdmin.register Category do
|
|
186
|
+
filter :authors, as: :check_boxes
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
"""
|
|
190
|
+
When I check "Jane Doe"
|
|
191
|
+
And I press "Filter"
|
|
192
|
+
Then I should see 1 categories in the table
|
|
193
|
+
And I should see "Non-Fiction" within ".index_table"
|
|
194
|
+
And the "Jane Doe" checkbox should be checked
|
|
195
|
+
|
|
196
|
+
Scenario: Filtering posts without default scope
|
|
197
|
+
|
|
198
|
+
Given a post with the title "Hello World" written by "Jane Doe" exists
|
|
199
|
+
Given an index configuration of:
|
|
200
|
+
"""
|
|
201
|
+
ActiveAdmin.register Post do
|
|
202
|
+
scope :all
|
|
203
|
+
scope :published do |posts|
|
|
204
|
+
posts.where("published_date IS NOT NULL")
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
filter :title
|
|
208
|
+
end
|
|
209
|
+
"""
|
|
210
|
+
When I fill in "Title" with "Hello"
|
|
211
|
+
And I press "Filter"
|
|
212
|
+
Then I should see current filter "title_contains" equal to "Hello" with label "Title contains"
|
|
213
|
+
|
|
214
|
+
Scenario: Filtering posts by category
|
|
215
|
+
Given a category named "Mystery" exists
|
|
216
|
+
And a post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
|
|
217
|
+
Given an index configuration of:
|
|
218
|
+
"""
|
|
219
|
+
ActiveAdmin.register Category
|
|
220
|
+
ActiveAdmin.register Post do
|
|
221
|
+
filter :category
|
|
222
|
+
end
|
|
223
|
+
"""
|
|
224
|
+
And I am on the index page for posts
|
|
225
|
+
|
|
226
|
+
When I select "Non-Fiction" from "Category"
|
|
227
|
+
And I press "Filter"
|
|
228
|
+
Then I should see a sidebar titled "Search Status:"
|
|
229
|
+
And I should see link "Non-Fiction" in current filters
|
|
230
|
+
|
|
231
|
+
Scenario: Enabling filters status sidebar
|
|
232
|
+
Given an index configuration of:
|
|
233
|
+
"""
|
|
234
|
+
ActiveAdmin.application.current_filters = false
|
|
235
|
+
ActiveAdmin.register Post do
|
|
236
|
+
config.current_filters = true
|
|
237
|
+
end
|
|
238
|
+
"""
|
|
239
|
+
And I press "Filter"
|
|
240
|
+
Then I should see a sidebar titled "Search Status:"
|
|
241
|
+
|
|
242
|
+
Scenario: Disabling filters status sidebar
|
|
243
|
+
Given an index configuration of:
|
|
244
|
+
"""
|
|
245
|
+
ActiveAdmin.application.current_filters = true
|
|
246
|
+
ActiveAdmin.register Post do
|
|
247
|
+
config.current_filters = false
|
|
248
|
+
end
|
|
249
|
+
"""
|
|
250
|
+
And I press "Filter"
|
|
251
|
+
Then I should not see a sidebar titled "Search Status:"
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
@csv
|
|
2
|
+
Feature: Format as CSV
|
|
3
|
+
|
|
4
|
+
Background:
|
|
5
|
+
Given I am logged in
|
|
6
|
+
|
|
7
|
+
Scenario: Default
|
|
8
|
+
Given a configuration of:
|
|
9
|
+
"""
|
|
10
|
+
ActiveAdmin.register Post
|
|
11
|
+
"""
|
|
12
|
+
And a post with the title "Hello World" exists
|
|
13
|
+
When I am on the index page for posts
|
|
14
|
+
And I follow "CSV"
|
|
15
|
+
Then I should download a CSV file for "posts" containing:
|
|
16
|
+
| Id | Title | Body | Published date | Position | Starred | Foo |Created at | Updated at |
|
|
17
|
+
| \d+ | Hello World | | | | | |(.*) | (.*) |
|
|
18
|
+
|
|
19
|
+
Scenario: Default with alias
|
|
20
|
+
Given a configuration of:
|
|
21
|
+
"""
|
|
22
|
+
ActiveAdmin.register Post, as: "MyArticle"
|
|
23
|
+
"""
|
|
24
|
+
And 1 post exists
|
|
25
|
+
When I am on the index page for my_articles
|
|
26
|
+
And I follow "CSV"
|
|
27
|
+
Then I should download a CSV file for "my-articles" containing:
|
|
28
|
+
| Id | Title | Body | Published date | Position | Starred | Foo | Created at | Updated at |
|
|
29
|
+
|
|
30
|
+
Scenario: With CSV format customization
|
|
31
|
+
Given a configuration of:
|
|
32
|
+
"""
|
|
33
|
+
ActiveAdmin.register Post do
|
|
34
|
+
csv do
|
|
35
|
+
column :title
|
|
36
|
+
column("Last update") { |post| post.updated_at }
|
|
37
|
+
column("Copyright") { "Greg Bell" }
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
"""
|
|
41
|
+
And a post with the title "Hello, World" exists
|
|
42
|
+
When I am on the index page for posts
|
|
43
|
+
And I follow "CSV"
|
|
44
|
+
Then I should download a CSV file for "posts" containing:
|
|
45
|
+
| Title | Last update | Copyright |
|
|
46
|
+
| Hello, World | (.*) | Greg Bell |
|
|
47
|
+
|
|
48
|
+
Scenario: With CSV format customization
|
|
49
|
+
Given a configuration of:
|
|
50
|
+
"""
|
|
51
|
+
ActiveAdmin.register Post do
|
|
52
|
+
csv col_sep: ';' do
|
|
53
|
+
column :title
|
|
54
|
+
column :body
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
"""
|
|
58
|
+
And a post with the title "Hello, World" exists
|
|
59
|
+
When I am on the index page for posts
|
|
60
|
+
And I follow "CSV"
|
|
61
|
+
Then I should download a CSV file with ";" separator for "posts" containing:
|
|
62
|
+
| Title | Body |
|
|
63
|
+
| Hello, World | (.*) |
|
|
64
|
+
|
|
65
|
+
Scenario: With humanize_name option
|
|
66
|
+
Given a configuration of:
|
|
67
|
+
"""
|
|
68
|
+
ActiveAdmin.register Post do
|
|
69
|
+
csv humanize_name: false do
|
|
70
|
+
column :title
|
|
71
|
+
column :body
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
"""
|
|
75
|
+
And a post with the title "Hello, World" exists
|
|
76
|
+
When I am on the index page for posts
|
|
77
|
+
And I follow "CSV"
|
|
78
|
+
And I should download a CSV file with "," separator for "posts" containing:
|
|
79
|
+
| title | body |
|
|
80
|
+
| Hello, World | (.*) |
|
|
81
|
+
|
|
82
|
+
Scenario: With CSV option customization
|
|
83
|
+
Given a configuration of:
|
|
84
|
+
"""
|
|
85
|
+
ActiveAdmin.register Post do
|
|
86
|
+
csv force_quotes: true, byte_order_mark: "" do
|
|
87
|
+
column :title
|
|
88
|
+
column :body
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
"""
|
|
92
|
+
And a post with the title "012345" exists
|
|
93
|
+
When I am on the index page for posts
|
|
94
|
+
And I follow "CSV"
|
|
95
|
+
And I should download a CSV file with "," separator for "posts" containing:
|
|
96
|
+
| Title | Body |
|
|
97
|
+
| 012345 | (.*) |
|
|
98
|
+
And the CSV file should contain "012345" in quotes
|
|
99
|
+
|
|
100
|
+
Scenario: With default CSV separator option
|
|
101
|
+
Given a configuration of:
|
|
102
|
+
"""
|
|
103
|
+
ActiveAdmin.application.csv_options = { col_sep: ';' }
|
|
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 "Hello, World" 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
|
+
| Hello, World | (.*) |
|
|
117
|
+
|
|
118
|
+
Scenario: With default CSV options
|
|
119
|
+
Given a configuration of:
|
|
120
|
+
"""
|
|
121
|
+
ActiveAdmin.application.csv_options = {col_sep: ',', force_quotes: true}
|
|
122
|
+
ActiveAdmin.register Post do
|
|
123
|
+
csv do
|
|
124
|
+
column :title
|
|
125
|
+
column :body
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
"""
|
|
129
|
+
And a post with the title "012345" exists
|
|
130
|
+
When I am on the index page for posts
|
|
131
|
+
And I follow "CSV"
|
|
132
|
+
And I should download a CSV file with "," separator for "posts" containing:
|
|
133
|
+
| Title | Body |
|
|
134
|
+
| 012345 | (.*) |
|
|
135
|
+
And the CSV file should contain "012345" in quotes
|
|
136
|
+
|
|
137
|
+
Scenario: Without CVS column names explicitely specified
|
|
138
|
+
Given a configuration of:
|
|
139
|
+
"""
|
|
140
|
+
ActiveAdmin.application.csv_options = {col_sep: ',', force_quotes: true}
|
|
141
|
+
ActiveAdmin.register Post do
|
|
142
|
+
csv column_names: true do
|
|
143
|
+
column :title
|
|
144
|
+
column :body
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
"""
|
|
148
|
+
And a post with the title "012345" exists
|
|
149
|
+
When I am on the index page for posts
|
|
150
|
+
And I follow "CSV"
|
|
151
|
+
And I should download a CSV file with "," separator for "posts" containing:
|
|
152
|
+
| Title | Body |
|
|
153
|
+
| 012345 | (.*) |
|
|
154
|
+
|
|
155
|
+
Scenario: Without CVS column names
|
|
156
|
+
Given a configuration of:
|
|
157
|
+
"""
|
|
158
|
+
ActiveAdmin.application.csv_options = {col_sep: ',', force_quotes: true}
|
|
159
|
+
ActiveAdmin.register Post do
|
|
160
|
+
csv column_names: false do
|
|
161
|
+
column :title
|
|
162
|
+
column :body
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
"""
|
|
166
|
+
And a post with the title "012345" exists
|
|
167
|
+
When I am on the index page for posts
|
|
168
|
+
And I follow "CSV"
|
|
169
|
+
Then I should download a CSV file with "," separator for "posts" containing:
|
|
170
|
+
| 012345 | (.*) |
|
|
171
|
+
|
|
172
|
+
Scenario: With encoding CSV options
|
|
173
|
+
Given a configuration of:
|
|
174
|
+
"""
|
|
175
|
+
# Currently manually setting a non-UTF8 encoding crashes in combination
|
|
176
|
+
# with default csv options. It crashes with a cryptic incompatible
|
|
177
|
+
# encoding error, because the BOM is set in UTF-8 encoding by default.
|
|
178
|
+
# We should probably fix that, but for now we just set empty csv options
|
|
179
|
+
# for this scenario.
|
|
180
|
+
ActiveAdmin.application.csv_options = {}
|
|
181
|
+
ActiveAdmin.register Post do
|
|
182
|
+
csv encoding: 'SJIS' do
|
|
183
|
+
column :title
|
|
184
|
+
column :body
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
"""
|
|
188
|
+
And a post with the title "あいうえお" exists
|
|
189
|
+
When I am on the index page for posts
|
|
190
|
+
And I follow "CSV"
|
|
191
|
+
Then the encoding of the CSV file should be "SJIS"
|
|
192
|
+
|
|
193
|
+
Scenario: With default encoding CSV options
|
|
194
|
+
Given a configuration of:
|
|
195
|
+
"""
|
|
196
|
+
ActiveAdmin.application.csv_options = { encoding: 'SJIS' }
|
|
197
|
+
ActiveAdmin.register Post do
|
|
198
|
+
csv do
|
|
199
|
+
column :title
|
|
200
|
+
column :body
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
"""
|
|
204
|
+
And a post with the title "あいうえお" exists
|
|
205
|
+
When I am on the index page for posts
|
|
206
|
+
And I follow "CSV"
|
|
207
|
+
Then the encoding of the CSV file should be "SJIS"
|
|
208
|
+
|
|
209
|
+
Scenario: With decorator
|
|
210
|
+
Given a configuration of:
|
|
211
|
+
"""
|
|
212
|
+
ActiveAdmin.register Post do
|
|
213
|
+
decorate_with PostDecorator
|
|
214
|
+
|
|
215
|
+
csv do
|
|
216
|
+
column :id
|
|
217
|
+
column :title
|
|
218
|
+
column :decorator_method
|
|
219
|
+
end
|
|
220
|
+
end
|
|
221
|
+
"""
|
|
222
|
+
And a post with the title "Hello World" exists
|
|
223
|
+
When I am on the index page for posts
|
|
224
|
+
And I follow "CSV"
|
|
225
|
+
Then I should download a CSV file for "posts" containing:
|
|
226
|
+
| Id | Title | Decorator method |
|
|
227
|
+
| \d+ | Hello World | A method only available on the decorator |
|