yousty-activeadmin 1.0.4.pre → 1.0.5.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +261 -211
- data/CONTRIBUTING.md +73 -39
- data/Gemfile +38 -20
- data/Guardfile +1 -0
- data/LICENSE +1 -1
- data/README.md +48 -24
- data/Rakefile +12 -4
- data/activeadmin.gemspec +21 -26
- data/app/assets/javascripts/active_admin/application.js.coffee +34 -5
- data/app/assets/javascripts/active_admin/base.js.coffee +11 -2
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +3 -4
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +51 -55
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
- data/app/assets/javascripts/active_admin/lib/popover.js.coffee +29 -58
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +2 -3
- data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
- data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +51 -15
- data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
- data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
- data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
- data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -12
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +3 -1
- data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
- data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
- data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +0 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
- data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +1 -0
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
- data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
- data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_gradients.css.scss → _gradients.scss} +1 -1
- data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
- data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_rounded.css.scss → _rounded.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +7 -1
- data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
- data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +10 -7
- data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
- data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
- data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
- data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
- data/app/views/active_admin/devise/sessions/new.html.erb +8 -8
- data/app/views/active_admin/devise/shared/_links.erb +1 -1
- data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
- data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
- data/config/locales/ar.yml +120 -0
- data/config/locales/bg.yml +26 -6
- data/config/locales/bs.yml +122 -0
- data/config/locales/ca.yml +10 -1
- data/config/locales/cs.yml +7 -2
- data/config/locales/da.yml +7 -3
- data/config/locales/de-CH.yml +14 -31
- data/config/locales/de.yml +33 -33
- data/config/locales/el.yml +127 -0
- data/config/locales/en-GB.yml +11 -4
- data/config/locales/en.yml +21 -4
- data/config/locales/{es_MX.yml → es-MX.yml} +14 -24
- data/config/locales/es.yml +32 -25
- data/config/locales/fa.yml +120 -0
- data/config/locales/fi.yml +9 -5
- data/config/locales/fr.yml +28 -12
- data/config/locales/he.yml +7 -3
- data/config/locales/hr.yml +42 -11
- data/config/locales/hu.yml +10 -3
- data/config/locales/it.yml +31 -3
- data/config/locales/ja.yml +17 -4
- data/config/locales/ko.yml +7 -1
- data/config/locales/lt.yml +42 -11
- data/config/locales/lv.yml +7 -3
- data/config/locales/{no-NB.yml → nb.yml} +46 -15
- data/config/locales/nl.yml +36 -5
- data/config/locales/pl.yml +13 -8
- data/config/locales/pt-BR.yml +36 -5
- data/config/locales/pt-PT.yml +8 -4
- data/config/locales/ro.yml +7 -3
- data/config/locales/ru.yml +26 -5
- data/config/locales/sv-SE.yml +9 -5
- data/config/locales/tr.yml +10 -3
- data/config/locales/uk.yml +36 -12
- data/config/locales/vi.yml +7 -3
- data/config/locales/zh-CN.yml +26 -10
- data/config/locales/zh-TW.yml +19 -13
- data/docs/0-installation.md +14 -6
- data/docs/1-general-configuration.md +8 -5
- data/docs/10-custom-pages.md +68 -70
- data/docs/11-decorators.md +48 -59
- data/docs/12-arbre-components.md +79 -73
- data/docs/13-authorization-adapter.md +128 -107
- data/docs/14-gotchas.md +90 -0
- data/docs/2-resource-customization.md +82 -15
- data/docs/3-index-pages.md +71 -12
- data/docs/3-index-pages/custom-index.md +31 -0
- data/docs/3-index-pages/index-as-table.md +45 -2
- data/docs/4-csv-format.md +1 -1
- data/docs/5-forms.md +78 -29
- data/docs/6-show-pages.md +31 -3
- data/docs/7-sidebars.md +46 -25
- data/docs/8-custom-actions.md +98 -77
- data/docs/9-batch-actions.md +211 -133
- data/docs/README.md +24 -0
- data/features/action_item.feature +3 -3
- data/features/authorization_pundit.feature +37 -0
- data/features/belongs_to.feature +3 -0
- data/features/breadcrumb.feature +48 -0
- data/features/comments/commenting.feature +44 -13
- data/features/development_reloading.feature +3 -4
- data/features/edit_page.feature +9 -19
- data/features/favicon.feature +3 -3
- data/features/i18n.feature +5 -0
- data/features/index/batch_actions.feature +41 -0
- data/features/index/filters.feature +23 -0
- data/features/index/format_as_csv.feature +90 -4
- data/features/index/index_as_blog.feature +4 -4
- data/features/index/index_as_table.feature +102 -6
- data/features/index/index_blank_slate.feature +22 -0
- data/features/index/index_scope_to.feature +16 -16
- data/features/index/page_title.feature +11 -0
- data/features/index/pagination.feature +1 -1
- data/features/index/switch_index_view.feature +14 -14
- data/features/new_page.feature +10 -20
- data/features/registering_pages.feature +1 -1
- data/features/renamed_resource.feature +32 -0
- data/features/show/page_title.feature +11 -0
- data/features/show/tabs.feature +27 -0
- data/features/sidebar_sections.feature +12 -0
- data/features/specifying_actions.feature +3 -3
- data/features/step_definitions/action_item_steps.rb +2 -2
- data/features/step_definitions/action_link_steps.rb +14 -1
- data/features/step_definitions/additional_web_steps.rb +17 -18
- data/features/step_definitions/asset_steps.rb +3 -3
- data/features/step_definitions/attribute_steps.rb +8 -3
- data/features/step_definitions/batch_action_steps.rb +26 -9
- data/features/step_definitions/blog_steps.rb +3 -0
- data/features/step_definitions/breadcrumb_steps.rb +1 -1
- data/features/step_definitions/comment_steps.rb +1 -1
- data/features/step_definitions/configuration_steps.rb +1 -1
- data/features/step_definitions/dashboard_steps.rb +2 -2
- data/features/step_definitions/factory_steps.rb +6 -6
- data/features/step_definitions/filter_steps.rb +25 -3
- data/features/step_definitions/flash_steps.rb +3 -3
- data/features/step_definitions/format_steps.rb +17 -10
- data/features/step_definitions/index_scope_steps.rb +5 -5
- data/features/step_definitions/layout_steps.rb +1 -1
- data/features/step_definitions/member_link_steps.rb +2 -2
- data/features/step_definitions/menu_steps.rb +3 -3
- data/features/step_definitions/pagination_steps.rb +2 -3
- data/features/step_definitions/sidebar_steps.rb +8 -3
- data/features/step_definitions/site_title_steps.rb +6 -4
- data/features/step_definitions/symbol_leak_steps.rb +1 -1
- data/features/step_definitions/tab_steps.rb +5 -0
- data/features/step_definitions/table_steps.rb +4 -4
- data/features/step_definitions/user_steps.rb +15 -9
- data/features/step_definitions/web_steps.rb +10 -11
- data/features/sti_resource.feature +2 -10
- data/features/strong_parameters.feature +73 -0
- data/features/support/env.rb +35 -2
- data/features/support/paths.rb +2 -2
- data/features/support/selectors.rb +1 -1
- data/features/users/resetting_password.feature +7 -7
- data/lib/active_admin.rb +18 -13
- data/lib/active_admin/abstract_view_factory.rb +7 -17
- data/lib/active_admin/application.rb +50 -25
- data/lib/active_admin/asset_registration.rb +2 -2
- data/lib/active_admin/authorization_adapter.rb +2 -2
- data/lib/active_admin/base_controller.rb +2 -3
- data/lib/active_admin/base_controller/authorization.rb +13 -31
- data/lib/active_admin/batch_actions.rb +1 -1
- data/lib/active_admin/batch_actions/controller.rb +13 -7
- data/lib/active_admin/batch_actions/resource_extension.rb +43 -17
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
- data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
- data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
- data/lib/active_admin/callbacks.rb +25 -24
- data/lib/active_admin/cancan_adapter.rb +7 -11
- data/lib/active_admin/csv_builder.rb +92 -15
- data/lib/active_admin/dependency.rb +93 -0
- data/lib/active_admin/deprecation.rb +6 -7
- data/lib/active_admin/devise.rb +26 -14
- data/lib/active_admin/dsl.rb +18 -11
- data/lib/active_admin/engine.rb +7 -2
- data/lib/active_admin/error.rb +59 -0
- data/lib/active_admin/filters/dsl.rb +2 -2
- data/lib/active_admin/filters/forms.rb +19 -30
- data/lib/active_admin/filters/formtastic_addons.rb +20 -11
- data/lib/active_admin/filters/resource_extension.rb +16 -9
- data/lib/active_admin/form_builder.rb +94 -105
- data/lib/active_admin/helpers/collection.rb +7 -13
- data/lib/active_admin/helpers/i18n.rb +7 -0
- data/lib/active_admin/helpers/optional_display.rb +5 -5
- data/lib/active_admin/helpers/scope_chain.rb +1 -1
- data/lib/active_admin/helpers/settings.rb +16 -9
- data/lib/active_admin/iconic.rb +17 -15
- data/lib/active_admin/iconic/icons.rb +136 -136
- data/lib/active_admin/inputs.rb +11 -7
- data/lib/active_admin/inputs/datepicker_input.rb +1 -1
- data/lib/active_admin/inputs/filters/base.rb +42 -0
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
- data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
- data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
- data/lib/active_admin/inputs/filters/select_input.rb +54 -0
- data/lib/active_admin/inputs/filters/string_input.rb +26 -0
- data/lib/active_admin/menu.rb +3 -3
- data/lib/active_admin/menu_collection.rb +1 -4
- data/lib/active_admin/namespace.rb +52 -29
- data/lib/active_admin/order_clause.rb +26 -0
- data/lib/active_admin/orm/active_record.rb +2 -0
- data/lib/active_admin/orm/active_record/comments.rb +48 -51
- data/lib/active_admin/orm/active_record/comments/comment.rb +16 -10
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -1
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -1
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +15 -13
- data/lib/active_admin/page.rb +5 -1
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/page_presenter.rb +2 -2
- data/lib/active_admin/pundit_adapter.rb +68 -0
- data/lib/active_admin/resource.rb +12 -3
- data/lib/active_admin/resource/action_items.rb +15 -8
- data/lib/active_admin/resource/belongs_to.rb +7 -3
- data/lib/active_admin/resource/controllers.rb +1 -0
- data/lib/active_admin/resource/includes.rb +12 -0
- data/lib/active_admin/resource/menu.rb +5 -5
- data/lib/active_admin/resource/naming.rb +25 -47
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/routes.rb +26 -10
- data/lib/active_admin/resource/scope_to.rb +7 -7
- data/lib/active_admin/resource/sidebars.rb +1 -0
- data/lib/active_admin/resource_collection.rb +44 -16
- data/lib/active_admin/resource_controller.rb +6 -5
- data/lib/active_admin/resource_controller/data_access.rb +87 -82
- data/lib/active_admin/resource_controller/decorators.rb +91 -9
- data/lib/active_admin/resource_controller/streaming.rb +37 -0
- data/lib/active_admin/resource_dsl.rb +54 -10
- data/lib/active_admin/router.rb +7 -7
- data/lib/active_admin/scope.rb +6 -6
- data/lib/active_admin/sidebar_section.rb +10 -2
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +17 -16
- data/lib/active_admin/view_helpers.rb +0 -1
- data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +13 -6
- data/lib/active_admin/view_helpers/display_helper.rb +30 -17
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -24
- data/lib/active_admin/view_helpers/fields_for.rb +2 -2
- data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
- data/lib/active_admin/view_helpers/form_helper.rb +5 -9
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
- data/lib/active_admin/views/action_items.rb +2 -2
- data/lib/active_admin/views/components/action_list_popover.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +123 -0
- data/lib/active_admin/views/components/attributes_table.rb +22 -13
- data/lib/active_admin/views/components/blank_slate.rb +1 -1
- data/lib/active_admin/views/components/columns.rb +13 -7
- data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
- data/lib/active_admin/views/components/index_list.rb +7 -7
- data/lib/active_admin/views/components/paginated_collection.rb +33 -17
- data/lib/active_admin/views/components/panel.rb +8 -2
- data/lib/active_admin/views/components/popover.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +1 -1
- data/lib/active_admin/views/components/sidebar_section.rb +3 -2
- data/lib/active_admin/views/components/site_title.rb +2 -2
- data/lib/active_admin/views/components/status_tag.rb +34 -11
- data/lib/active_admin/views/components/table_for.rb +67 -22
- data/lib/active_admin/views/components/tabs.rb +28 -0
- data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
- data/lib/active_admin/views/footer.rb +3 -3
- data/lib/active_admin/views/header.rb +3 -3
- data/lib/active_admin/views/index_as_blog.rb +6 -6
- data/lib/active_admin/views/index_as_grid.rb +2 -2
- data/lib/active_admin/views/index_as_table.rb +127 -40
- data/lib/active_admin/views/pages/base.rb +22 -18
- data/lib/active_admin/views/pages/form.rb +16 -6
- data/lib/active_admin/views/pages/index.rb +36 -20
- data/lib/active_admin/views/pages/layout.rb +1 -1
- data/lib/active_admin/views/pages/show.rb +4 -4
- data/lib/active_admin/views/tabbed_navigation.rb +7 -3
- data/lib/active_admin/views/title_bar.rb +10 -8
- data/lib/generators/active_admin/assets/assets_generator.rb +1 -3
- data/lib/generators/active_admin/devise/devise_generator.rb +20 -28
- data/lib/generators/active_admin/install/install_generator.rb +8 -9
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -22
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -9
- data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
- data/lib/generators/active_admin/page/USAGE +8 -0
- data/lib/generators/active_admin/page/page_generator.rb +12 -0
- data/lib/generators/active_admin/page/templates/page.rb +5 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +2 -4
- data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
- data/lib/ransack_ext.rb +4 -4
- data/script/local +2 -2
- data/script/travis_cache +107 -0
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
- data/spec/javascripts/fixtures/flashes.html +2 -0
- data/spec/rails_helper.rb +154 -0
- data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
- data/spec/{integration → requests}/javascript_spec.rb +5 -5
- data/spec/requests/memory_spec.rb +23 -0
- data/spec/requests/stylesheets_spec.rb +18 -0
- data/spec/spec_helper.rb +12 -170
- data/spec/support/detect_rails_version.rb +31 -39
- data/spec/support/rails_template.rb +61 -34
- data/spec/support/rails_template_with_data.rb +14 -14
- data/spec/support/templates/admin/stores.rb +3 -5
- data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
- data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
- data/spec/support/templates/policies/admin_user_policy.rb +11 -0
- data/spec/support/templates/policies/application_policy.rb +45 -0
- data/spec/support/templates/policies/category_policy.rb +7 -0
- data/spec/support/templates/policies/post_policy.rb +15 -0
- data/spec/support/templates/policies/store_policy.rb +11 -0
- data/spec/support/templates/policies/user_policy.rb +11 -0
- data/spec/support/templates/post_decorator.rb +4 -46
- data/spec/unit/abstract_view_factory_spec.rb +11 -11
- data/spec/unit/action_builder_spec.rb +24 -18
- data/spec/unit/active_admin_spec.rb +2 -2
- data/spec/unit/application_spec.rb +30 -31
- data/spec/unit/asset_registration_spec.rb +11 -11
- data/spec/unit/authorization/authorization_adapter_spec.rb +7 -7
- data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
- data/spec/unit/authorization/index_overriding_spec.rb +22 -0
- data/spec/unit/auto_link_spec.rb +42 -5
- data/spec/unit/batch_actions/resource_spec.rb +15 -14
- data/spec/unit/batch_actions/settings_spec.rb +18 -18
- data/spec/unit/belongs_to_spec.rb +26 -17
- data/spec/unit/cancan_adapter_spec.rb +4 -4
- data/spec/unit/comments_spec.rb +99 -39
- data/spec/unit/component_spec.rb +3 -3
- data/spec/unit/config_shared_examples.rb +8 -8
- data/spec/unit/controller_filters_spec.rb +26 -14
- data/spec/unit/csv_builder_spec.rb +152 -24
- data/spec/unit/dependency_spec.rb +135 -0
- data/spec/unit/devise_spec.rb +17 -37
- data/spec/unit/dsl_spec.rb +70 -9
- data/spec/unit/event_spec.rb +9 -9
- data/spec/unit/filters/filter_form_builder_spec.rb +167 -157
- data/spec/unit/filters/resource_spec.rb +35 -33
- data/spec/unit/form_builder_spec.rb +383 -145
- data/spec/unit/generators/install_spec.rb +5 -5
- data/spec/unit/helpers/collection_spec.rb +18 -18
- data/spec/unit/helpers/scope_chain_spec.rb +5 -5
- data/spec/unit/helpers/settings_spec.rb +4 -4
- data/spec/unit/i18n_spec.rb +12 -0
- data/spec/unit/menu_collection_spec.rb +14 -14
- data/spec/unit/menu_item_spec.rb +42 -42
- data/spec/unit/menu_spec.rb +20 -20
- data/spec/unit/namespace/authorization_spec.rb +5 -5
- data/spec/unit/namespace/register_page_spec.rb +9 -9
- data/spec/unit/namespace/register_resource_spec.rb +26 -28
- data/spec/unit/namespace_spec.rb +20 -20
- data/spec/unit/order_clause_spec.rb +81 -0
- data/spec/unit/page_controller_spec.rb +1 -1
- data/spec/unit/page_spec.rb +18 -12
- data/spec/unit/pretty_format_spec.rb +42 -14
- data/spec/unit/pundit_adapter_spec.rb +98 -0
- data/spec/unit/resource/action_items_spec.rb +13 -10
- data/spec/unit/resource/includes_spec.rb +21 -0
- data/spec/unit/resource/menu_spec.rb +1 -1
- data/spec/unit/resource/naming_spec.rb +23 -23
- data/spec/unit/resource/page_presenters_spec.rb +8 -8
- data/spec/unit/resource/pagination_spec.rb +6 -6
- data/spec/unit/resource/routes_spec.rb +10 -10
- data/spec/unit/resource/scopes_spec.rb +14 -7
- data/spec/unit/resource/sidebars_spec.rb +6 -6
- data/spec/unit/resource_collection_spec.rb +66 -68
- data/spec/unit/resource_controller/data_access_spec.rb +39 -21
- data/spec/unit/resource_controller/decorators_spec.rb +83 -0
- data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
- data/spec/unit/resource_controller_spec.rb +66 -62
- data/spec/unit/resource_registration_spec.rb +12 -12
- data/spec/unit/resource_spec.rb +75 -40
- data/spec/unit/routing_spec.rb +39 -31
- data/spec/unit/scope_spec.rb +112 -30
- data/spec/unit/settings_spec.rb +51 -21
- data/spec/unit/view_factory_spec.rb +2 -2
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +137 -69
- data/spec/unit/view_helpers/display_name_spec.rb +49 -21
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
- data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
- data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +9 -22
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +59 -21
- data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
- data/spec/unit/views/components/attributes_table_spec.rb +94 -52
- data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
- data/spec/unit/views/components/blank_slate_spec.rb +14 -4
- data/spec/unit/views/components/columns_spec.rb +52 -22
- data/spec/unit/views/components/index_list_spec.rb +11 -8
- data/spec/unit/views/components/index_table_for_spec.rb +46 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +68 -59
- data/spec/unit/views/components/panel_spec.rb +32 -21
- data/spec/unit/views/components/popover_spec.rb +7 -7
- data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
- data/spec/unit/views/components/site_title_spec.rb +8 -8
- data/spec/unit/views/components/status_tag_spec.rb +178 -38
- data/spec/unit/views/components/table_for_spec.rb +227 -44
- data/spec/unit/views/components/tabs_spec.rb +39 -0
- data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
- data/spec/unit/views/pages/form_spec.rb +17 -10
- data/spec/unit/views/pages/index_spec.rb +60 -0
- data/spec/unit/views/pages/layout_spec.rb +17 -21
- data/spec/unit/views/pages/show_spec.rb +16 -3
- data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
- data/tasks/docs.rake +1 -1
- data/tasks/parallel_tests.rake +8 -2
- data/tasks/test.rake +8 -4
- data/tasks/yard.rake +7 -5
- metadata +180 -101
- data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
- data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
- data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
- data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
- data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
- data/app/assets/images/active_admin/loading.gif +0 -0
- data/app/assets/javascripts/active_admin/components/application.js.coffee +0 -23
- data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/components/has_many.js.coffee +0 -41
- data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -39
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
- data/app/views/active_admin/dashboard/index.html.arb +0 -1
- data/app/views/active_admin/resource/index.csv.erb +0 -17
- data/docs/3-index-pages/create-an-index.md +0 -29
- data/lib/active_admin/inputs/filter_base.rb +0 -33
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
- data/lib/active_admin/inputs/filter_boolean_input.rb +0 -32
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -51
- data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
- data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
- data/lib/active_admin/inputs/filter_select_input.rb +0 -61
- data/lib/active_admin/inputs/filter_string_input.rb +0 -24
- data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
- data/spec/integration/memory_spec.rb +0 -29
- data/spec/integration/stylesheets_spec.rb +0 -41
- data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
- data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
- data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
- data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
- data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
- data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
- data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
- data/spec/javascripts/support/jquery.min.js +0 -4
- data/spec/spec_helper_without_rails.rb +0 -16
- data/tasks/js.rake +0 -32
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
module ActiveAdmin
|
|
2
|
-
module Inputs
|
|
3
|
-
class FilterBooleanInput < ::Formtastic::Inputs::BooleanInput
|
|
4
|
-
include FilterBase
|
|
5
|
-
|
|
6
|
-
def to_html
|
|
7
|
-
input_wrapping do
|
|
8
|
-
[ label_html,
|
|
9
|
-
check_box_html
|
|
10
|
-
].join("\n").html_safe
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def search_method
|
|
15
|
-
method =~ search_conditions ? method : "#{method}_eq"
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def checked?
|
|
19
|
-
object && boolean_checked?(object.send(search_method), checked_value)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def input_html_options
|
|
23
|
-
{ :name => "q[#{ search_method }]" }
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def search_conditions
|
|
27
|
-
/_(true|false|present|blank|null|not_null)\z/
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
module ActiveAdmin
|
|
2
|
-
module Inputs
|
|
3
|
-
class FilterCheckBoxesInput < ::Formtastic::Inputs::CheckBoxesInput
|
|
4
|
-
include FilterBase
|
|
5
|
-
|
|
6
|
-
def input_name
|
|
7
|
-
"#{object_name}[#{searchable_method_name}_in][]"
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def selected_values
|
|
11
|
-
@object.send("#{searchable_method_name}_in") || []
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def searchable_method_name
|
|
15
|
-
# Deal with has_many :through relationships in filters
|
|
16
|
-
# If the relationship is a HMT, we set the search logic to be something
|
|
17
|
-
# like :#{through_association}_#{end_association_id}.
|
|
18
|
-
if searchable_through_association?
|
|
19
|
-
[reflection.through_reflection.name, reflection.foreign_key].join('_')
|
|
20
|
-
else
|
|
21
|
-
association_primary_key || method
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# Add whitespace before label
|
|
26
|
-
def choice_label(choice)
|
|
27
|
-
' ' + super
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Don't wrap in UL tag
|
|
31
|
-
def choices_group_wrapping(&block)
|
|
32
|
-
template.capture(&block)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
# Don't wrap in LI tag
|
|
36
|
-
def choice_wrapping(html_options, &block)
|
|
37
|
-
template.capture(&block)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# Don't render hidden fields
|
|
41
|
-
def hidden_field_for_all
|
|
42
|
-
""
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# Don't render hidden fields
|
|
46
|
-
def hidden_fields?
|
|
47
|
-
false
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
module ActiveAdmin
|
|
2
|
-
module Inputs
|
|
3
|
-
class FilterDateRangeInput < ::Formtastic::Inputs::StringInput
|
|
4
|
-
include FilterBase
|
|
5
|
-
|
|
6
|
-
def to_html
|
|
7
|
-
input_wrapping do
|
|
8
|
-
[ label_html,
|
|
9
|
-
builder.text_field(gt_input_name, input_html_options(gt_input_name)),
|
|
10
|
-
template.content_tag(:span, "-", :class => "seperator"),
|
|
11
|
-
builder.text_field(lt_input_name, input_html_options(lt_input_name)),
|
|
12
|
-
].join("\n").html_safe
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def gt_input_name
|
|
17
|
-
"#{method}_gteq"
|
|
18
|
-
end
|
|
19
|
-
alias :input_name :gt_input_name
|
|
20
|
-
|
|
21
|
-
def lt_input_name
|
|
22
|
-
"#{method}_lteq"
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def input_html_options(input_name = gt_input_name)
|
|
26
|
-
current_value = @object.send(input_name)
|
|
27
|
-
{ :size => 12,
|
|
28
|
-
:class => "datepicker",
|
|
29
|
-
:max => 10,
|
|
30
|
-
:value => current_value.respond_to?(:strftime) ? current_value.strftime("%Y-%m-%d") : "" }
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
module ActiveAdmin
|
|
2
|
-
module Inputs
|
|
3
|
-
class FilterSelectInput < ::Formtastic::Inputs::SelectInput
|
|
4
|
-
include FilterBase
|
|
5
|
-
|
|
6
|
-
# If Ransack will likely respond to the given method, use it.
|
|
7
|
-
#
|
|
8
|
-
# Otherwise:
|
|
9
|
-
# When it's a HABTM or has_many association, Formtastic builds "object_ids".
|
|
10
|
-
# That doesn't fit our scenario, so we override it here.
|
|
11
|
-
def input_name
|
|
12
|
-
return method if seems_searchable?
|
|
13
|
-
|
|
14
|
-
searchable_method_name.concat multiple? ? '_in' : '_eq'
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def searchable_method_name
|
|
18
|
-
# Deal with has_many :through relationships in filters
|
|
19
|
-
# If the relationship is a HMT, we set the search logic to be something
|
|
20
|
-
# like :#{through_association}_#{end_association_id}.
|
|
21
|
-
if searchable_through_association?
|
|
22
|
-
name = [reflection.through_reflection.name, reflection.foreign_key].join('_')
|
|
23
|
-
else
|
|
24
|
-
name = method.to_s
|
|
25
|
-
name.concat '_id' if reflection
|
|
26
|
-
end
|
|
27
|
-
name
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Provide the AA translation to the blank input field.
|
|
31
|
-
def include_blank
|
|
32
|
-
I18n.t 'active_admin.any' if super
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
# was "#{object_name}[#{association_primary_key}]"
|
|
36
|
-
def input_html_options_name
|
|
37
|
-
"#{object_name}[#{input_name}]"
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# Would normally return true for has_many and HABTM, which would subsequently
|
|
41
|
-
# cause the select field to be multi-select instead of a dropdown.
|
|
42
|
-
def multiple_by_association?
|
|
43
|
-
false
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
# Provides an efficient default lookup query if the attribute is a DB column.
|
|
47
|
-
def collection
|
|
48
|
-
if !options[:collection] && column
|
|
49
|
-
pluck_column
|
|
50
|
-
else
|
|
51
|
-
super
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def pluck_column
|
|
56
|
-
klass.reorder("#{method} asc").uniq.pluck method
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
module ActiveAdmin
|
|
2
|
-
module Inputs
|
|
3
|
-
class FilterStringInput < ::Formtastic::Inputs::StringInput
|
|
4
|
-
include FilterBase
|
|
5
|
-
include FilterBase::SearchMethodSelect
|
|
6
|
-
|
|
7
|
-
filter :contains, :equals, :starts_with, :ends_with
|
|
8
|
-
|
|
9
|
-
# If the filter method includes a search condition, build a normal string search field.
|
|
10
|
-
# Else, build a search field with a companion dropdown to choose a search condition from.
|
|
11
|
-
def to_html
|
|
12
|
-
if seems_searchable?
|
|
13
|
-
input_wrapping do
|
|
14
|
-
label_html <<
|
|
15
|
-
builder.text_field(method, input_html_options)
|
|
16
|
-
end
|
|
17
|
-
else
|
|
18
|
-
super # SearchMethodSelect#to_html
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
# These tests show the memory leak that is currently in Active Admin. They
|
|
4
|
-
# are all marked as pending until they pass. To work on them, comment out the
|
|
5
|
-
# pending method call in #it_should_not_leak
|
|
6
|
-
describe "Memory Leak" do
|
|
7
|
-
|
|
8
|
-
def count_instances_of(klass)
|
|
9
|
-
ObjectSpace.each_object(klass) { }
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def self.it_should_not_leak(klass)
|
|
13
|
-
it "should not leak #{klass}" do
|
|
14
|
-
previously_disabled = GC.enable # returns true if the garbage collector was disabled
|
|
15
|
-
GC.start
|
|
16
|
-
count = count_instances_of(klass)
|
|
17
|
-
|
|
18
|
-
load_defaults!
|
|
19
|
-
|
|
20
|
-
GC.start
|
|
21
|
-
GC.disable if previously_disabled
|
|
22
|
-
count_instances_of(klass).should <= count
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it_should_not_leak ActiveAdmin::Namespace
|
|
27
|
-
it_should_not_leak ActiveAdmin::Resource
|
|
28
|
-
|
|
29
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe "Stylesheets" do
|
|
4
|
-
if Rails.version[0..2] == '3.1'
|
|
5
|
-
require "sprockets"
|
|
6
|
-
context "when Rails 3.1.x" do
|
|
7
|
-
let(:css) do
|
|
8
|
-
assets = Rails.application.assets
|
|
9
|
-
assets.find_asset("active_admin.css")
|
|
10
|
-
end
|
|
11
|
-
it "should successfully render the scss stylesheets using sprockets" do
|
|
12
|
-
css.should_not be_nil
|
|
13
|
-
end
|
|
14
|
-
it "should not have any syntax errors" do
|
|
15
|
-
css.to_s.should_not include("Syntax error:")
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
if Rails.version[0..2] == '3.0'
|
|
21
|
-
context "when Rails 3.0.x" do
|
|
22
|
-
let(:stylesheet_path) do
|
|
23
|
-
Rails.root + 'public/stylesheets/active_admin.css'
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
before do
|
|
27
|
-
"rm #{stylesheet_path}" if File.exists?(stylesheet_path)
|
|
28
|
-
Sass::Plugin.force_update_stylesheets
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it "should render the scss stylesheets using SASS" do
|
|
32
|
-
File.exists?(stylesheet_path).should be_true
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
it "should not have any syntax errors" do
|
|
36
|
-
css = File.read(stylesheet_path)
|
|
37
|
-
css.should_not include("Syntax error:")
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
(function() {
|
|
2
|
-
|
|
3
|
-
describe("ActiveAdmin.CheckboxToggler", function() {
|
|
4
|
-
beforeEach(function() {
|
|
5
|
-
loadFixtures('checkboxes.html');
|
|
6
|
-
this.collection = $("#collection");
|
|
7
|
-
this.toggle_all = this.collection.find(".toggle_all");
|
|
8
|
-
this.checkboxes = this.collection.find(":checkbox").not(this.toggle_all);
|
|
9
|
-
return new ActiveAdmin.CheckboxToggler({}, this.collection);
|
|
10
|
-
});
|
|
11
|
-
describe("on init", function() {
|
|
12
|
-
it("should raise an error if container not found", function() {
|
|
13
|
-
var _this = this;
|
|
14
|
-
return expect(function() {
|
|
15
|
-
return new ActiveAdmin.CheckboxToggler({});
|
|
16
|
-
}).toThrow("Container element not found");
|
|
17
|
-
});
|
|
18
|
-
return it("should raise an error if 'toggle all' checkbox not found", function() {
|
|
19
|
-
var _this = this;
|
|
20
|
-
this.toggle_all.remove();
|
|
21
|
-
return expect(function() {
|
|
22
|
-
return new ActiveAdmin.CheckboxToggler({}, _this.collection);
|
|
23
|
-
}).toThrow("'toggle all' checkbox not found");
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe("'toggle all' checkbox", function() {
|
|
27
|
-
it("should check all checkboxes when checked", function() {
|
|
28
|
-
this.toggle_all.trigger("click");
|
|
29
|
-
return expect(this.checkboxes).toHaveAttr("checked");
|
|
30
|
-
});
|
|
31
|
-
return it("should uncheck all checkboxes when unchecked", function() {
|
|
32
|
-
this.toggle_all.trigger("click");
|
|
33
|
-
this.toggle_all.trigger("click");
|
|
34
|
-
return expect(this.checkboxes).not.toHaveAttr("checked");
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
return describe("individual checkboxes", function() {
|
|
38
|
-
describe("when all checkboxes are selected and one is unchecked", function() {
|
|
39
|
-
beforeEach(function() {
|
|
40
|
-
this.collection.find(":checkbox").attr("checked", "checked");
|
|
41
|
-
return this.collection.find("#item_1").trigger("click");
|
|
42
|
-
});
|
|
43
|
-
return it("should uncheck the 'toggle all' checkbox", function() {
|
|
44
|
-
return expect(this.toggle_all).not.toHaveAttr("checked");
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
return describe("when the last checkbox is checked", function() {
|
|
48
|
-
beforeEach(function() {
|
|
49
|
-
this.checkboxes.attr("checked", "checked");
|
|
50
|
-
this.collection.find("#item_1").removeAttr("checked");
|
|
51
|
-
return this.collection.find("#item_1").trigger("click");
|
|
52
|
-
});
|
|
53
|
-
return it("should check the 'toggle all' checkbox", function() {
|
|
54
|
-
return expect(this.toggle_all).toHaveAttr("checked");
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
}).call(this);
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
(function() {
|
|
2
|
-
|
|
3
|
-
describe("ActiveAdmin.Popover", function() {
|
|
4
|
-
var $button, $popover, $wrapper, popover;
|
|
5
|
-
$wrapper = void 0;
|
|
6
|
-
$button = void 0;
|
|
7
|
-
$popover = void 0;
|
|
8
|
-
popover = void 0;
|
|
9
|
-
beforeEach(function() {
|
|
10
|
-
$wrapper = $(inject({
|
|
11
|
-
id: "wrapper"
|
|
12
|
-
}));
|
|
13
|
-
$button = $(inject({
|
|
14
|
-
el: "a",
|
|
15
|
-
id: "my_popover_button",
|
|
16
|
-
attrs: {
|
|
17
|
-
href: "#my_popover"
|
|
18
|
-
}
|
|
19
|
-
}));
|
|
20
|
-
$popover = $(inject({
|
|
21
|
-
id: "my_popover"
|
|
22
|
-
}));
|
|
23
|
-
$button.popover({
|
|
24
|
-
fadeInDuration: 0,
|
|
25
|
-
fadeOutDuration: 0
|
|
26
|
-
});
|
|
27
|
-
return popover = $button.data("popover");
|
|
28
|
-
});
|
|
29
|
-
describe("opening button / link is pressed", function() {
|
|
30
|
-
return it("should open the popover", function() {
|
|
31
|
-
$button.trigger("click");
|
|
32
|
-
return expect($("#my_popover")).toBeVisible();
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
describe("when initiated", function() {
|
|
36
|
-
it("should be hidden", function() {
|
|
37
|
-
return expect($popover).toBeHidden();
|
|
38
|
-
});
|
|
39
|
-
it("should be have class popover", function() {
|
|
40
|
-
return expect($popover).toHaveClass("popover");
|
|
41
|
-
});
|
|
42
|
-
return describe("nipple", function() {
|
|
43
|
-
return it("should exist", function() {
|
|
44
|
-
return expect($popover).toContain(".popover_nipple");
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
describe("when open is called", function() {
|
|
49
|
-
beforeEach(function() {
|
|
50
|
-
expect($popover).toBeHidden();
|
|
51
|
-
return $button.popover("open");
|
|
52
|
-
});
|
|
53
|
-
return it("should be open", function() {
|
|
54
|
-
return expect($popover).toBeVisible();
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
describe("when destroy is called", function() {
|
|
58
|
-
beforeEach(function() {
|
|
59
|
-
return $button.popover("destroy");
|
|
60
|
-
});
|
|
61
|
-
it("should not have popover stored as a data attr", function() {
|
|
62
|
-
return expect($button.data("popover")).toEqual(undefined);
|
|
63
|
-
});
|
|
64
|
-
return it("should not be bound to any event listeners", function() {
|
|
65
|
-
return expect($button.data("events")).toEqual(undefined);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
describe("when it's already open", function() {
|
|
69
|
-
beforeEach(function() {
|
|
70
|
-
return $button.popover("open");
|
|
71
|
-
});
|
|
72
|
-
describe("when close is called", function() {
|
|
73
|
-
beforeEach(function() {
|
|
74
|
-
return $button.popover("close");
|
|
75
|
-
});
|
|
76
|
-
return it("should close", function() {
|
|
77
|
-
return expect($popover).toBeHidden();
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
return describe("when user clicks outside", function() {
|
|
81
|
-
beforeEach(function() {
|
|
82
|
-
$button.popover("open");
|
|
83
|
-
return $("#wrapper").trigger("click");
|
|
84
|
-
});
|
|
85
|
-
return it("should close", function() {
|
|
86
|
-
return expect($popover).toBeHidden();
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
return describe("options", function() {
|
|
91
|
-
return describe("autoOpen set to false", function() {
|
|
92
|
-
beforeEach(function() {
|
|
93
|
-
$button.popover("destroy");
|
|
94
|
-
return $button.popover({
|
|
95
|
-
autoOpen: false
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
return it("should not open when the link is clicked", function() {
|
|
99
|
-
$button.trigger("click");
|
|
100
|
-
return expect($("#my_popover")).toBeHidden();
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
}).call(this);
|