activeadmin 1.3.0 → 2.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +307 -123
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +90 -46
- data/README.md +66 -19
- data/app/assets/javascripts/active_admin/base.es6 +23 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
- data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
- data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
- data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
- data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
- data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
- data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
- data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
- data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
- data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
- data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
- data/config/locales/bg.yml +0 -1
- data/config/locales/de.yml +10 -0
- data/config/locales/en.yml +19 -1
- data/config/locales/es.yml +20 -1
- data/config/locales/fi.yml +1 -1
- data/config/locales/he.yml +0 -1
- data/config/locales/hu.yml +4 -0
- data/config/locales/it.yml +4 -0
- data/config/locales/lt.yml +2 -2
- data/config/locales/nb.yml +15 -5
- data/config/locales/nl.yml +11 -0
- data/config/locales/pl.yml +71 -3
- data/config/locales/ru.yml +2 -0
- data/config/locales/tr.yml +9 -0
- data/config/locales/uk.yml +2 -0
- data/config/locales/zh-CN.yml +33 -5
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +2 -2
- data/docs/1-general-configuration.md +16 -1
- data/docs/10-custom-pages.md +14 -0
- data/docs/12-arbre-components.md +28 -1
- data/docs/13-authorization-adapter.md +40 -21
- data/docs/2-resource-customization.md +8 -3
- data/docs/3-index-pages/custom-index.md +1 -1
- data/docs/3-index-pages/index-as-blog.md +1 -1
- data/docs/3-index-pages/index-as-table.md +5 -5
- data/docs/3-index-pages.md +17 -0
- data/docs/5-forms.md +16 -2
- data/docs/8-custom-actions.md +11 -0
- data/docs/CNAME +1 -1
- data/docs/Gemfile +2 -0
- data/docs/Gemfile.lock +249 -0
- data/docs/_config.yml +1 -1
- data/docs/_includes/toc.html +1 -1
- data/docs/_includes/top-menu.html +9 -1
- data/docs/documentation.md +1 -1
- data/docs/images/tidelift.svg +14 -0
- data/docs/index.html +2 -2
- data/docs/stylesheets/main.css +26 -2
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +49 -155
- data/lib/active_admin/application_settings.rb +42 -0
- data/lib/active_admin/asset_registration.rb +0 -8
- data/lib/active_admin/base_controller/authorization.rb +3 -6
- data/lib/active_admin/base_controller.rb +6 -6
- data/lib/active_admin/batch_actions/controller.rb +2 -2
- data/lib/active_admin/batch_actions/resource_extension.rb +4 -4
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/csv_builder.rb +1 -1
- data/lib/active_admin/dependency.rb +1 -69
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/dsl.rb +1 -8
- 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 +5 -0
- data/lib/active_admin/error.rb +1 -1
- data/lib/active_admin/filters/active_filter.rb +4 -2
- data/lib/active_admin/filters/active_sidebar.rb +5 -1
- data/lib/active_admin/filters/forms.rb +7 -4
- data/lib/active_admin/filters/formtastic_addons.rb +1 -1
- data/lib/active_admin/filters/resource_extension.rb +4 -4
- data/lib/active_admin/form_builder.rb +97 -62
- data/lib/active_admin/generators/boilerplate.rb +1 -1
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +8 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
- data/lib/active_admin/menu.rb +2 -8
- data/lib/active_admin/menu_item.rb +4 -32
- data/lib/active_admin/namespace.rb +20 -8
- data/lib/active_admin/namespace_settings.rb +110 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
- data/lib/active_admin/orm/active_record/comments.rb +15 -4
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/pundit_adapter.rb +13 -4
- data/lib/active_admin/resource/action_items.rb +7 -2
- data/lib/active_admin/resource/attributes.rb +7 -4
- data/lib/active_admin/resource/menu.rb +3 -3
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/routes.rb +9 -4
- data/lib/active_admin/resource/scopes.rb +3 -3
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource.rb +2 -2
- data/lib/active_admin/resource_collection.rb +2 -2
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/decorators.rb +3 -3
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/resource_dsl.rb +5 -3
- data/lib/active_admin/router.rb +89 -84
- data/lib/active_admin/scope.rb +9 -5
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/display_helper.rb +10 -2
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
- data/lib/active_admin/view_helpers.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +9 -4
- data/lib/active_admin/views/components/attributes_table.rb +3 -3
- 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 +1 -1
- data/lib/active_admin/views/components/scopes.rb +11 -4
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/sidebar_section.rb +0 -3
- data/lib/active_admin/views/components/site_title.rb +5 -6
- data/lib/active_admin/views/components/status_tag.rb +1 -18
- data/lib/active_admin/views/components/table_for.rb +3 -12
- data/lib/active_admin/views/components/tabs.rb +15 -3
- data/lib/active_admin/views/footer.rb +3 -7
- data/lib/active_admin/views/header.rb +3 -15
- data/lib/active_admin/views/index_as_blog.rb +1 -1
- data/lib/active_admin/views/index_as_grid.rb +25 -25
- data/lib/active_admin/views/index_as_table.rb +11 -10
- data/lib/active_admin/views/pages/base.rb +30 -53
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin.rb +9 -4
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/install/install_generator.rb +6 -2
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -1
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
- data/lib/ransack_ext.rb +3 -3
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
- metadata +120 -523
- data/.github/ISSUE_TEMPLATE.md +0 -20
- data/.gitignore +0 -49
- data/.mdlrc +0 -1
- data/.rubocop.yml +0 -76
- data/.simplecov +0 -13
- data/.travis.yml +0 -51
- data/.yardopts +0 -7
- data/Gemfile +0 -58
- data/Rakefile +0 -54
- data/activeadmin.gemspec +0 -32
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
- data/codecov.yml +0 -25
- data/config/i18n-tasks.yml +0 -26
- data/config/mdl_style.rb +0 -9
- data/cucumber.yml +0 -3
- data/features/action_item.feature +0 -73
- data/features/authorization.feature +0 -64
- data/features/authorization_cancan.feature +0 -52
- data/features/authorization_pundit.feature +0 -37
- data/features/belongs_to.feature +0 -124
- data/features/breadcrumb.feature +0 -75
- data/features/comments/commenting.feature +0 -178
- data/features/comments/viewing_index.feature +0 -19
- data/features/create_another.feature +0 -55
- data/features/dashboard.feature +0 -16
- data/features/decorators.feature +0 -43
- data/features/development_reloading.feature +0 -28
- data/features/edit_page.feature +0 -116
- data/features/favicon.feature +0 -20
- data/features/first_boot.feature +0 -16
- data/features/footer.feature +0 -28
- data/features/global_navigation.feature +0 -29
- data/features/i18n.feature +0 -55
- data/features/index/batch_actions.feature +0 -218
- data/features/index/filters.feature +0 -250
- data/features/index/format_as_csv.feature +0 -220
- data/features/index/formats.feature +0 -88
- data/features/index/index_as_block.feature +0 -15
- data/features/index/index_as_blog.feature +0 -69
- data/features/index/index_as_grid.feature +0 -45
- data/features/index/index_as_table.feature +0 -291
- data/features/index/index_blank_slate.feature +0 -83
- data/features/index/index_parameters.feature +0 -75
- data/features/index/index_scope_to.feature +0 -56
- data/features/index/index_scopes.feature +0 -285
- data/features/index/page_title.feature +0 -41
- data/features/index/pagination.feature +0 -63
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -72
- data/features/meta_tags.feature +0 -21
- data/features/new_page.feature +0 -136
- data/features/registering_assets.feature +0 -38
- data/features/registering_pages.feature +0 -237
- data/features/registering_resources.feature +0 -33
- data/features/renamed_resource.feature +0 -30
- data/features/root_to.feature +0 -17
- data/features/show/attributes_table_title.feature +0 -54
- data/features/show/columns.feature +0 -40
- data/features/show/default_content.feature +0 -44
- data/features/show/page_title.feature +0 -58
- data/features/show/tabs.feature +0 -33
- data/features/sidebar_sections.feature +0 -210
- data/features/site_title.feature +0 -47
- data/features/specifying_actions.feature +0 -118
- data/features/step_definitions/action_item_steps.rb +0 -7
- data/features/step_definitions/action_link_steps.rb +0 -19
- data/features/step_definitions/additional_web_steps.rb +0 -81
- data/features/step_definitions/asset_steps.rb +0 -15
- data/features/step_definitions/attribute_steps.rb +0 -18
- data/features/step_definitions/attributes_table_title_steps.rb +0 -11
- data/features/step_definitions/batch_action_steps.rb +0 -81
- data/features/step_definitions/blog_steps.rb +0 -3
- data/features/step_definitions/breadcrumb_steps.rb +0 -3
- data/features/step_definitions/column_steps.rb +0 -8
- data/features/step_definitions/comment_steps.rb +0 -32
- data/features/step_definitions/configuration_steps.rb +0 -100
- data/features/step_definitions/dashboard_steps.rb +0 -15
- data/features/step_definitions/factory_steps.rb +0 -35
- data/features/step_definitions/filter_steps.rb +0 -47
- data/features/step_definitions/flash_steps.rb +0 -11
- data/features/step_definitions/footer_steps.rb +0 -11
- data/features/step_definitions/format_steps.rb +0 -56
- data/features/step_definitions/i18n_steps.rb +0 -11
- data/features/step_definitions/index_scope_steps.rb +0 -29
- data/features/step_definitions/index_views_steps.rb +0 -3
- data/features/step_definitions/layout_steps.rb +0 -3
- data/features/step_definitions/member_link_steps.rb +0 -7
- data/features/step_definitions/menu_steps.rb +0 -11
- data/features/step_definitions/meta_tag_steps.rb +0 -3
- data/features/step_definitions/pagination_steps.rb +0 -15
- data/features/step_definitions/sidebar_steps.rb +0 -11
- data/features/step_definitions/site_title_steps.rb +0 -17
- data/features/step_definitions/tab_steps.rb +0 -8
- data/features/step_definitions/table_steps.rb +0 -116
- data/features/step_definitions/user_steps.rb +0 -52
- data/features/step_definitions/web_steps.rb +0 -86
- data/features/sti_resource.feature +0 -65
- data/features/strong_parameters.feature +0 -69
- data/features/support/env.rb +0 -122
- data/features/support/paths.rb +0 -73
- data/features/support/regular_env.rb +0 -7
- data/features/support/reload_env.rb +0 -7
- data/features/support/selectors.rb +0 -45
- data/features/users/logging_in.feature +0 -36
- data/features/users/logging_out.feature +0 -13
- data/features/users/resetting_password.feature +0 -34
- data/gemfiles/rails_42.gemfile +0 -10
- data/gemfiles/rails_50.gemfile +0 -10
- data/gemfiles/rails_51.gemfile +0 -10
- data/gemfiles/rails_52.gemfile +0 -11
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
- data/lib/active_admin/helpers/settings.rb +0 -114
- data/lib/bug_report_templates/active_admin_master.rb +0 -112
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/spec/bug_report_templates_spec.rb +0 -26
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
- data/spec/javascripts/fixtures/checkboxes.html +0 -9
- data/spec/javascripts/fixtures/flashes.html +0 -2
- data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
- data/spec/javascripts/helpers/SpecHelper.js +0 -3
- data/spec/javascripts/support/jasmine.yml +0 -74
- data/spec/javascripts/support/jasmine_runner.rb +0 -19
- data/spec/rails_helper.rb +0 -59
- data/spec/requests/default_namespace_spec.rb +0 -81
- data/spec/requests/memory_spec.rb +0 -25
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -1
- data/spec/support/active_admin_integration_spec_helper.rb +0 -73
- data/spec/support/active_admin_request_helpers.rb +0 -39
- data/spec/support/rails_template.rb +0 -153
- data/spec/support/rails_template_with_data.rb +0 -327
- data/spec/support/templates/admin/stores.rb +0 -7
- data/spec/support/templates/en.yml +0 -8
- data/spec/support/templates/manifest.js +0 -3
- data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
- data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
- data/spec/support/templates/policies/admin_user_policy.rb +0 -11
- data/spec/support/templates/policies/application_policy.rb +0 -44
- data/spec/support/templates/policies/category_policy.rb +0 -7
- data/spec/support/templates/policies/post_policy.rb +0 -15
- data/spec/support/templates/policies/store_policy.rb +0 -11
- data/spec/support/templates/policies/user_policy.rb +0 -11
- data/spec/support/templates/post_decorator.rb +0 -24
- data/spec/unit/abstract_view_factory_spec.rb +0 -78
- data/spec/unit/action_builder_spec.rb +0 -158
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -184
- data/spec/unit/asset_registration_spec.rb +0 -81
- data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
- data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
- data/spec/unit/authorization/index_overriding_spec.rb +0 -23
- data/spec/unit/auto_link_spec.rb +0 -93
- data/spec/unit/batch_actions/resource_spec.rb +0 -84
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -76
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -176
- data/spec/unit/component_spec.rb +0 -18
- data/spec/unit/config_shared_examples.rb +0 -59
- data/spec/unit/controller_filters_spec.rb +0 -41
- data/spec/unit/csv_builder_spec.rb +0 -313
- data/spec/unit/dependency_spec.rb +0 -135
- data/spec/unit/devise_spec.rb +0 -110
- data/spec/unit/dsl_spec.rb +0 -120
- data/spec/unit/filters/active_filter_spec.rb +0 -189
- data/spec/unit/filters/active_spec.rb +0 -24
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
- data/spec/unit/filters/resource_spec.rb +0 -128
- data/spec/unit/form_builder_spec.rb +0 -990
- data/spec/unit/generators/install_spec.rb +0 -31
- data/spec/unit/helpers/collection_spec.rb +0 -68
- data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
- data/spec/unit/helpers/scope_chain_spec.rb +0 -35
- data/spec/unit/helpers/settings_spec.rb +0 -30
- data/spec/unit/i18n_spec.rb +0 -29
- data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
- data/spec/unit/menu_collection_spec.rb +0 -62
- data/spec/unit/menu_item_spec.rb +0 -141
- data/spec/unit/menu_spec.rb +0 -71
- data/spec/unit/namespace/authorization_spec.rb +0 -27
- data/spec/unit/namespace/register_page_spec.rb +0 -99
- data/spec/unit/namespace/register_resource_spec.rb +0 -162
- data/spec/unit/namespace_spec.rb +0 -124
- data/spec/unit/order_clause_spec.rb +0 -81
- data/spec/unit/page_controller_spec.rb +0 -5
- data/spec/unit/page_spec.rb +0 -128
- data/spec/unit/pretty_format_spec.rb +0 -82
- data/spec/unit/pundit_adapter_spec.rb +0 -98
- data/spec/unit/resource/action_items_spec.rb +0 -69
- data/spec/unit/resource/attributes_spec.rb +0 -49
- data/spec/unit/resource/includes_spec.rb +0 -21
- data/spec/unit/resource/menu_spec.rb +0 -18
- data/spec/unit/resource/naming_spec.rb +0 -122
- data/spec/unit/resource/ordering_spec.rb +0 -35
- data/spec/unit/resource/page_presenters_spec.rb +0 -44
- data/spec/unit/resource/pagination_spec.rb +0 -38
- data/spec/unit/resource/routes_spec.rb +0 -125
- data/spec/unit/resource/scopes_spec.rb +0 -50
- data/spec/unit/resource/sidebars_spec.rb +0 -43
- data/spec/unit/resource_collection_spec.rb +0 -175
- data/spec/unit/resource_controller/data_access_spec.rb +0 -234
- data/spec/unit/resource_controller/decorators_spec.rb +0 -94
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
- data/spec/unit/resource_controller_spec.rb +0 -273
- data/spec/unit/resource_registration_spec.rb +0 -61
- data/spec/unit/resource_spec.rb +0 -320
- data/spec/unit/routing_spec.rb +0 -211
- data/spec/unit/scope_spec.rb +0 -209
- data/spec/unit/settings_spec.rb +0 -117
- data/spec/unit/view_factory_spec.rb +0 -19
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
- data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
- data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
- data/spec/unit/views/components/attributes_table_spec.rb +0 -271
- data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
- data/spec/unit/views/components/blank_slate_spec.rb +0 -27
- data/spec/unit/views/components/columns_spec.rb +0 -187
- data/spec/unit/views/components/index_list_spec.rb +0 -49
- data/spec/unit/views/components/index_table_for_spec.rb +0 -127
- data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
- data/spec/unit/views/components/panel_spec.rb +0 -58
- data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
- data/spec/unit/views/components/site_title_spec.rb +0 -76
- data/spec/unit/views/components/status_tag_spec.rb +0 -265
- data/spec/unit/views/components/table_for_spec.rb +0 -436
- data/spec/unit/views/components/tabs_spec.rb +0 -67
- data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
- data/spec/unit/views/index_as_blog_spec.rb +0 -76
- data/spec/unit/views/pages/form_spec.rb +0 -54
- data/spec/unit/views/pages/index_spec.rb +0 -60
- data/spec/unit/views/pages/layout_spec.rb +0 -59
- data/spec/unit/views/pages/show_spec.rb +0 -32
- data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
- data/tasks/docs.rake +0 -64
- data/tasks/lint.rake +0 -21
- data/tasks/local.rake +0 -25
- data/tasks/parallel_tests.rake +0 -66
- data/tasks/test.rake +0 -29
@@ -1,253 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe "Breadcrumbs" do
|
4
|
-
|
5
|
-
include ActiveAdmin::ViewHelpers
|
6
|
-
include ActionView::Helpers::SanitizeHelper
|
7
|
-
|
8
|
-
describe "generating a trail from paths" do
|
9
|
-
|
10
|
-
def params; {}; end
|
11
|
-
def link_to(name, url); {name: name, path: url}; end
|
12
|
-
|
13
|
-
actions = ActiveAdmin::BaseController::ACTIVE_ADMIN_ACTIONS
|
14
|
-
|
15
|
-
let(:user) { double display_name: 'Jane Doe' }
|
16
|
-
let(:user_config) { double find_resource: user, resource_name: double(route_key: 'users'),
|
17
|
-
defined_actions: actions }
|
18
|
-
let(:post) { double display_name: 'Hello World' }
|
19
|
-
let(:post_config) { double find_resource: post, resource_name: double(route_key: 'posts'),
|
20
|
-
defined_actions: actions, belongs_to_config: double(target: user_config) }
|
21
|
-
|
22
|
-
let :active_admin_config do
|
23
|
-
post_config
|
24
|
-
end
|
25
|
-
|
26
|
-
let(:trail) { breadcrumb_links(path) }
|
27
|
-
|
28
|
-
context "when request '/admin'" do
|
29
|
-
let(:path) { "/admin" }
|
30
|
-
|
31
|
-
it "should not have any items" do
|
32
|
-
expect(trail.size).to eq 0
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context "when path 'admin/users'" do
|
37
|
-
let(:path) { 'admin/users' }
|
38
|
-
|
39
|
-
it 'should have one item' do
|
40
|
-
expect(trail.size).to eq 1
|
41
|
-
end
|
42
|
-
it 'should have a link to /admin' do
|
43
|
-
expect(trail[0][:name]).to eq 'Admin'
|
44
|
-
expect(trail[0][:path]).to eq '/admin'
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context "when path '/admin/users'" do
|
49
|
-
let(:path) { "/admin/users" }
|
50
|
-
|
51
|
-
it "should have one item" do
|
52
|
-
expect(trail.size).to eq 1
|
53
|
-
end
|
54
|
-
it "should have a link to /admin" do
|
55
|
-
expect(trail[0][:name]).to eq "Admin"
|
56
|
-
expect(trail[0][:path]).to eq "/admin"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context "when path '/admin/users/1'" do
|
61
|
-
let(:path) { "/admin/users/1" }
|
62
|
-
|
63
|
-
it "should have 2 items" do
|
64
|
-
expect(trail.size).to eq 2
|
65
|
-
end
|
66
|
-
it "should have a link to /admin" do
|
67
|
-
expect(trail[0][:name]).to eq "Admin"
|
68
|
-
expect(trail[0][:path]).to eq "/admin"
|
69
|
-
end
|
70
|
-
it "should have a link to /admin/users" do
|
71
|
-
expect(trail[1][:name]).to eq "Users"
|
72
|
-
expect(trail[1][:path]).to eq "/admin/users"
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
context "when path '/admin/users/1/posts'" do
|
77
|
-
let(:path) { "/admin/users/1/posts" }
|
78
|
-
|
79
|
-
it "should have 3 items" do
|
80
|
-
expect(trail.size).to eq 3
|
81
|
-
end
|
82
|
-
it "should have a link to /admin" do
|
83
|
-
expect(trail[0][:name]).to eq "Admin"
|
84
|
-
expect(trail[0][:path]).to eq "/admin"
|
85
|
-
end
|
86
|
-
it "should have a link to /admin/users" do
|
87
|
-
expect(trail[1][:name]).to eq "Users"
|
88
|
-
expect(trail[1][:path]).to eq "/admin/users"
|
89
|
-
end
|
90
|
-
|
91
|
-
context "when User.find(1) doesn't exist" do
|
92
|
-
before { allow(user_config).to receive(:find_resource) }
|
93
|
-
it "should have a link to /admin/users/1" do
|
94
|
-
expect(trail[2][:name]).to eq "1"
|
95
|
-
expect(trail[2][:path]).to eq "/admin/users/1"
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
context "when User.find(1) does exist" do
|
100
|
-
it "should have a link to /admin/users/1 using display name" do
|
101
|
-
expect(trail[2][:name]).to eq "Jane Doe"
|
102
|
-
expect(trail[2][:path]).to eq "/admin/users/1"
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
context "when path '/admin/users/4e24d6249ccf967313000000/posts'" do
|
108
|
-
let(:path) { "/admin/users/4e24d6249ccf967313000000/posts" }
|
109
|
-
|
110
|
-
it "should have 3 items" do
|
111
|
-
expect(trail.size).to eq 3
|
112
|
-
end
|
113
|
-
it "should have a link to /admin" do
|
114
|
-
expect(trail[0][:name]).to eq "Admin"
|
115
|
-
expect(trail[0][:path]).to eq "/admin"
|
116
|
-
end
|
117
|
-
it "should have a link to /admin/users" do
|
118
|
-
expect(trail[1][:name]).to eq "Users"
|
119
|
-
expect(trail[1][:path]).to eq "/admin/users"
|
120
|
-
end
|
121
|
-
|
122
|
-
context "when User.find(4e24d6249ccf967313000000) doesn't exist" do
|
123
|
-
before { allow(user_config).to receive(:find_resource) }
|
124
|
-
it "should have a link to /admin/users/4e24d6249ccf967313000000" do
|
125
|
-
expect(trail[2][:name]).to eq "4e24d6249ccf967313000000"
|
126
|
-
expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
context "when User.find(4e24d6249ccf967313000000) does exist" do
|
131
|
-
before do
|
132
|
-
display_name = double(display_name: 'Hello :)')
|
133
|
-
allow(user_config).to receive(:find_resource).and_return(display_name)
|
134
|
-
end
|
135
|
-
it "should have a link to /admin/users/4e24d6249ccf967313000000 using display name" do
|
136
|
-
expect(trail[2][:name]).to eq "Hello :)"
|
137
|
-
expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
context "when path '/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4/posts'" do
|
143
|
-
let(:path) { "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4/posts" }
|
144
|
-
|
145
|
-
it "should have 3 items" do
|
146
|
-
expect(trail.size).to eq 3
|
147
|
-
end
|
148
|
-
it "should have a link to /admin" do
|
149
|
-
expect(trail[0][:name]).to eq "Admin"
|
150
|
-
expect(trail[0][:path]).to eq "/admin"
|
151
|
-
end
|
152
|
-
it "should have a link to /admin/users" do
|
153
|
-
expect(trail[1][:name]).to eq "Users"
|
154
|
-
expect(trail[1][:path]).to eq "/admin/users"
|
155
|
-
end
|
156
|
-
|
157
|
-
context "when User.find(2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4) doesn't exist" do
|
158
|
-
before { allow(user_config).to receive(:find_resource) }
|
159
|
-
it "should have a link to /admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4" do
|
160
|
-
expect(trail[2][:name]).to eq "2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4".titlecase
|
161
|
-
expect(trail[2][:path]).to eq "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4"
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
context "when User.find(2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4) does exist" do
|
166
|
-
before do
|
167
|
-
display_name = double(display_name: 'Hello :)')
|
168
|
-
allow(user_config).to receive(:find_resource).and_return(display_name)
|
169
|
-
end
|
170
|
-
it "should have a link to /admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4 using display name" do
|
171
|
-
expect(trail[2][:name]).to eq "Hello :)"
|
172
|
-
expect(trail[2][:path]).to eq "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4"
|
173
|
-
end
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
context "when path '/admin/users/1/coments/1'" do
|
178
|
-
let(:path) { "/admin/users/1/posts/1" }
|
179
|
-
|
180
|
-
it "should have 4 items" do
|
181
|
-
expect(trail.size).to eq 4
|
182
|
-
end
|
183
|
-
it "should have a link to /admin" do
|
184
|
-
expect(trail[0][:name]).to eq "Admin"
|
185
|
-
expect(trail[0][:path]).to eq "/admin"
|
186
|
-
end
|
187
|
-
it "should have a link to /admin/users" do
|
188
|
-
expect(trail[1][:name]).to eq "Users"
|
189
|
-
expect(trail[1][:path]).to eq "/admin/users"
|
190
|
-
end
|
191
|
-
it "should have a link to /admin/users/1" do
|
192
|
-
expect(trail[2][:name]).to eq "Jane Doe"
|
193
|
-
expect(trail[2][:path]).to eq "/admin/users/1"
|
194
|
-
end
|
195
|
-
it "should have a link to /admin/users/1/posts" do
|
196
|
-
expect(trail[3][:name]).to eq "Posts"
|
197
|
-
expect(trail[3][:path]).to eq "/admin/users/1/posts"
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
context "when path '/admin/users/1/coments/1/edit'" do
|
202
|
-
let(:path) { "/admin/users/1/posts/1/edit" }
|
203
|
-
|
204
|
-
it "should have 5 items" do
|
205
|
-
expect(trail.size).to eq 5
|
206
|
-
end
|
207
|
-
it "should have a link to /admin" do
|
208
|
-
expect(trail[0][:name]).to eq "Admin"
|
209
|
-
expect(trail[0][:path]).to eq "/admin"
|
210
|
-
end
|
211
|
-
it "should have a link to /admin/users" do
|
212
|
-
expect(trail[1][:name]).to eq "Users"
|
213
|
-
expect(trail[1][:path]).to eq "/admin/users"
|
214
|
-
end
|
215
|
-
it "should have a link to /admin/users/1" do
|
216
|
-
expect(trail[2][:name]).to eq "Jane Doe"
|
217
|
-
expect(trail[2][:path]).to eq "/admin/users/1"
|
218
|
-
end
|
219
|
-
it "should have a link to /admin/users/1/posts" do
|
220
|
-
expect(trail[3][:name]).to eq "Posts"
|
221
|
-
expect(trail[3][:path]).to eq "/admin/users/1/posts"
|
222
|
-
end
|
223
|
-
it "should have a link to /admin/users/1/posts/1" do
|
224
|
-
expect(trail[4][:name]).to eq "Hello World"
|
225
|
-
expect(trail[4][:path]).to eq "/admin/users/1/posts/1"
|
226
|
-
end
|
227
|
-
end
|
228
|
-
|
229
|
-
context "when the 'show' action is disabled" do
|
230
|
-
let(:post_config) { double find_resource: post, resource_name: double(route_key: 'posts'),
|
231
|
-
defined_actions: actions - [:show], # this is the change
|
232
|
-
belongs_to_config: double(target: user_config) }
|
233
|
-
|
234
|
-
let(:path) { "/admin/posts/1/edit" }
|
235
|
-
|
236
|
-
it "should have 3 items" do
|
237
|
-
expect(trail.size).to eq 3
|
238
|
-
end
|
239
|
-
it "should have a link to /admin" do
|
240
|
-
expect(trail[0][:name]).to eq "Admin"
|
241
|
-
expect(trail[0][:path]).to eq "/admin"
|
242
|
-
end
|
243
|
-
it "should have a link to /admin/posts" do
|
244
|
-
expect(trail[1][:name]).to eq "Posts"
|
245
|
-
expect(trail[1][:path]).to eq "/admin/posts"
|
246
|
-
end
|
247
|
-
it "should not link to the show view for the post" do
|
248
|
-
expect(trail[2]).to eq "Hello World"
|
249
|
-
end
|
250
|
-
end
|
251
|
-
|
252
|
-
end
|
253
|
-
end
|
@@ -1,203 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
require 'active_admin/view_helpers/active_admin_application_helper'
|
3
|
-
require 'active_admin/view_helpers/auto_link_helper'
|
4
|
-
require 'active_admin/view_helpers/display_helper'
|
5
|
-
require 'active_admin/view_helpers/method_or_proc_helper'
|
6
|
-
|
7
|
-
RSpec.describe ActiveAdmin::ViewHelpers::DisplayHelper do
|
8
|
-
include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
|
9
|
-
include ActiveAdmin::ViewHelpers::AutoLinkHelper
|
10
|
-
include ActiveAdmin::ViewHelpers::DisplayHelper
|
11
|
-
include MethodOrProcHelper
|
12
|
-
include ActionView::Helpers::UrlHelper
|
13
|
-
include ActionView::Helpers::TranslationHelper
|
14
|
-
include ActionView::Helpers::SanitizeHelper
|
15
|
-
|
16
|
-
def active_admin_namespace
|
17
|
-
active_admin_application.namespaces[:admin]
|
18
|
-
end
|
19
|
-
|
20
|
-
def authorized?(*)
|
21
|
-
true
|
22
|
-
end
|
23
|
-
|
24
|
-
def url_options
|
25
|
-
{ locale: nil }
|
26
|
-
end
|
27
|
-
|
28
|
-
before do
|
29
|
-
load_resources do
|
30
|
-
ActiveAdmin.register(User)
|
31
|
-
ActiveAdmin.register(Post){ belongs_to :user, optional: true }
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe '#display_name' do
|
36
|
-
ActiveAdmin::Application.new.display_name_methods.map(&:to_s).each do |m|
|
37
|
-
it "should return #{m} when defined" do
|
38
|
-
klass = Class.new do
|
39
|
-
define_method(m) { m }
|
40
|
-
end
|
41
|
-
expect(display_name klass.new).to eq m
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should sanitize the result of #{m} when defined" do
|
45
|
-
klass = Class.new do
|
46
|
-
define_method(m) { '<script>alert(1)</script>' }
|
47
|
-
end
|
48
|
-
expect(display_name klass.new).to eq 'alert(1)'
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should memoize the result for the class" do
|
53
|
-
subject = Class.new.new
|
54
|
-
expect(subject).to receive(:name).twice.and_return "My Name"
|
55
|
-
|
56
|
-
expect(display_name subject).to eq "My Name"
|
57
|
-
|
58
|
-
expect(ActiveAdmin.application).to_not receive(:display_name_methods)
|
59
|
-
expect(display_name subject).to eq "My Name"
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should not call a method if it's an association" do
|
63
|
-
klass = Class.new
|
64
|
-
subject = klass.new
|
65
|
-
allow(klass).to receive(:reflect_on_all_associations).and_return [ double(name: :login) ]
|
66
|
-
allow(subject).to receive :login
|
67
|
-
expect(subject).to_not receive :login
|
68
|
-
allow(subject).to receive(:email).and_return 'foo@bar.baz'
|
69
|
-
|
70
|
-
expect(display_name subject).to eq 'foo@bar.baz'
|
71
|
-
end
|
72
|
-
|
73
|
-
it "should return `nil` when the passed object is `nil`" do
|
74
|
-
expect(display_name nil).to eq nil
|
75
|
-
end
|
76
|
-
|
77
|
-
it "should return 'false' when the passed object is `false`" do
|
78
|
-
expect(display_name false).to eq "false"
|
79
|
-
end
|
80
|
-
|
81
|
-
it "should default to `to_s`" do
|
82
|
-
subject = Class.new.new
|
83
|
-
expect(display_name subject).to eq sanitize(subject.to_s)
|
84
|
-
end
|
85
|
-
|
86
|
-
context "when no display name method is defined" do
|
87
|
-
context "on a Rails model" do
|
88
|
-
it "should show the model name" do
|
89
|
-
class ThisModel
|
90
|
-
extend ActiveModel::Naming
|
91
|
-
end
|
92
|
-
subject = ThisModel.new
|
93
|
-
expect(display_name subject).to eq "This model"
|
94
|
-
end
|
95
|
-
|
96
|
-
it "should show the model name, plus the ID if in use" do
|
97
|
-
subject = Tagging.create!
|
98
|
-
expect(display_name subject).to eq "Tagging #1"
|
99
|
-
end
|
100
|
-
|
101
|
-
it "should translate the model name" do
|
102
|
-
with_translation activerecord: {models: {tagging: {one: "Different"}}} do
|
103
|
-
subject = Tagging.create!
|
104
|
-
expect(display_name subject).to eq "Different #1"
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
describe '#format_attribute' do
|
112
|
-
it 'calls the provided block to format the value' do
|
113
|
-
value = format_attribute double(foo: 2), ->r { r.foo + 1 }
|
114
|
-
|
115
|
-
expect(value).to eq '3'
|
116
|
-
end
|
117
|
-
|
118
|
-
it 'finds values as methods' do
|
119
|
-
value = format_attribute double(name: 'Joe'), :name
|
120
|
-
|
121
|
-
expect(value).to eq 'Joe'
|
122
|
-
end
|
123
|
-
|
124
|
-
it 'finds values from hashes' do
|
125
|
-
value = format_attribute({id: 100}, :id)
|
126
|
-
|
127
|
-
expect(value).to eq '100'
|
128
|
-
end
|
129
|
-
|
130
|
-
[1, 1.2, :a_symbol].each do |val|
|
131
|
-
it "calls to_s to format the value of type #{val.class}" do
|
132
|
-
value = format_attribute double(foo: val), :foo
|
133
|
-
|
134
|
-
expect(value).to eq val.to_s
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
it 'localizes dates' do
|
139
|
-
date = Date.parse '2016/02/28'
|
140
|
-
|
141
|
-
value = format_attribute double(date: date), :date
|
142
|
-
|
143
|
-
expect(value).to eq 'February 28, 2016'
|
144
|
-
end
|
145
|
-
|
146
|
-
it 'localizes times' do
|
147
|
-
time = Time.parse '2016/02/28 9:34 PM'
|
148
|
-
|
149
|
-
value = format_attribute double(time: time), :time
|
150
|
-
|
151
|
-
expect(value).to eq 'February 28, 2016 21:34'
|
152
|
-
end
|
153
|
-
|
154
|
-
it 'uses a display_name method for arbitrary objects' do
|
155
|
-
object = double to_s: :wrong, display_name: :right
|
156
|
-
|
157
|
-
value = format_attribute double(object: object), :object
|
158
|
-
|
159
|
-
expect(value).to eq 'right'
|
160
|
-
end
|
161
|
-
|
162
|
-
it 'auto-links ActiveRecord records by association' do
|
163
|
-
post = Post.create! author: User.new
|
164
|
-
|
165
|
-
value = format_attribute post, :author
|
166
|
-
|
167
|
-
expect(value).to match /<a href="\/admin\/users\/\d+"> <\/a>/
|
168
|
-
end
|
169
|
-
|
170
|
-
it 'auto-links ActiveRecord records & uses a display_name method' do
|
171
|
-
post = Post.create! author: User.new(first_name: 'A', last_name: 'B')
|
172
|
-
|
173
|
-
value = format_attribute post, :author
|
174
|
-
|
175
|
-
expect(value).to match /<a href="\/admin\/users\/\d+">A B<\/a>/
|
176
|
-
end
|
177
|
-
|
178
|
-
pending 'auto-links Mongoid records'
|
179
|
-
|
180
|
-
it 'calls status_tag for boolean values' do
|
181
|
-
post = Post.new starred: true
|
182
|
-
|
183
|
-
value = format_attribute post, :starred
|
184
|
-
|
185
|
-
expect(value.to_s).to eq "<span class=\"status_tag yes\">Yes</span>\n"
|
186
|
-
end
|
187
|
-
|
188
|
-
it 'calls status_tag for boolean non-database values' do
|
189
|
-
post = Post.new
|
190
|
-
post.define_singleton_method(:true_method) do
|
191
|
-
true
|
192
|
-
end
|
193
|
-
post.define_singleton_method(:false_method) do
|
194
|
-
false
|
195
|
-
end
|
196
|
-
true_value = format_attribute post, :true_method
|
197
|
-
expect(true_value.to_s).to eq "<span class=\"status_tag yes\">Yes</span>\n"
|
198
|
-
false_value = format_attribute post, :false_method
|
199
|
-
expect(false_value.to_s).to eq "<span class=\"status_tag no\">No</span>\n"
|
200
|
-
end
|
201
|
-
|
202
|
-
end
|
203
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper do
|
4
|
-
describe "class methods" do
|
5
|
-
before :all do
|
6
|
-
begin
|
7
|
-
# The mime type to be used in respond_to |format| style web-services in rails
|
8
|
-
Mime::Type.register "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", :xlsx
|
9
|
-
rescue NameError
|
10
|
-
puts "Mime module not defined. Skipping registration of xlsx"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
subject do
|
15
|
-
Class.new do
|
16
|
-
include ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
it "extends the class to add a formats class method that returns the default formats." do
|
21
|
-
expect(subject.formats).to eq [:csv, :xml, :json]
|
22
|
-
end
|
23
|
-
|
24
|
-
it "does not let you alter the formats array directly" do
|
25
|
-
subject.formats << :xlsx
|
26
|
-
expect(subject.formats).to eq [:csv, :xml, :json]
|
27
|
-
end
|
28
|
-
|
29
|
-
it "allows us to add new formats" do
|
30
|
-
subject.add_format :xlsx
|
31
|
-
expect(subject.formats).to eq [:csv, :xml, :json, :xlsx]
|
32
|
-
end
|
33
|
-
|
34
|
-
it "raises an exception if you provide an unregisterd mime type extension" do
|
35
|
-
expect{ subject.add_format :hoge }.to raise_error 'Please register the hoge mime type with `Mime::Type.register`'
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::ViewHelpers::FormHelper, ".fields_for" do
|
4
|
-
include ActiveAdmin::ViewHelpers::FormHelper
|
5
|
-
|
6
|
-
it "should skip :action, :controller and :commit" do
|
7
|
-
expect(fields_for_params(
|
8
|
-
scope: "All", action: "index", controller: "PostController", commit: "Filter", utf8: "Yes!")).
|
9
|
-
to eq [ { scope: "All" } ]
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should skip the except" do
|
13
|
-
expect(fields_for_params({scope: "All", name: "Greg"}, except: :name)).
|
14
|
-
to eq [ { scope: "All" } ]
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should allow an array for the except" do
|
18
|
-
expect(fields_for_params({scope: "All", name: "Greg", age: "12"}, except: [:name, :age])).
|
19
|
-
to eq [ { scope: "All" } ]
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should work with hashes" do
|
23
|
-
params = fields_for_params(filters: { name: "John", age: "12" })
|
24
|
-
|
25
|
-
expect(params.size).to eq 2
|
26
|
-
expect(params).to include({"filters[name]" => "John" })
|
27
|
-
expect(params).to include({ "filters[age]" => "12" })
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should work with nested hashes" do
|
31
|
-
expect(fields_for_params(filters: { user: { name: "John" }})).
|
32
|
-
to eq [ { "filters[user][name]" => "John" } ]
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should work with arrays" do
|
36
|
-
expect(fields_for_params(people: ["greg", "emily", "philippe"])).
|
37
|
-
to eq [ { "people[]" => "greg" },
|
38
|
-
{ "people[]" => "emily" },
|
39
|
-
{ "people[]" => "philippe" } ]
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should work with symbols" do
|
43
|
-
expect(fields_for_params(filter: :id)).
|
44
|
-
to eq [ { filter: "id" } ]
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should work with booleans" do
|
48
|
-
expect(fields_for_params(booleantest: false)).to eq [ { booleantest: false } ]
|
49
|
-
end
|
50
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::ViewHelpers::FlashHelper do
|
4
|
-
|
5
|
-
describe '.flash_messages' do
|
6
|
-
let(:view) { action_view }
|
7
|
-
|
8
|
-
it "should not include 'timedout' flash messages by default" do
|
9
|
-
view.request.flash[:alert] = "Alert"
|
10
|
-
view.request.flash[:timedout] = true
|
11
|
-
expect(view.flash_messages).to include 'alert'
|
12
|
-
expect(view.flash_messages).to_not include 'timedout'
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should not return flash messages included in flash_keys_to_except" do
|
16
|
-
expect(view.active_admin_application).to receive(:flash_keys_to_except).and_return ["hideme"]
|
17
|
-
view.request.flash[:alert] = "Alert"
|
18
|
-
view.request.flash[:hideme] = "Do not show"
|
19
|
-
expect(view.flash_messages).to include 'alert'
|
20
|
-
expect(view.flash_messages).to_not include 'hideme'
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::ViewHelpers::FormHelper do
|
4
|
-
|
5
|
-
describe '.active_admin_form_for' do
|
6
|
-
let(:view) { action_view }
|
7
|
-
let(:resource) { double 'resource' }
|
8
|
-
let(:default_options) { { builder: ActiveAdmin::FormBuilder } }
|
9
|
-
|
10
|
-
it 'calls semantic_form_for with the ActiveAdmin form builder' do
|
11
|
-
expect(view).to receive(:semantic_form_for).with(resource, builder: ActiveAdmin::FormBuilder)
|
12
|
-
view.active_admin_form_for(resource)
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'allows the form builder to be customized' do
|
16
|
-
# We can't use a stub here because options gets marshalled, and a new
|
17
|
-
# instance built. Any constant will work.
|
18
|
-
custom_builder = Object
|
19
|
-
expect(view).to receive(:semantic_form_for).with(resource, builder: custom_builder)
|
20
|
-
view.active_admin_form_for(resource, builder: custom_builder)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe ".hidden_field_tags_for" do
|
25
|
-
let(:view) { action_view }
|
26
|
-
|
27
|
-
it "should render hidden field tags for params" do
|
28
|
-
html = Capybara.string view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All", filter: "None"))
|
29
|
-
expect(html).to have_selector("input#hidden_active_admin_scope[name=scope][type=hidden][value=All]", visible: false)
|
30
|
-
expect(html).to have_selector("input#hidden_active_admin_filter[name=filter][type=hidden][value=None]", visible: false)
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should generate not default id for hidden input" do
|
34
|
-
expect(view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All"))[/id="([^"]+)"/, 1]).to_not eq "scope"
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should filter out the field passed via the option :except" do
|
38
|
-
html = Capybara.string view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All", filter: "None"), except: :filter)
|
39
|
-
expect(html).to have_selector("input#hidden_active_admin_scope[name=scope][type=hidden][value=All]", visible: false)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|