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,67 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Views::Tabs do
|
4
|
-
describe "creating with the dsl" do
|
5
|
-
context "when creating tabs with a symbol" do
|
6
|
-
before do
|
7
|
-
expect(I18n).to receive(:t).at_least(:once).with(:tab_key).and_return "テスト"
|
8
|
-
end
|
9
|
-
|
10
|
-
let(:tabs) do
|
11
|
-
render_arbre_component do
|
12
|
-
tabs do
|
13
|
-
tab :overview
|
14
|
-
tab I18n.t(:tab_key), { id: :something_unique }
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
let(:subject) { Capybara.string(tabs.to_s) }
|
20
|
-
|
21
|
-
it "should create a tab navigation bar based on the symbol" do
|
22
|
-
expect(subject).to have_content('Overview')
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should have tab with id based on symbol" do
|
26
|
-
expect(subject).to have_selector('div#overview')
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should have link with fragment based on symbol" do
|
30
|
-
expect(subject).to have_selector('a[href="#overview"]')
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should handle translation" do
|
34
|
-
expect(subject).to have_content('テスト')
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should have tab with id based on options" do
|
38
|
-
expect(subject).to have_selector('div#something_unique')
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should have link with fragment based on options" do
|
42
|
-
expect(subject).to have_selector('a[href="#something_unique"]')
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
context "when creating a tab with a block" do
|
48
|
-
let(:tabs) do
|
49
|
-
render_arbre_component do
|
50
|
-
tabs do
|
51
|
-
tab :overview do
|
52
|
-
span 'tab 1'
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
it "should create a tab navigation bar based on the symbol" do
|
59
|
-
expect(tabs.find_by_tag('li').first.content).to include "Overview"
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should create a tab with a span inside of it" do
|
63
|
-
expect(tabs.find_by_tag('span').first.content).to eq('tab 1')
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Views::UnsupportedBrowser do
|
4
|
-
let(:helpers){ mock_action_view }
|
5
|
-
let(:namespace) { double :namespace, unsupported_browser_matcher: /MSIE [1-8]\.0/ }
|
6
|
-
let(:component) { double :unsupported_browser_component }
|
7
|
-
let(:view_factory) { double :view_factory, unsupported_browser: component }
|
8
|
-
let(:base) { ActiveAdmin::Views::Pages::Base.new }
|
9
|
-
|
10
|
-
def build_panel
|
11
|
-
render_arbre_component({}, helpers) do
|
12
|
-
insert_tag ActiveAdmin::Views::UnsupportedBrowser
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should render the panel" do
|
17
|
-
expect(I18n).to receive(:t).and_return("headline", "recommendation" , "turn_off_compatibility_view")
|
18
|
-
expect(build_panel.content.gsub(/\s+/, "")).to eq "<h1>headline</h1><p>recommendation</p><p>turn_off_compatibility_view</p>"
|
19
|
-
end
|
20
|
-
|
21
|
-
describe "ActiveAdmin::Views::Pages::Base behavior" do
|
22
|
-
context "when the reqex match" do
|
23
|
-
it "should build the unsupported browser panel" do
|
24
|
-
expect(base).to receive(:active_admin_namespace).and_return(namespace)
|
25
|
-
expect(base).to receive_message_chain(:controller, :request, :user_agent).and_return("Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.2; Trident/6.0)")
|
26
|
-
expect(base).to receive(:view_factory).and_return(view_factory)
|
27
|
-
expect(base).to receive(:insert_tag).with(component)
|
28
|
-
base.send(:build_unsupported_browser)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
context "when the regex not match" do
|
33
|
-
it "should not build the unsupported browser panel" do
|
34
|
-
expect(base).to receive(:active_admin_namespace).and_return(namespace)
|
35
|
-
expect(base).to receive_message_chain(:controller, :request, :user_agent).and_return("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)")
|
36
|
-
expect(base).to receive(:insert_tag).never
|
37
|
-
base.send(:build_unsupported_browser)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
include ActiveAdmin
|
4
|
-
RSpec.describe ActiveAdmin::Views::IndexAsBlog do
|
5
|
-
subject { described_class.new }
|
6
|
-
|
7
|
-
describe '#build' do
|
8
|
-
let(:page_presenter) { double('page_presenter', block: nil) }
|
9
|
-
let(:collection) { double('collection') }
|
10
|
-
|
11
|
-
before do
|
12
|
-
expect(subject).to receive('build_posts')
|
13
|
-
expect(subject).to receive('add_class').with('index')
|
14
|
-
end
|
15
|
-
|
16
|
-
context 'when page_presenter has no block' do
|
17
|
-
before do
|
18
|
-
subject.build(page_presenter, collection)
|
19
|
-
end
|
20
|
-
|
21
|
-
it do
|
22
|
-
expect(subject.instance_variable_get(:@page_presenter))
|
23
|
-
.to eq(page_presenter)
|
24
|
-
expect(subject.instance_variable_get(:@collection)).to eq(collection)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
context 'when page_presenter has block' do
|
29
|
-
let(:block) { Proc.new { double('proc_method') } }
|
30
|
-
|
31
|
-
before do
|
32
|
-
allow(page_presenter).to receive(:block).and_return(block)
|
33
|
-
allow(subject).to receive('instance_exec')
|
34
|
-
subject.build(page_presenter, collection)
|
35
|
-
end
|
36
|
-
|
37
|
-
it do
|
38
|
-
expect(subject).to have_received('instance_exec')
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
%w(title body).each do |method|
|
44
|
-
describe "#{method}" do
|
45
|
-
context 'when block given' do
|
46
|
-
let(:block_result) { double('block_result') }
|
47
|
-
|
48
|
-
it "should use the block to set the #{method}" do
|
49
|
-
expect(
|
50
|
-
subject.public_send("#{method}") do
|
51
|
-
block_result
|
52
|
-
end.yield
|
53
|
-
).to eq(block_result)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context 'when no block and method given' do
|
58
|
-
let(:method) { double('method') }
|
59
|
-
|
60
|
-
it "should use method to set the #{method}" do
|
61
|
-
expect(subject.public_send("#{method}", method)).to eq(method)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
context 'when no block and no method given' do
|
66
|
-
it 'should be nil' do
|
67
|
-
expect(subject.public_send("#{method}")).to eq(nil)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
describe '.index_name' do
|
74
|
-
it { expect(described_class.index_name).to eq('blog') }
|
75
|
-
end
|
76
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Views::Pages::Form do
|
4
|
-
describe "#title" do
|
5
|
-
let!(:application){ ActiveAdmin::Application.new }
|
6
|
-
let(:namespace){ ActiveAdmin::Namespace.new(application, "Admin") }
|
7
|
-
let!(:http_params){ { controller: "UsersController", action: "edit" } }
|
8
|
-
let!(:params) { ActionController::Parameters.new(http_params) }
|
9
|
-
|
10
|
-
let(:helpers) do
|
11
|
-
helpers = mock_action_view
|
12
|
-
allow(helpers).to receive(:active_admin_config).and_return(namespace.register(Post))
|
13
|
-
allow(helpers).to receive(:params).and_return(params)
|
14
|
-
helpers
|
15
|
-
end
|
16
|
-
|
17
|
-
let(:arbre_context) do
|
18
|
-
OpenStruct.new(params: params, helpers: helpers, assigns: {})
|
19
|
-
end
|
20
|
-
|
21
|
-
context "when :title is set" do
|
22
|
-
it "should show the set page title" do
|
23
|
-
|
24
|
-
page = ActiveAdmin::Views::Pages::Form.new(arbre_context)
|
25
|
-
expect(page).to receive(:resource)
|
26
|
-
expect(page).to receive(:form_presenter).twice.and_return({ title: "My Page Title" })
|
27
|
-
expect(page.title).to eq "My Page Title"
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
context "when page_title is assigned" do
|
32
|
-
it "should show the set page title" do
|
33
|
-
arbre_context.assigns[:page_title] = "My Page Title"
|
34
|
-
page = ActiveAdmin::Views::Pages::Form.new(arbre_context)
|
35
|
-
expect(page.title).to eq "My Page Title"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
context "when page_title is not assigned" do
|
40
|
-
{
|
41
|
-
"new" => "New Post",
|
42
|
-
"create" => "New Post",
|
43
|
-
"edit" => "Edit Post",
|
44
|
-
"update" => "Edit Post"
|
45
|
-
}.each do |action, title|
|
46
|
-
it "should show the correct I18n text on the #{action} action" do
|
47
|
-
params[:action] = action
|
48
|
-
page = ActiveAdmin::Views::Pages::Form.new(arbre_context)
|
49
|
-
expect(page.title).to eq title
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Views::Pages::Index do
|
4
|
-
describe "#title" do
|
5
|
-
let!(:application){ ActiveAdmin::Application.new }
|
6
|
-
let(:namespace){ ActiveAdmin::Namespace.new(application, "Admin") }
|
7
|
-
let!(:params){ ActionController::Parameters.new(controller: "UsersController", action: "edit") }
|
8
|
-
let(:helpers) do
|
9
|
-
helpers = mock_action_view
|
10
|
-
allow(helpers).to receive(:active_admin_config).and_return(namespace.register(Post))
|
11
|
-
allow(helpers).to receive(:params).and_return(params)
|
12
|
-
helpers
|
13
|
-
end
|
14
|
-
|
15
|
-
let(:arbre_context) do
|
16
|
-
OpenStruct.new(params: params, helpers: helpers, assigns: {})
|
17
|
-
end
|
18
|
-
|
19
|
-
context "when config[:title] is assigned" do
|
20
|
-
context "with a Proc" do
|
21
|
-
it "should return the value of the assigned Proc" do
|
22
|
-
page = ActiveAdmin::Views::Pages::Index.new(arbre_context)
|
23
|
-
allow(page).to receive(:config).and_return(title: ->{ "My Page Title" })
|
24
|
-
expect(page.title).to eq "My Page Title"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
context "with a String" do
|
29
|
-
it "should return the assigned String" do
|
30
|
-
page = ActiveAdmin::Views::Pages::Index.new(arbre_context)
|
31
|
-
allow(page).to receive(:config).and_return(title: ->{ "My Page Title" })
|
32
|
-
expect(page.title).to eq "My Page Title"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context "with a Integer" do
|
37
|
-
it "should return the Integer" do
|
38
|
-
page = ActiveAdmin::Views::Pages::Index.new(arbre_context)
|
39
|
-
allow(page).to receive(:config).and_return(title: 1)
|
40
|
-
expect(page.title).to eq 1
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context "when page_title is assigned" do
|
46
|
-
it "should return the set page title" do
|
47
|
-
arbre_context.assigns[:page_title] = "My Page Title"
|
48
|
-
page = ActiveAdmin::Views::Pages::Index.new(arbre_context)
|
49
|
-
expect(page.title).to eq "My Page Title"
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
context "when page_title is not assigned" do
|
54
|
-
it "should return the correct I18n text" do
|
55
|
-
page = ActiveAdmin::Views::Pages::Index.new(arbre_context)
|
56
|
-
expect(page.title).to eq "Posts"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Views::Pages::Layout do
|
4
|
-
|
5
|
-
let(:assigns){ {} }
|
6
|
-
let(:helpers) do
|
7
|
-
helpers = mock_action_view
|
8
|
-
|
9
|
-
{ active_admin_application: active_admin_application,
|
10
|
-
active_admin_config: double('Config', action_items?: nil, breadcrumb: nil, sidebar_sections?: nil),
|
11
|
-
active_admin_namespace: active_admin_namespace,
|
12
|
-
csrf_meta_tag: '',
|
13
|
-
current_active_admin_user: nil,
|
14
|
-
current_active_admin_user?: false,
|
15
|
-
current_menu: double('Menu', items: []),
|
16
|
-
params: {controller: 'UsersController', action: 'edit'},
|
17
|
-
env: {}
|
18
|
-
}.each do |method, returns|
|
19
|
-
allow(helpers).to receive(method).and_return returns
|
20
|
-
end
|
21
|
-
|
22
|
-
helpers
|
23
|
-
end
|
24
|
-
|
25
|
-
let(:active_admin_namespace){ ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :myspace) }
|
26
|
-
let(:active_admin_application){ ActiveAdmin.application }
|
27
|
-
let(:view_factory) { ActiveAdmin::ViewFactory.new }
|
28
|
-
|
29
|
-
let(:layout) do
|
30
|
-
render_arbre_component assigns, helpers do
|
31
|
-
insert_tag ActiveAdmin::Views::Pages::Layout
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should be the @page_title if assigned in the controller" do
|
36
|
-
assigns[:page_title] = "My Page Title"
|
37
|
-
|
38
|
-
expect(layout.title).to eq "My Page Title"
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should be the default translation" do
|
42
|
-
helpers.params[:action] = "edit"
|
43
|
-
|
44
|
-
expect(layout.title).to eq "Edit"
|
45
|
-
end
|
46
|
-
|
47
|
-
describe "the body" do
|
48
|
-
|
49
|
-
it "should have class 'active_admin'" do
|
50
|
-
expect(layout.build.class_list).to include 'active_admin'
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should have namespace class" do
|
54
|
-
expect(layout.build.class_list).to include "#{active_admin_namespace.name}_namespace"
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Views::Pages::Show do
|
4
|
-
|
5
|
-
describe "the resource" do
|
6
|
-
let(:helpers) { double resource: resource }
|
7
|
-
let(:arbre_context) { Arbre::Context.new({}, helpers) }
|
8
|
-
subject(:page) { ActiveAdmin::Views::Pages::Show.new(arbre_context) }
|
9
|
-
|
10
|
-
context 'when the resource does not respond to #decorator' do
|
11
|
-
let(:resource) { 'Test Resource' }
|
12
|
-
|
13
|
-
it "normally returns the resource" do
|
14
|
-
expect(page.resource).to eq 'Test Resource'
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
context 'when you pass a block to main content' do
|
19
|
-
let(:block) { lambda { } }
|
20
|
-
let(:resource) { double('resource') }
|
21
|
-
|
22
|
-
before { allow(page).to receive(:active_admin_config).and_return(double(comments?: false, resource_columns: [:field]))}
|
23
|
-
|
24
|
-
it 'appends it to the output' do
|
25
|
-
expect(page).to receive(:attributes_table).with(:field).and_yield
|
26
|
-
page.default_main_content(&block)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
@@ -1,158 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Views::TabbedNavigation do
|
4
|
-
|
5
|
-
let(:menu){ ActiveAdmin::Menu.new }
|
6
|
-
|
7
|
-
let(:assigns){ { active_admin_menu: menu } }
|
8
|
-
let(:helpers){ mock_action_view }
|
9
|
-
|
10
|
-
let(:tabbed_navigation) do
|
11
|
-
arbre(assigns, helpers) {
|
12
|
-
insert_tag(ActiveAdmin::Views::TabbedNavigation, active_admin_menu)
|
13
|
-
}.children.first
|
14
|
-
end
|
15
|
-
|
16
|
-
let(:html) { Capybara.string(tabbed_navigation.to_s) }
|
17
|
-
|
18
|
-
before do
|
19
|
-
load_resources { ActiveAdmin.register Post }
|
20
|
-
allow(helpers).to receive(:admin_logged_in?).and_return(false)
|
21
|
-
end
|
22
|
-
|
23
|
-
describe "rendering a menu" do
|
24
|
-
|
25
|
-
before do
|
26
|
-
menu.add label: "Blog Posts", url: :admin_posts_path
|
27
|
-
|
28
|
-
menu.add label: "Reports", url: "/admin/reports" do |reports|
|
29
|
-
reports.add label: "A Sub Reports", url: "/admin/a-sub-reports"
|
30
|
-
reports.add label: "B Sub Reports", url: "/admin/b-sub-reports"
|
31
|
-
reports.add label: proc{ "Label Proc Sub Reports" }, url: "/admin/label-proc-sub-reports", id: "Label Proc Sub Reports"
|
32
|
-
end
|
33
|
-
|
34
|
-
menu.add label: "Administration", url: "/admin/administration" do |administration|
|
35
|
-
administration.add label: "User administration",
|
36
|
-
url: '/admin/user-administration',
|
37
|
-
priority: 10,
|
38
|
-
if: proc { false }
|
39
|
-
end
|
40
|
-
|
41
|
-
menu.add label: "Management", url: "#" do |management|
|
42
|
-
management.add label: "Order management",
|
43
|
-
url: '/admin/order-management',
|
44
|
-
priority: 10,
|
45
|
-
if: proc { false }
|
46
|
-
management.add label: "Bill management",
|
47
|
-
url: '/admin/bill-management',
|
48
|
-
priority: 10,
|
49
|
-
if: :admin_logged_in?
|
50
|
-
end
|
51
|
-
|
52
|
-
menu.add label: "Charles Smith", id: "current_user", url: -> { nil }
|
53
|
-
end
|
54
|
-
|
55
|
-
it "should generate a ul" do
|
56
|
-
expect(html).to have_selector("ul")
|
57
|
-
end
|
58
|
-
|
59
|
-
it "should generate an li for each item" do
|
60
|
-
expect(html).to have_selector("ul > li")
|
61
|
-
end
|
62
|
-
|
63
|
-
it "should generate a link for each item" do
|
64
|
-
expect(html).to have_selector("a[href='/admin/posts']", text: "Blog Posts")
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should generate a nested list for children" do
|
68
|
-
expect(html).to have_selector("li > ul")
|
69
|
-
end
|
70
|
-
|
71
|
-
it "should generate a nested list with li for each child" do
|
72
|
-
expect(html).to have_selector("ul > li#a_sub_reports")
|
73
|
-
expect(html).to have_selector("ul > li#b_sub_reports")
|
74
|
-
end
|
75
|
-
|
76
|
-
it "should generate a valid id from a label proc" do
|
77
|
-
expect(html).to have_selector("ul > li#label_proc_sub_reports")
|
78
|
-
end
|
79
|
-
|
80
|
-
it "should not generate a link for user administration" do
|
81
|
-
expect(html).to_not have_selector("a[href='/admin/user-administration']", text: "User administration")
|
82
|
-
end
|
83
|
-
|
84
|
-
it "should generate the administration parent menu" do
|
85
|
-
expect(html).to have_selector("a[href='/admin/administration']", text: "Administration")
|
86
|
-
end
|
87
|
-
|
88
|
-
it "should not generate a link for order management" do
|
89
|
-
expect(html).to_not have_selector("a[href='/admin/order-management']", text: "Order management")
|
90
|
-
end
|
91
|
-
|
92
|
-
it "should not generate a link for bill management" do
|
93
|
-
expect(html).to_not have_selector("a[href='/admin/bill-management']", text: "Bill management")
|
94
|
-
end
|
95
|
-
|
96
|
-
it "should not generate the management parent menu" do
|
97
|
-
expect(html).to_not have_selector("a[href='#']", text: "Management")
|
98
|
-
end
|
99
|
-
|
100
|
-
context "when url is nil" do
|
101
|
-
it "should generate a span" do
|
102
|
-
selector = "li#current_user > span"
|
103
|
-
expect(html).to have_selector(selector, text: "Charles Smith")
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
describe "marking current item" do
|
108
|
-
|
109
|
-
it "should add the 'current' class to the li" do
|
110
|
-
assigns[:current_tab] = menu["Blog Posts"]
|
111
|
-
expect(html).to have_selector("li.current")
|
112
|
-
end
|
113
|
-
|
114
|
-
it "should add the 'current' and 'has_nested' classes to the li and 'current' to the sub li" do
|
115
|
-
assigns[:current_tab] = menu["Reports"]["A Sub Reports"]
|
116
|
-
expect(html).to have_selector("li#reports.current")
|
117
|
-
expect(html).to have_selector("li#reports.has_nested")
|
118
|
-
expect(html).to have_selector("li#a_sub_reports.current")
|
119
|
-
end
|
120
|
-
|
121
|
-
end
|
122
|
-
|
123
|
-
end
|
124
|
-
|
125
|
-
describe "returning the menu items to display" do
|
126
|
-
|
127
|
-
it "should return one item with no if block" do
|
128
|
-
menu.add label: "Hello World", url: "/"
|
129
|
-
expect(tabbed_navigation.menu_items).to eq menu.items
|
130
|
-
end
|
131
|
-
|
132
|
-
it "should not include menu items with an if block that returns false" do
|
133
|
-
menu.add label: "Don't Show", url: "/", priority: 10, if: proc{ false }
|
134
|
-
expect(tabbed_navigation.menu_items).to be_empty
|
135
|
-
end
|
136
|
-
|
137
|
-
it "should not include menu items with an if block that calls a method that returns false" do
|
138
|
-
menu.add label: "Don't Show", url: "/", priority: 10, if: :admin_logged_in?
|
139
|
-
expect(tabbed_navigation.menu_items).to be_empty
|
140
|
-
end
|
141
|
-
|
142
|
-
it "should not display any items that have no children to display" do
|
143
|
-
menu.add label: "Parent", url: "#" do |p|
|
144
|
-
p.add label: "Child", url: "/", priority: 10, if: proc{ false }
|
145
|
-
end
|
146
|
-
expect(tabbed_navigation.menu_items).to be_empty
|
147
|
-
end
|
148
|
-
|
149
|
-
it "should display a parent that has a child to display" do
|
150
|
-
menu.add label: "Parent", url: "#" do |p|
|
151
|
-
p.add label: "Hidden Child", url: "/", priority: 10, if: proc{ false }
|
152
|
-
p.add label: "Child", url: "/"
|
153
|
-
end
|
154
|
-
expect(tabbed_navigation.menu_items.size).to eq(1)
|
155
|
-
end
|
156
|
-
|
157
|
-
end
|
158
|
-
end
|
data/tasks/docs.rake
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
require 'yard'
|
2
|
-
require 'yard/rake/yardoc_task'
|
3
|
-
|
4
|
-
namespace :docs do
|
5
|
-
|
6
|
-
YARD::Rake::YardocTask.new do |t|
|
7
|
-
t.files = ['lib/**/*.rb']
|
8
|
-
t.options = ['--no-output']
|
9
|
-
end
|
10
|
-
|
11
|
-
def jekyll_redirect_string(filename)
|
12
|
-
<<-EOD.strip_heredoc
|
13
|
-
---
|
14
|
-
redirect_from: /docs/3-index-pages/#{filename}
|
15
|
-
---
|
16
|
-
|
17
|
-
EOD
|
18
|
-
end
|
19
|
-
|
20
|
-
def filename_from_module(mod)
|
21
|
-
mod.name.to_s.underscore.tr('_', '-')
|
22
|
-
end
|
23
|
-
|
24
|
-
def write_docstrings_to(path, mods)
|
25
|
-
mods.each do |mod|
|
26
|
-
filename = filename_from_module(mod)
|
27
|
-
|
28
|
-
File.open("#{path}/#{filename}.md", 'w+') do |f|
|
29
|
-
f << jekyll_redirect_string("#{filename}.html") + mod.docstring + "\n"
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def docs_syncronized?
|
35
|
-
# Do not print diff and yield whether exit code was zero
|
36
|
-
sh('git diff --quiet docs/3-index-pages') do |outcome, _|
|
37
|
-
return if outcome
|
38
|
-
|
39
|
-
# Output diff before raising error
|
40
|
-
sh('git diff docs/3-index-pages')
|
41
|
-
|
42
|
-
raise <<-MSG.strip_heredoc
|
43
|
-
The docs/3-index-pages directory is out of sync.
|
44
|
-
Run rake generate_cops_documentation and commit the results.
|
45
|
-
MSG
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
desc "Update docs in the docs folder"
|
50
|
-
task build: :yard do
|
51
|
-
require 'yard'
|
52
|
-
require 'active_support/all'
|
53
|
-
|
54
|
-
YARD::Registry.load!
|
55
|
-
views = YARD::Registry.at("ActiveAdmin::Views")
|
56
|
-
|
57
|
-
# Index Types
|
58
|
-
index_types = views.children.select{|obj| obj.name.to_s =~ /^IndexAs/ }
|
59
|
-
write_docstrings_to "docs/3-index-pages", index_types
|
60
|
-
|
61
|
-
docs_syncronized? if ENV["CI"]
|
62
|
-
end
|
63
|
-
|
64
|
-
end
|
data/tasks/lint.rake
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
desc "Lints ActiveAdmin code base"
|
2
|
-
task lint: ["lint:rubocop", "lint:mdl"]
|
3
|
-
|
4
|
-
namespace :lint do
|
5
|
-
require "rubocop/rake_task"
|
6
|
-
desc "Checks ruby code style with RuboCop"
|
7
|
-
RuboCop::RakeTask.new
|
8
|
-
|
9
|
-
desc "Checks markdown code style with Markdownlint"
|
10
|
-
task :mdl do
|
11
|
-
puts "Running mdl..."
|
12
|
-
|
13
|
-
targets = [
|
14
|
-
*Dir.glob("docs/**/*.md"),
|
15
|
-
"CONTRIBUTING.md",
|
16
|
-
".github/ISSUE_TEMPLATE.md"
|
17
|
-
]
|
18
|
-
|
19
|
-
abort unless system("mdl", *targets)
|
20
|
-
end
|
21
|
-
end
|
data/tasks/local.rake
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
desc 'Runs a command agains the local sample application'
|
2
|
-
task :local do
|
3
|
-
Rake::Task['setup'].invoke(false,
|
4
|
-
'.test-rails-apps',
|
5
|
-
'rails_template_with_data')
|
6
|
-
|
7
|
-
app_folder = ".test-rails-apps/rails-#{Rails::VERSION::STRING}"
|
8
|
-
|
9
|
-
# Discard the "local" argument (name of the task)
|
10
|
-
argv = ARGV[1..-1]
|
11
|
-
|
12
|
-
# If it's a rails command, or we're using Rails 5, auto add the rails script
|
13
|
-
rails_commands = %w(generate console server db dbconsole g c s runner)
|
14
|
-
|
15
|
-
if Rails::VERSION::MAJOR >= 5 || rails_commands.include?(argv[0])
|
16
|
-
argv.unshift('rails')
|
17
|
-
end
|
18
|
-
|
19
|
-
command = ['bundle', 'exec', *argv].join(' ')
|
20
|
-
env = { 'BUNDLE_GEMFILE' => ENV['BUNDLE_GEMFILE'] }
|
21
|
-
|
22
|
-
Dir.chdir(app_folder) do
|
23
|
-
Bundler.with_clean_env { Kernel.exec(env, command) }
|
24
|
-
end
|
25
|
-
end
|