activeadmin 1.1.0 → 2.5.0
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 +5 -5
- data/CHANGELOG.md +492 -108
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +117 -49
- data/README.md +73 -19
- data/app/assets/javascripts/active_admin/base.js +509 -0
- data/app/assets/stylesheets/active_admin/_base.scss +29 -29
- data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
- data/app/assets/stylesheets/active_admin/_header.scss +3 -5
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
- 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/_tables.scss +1 -2
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +5 -0
- data/app/assets/stylesheets/active_admin/print.scss +2 -2
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
- data/app/javascript/active_admin/base.js +19 -0
- data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
- data/app/javascript/active_admin/ext/jquery.js +9 -0
- data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/datepicker.js +16 -0
- data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
- data/app/javascript/active_admin/initializers/filters.js +10 -0
- data/app/javascript/active_admin/initializers/has-many.js +95 -0
- data/app/javascript/active_admin/initializers/per-page.js +13 -0
- data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/tabs.js +6 -0
- data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
- data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
- data/app/javascript/active_admin/lib/filters.js +39 -0
- data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
- data/app/javascript/active_admin/lib/per-page.js +38 -0
- data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
- data/app/javascript/active_admin/lib/utils.js +40 -0
- 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/kaminari/active_admin_countless/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
- data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
- data/config/locales/ar.yml +3 -2
- data/config/locales/az.yml +138 -0
- data/config/locales/bg.yml +1 -1
- data/config/locales/bs.yml +1 -0
- data/config/locales/ca.yml +1 -1
- data/config/locales/cs.yml +1 -0
- data/config/locales/da.yml +1 -0
- data/config/locales/de-CH.yml +1 -0
- data/config/locales/de.yml +29 -0
- data/config/locales/el.yml +1 -0
- data/config/locales/en-CA.yml +1 -0
- data/config/locales/en-GB.yml +1 -0
- data/config/locales/en.yml +21 -1
- data/config/locales/eo.yml +145 -0
- data/config/locales/es-MX.yml +1 -0
- data/config/locales/es.yml +21 -1
- data/config/locales/fa.yml +1 -0
- data/config/locales/fi.yml +2 -1
- data/config/locales/fr.yml +2 -1
- data/config/locales/he.yml +1 -1
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +5 -0
- data/config/locales/id.yml +1 -0
- data/config/locales/it.yml +13 -3
- data/config/locales/ja.yml +6 -0
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt.yml +3 -2
- data/config/locales/lv.yml +1 -0
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +16 -5
- data/config/locales/nl.yml +12 -0
- data/config/locales/pl.yml +72 -3
- data/config/locales/pt-BR.yml +9 -0
- data/config/locales/pt-PT.yml +1 -0
- data/config/locales/ro.yml +1 -0
- data/config/locales/ru.yml +3 -0
- data/config/locales/sk.yml +60 -0
- data/config/locales/sv-SE.yml +3 -0
- data/config/locales/tr.yml +10 -0
- data/config/locales/uk.yml +3 -0
- data/config/locales/vi.yml +48 -6
- data/config/locales/zh-CN.yml +34 -5
- data/config/locales/zh-TW.yml +1 -0
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +2 -2
- data/docs/1-general-configuration.md +36 -1
- data/docs/10-custom-pages.md +14 -0
- data/docs/12-arbre-components.md +41 -1
- data/docs/13-authorization-adapter.md +41 -22
- data/docs/2-resource-customization.md +10 -5
- 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 +12 -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 -1
- data/docs/Gemfile.lock +249 -0
- data/docs/_config.yml +3 -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 +109 -8
- data/docs/stylesheets/main.css +55 -2
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +53 -160
- 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 +4 -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 +9 -5
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/controller_action.rb +2 -1
- data/lib/active_admin/csv_builder.rb +10 -7
- data/lib/active_admin/dependency.rb +3 -67
- 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 +4 -2
- data/lib/active_admin/filters/active_filter.rb +49 -12
- data/lib/active_admin/filters/active_sidebar.rb +6 -2
- 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 +28 -4
- data/lib/active_admin/form_builder.rb +98 -63
- data/lib/active_admin/generators/boilerplate.rb +12 -4
- 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/inputs/filters/date_range_input.rb +4 -4
- data/lib/active_admin/inputs/filters/select_input.rb +5 -1
- 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 +123 -0
- data/lib/active_admin/order_clause.rb +2 -2
- 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 +17 -7
- data/lib/active_admin/orm/active_record/comments.rb +15 -4
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/page_presenter.rb +2 -1
- data/lib/active_admin/pundit_adapter.rb +18 -5
- data/lib/active_admin/resource/action_items.rb +7 -2
- data/lib/active_admin/resource/attributes.rb +7 -4
- data/lib/active_admin/resource/belongs_to.rb +6 -1
- data/lib/active_admin/resource/menu.rb +3 -3
- data/lib/active_admin/resource/model.rb +15 -0
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/routes.rb +20 -7
- data/lib/active_admin/resource/scopes.rb +3 -3
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource.rb +18 -4
- 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/data_access.rb +5 -1
- data/lib/active_admin/resource_controller/decorators.rb +5 -5
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
- 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_controller.rb +2 -0
- data/lib/active_admin/resource_dsl.rb +7 -3
- data/lib/active_admin/router.rb +90 -84
- data/lib/active_admin/scope.rb +16 -8
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/sidebar_section.rb +3 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
- data/lib/active_admin/view_helpers/display_helper.rb +13 -4
- 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 +4 -3
- 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/site_title.rb +5 -6
- data/lib/active_admin/views/components/status_tag.rb +6 -19
- data/lib/active_admin/views/components/table_for.rb +4 -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 +18 -10
- data/lib/active_admin/views/pages/base.rb +31 -54
- data/lib/active_admin/views/pages/index.rb +1 -0
- 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 +7 -3
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +38 -3
- 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 +2 -2
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
- 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 +115 -527
- 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/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 +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 -239
- 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 -107
- 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 -48
- 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/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/helpers/settings.rb +0 -114
- data/lib/active_admin/reloader.rb +0 -25
- data/lib/bug_report_templates/active_admin_master.rb +0 -113
- 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 -150
- 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 -10
- data/spec/unit/abstract_view_factory_spec.rb +0 -78
- data/spec/unit/action_builder_spec.rb +0 -125
- 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 -304
- 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 -135
- data/spec/unit/filters/active_spec.rb +0 -24
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
- 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/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 -230
- 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 -252
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
- 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
- /data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
- /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
@@ -1,78 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
require 'active_admin/abstract_view_factory'
|
4
|
-
|
5
|
-
RSpec.describe ActiveAdmin::AbstractViewFactory do
|
6
|
-
|
7
|
-
let(:view_factory){ ActiveAdmin::AbstractViewFactory.new }
|
8
|
-
let(:view){ Class.new }
|
9
|
-
|
10
|
-
describe "registering a new view key" do
|
11
|
-
before do
|
12
|
-
view_factory.register my_new_view_class: view
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should respond to :my_new_view_class" do
|
16
|
-
expect(view_factory.respond_to? :my_new_view_class).to be true
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should respond to :my_new_view_class=" do
|
20
|
-
expect(view_factory.respond_to? :my_new_view_class=).to be true
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should generate a getter method" do
|
24
|
-
expect(view_factory.my_new_view_class).to eq view
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should be settable view a setter method" do
|
28
|
-
view_factory.my_new_view_class = "Some Obj"
|
29
|
-
expect(view_factory.my_new_view_class).to eq "Some Obj"
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe "array syntax access" do
|
34
|
-
before do
|
35
|
-
view_factory.register my_new_view_class: view
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should be available through array syntax" do
|
39
|
-
expect(view_factory[:my_new_view_class]).to eq view
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should be settable through array syntax" do
|
43
|
-
view_factory[:my_new_view_class] = "My New View Class"
|
44
|
-
expect(view_factory[:my_new_view_class]).to eq "My New View Class"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe "registering default views" do
|
49
|
-
before do
|
50
|
-
ActiveAdmin::AbstractViewFactory.register my_default_view_class: view
|
51
|
-
end
|
52
|
-
it "should generate a getter method" do
|
53
|
-
expect(view_factory.my_default_view_class).to eq view
|
54
|
-
end
|
55
|
-
it "should be settable view a setter method and not change default" do
|
56
|
-
view_factory.my_default_view_class = "Some Obj"
|
57
|
-
expect(view_factory.my_default_view_class).to eq "Some Obj"
|
58
|
-
expect(view_factory.default_for(:my_default_view_class)).to eq view
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
describe "subclassing the ViewFactory" do
|
63
|
-
let(:subclass) do
|
64
|
-
ActiveAdmin::AbstractViewFactory.register my_subclassed_view: "From Parent"
|
65
|
-
Class.new(ActiveAdmin::AbstractViewFactory) do
|
66
|
-
def my_subclassed_view
|
67
|
-
"From Subclass"
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
it "should use the subclass implementation" do
|
73
|
-
factory = subclass.new
|
74
|
-
expect(factory.my_subclassed_view).to eq "From Subclass"
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
end
|
@@ -1,125 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe 'defining actions from registration blocks', type: :controller do
|
4
|
-
let(:klass){ Admin::PostsController }
|
5
|
-
|
6
|
-
before do
|
7
|
-
load_resources { action! }
|
8
|
-
|
9
|
-
@controller = klass.new
|
10
|
-
end
|
11
|
-
|
12
|
-
describe 'creates a member action' do
|
13
|
-
after(:each) do
|
14
|
-
klass.clear_member_actions!
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'with a block' do
|
18
|
-
let(:action!) do
|
19
|
-
ActiveAdmin.register Post do
|
20
|
-
member_action :comment do
|
21
|
-
# Do nothing
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'should create a new public instance method' do
|
27
|
-
expect(klass.public_instance_methods.collect(&:to_s)).to include('comment')
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'should add itself to the member actions config' do
|
31
|
-
expect(klass.active_admin_config.member_actions.size).to eq 1
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'should create a new named route' do
|
35
|
-
expect(Rails.application.routes.url_helpers.methods.collect(&:to_s)).to include('comment_admin_post_path')
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
context 'without a block' do
|
40
|
-
let(:action!) do
|
41
|
-
ActiveAdmin.register Post do
|
42
|
-
member_action :comment
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'should still generate a new empty action' do
|
47
|
-
expect(klass.public_instance_methods.collect(&:to_s)).to include('comment')
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
context 'with :title' do
|
52
|
-
let(:action!) do
|
53
|
-
ActiveAdmin.register Post do
|
54
|
-
member_action :comment, title: 'My Awesome Comment' do
|
55
|
-
render json: {a: 2}
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'sets the page title' do
|
61
|
-
params = {id: 1}
|
62
|
-
params = {params: params} if ActiveAdmin::Dependency.rails5?
|
63
|
-
get :comment, params
|
64
|
-
|
65
|
-
expect(controller.instance_variable_get(:@page_title)).to eq 'My Awesome Comment'
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
describe 'creates a collection action' do
|
71
|
-
after(:each) do
|
72
|
-
klass.clear_collection_actions!
|
73
|
-
end
|
74
|
-
|
75
|
-
context 'with a block' do
|
76
|
-
let(:action!) do
|
77
|
-
ActiveAdmin.register Post do
|
78
|
-
collection_action :comments do
|
79
|
-
# Do nothing
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
it 'should create a public instance method' do
|
85
|
-
expect(klass.public_instance_methods.collect(&:to_s)).to include('comments')
|
86
|
-
end
|
87
|
-
|
88
|
-
it 'should add itself to the member actions config' do
|
89
|
-
expect(klass.active_admin_config.collection_actions.size).to eq 1
|
90
|
-
end
|
91
|
-
|
92
|
-
it 'should create a named route' do
|
93
|
-
expect(Rails.application.routes.url_helpers.methods.collect(&:to_s)).to include('comments_admin_posts_path')
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
context 'without a block' do
|
98
|
-
let(:action!) do
|
99
|
-
ActiveAdmin.register Post do
|
100
|
-
collection_action :comments
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
it 'should still generate a new empty action' do
|
105
|
-
expect(klass.public_instance_methods.collect(&:to_s)).to include('comments')
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
context 'with :title' do
|
110
|
-
let(:action!) do
|
111
|
-
ActiveAdmin.register Post do
|
112
|
-
collection_action :comments, title: 'My Awesome Comments' do
|
113
|
-
render json: {a: 2}
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
it 'sets the page title' do
|
119
|
-
get :comments
|
120
|
-
|
121
|
-
expect(controller.instance_variable_get(:@page_title)).to eq 'My Awesome Comments'
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin do
|
4
|
-
%w(register register_page unload! load! routes).each do |method|
|
5
|
-
it "delegates ##{method} to application" do
|
6
|
-
expect(ActiveAdmin.application).to receive(method)
|
7
|
-
|
8
|
-
ActiveAdmin.send(method)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
@@ -1,184 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
require 'fileutils'
|
3
|
-
|
4
|
-
RSpec.describe ActiveAdmin::Application do
|
5
|
-
|
6
|
-
let(:application) { ActiveAdmin::Application.new }
|
7
|
-
|
8
|
-
around do |example|
|
9
|
-
old_load_paths = application.load_paths
|
10
|
-
# TODO: Figure out why load paths need to be overriden
|
11
|
-
application.load_paths = [File.expand_path('app/admin', Rails.root)]
|
12
|
-
|
13
|
-
example.call
|
14
|
-
|
15
|
-
application.load_paths = old_load_paths
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should have a default load path of ['app/admin']" do
|
19
|
-
expect(application.load_paths).to eq [File.expand_path('app/admin', Rails.root)]
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should remove app/admin from the autoload paths (Active Admin deals with loading)" do
|
23
|
-
expect(ActiveSupport::Dependencies.autoload_paths).to_not include(File.join(Rails.root, "app/admin"))
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should store the site's title" do
|
27
|
-
expect(application.site_title).to eq ""
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should set the site title" do
|
31
|
-
application.site_title = "New Title"
|
32
|
-
expect(application.site_title).to eq "New Title"
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should store the site's title link" do
|
36
|
-
expect(application.site_title_link).to eq ""
|
37
|
-
end
|
38
|
-
|
39
|
-
it "should set the site's title link" do
|
40
|
-
application.site_title_link = "http://www.mygreatsite.com"
|
41
|
-
expect(application.site_title_link).to eq "http://www.mygreatsite.com"
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should store the site's title image" do
|
45
|
-
expect(application.site_title_image).to eq ""
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should set the site's title image" do
|
49
|
-
application.site_title_image = "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
|
50
|
-
expect(application.site_title_image).to eq "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should store the site's favicon" do
|
54
|
-
expect(application.favicon).to eq false
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should return default localize format" do
|
58
|
-
expect(application.localize_format).to eq :long
|
59
|
-
end
|
60
|
-
|
61
|
-
it "should set localize format" do
|
62
|
-
application.localize_format = :default
|
63
|
-
expect(application.localize_format).to eq :default
|
64
|
-
end
|
65
|
-
|
66
|
-
it "should set the site's favicon" do
|
67
|
-
application.favicon = "/a/favicon.ico"
|
68
|
-
expect(application.favicon).to eq "/a/favicon.ico"
|
69
|
-
end
|
70
|
-
|
71
|
-
it "should store meta tags" do
|
72
|
-
expect(application.meta_tags).to eq({})
|
73
|
-
end
|
74
|
-
|
75
|
-
it "should set meta tags" do
|
76
|
-
application.meta_tags = { author: "My Company" }
|
77
|
-
expect(application.meta_tags).to eq(author: "My Company")
|
78
|
-
end
|
79
|
-
|
80
|
-
it "should contains robots meta tags by default" do
|
81
|
-
result = application.meta_tags_for_logged_out_pages
|
82
|
-
expect(result).to eq(robots: "noindex, nofollow")
|
83
|
-
end
|
84
|
-
|
85
|
-
it "should set meta tags for logged out pages" do
|
86
|
-
value = { author: "My Company" }
|
87
|
-
application.meta_tags_for_logged_out_pages = value
|
88
|
-
expect(application.meta_tags_for_logged_out_pages).to eq value
|
89
|
-
end
|
90
|
-
|
91
|
-
it "should have a view factory" do
|
92
|
-
expect(application.view_factory).to be_an_instance_of(ActiveAdmin::ViewFactory)
|
93
|
-
end
|
94
|
-
|
95
|
-
it "should allow comments by default" do
|
96
|
-
expect(application.comments).to eq true
|
97
|
-
end
|
98
|
-
|
99
|
-
it "should have default order clause class" do
|
100
|
-
expect(application.order_clause).to eq ActiveAdmin::OrderClause
|
101
|
-
end
|
102
|
-
|
103
|
-
it "should have default show_count for scopes" do
|
104
|
-
expect(application.scopes_show_count).to eq true
|
105
|
-
end
|
106
|
-
|
107
|
-
describe "authentication settings" do
|
108
|
-
|
109
|
-
it "should have no default current_user_method" do
|
110
|
-
expect(application.current_user_method).to eq false
|
111
|
-
end
|
112
|
-
|
113
|
-
it "should have no default authentication method" do
|
114
|
-
expect(application.authentication_method).to eq false
|
115
|
-
end
|
116
|
-
|
117
|
-
it "should have a logout link path (Devise's default)" do
|
118
|
-
expect(application.logout_link_path).to eq :destroy_admin_user_session_path
|
119
|
-
end
|
120
|
-
|
121
|
-
it "should have a logout link method (Devise's default)" do
|
122
|
-
expect(application.logout_link_method).to eq :get
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
describe "files in load path" do
|
127
|
-
it "should load files in the first level directory" do
|
128
|
-
expect(application.files).to include(File.expand_path("app/admin/dashboard.rb", Rails.root))
|
129
|
-
end
|
130
|
-
|
131
|
-
it "should load files from subdirectories" do
|
132
|
-
test_dir = File.expand_path("app/admin/public", Rails.root)
|
133
|
-
test_file = File.expand_path("app/admin/public/posts.rb", Rails.root)
|
134
|
-
|
135
|
-
begin
|
136
|
-
FileUtils.mkdir_p(test_dir)
|
137
|
-
FileUtils.touch(test_file)
|
138
|
-
expect(application.files).to include(test_file)
|
139
|
-
ensure
|
140
|
-
FileUtils.remove_entry_secure(test_dir, force: true)
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
describe "#namespace" do
|
146
|
-
|
147
|
-
it "should yield a new namespace" do
|
148
|
-
application.namespace :new_namespace do |ns|
|
149
|
-
expect(ns.name).to eq :new_namespace
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
it "should return an instantiated namespace" do
|
154
|
-
admin = application.namespace :admin
|
155
|
-
expect(admin).to eq application.namespaces[:admin]
|
156
|
-
end
|
157
|
-
|
158
|
-
it "should yield an existing namespace" do
|
159
|
-
expect {
|
160
|
-
application.namespace :admin do |ns|
|
161
|
-
expect(ns).to eq application.namespaces[:admin]
|
162
|
-
raise "found"
|
163
|
-
end
|
164
|
-
}.to raise_error("found")
|
165
|
-
end
|
166
|
-
|
167
|
-
it "should not pollute the global app" do
|
168
|
-
expect(application.namespaces).to be_empty
|
169
|
-
application.namespace(:brand_new_ns)
|
170
|
-
expect(application.namespaces.names).to eq [:brand_new_ns]
|
171
|
-
expect(ActiveAdmin.application.namespaces.names).to eq [:admin]
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
describe "#register_page" do
|
176
|
-
it "finds or create the namespace and register the page to it" do
|
177
|
-
namespace = double
|
178
|
-
expect(application).to receive(:namespace).with("public").and_return namespace
|
179
|
-
expect(namespace).to receive(:register_page).with("My Page", {namespace: "public"})
|
180
|
-
application.register_page("My Page", namespace: "public")
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
end
|
@@ -1,81 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::AssetRegistration do
|
4
|
-
include ActiveAdmin::AssetRegistration
|
5
|
-
|
6
|
-
before do
|
7
|
-
clear_stylesheets!
|
8
|
-
clear_javascripts!
|
9
|
-
end
|
10
|
-
|
11
|
-
it "is deprecated" do
|
12
|
-
expect(ActiveAdmin::Deprecation)
|
13
|
-
.to receive(:warn)
|
14
|
-
.with(<<-MSG.strip_heredoc
|
15
|
-
The `register_stylesheet` config is deprecated and will be removed
|
16
|
-
in v2. Import your "sample_styles.css" stylesheet in the active_admin.scss.
|
17
|
-
MSG
|
18
|
-
)
|
19
|
-
|
20
|
-
register_stylesheet "sample_styles.css"
|
21
|
-
|
22
|
-
expect(ActiveAdmin::Deprecation)
|
23
|
-
.to receive(:warn)
|
24
|
-
.with(<<-MSG.strip_heredoc
|
25
|
-
The `register_javascript` config is deprecated and will be removed
|
26
|
-
in v2. Import your "sample_scripts.js" javascript in the active_admin.js.
|
27
|
-
MSG
|
28
|
-
)
|
29
|
-
|
30
|
-
register_javascript "sample_scripts.js"
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should register a stylesheet file" do
|
34
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
35
|
-
register_stylesheet "active_admin.css"
|
36
|
-
expect(stylesheets.length).to eq 1
|
37
|
-
expect(stylesheets.keys.first).to eq "active_admin.css"
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should clear all existing stylesheets" do
|
41
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
42
|
-
register_stylesheet "active_admin.css"
|
43
|
-
expect(stylesheets.length).to eq 1
|
44
|
-
clear_stylesheets!
|
45
|
-
expect(stylesheets).to be_empty
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should allow media option when registering stylesheet" do
|
49
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
50
|
-
register_stylesheet "active_admin.css", media: :print
|
51
|
-
expect(stylesheets.values.first[:media]).to eq :print
|
52
|
-
end
|
53
|
-
|
54
|
-
it "shouldn't register a stylesheet twice" do
|
55
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).twice
|
56
|
-
register_stylesheet "active_admin.css"
|
57
|
-
register_stylesheet "active_admin.css"
|
58
|
-
expect(stylesheets.length).to eq 1
|
59
|
-
end
|
60
|
-
|
61
|
-
it "should register a javascript file" do
|
62
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
63
|
-
register_javascript "active_admin.js"
|
64
|
-
expect(javascripts).to eq ["active_admin.js"].to_set
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should clear all existing javascripts" do
|
68
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
69
|
-
register_javascript "active_admin.js"
|
70
|
-
expect(javascripts).to eq ["active_admin.js"].to_set
|
71
|
-
clear_javascripts!
|
72
|
-
expect(javascripts).to be_empty
|
73
|
-
end
|
74
|
-
|
75
|
-
it "shouldn't register a javascript twice" do
|
76
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).twice
|
77
|
-
register_javascript "active_admin.js"
|
78
|
-
register_javascript "active_admin.js"
|
79
|
-
expect(javascripts.length).to eq 1
|
80
|
-
end
|
81
|
-
end
|
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::AuthorizationAdapter do
|
4
|
-
|
5
|
-
let(:adapter) { ActiveAdmin::AuthorizationAdapter.new(double, double) }
|
6
|
-
|
7
|
-
describe "#authorized?" do
|
8
|
-
|
9
|
-
it "should always return true" do
|
10
|
-
expect(adapter.authorized?(:read, "Resource")).to eq true
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "#scope_collection" do
|
16
|
-
|
17
|
-
it "should return the collection unscoped" do
|
18
|
-
collection = double
|
19
|
-
expect(adapter.scope_collection(collection, ActiveAdmin::Auth::READ)).to eq collection
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "using #normalized in a subclass" do
|
25
|
-
|
26
|
-
let(:auth_class) do
|
27
|
-
Class.new(ActiveAdmin::AuthorizationAdapter) do
|
28
|
-
|
29
|
-
def authorized?(action, subject = nil)
|
30
|
-
case subject
|
31
|
-
when normalized(String)
|
32
|
-
true
|
33
|
-
else
|
34
|
-
false
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
let(:adapter) { auth_class.new(double, double) }
|
42
|
-
|
43
|
-
it "should match against a class" do
|
44
|
-
expect(adapter.authorized?(:read, String)).to eq true
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'should match against an instance' do
|
48
|
-
expect(adapter.authorized?(:read, "String")).to eq true
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'should not match a different class' do
|
52
|
-
expect(adapter.authorized?(:read, Hash)).to eq false
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'should not match a different instance' do
|
56
|
-
expect(adapter.authorized?(:read, {})).to eq false
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe "Controller Authorization", type: :controller do
|
4
|
-
|
5
|
-
let(:authorization){ controller.send(:active_admin_authorization) }
|
6
|
-
|
7
|
-
before do
|
8
|
-
load_resources { ActiveAdmin.register Post }
|
9
|
-
@controller = Admin::PostsController.new
|
10
|
-
allow(authorization).to receive(:authorized?)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should authorize the index action" do
|
14
|
-
expect(authorization).to receive(:authorized?).with(auth::READ, Post).and_return true
|
15
|
-
get :index
|
16
|
-
expect(response).to be_success
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should authorize the new action" do
|
20
|
-
expect(authorization).to receive(:authorized?).with(auth::CREATE, an_instance_of(Post)).and_return true
|
21
|
-
get :new
|
22
|
-
expect(response).to be_success
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should authorize the create action with the new resource" do
|
26
|
-
expect(authorization).to receive(:authorized?).with(auth::CREATE, an_instance_of(Post)).and_return true
|
27
|
-
post :create
|
28
|
-
expect(response).to redirect_to action: 'show', id: Post.last.id
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should redirect when the user isn't authorized" do
|
32
|
-
expect(authorization).to receive(:authorized?).with(auth::READ, Post).and_return false
|
33
|
-
get :index
|
34
|
-
expect(response.body).to eq '<html><body>You are being <a href="http://test.host/admin">redirected</a>.</body></html>'
|
35
|
-
expect(response).to redirect_to '/admin'
|
36
|
-
end
|
37
|
-
|
38
|
-
private
|
39
|
-
|
40
|
-
def auth
|
41
|
-
ActiveAdmin::Authorization
|
42
|
-
end
|
43
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe 'Index overriding', type: :controller do
|
4
|
-
before do
|
5
|
-
load_resources { ActiveAdmin.register Post }
|
6
|
-
@controller = Admin::PostsController.new
|
7
|
-
|
8
|
-
@controller.instance_eval do
|
9
|
-
def index
|
10
|
-
super do
|
11
|
-
render ActiveAdmin::Dependency.rails.render_key => 'Rendered from passed block'
|
12
|
-
return
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'should call block passed to overridden index' do
|
19
|
-
get :index
|
20
|
-
expect(response.body).to eq 'Rendered from passed block'
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
data/spec/unit/auto_link_spec.rb
DELETED
@@ -1,93 +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 "auto linking resources", type: :view do
|
8
|
-
include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
|
9
|
-
include ActiveAdmin::ViewHelpers::AutoLinkHelper
|
10
|
-
include ActiveAdmin::ViewHelpers::DisplayHelper
|
11
|
-
include MethodOrProcHelper
|
12
|
-
|
13
|
-
let(:active_admin_namespace){ ActiveAdmin.application.namespace(:admin) }
|
14
|
-
let(:post){ Post.create! title: "Hello World" }
|
15
|
-
|
16
|
-
before do
|
17
|
-
allow(self).to receive(:authorized?).and_return(true)
|
18
|
-
end
|
19
|
-
|
20
|
-
context "when the resource is not registered" do
|
21
|
-
before do
|
22
|
-
load_resources {}
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should return the display name of the object" do
|
26
|
-
expect(auto_link(post)).to eq "Hello World"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context "when the resource is registered" do
|
31
|
-
before do
|
32
|
-
load_resources do
|
33
|
-
active_admin_namespace.register Post
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should return a link with the display name of the object" do
|
38
|
-
expect(auto_link(post)).to \
|
39
|
-
match(%r{<a href="/admin/posts/\d+">Hello World</a>})
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should keep locale in the url if present" do
|
43
|
-
expect(self).to receive(:url_options).and_return(locale: 'en')
|
44
|
-
|
45
|
-
expect(auto_link(post)).to \
|
46
|
-
match(%r{<a href="/admin/posts/\d+\?locale=en">Hello World</a>})
|
47
|
-
end
|
48
|
-
|
49
|
-
context "but the user doesn't have access" do
|
50
|
-
before do
|
51
|
-
allow(self).to receive(:authorized?).and_return(false)
|
52
|
-
end
|
53
|
-
|
54
|
-
it "should return the display name of the object" do
|
55
|
-
expect(auto_link(post)).to eq "Hello World"
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context "when the resource is registered with the show action disabled" do
|
61
|
-
before do
|
62
|
-
load_resources do
|
63
|
-
active_admin_namespace.register(Post) { actions :all, except: :show }
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should fallback to edit" do
|
68
|
-
expect(auto_link(post)).to \
|
69
|
-
match(%r{<a href="/admin/posts/\d+/edit">Hello World</a>})
|
70
|
-
end
|
71
|
-
|
72
|
-
it "should keep locale in the url if present" do
|
73
|
-
expect(self).to receive(:url_options).and_return(locale: 'en')
|
74
|
-
|
75
|
-
expect(auto_link(post)).to \
|
76
|
-
match(%r{<a href="/admin/posts/\d+/edit\?locale=en">Hello World</a>})
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
context "when the resource is registered with the show & edit actions disabled" do
|
81
|
-
before do
|
82
|
-
load_resources do
|
83
|
-
active_admin_namespace.register(Post) do
|
84
|
-
actions :all, except: [:show, :edit]
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
it "should return the display name of the object" do
|
89
|
-
expect(auto_link(post)).to eq "Hello World"
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|