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,138 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe MethodOrProcHelper do
|
4
|
-
let(:receiver) { double }
|
5
|
-
|
6
|
-
let(:context) do
|
7
|
-
obj = double receiver_in_context: receiver
|
8
|
-
obj.extend MethodOrProcHelper
|
9
|
-
obj
|
10
|
-
end
|
11
|
-
|
12
|
-
describe "#call_method_or_exec_proc" do
|
13
|
-
|
14
|
-
it "should call the method in the context when a symbol" do
|
15
|
-
expect(context.call_method_or_exec_proc(:receiver_in_context)).to eq receiver
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should call the method in the context when a string" do
|
19
|
-
expect(context.call_method_or_exec_proc("receiver_in_context")).to eq receiver
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should exec a proc in the context" do
|
23
|
-
test_proc = Proc.new{ raise "Success" if receiver_in_context }
|
24
|
-
|
25
|
-
expect {
|
26
|
-
context.call_method_or_exec_proc(test_proc)
|
27
|
-
}.to raise_error("Success")
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
describe "#call_method_or_proc_on" do
|
33
|
-
|
34
|
-
[:hello, 'hello'].each do |key|
|
35
|
-
context "when a #{key.class}" do
|
36
|
-
it "should call the method on the receiver" do
|
37
|
-
expect(receiver).to receive(key).and_return 'hello'
|
38
|
-
|
39
|
-
expect(context.call_method_or_proc_on(receiver, key)).to eq 'hello'
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should receive additional arguments" do
|
43
|
-
expect(receiver).to receive(key).with(:world).and_return 'hello world'
|
44
|
-
|
45
|
-
expect(context.call_method_or_proc_on(receiver, key, :world)).to eq 'hello world'
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
context "when a proc" do
|
51
|
-
|
52
|
-
it "should exec the block in the context and pass in the receiver" do
|
53
|
-
test_proc = Proc.new do |arg|
|
54
|
-
raise "Success!" if arg == receiver_in_context
|
55
|
-
end
|
56
|
-
|
57
|
-
expect {
|
58
|
-
context.call_method_or_proc_on(receiver, test_proc)
|
59
|
-
}.to raise_error("Success!")
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should receive additional arguments" do
|
63
|
-
test_proc = Proc.new do |arg1, arg2|
|
64
|
-
raise "Success!" if arg1 == receiver_in_context && arg2 == "Hello"
|
65
|
-
end
|
66
|
-
|
67
|
-
expect {
|
68
|
-
context.call_method_or_proc_on(receiver, test_proc, "Hello")
|
69
|
-
}.to raise_error("Success!")
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
context "when a proc and exec: false" do
|
75
|
-
|
76
|
-
it "should call the proc and pass in the receiver" do
|
77
|
-
obj_not_in_context = double
|
78
|
-
|
79
|
-
test_proc = Proc.new do |arg|
|
80
|
-
raise "Success!" if arg == receiver && obj_not_in_context
|
81
|
-
end
|
82
|
-
|
83
|
-
expect {
|
84
|
-
context.call_method_or_proc_on(receiver, test_proc, exec: false)
|
85
|
-
}.to raise_error("Success!")
|
86
|
-
end
|
87
|
-
|
88
|
-
end
|
89
|
-
|
90
|
-
end
|
91
|
-
|
92
|
-
describe "#render_or_call_method_or_proc_on" do
|
93
|
-
[ :symbol, Proc.new{} ].each do |key|
|
94
|
-
context "when a #{key.class}" do
|
95
|
-
it "should call #call_method_or_proc_on" do
|
96
|
-
options = { foo: :bar }
|
97
|
-
expect(context).to receive(:call_method_or_proc_on).with(receiver, key, options).and_return("data")
|
98
|
-
expect(context.render_or_call_method_or_proc_on(receiver, key, options)).to eq "data"
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
context "when a string" do
|
104
|
-
it "should return the string" do
|
105
|
-
expect(context.render_or_call_method_or_proc_on(receiver, "string")).to eq "string"
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
describe "#render_in_context" do
|
111
|
-
let(:args) { [1, 2, 3] }
|
112
|
-
|
113
|
-
context "when a Proc" do
|
114
|
-
let(:object) { Proc.new { } }
|
115
|
-
|
116
|
-
it "should instance_exec the Proc" do
|
117
|
-
expect(receiver).to receive(:instance_exec).with(args, &object).and_return("data")
|
118
|
-
expect(context.render_in_context(receiver, object, args)).to eq "data"
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
context "when a Symbol" do
|
123
|
-
it "should send the symbol" do
|
124
|
-
expect(receiver).to receive(:public_send).with(:symbol, args).and_return("data")
|
125
|
-
expect(context.render_in_context(receiver, :symbol, args)).to eq "data"
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
context "when a Object (not Proc or String)" do
|
130
|
-
let(:object) { Object.new }
|
131
|
-
|
132
|
-
it "should return the Object" do
|
133
|
-
expect(context.render_in_context(receiver, object)).to eq object
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
end
|
@@ -1,271 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Views::AttributesTable do
|
4
|
-
|
5
|
-
describe "creating with the dsl" do
|
6
|
-
let(:helpers) { action_view }
|
7
|
-
|
8
|
-
let(:post) do
|
9
|
-
post = Post.new title: "Hello World", body: nil
|
10
|
-
allow(post).to receive(:id){ 1 }
|
11
|
-
allow(post).to receive(:new_record?){ false }
|
12
|
-
post
|
13
|
-
end
|
14
|
-
|
15
|
-
let(:assigns){ { post: post } }
|
16
|
-
|
17
|
-
# Loop through a few different ways to make the same table
|
18
|
-
# and ensure that they produce the same results
|
19
|
-
{
|
20
|
-
"when attributes are passed in to the builder methods" => proc {
|
21
|
-
render_arbre_component(assigns) {
|
22
|
-
attributes_table_for post, :id, :title, :body
|
23
|
-
}
|
24
|
-
},
|
25
|
-
"when attributes are built using the block" => proc {
|
26
|
-
render_arbre_component(assigns) {
|
27
|
-
attributes_table_for post do
|
28
|
-
rows :id, :title, :body
|
29
|
-
end
|
30
|
-
}
|
31
|
-
},
|
32
|
-
"when each attribute is passed in by itself" => proc {
|
33
|
-
render_arbre_component(assigns) {
|
34
|
-
attributes_table_for post do
|
35
|
-
row :id
|
36
|
-
row :title
|
37
|
-
row :body
|
38
|
-
end
|
39
|
-
}
|
40
|
-
},
|
41
|
-
"when you create each row with a custom block" => proc {
|
42
|
-
render_arbre_component(assigns) {
|
43
|
-
attributes_table_for post do
|
44
|
-
row("Id") { post.id }
|
45
|
-
row("Title"){ post.title }
|
46
|
-
row("Body") { post.body }
|
47
|
-
end
|
48
|
-
}
|
49
|
-
},
|
50
|
-
"when you create each row with a custom block that returns nil" => proc {
|
51
|
-
render_arbre_component(assigns) {
|
52
|
-
attributes_table_for post do
|
53
|
-
row("Id") { text_node post.id; nil }
|
54
|
-
row("Title"){ text_node post.title; nil }
|
55
|
-
row("Body") { text_node post.body; nil }
|
56
|
-
end
|
57
|
-
}
|
58
|
-
},
|
59
|
-
}.each do |context_title, table_decleration|
|
60
|
-
context context_title do
|
61
|
-
let(:table) { instance_eval &table_decleration }
|
62
|
-
|
63
|
-
it "should render a div wrapper with the class '.attributes_table'" do
|
64
|
-
expect(table.tag_name).to eq 'div'
|
65
|
-
expect(table.attr(:class)).to include('attributes_table')
|
66
|
-
end
|
67
|
-
|
68
|
-
it "should add id and type class" do
|
69
|
-
expect(table.class_names).to include("post")
|
70
|
-
expect(table.id).to eq "attributes_table_post_1"
|
71
|
-
end
|
72
|
-
|
73
|
-
it "should render 3 rows" do
|
74
|
-
expect(table.find_by_tag("tr").size).to eq 3
|
75
|
-
end
|
76
|
-
|
77
|
-
describe "rendering the rows" do
|
78
|
-
[
|
79
|
-
["Id" , "1"],
|
80
|
-
["Title" , "Hello World"],
|
81
|
-
["Body" , "<span class=\"empty\">Empty</span>"]
|
82
|
-
].each_with_index do |(title, content), i|
|
83
|
-
describe "for #{title}" do
|
84
|
-
let(:current_row){ table.find_by_tag("tr")[i] }
|
85
|
-
|
86
|
-
it "should have the title '#{title}'" do
|
87
|
-
expect(current_row.find_by_tag("th").first.content).to eq title
|
88
|
-
end
|
89
|
-
|
90
|
-
it "should have the content '#{content}'" do
|
91
|
-
expect(current_row.find_by_tag("td").first.content.chomp.strip).to eq content
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end # describe rendering rows
|
96
|
-
|
97
|
-
end
|
98
|
-
end # describe dsl styles
|
99
|
-
|
100
|
-
it "should add a class for each row based on the col name" do
|
101
|
-
table = render_arbre_component(assigns) {
|
102
|
-
attributes_table_for(post) do
|
103
|
-
row :title
|
104
|
-
row :created_at
|
105
|
-
end
|
106
|
-
}
|
107
|
-
expect(table.find_by_tag("tr").first.to_s.
|
108
|
-
split("\n").first.lstrip).
|
109
|
-
to eq '<tr class="row row-title">'
|
110
|
-
|
111
|
-
expect(table.find_by_tag("tr").last.to_s.
|
112
|
-
split("\n").first.lstrip).
|
113
|
-
to eq '<tr class="row row-created_at">'
|
114
|
-
end
|
115
|
-
|
116
|
-
it "should allow html options for the row itself" do
|
117
|
-
table = render_arbre_component(assigns) {
|
118
|
-
attributes_table_for(post) do
|
119
|
-
row("Wee", class: "custom_row", style: "custom_style") { }
|
120
|
-
end
|
121
|
-
}
|
122
|
-
expect(table.find_by_tag("tr").first.to_s.split("\n").first.lstrip).
|
123
|
-
to eq '<tr class="row custom_row" style="custom_style">'
|
124
|
-
end
|
125
|
-
|
126
|
-
it "should allow html content inside the attributes table" do
|
127
|
-
table = render_arbre_component(assigns) {
|
128
|
-
attributes_table_for(post) do
|
129
|
-
row("ID"){ span(post.id, class: 'id') }
|
130
|
-
end
|
131
|
-
}
|
132
|
-
expect(table.find_by_tag("td").first.content.chomp.strip).to eq "<span class=\"id\">1</span>"
|
133
|
-
end
|
134
|
-
|
135
|
-
context 'an attribute ending in _id' do
|
136
|
-
before do
|
137
|
-
post.foo_id = 23
|
138
|
-
post.author = User.new username: 'john_doe', first_name: 'John', last_name: 'Doe'
|
139
|
-
end
|
140
|
-
it 'should call the association if one exists' do
|
141
|
-
table = render_arbre_component assigns do
|
142
|
-
attributes_table_for post, :author
|
143
|
-
end
|
144
|
-
expect(table.find_by_tag('th').first.content).to eq 'Author'
|
145
|
-
expect(table.find_by_tag('td').first.content).to eq 'John Doe'
|
146
|
-
end
|
147
|
-
it 'should not attempt to call a nonexistant association' do
|
148
|
-
table = render_arbre_component assigns do
|
149
|
-
attributes_table_for post, :foo_id
|
150
|
-
end
|
151
|
-
expect(table.find_by_tag('th').first.content).to eq 'Foo'
|
152
|
-
expect(table.find_by_tag('td').first.content).to eq '23'
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
context "with a collection" do
|
157
|
-
let(:posts) do
|
158
|
-
[Post.new(title: "Hello World", id: 1), Post.new(title: "Multi Column", id: 2)].each_with_index do |post, index|
|
159
|
-
allow(post).to receive(:id).and_return(index + 1)
|
160
|
-
allow(post).to receive(:new_record?).and_return(false)
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
let(:assigns) { { posts: posts } }
|
165
|
-
|
166
|
-
let(:table) do
|
167
|
-
render_arbre_component(assigns) do
|
168
|
-
attributes_table_for posts, :id, :title
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
it "does not set id on the table" do
|
173
|
-
expect(table.attr(:id)).to eq nil
|
174
|
-
end
|
175
|
-
|
176
|
-
context "colgroup" do
|
177
|
-
let(:cols) { table.find_by_tag "col" }
|
178
|
-
|
179
|
-
it "contains a col for each record (plus headers)" do
|
180
|
-
expect(cols.size).to eq (2 + 1)
|
181
|
-
end
|
182
|
-
|
183
|
-
it "assigns an id to each col" do
|
184
|
-
cols[1..-1].each_with_index do |col, index|
|
185
|
-
expect(col.id).to eq "attributes_table_post_#{index + 1}"
|
186
|
-
end
|
187
|
-
end
|
188
|
-
|
189
|
-
it "assigns a class to each col" do
|
190
|
-
cols[1..-1].each_with_index do |col, index|
|
191
|
-
expect(col.class_names).to include("post")
|
192
|
-
end
|
193
|
-
end
|
194
|
-
|
195
|
-
it "assigns alternation classes to each col" do
|
196
|
-
cols[1..-1].each_with_index do |col, index|
|
197
|
-
expect(col.class_names).to include(["even", "odd"][index % 2])
|
198
|
-
end
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
202
|
-
context "when rendering the rows" do
|
203
|
-
it "should contain 3 columns" do
|
204
|
-
expect(table.find_by_tag("tr").first.children.size).to eq 3
|
205
|
-
end
|
206
|
-
|
207
|
-
[
|
208
|
-
["Id" , "1", "2"],
|
209
|
-
["Title", "Hello World", "Multi Column"],
|
210
|
-
].each_with_index do |set, i|
|
211
|
-
describe "for #{set[0]}" do
|
212
|
-
let(:title){ set[0] }
|
213
|
-
let(:content){ set[1] }
|
214
|
-
let(:current_row){ table.find_by_tag("tr")[i] }
|
215
|
-
|
216
|
-
it "should have the title '#{set[0]}'" do
|
217
|
-
expect(current_row.find_by_tag("th").first.content).to eq title
|
218
|
-
end
|
219
|
-
|
220
|
-
context "with defined attribute name translation" do
|
221
|
-
it "should have the translated attribute name in the title" do
|
222
|
-
with_translation activerecord: {attributes: {post: {title: 'Translated Title', id: 'Translated Id'}}} do
|
223
|
-
expect(current_row.find_by_tag("th").first.content).to eq "Translated #{title}"
|
224
|
-
end
|
225
|
-
end
|
226
|
-
end
|
227
|
-
|
228
|
-
set[1..-1].each_with_index do |content, index|
|
229
|
-
it "column #{index} should have the content '#{content}'" do
|
230
|
-
expect(current_row.find_by_tag("td")[index].content.chomp.strip).to eq content
|
231
|
-
end
|
232
|
-
end
|
233
|
-
end
|
234
|
-
end
|
235
|
-
end # describe rendering rows
|
236
|
-
end # with a collection
|
237
|
-
|
238
|
-
context "when using a single Hash" do
|
239
|
-
let(:table) do
|
240
|
-
render_arbre_component nil, helpers do
|
241
|
-
attributes_table_for foo: 1, bar: 2 do
|
242
|
-
row :foo
|
243
|
-
row :bar
|
244
|
-
end
|
245
|
-
end
|
246
|
-
end
|
247
|
-
it "should render" do
|
248
|
-
expect(table.find_by_tag("th")[0].content).to eq "Foo"
|
249
|
-
expect(table.find_by_tag("th")[1].content).to eq "Bar"
|
250
|
-
expect(table.find_by_tag("td")[0].content).to eq "1"
|
251
|
-
expect(table.find_by_tag("td")[1].content).to eq "2"
|
252
|
-
end
|
253
|
-
end
|
254
|
-
|
255
|
-
context "when using an Array of Hashes" do
|
256
|
-
let(:table) do
|
257
|
-
render_arbre_component nil, helpers do
|
258
|
-
attributes_table_for [{foo: 1}, {foo: 2}] do
|
259
|
-
row :foo
|
260
|
-
end
|
261
|
-
end
|
262
|
-
end
|
263
|
-
it "should render" do
|
264
|
-
expect(table.find_by_tag("th")[0].content).to eq "Foo"
|
265
|
-
expect(table.find_by_tag("td")[0].content).to eq "1"
|
266
|
-
expect(table.find_by_tag("td")[1].content).to eq "2"
|
267
|
-
end
|
268
|
-
end
|
269
|
-
end
|
270
|
-
|
271
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
require 'active_admin/batch_actions/views/batch_action_selector'
|
3
|
-
|
4
|
-
RSpec.describe ActiveAdmin::BatchActions::BatchActionSelector do
|
5
|
-
|
6
|
-
let(:dropdown) do
|
7
|
-
render_arbre_component do
|
8
|
-
batch_action_selector [
|
9
|
-
ActiveAdmin::BatchAction.new(:action_1, "Action 1"),
|
10
|
-
ActiveAdmin::BatchAction.new(:action_2, "Action 2"),
|
11
|
-
ActiveAdmin::BatchAction.new(:action_3, "Action 3")
|
12
|
-
]
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
describe "the action list" do
|
17
|
-
subject do
|
18
|
-
dropdown.find_by_class("dropdown_menu_list").first
|
19
|
-
end
|
20
|
-
|
21
|
-
describe '#tag_name' do
|
22
|
-
subject { super().tag_name }
|
23
|
-
it { is_expected.to eql("ul") }
|
24
|
-
end
|
25
|
-
|
26
|
-
describe '#content' do
|
27
|
-
subject { super().content }
|
28
|
-
it{ is_expected.to include("class=\"batch_action\" data-action=\"action_1\"") }
|
29
|
-
end
|
30
|
-
|
31
|
-
describe '#content' do
|
32
|
-
subject { super().content }
|
33
|
-
it{ is_expected.to include("class=\"batch_action\" data-action=\"action_2\"") }
|
34
|
-
end
|
35
|
-
|
36
|
-
describe '#content' do
|
37
|
-
subject { super().content }
|
38
|
-
it{ is_expected.to include("class=\"batch_action\" data-action=\"action_3\"") }
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Views::BlankSlate do
|
4
|
-
|
5
|
-
describe "#blank_slate" do
|
6
|
-
subject do
|
7
|
-
render_arbre_component do
|
8
|
-
blank_slate("There are no Posts yet. <a href=\"/posts/new\">Create one</a></span>")
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
describe '#tag_name' do
|
13
|
-
subject { super().tag_name }
|
14
|
-
it { is_expected.to eql 'div' }
|
15
|
-
end
|
16
|
-
|
17
|
-
describe '#class_list' do
|
18
|
-
subject { super().class_list }
|
19
|
-
it { is_expected.to include('blank_slate_container') }
|
20
|
-
end
|
21
|
-
|
22
|
-
describe '#content' do
|
23
|
-
subject { super().content }
|
24
|
-
it { is_expected.to include '<span class="blank_slate">There are no Posts yet. <a href="/posts/new">Create one</a></span>' }
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,187 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Views::Columns do
|
4
|
-
|
5
|
-
describe "Rendering zero columns" do
|
6
|
-
let(:cols) do
|
7
|
-
render_arbre_component do
|
8
|
-
columns do
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should have the class .columns" do
|
14
|
-
expect(cols.class_list).to include("columns")
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should have one column" do
|
18
|
-
expect(cols.children.first.class_list).not_to include("column")
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe "Rendering one column" do
|
23
|
-
let(:cols) do
|
24
|
-
render_arbre_component do
|
25
|
-
columns do
|
26
|
-
column { span "Hello World" }
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should have the class .columns" do
|
32
|
-
expect(cols.class_list).to include("columns")
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should have one column" do
|
36
|
-
expect(cols.children.size).to eq 1
|
37
|
-
expect(cols.children.first.class_list).to include("column")
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should have one column with the width 100.0%" do
|
41
|
-
expect(cols.children.first.attr(:style)).to include("width: 100.0%")
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
describe "Rendering two columns" do
|
46
|
-
let(:cols) do
|
47
|
-
render_arbre_component do
|
48
|
-
columns do
|
49
|
-
column { span "Hello World" }
|
50
|
-
column { span "Hello World" }
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
it "should have two columns" do
|
56
|
-
expect(cols.children.size).to eq 2
|
57
|
-
end
|
58
|
-
|
59
|
-
it "should have a first column with width 49% and margin 2%" do
|
60
|
-
expect(cols.children.first.attr(:style)).to eq "width: 49.0%; margin-right: 2%;"
|
61
|
-
end
|
62
|
-
|
63
|
-
it "should have a second column with width 49% and no right margin" do
|
64
|
-
expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "Rendering four columns" do
|
69
|
-
let(:cols) do
|
70
|
-
render_arbre_component do
|
71
|
-
columns do
|
72
|
-
column { span "Hello World" }
|
73
|
-
column { span "Hello World" }
|
74
|
-
column { span "Hello World" }
|
75
|
-
column { span "Hello World" }
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
it "should have four columns" do
|
81
|
-
expect(cols.children.size).to eq 4
|
82
|
-
end
|
83
|
-
|
84
|
-
(0..2).to_a.each do |index|
|
85
|
-
it "should have column #{index + 1} with width 49% and margin 2%" do
|
86
|
-
expect(cols.children[index].attr(:style)).to eq "width: 23.5%; margin-right: 2%;"
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
it "should have column 4 with width 49% and no margin" do
|
91
|
-
expect(cols.children[3].attr(:style)).to eq "width: 23.5%;"
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
describe "Column Spans" do
|
96
|
-
let(:cols) do
|
97
|
-
render_arbre_component do
|
98
|
-
columns do
|
99
|
-
column(span: 2){ "Hello World" }
|
100
|
-
column(){ "Hello World" }
|
101
|
-
column(){ "Hello World" }
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
it "should set the span when declared" do
|
107
|
-
expect(cols.children.first.attr(:style)).to eq "width: 49.0%; margin-right: 2%;"
|
108
|
-
end
|
109
|
-
|
110
|
-
it "should default to 1 if not passed in" do
|
111
|
-
expect(cols.children.last.attr(:style)).to eq "width: 23.5%;"
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
describe "Column max width" do
|
116
|
-
|
117
|
-
let(:cols) do
|
118
|
-
render_arbre_component do
|
119
|
-
columns do
|
120
|
-
column(max_width: "100px"){ "Hello World" }
|
121
|
-
column(){ "Hello World" }
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
it "should set the max with if passed in" do
|
127
|
-
expect(cols.children.first.attr(:style)).to eq "width: 49.0%; max-width: 100px; margin-right: 2%;"
|
128
|
-
end
|
129
|
-
|
130
|
-
it "should omit the value if not present" do
|
131
|
-
expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
|
132
|
-
end
|
133
|
-
|
134
|
-
context "when passed an integer value" do
|
135
|
-
let(:cols) do
|
136
|
-
render_arbre_component do
|
137
|
-
columns do
|
138
|
-
column(max_width: 100){ "Hello World" }
|
139
|
-
column(){ "Hello World" }
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
it "should be treated as pixels" do
|
145
|
-
expect(cols.children.first.attr(:style)).to eq "width: 49.0%; max-width: 100px; margin-right: 2%;"
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
end
|
150
|
-
|
151
|
-
describe "Column min width" do
|
152
|
-
|
153
|
-
let(:cols) do
|
154
|
-
render_arbre_component do
|
155
|
-
columns do
|
156
|
-
column(min_width: "100px"){ "Hello World" }
|
157
|
-
column(){ "Hello World" }
|
158
|
-
end
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
it "should set the min with if passed in" do
|
163
|
-
expect(cols.children.first.attr(:style)).to eq "width: 49.0%; min-width: 100px; margin-right: 2%;"
|
164
|
-
end
|
165
|
-
|
166
|
-
it "should omit the value if not present" do
|
167
|
-
expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
|
168
|
-
end
|
169
|
-
|
170
|
-
context "when passed an integer value" do
|
171
|
-
let(:cols) do
|
172
|
-
render_arbre_component do
|
173
|
-
columns do
|
174
|
-
column(min_width: 100){ "Hello World" }
|
175
|
-
column(){ "Hello World" }
|
176
|
-
end
|
177
|
-
end
|
178
|
-
end
|
179
|
-
|
180
|
-
it "should be treated as pixels" do
|
181
|
-
expect(cols.children.first.attr(:style)).to eq "width: 49.0%; min-width: 100px; margin-right: 2%;"
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
end
|
186
|
-
|
187
|
-
end
|