yousty-activeadmin 1.0.0.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 +7 -0
- data/.gitignore +43 -0
- data/.travis.yml +8 -0
- data/.yardopts +9 -0
- data/CHANGELOG.md +1056 -0
- data/CONTRIBUTING.md +110 -0
- data/Gemfile +41 -0
- data/Guardfile +7 -0
- data/LICENSE +25 -0
- data/README.md +67 -0
- data/Rakefile +25 -0
- data/activeadmin.gemspec +33 -0
- 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-input-icon.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 +10 -0
- data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +4 -0
- data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +13 -0
- data/app/assets/images/active_admin/index_list_icons/table_icon.svg +3 -0
- data/app/assets/images/active_admin/loading.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/application.js.coffee +6 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +5 -0
- data/app/assets/javascripts/active_admin/components/application.js.coffee +23 -0
- data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +26 -0
- data/app/assets/javascripts/active_admin/components/has_many.js.coffee +41 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +37 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +105 -0
- data/app/assets/javascripts/active_admin/lib/popover.js.coffee +97 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +25 -0
- data/app/assets/stylesheets/active_admin/_base.css.scss +41 -0
- data/app/assets/stylesheets/active_admin/_forms.css.scss +293 -0
- data/app/assets/stylesheets/active_admin/_header.css.scss +152 -0
- data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
- data/app/assets/stylesheets/active_admin/_typography.css.scss +100 -0
- data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +31 -0
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_comments.css.scss +41 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +39 -0
- data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
- data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
- data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +34 -0
- data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +95 -0
- data/app/assets/stylesheets/active_admin/components/_tables.css.scss +110 -0
- data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +11 -0
- data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +66 -0
- data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +38 -0
- data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +21 -0
- data/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +165 -0
- data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +43 -0
- data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +36 -0
- data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +22 -0
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +26 -0
- data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +32 -0
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
- data/app/assets/stylesheets/active_admin/print.css.scss +284 -0
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +43 -0
- data/app/views/active_admin/dashboard/index.html.arb +1 -0
- data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/active_admin/devise/passwords/edit.html.erb +19 -0
- data/app/views/active_admin/devise/passwords/new.html.erb +14 -0
- data/app/views/active_admin/devise/sessions/new.html.erb +20 -0
- data/app/views/active_admin/devise/shared/_links.erb +27 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +14 -0
- data/app/views/active_admin/page/index.html.arb +1 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -0
- data/app/views/active_admin/resource/index.csv.erb +17 -0
- data/app/views/active_admin/resource/index.html.arb +1 -0
- data/app/views/active_admin/resource/new.html.arb +1 -0
- data/app/views/active_admin/resource/show.html.arb +1 -0
- data/app/views/layouts/active_admin.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +37 -0
- data/config/locales/bg.yml +101 -0
- data/config/locales/ca.yml +98 -0
- data/config/locales/cs.yml +105 -0
- data/config/locales/da.yml +102 -0
- data/config/locales/de-CH.yml +117 -0
- data/config/locales/de.yml +119 -0
- data/config/locales/en-GB.yml +91 -0
- data/config/locales/en.yml +110 -0
- data/config/locales/es.yml +106 -0
- data/config/locales/es_MX.yml +104 -0
- data/config/locales/fi.yml +109 -0
- data/config/locales/fr.yml +97 -0
- data/config/locales/he.yml +91 -0
- data/config/locales/hr.yml +93 -0
- data/config/locales/hu.yml +92 -0
- data/config/locales/it.yml +89 -0
- data/config/locales/ja.yml +104 -0
- data/config/locales/ko.yml +84 -0
- data/config/locales/lt.yml +90 -0
- data/config/locales/lv.yml +89 -0
- data/config/locales/nl.yml +90 -0
- data/config/locales/no-NB.yml +85 -0
- data/config/locales/pl.yml +93 -0
- data/config/locales/pt-BR.yml +90 -0
- data/config/locales/pt-PT.yml +89 -0
- data/config/locales/ro.yml +93 -0
- data/config/locales/ru.yml +103 -0
- data/config/locales/sv-SE.yml +89 -0
- data/config/locales/tr.yml +90 -0
- data/config/locales/uk.yml +100 -0
- data/config/locales/vi.yml +90 -0
- data/config/locales/zh-CN.yml +90 -0
- data/config/locales/zh-TW.yml +90 -0
- data/cucumber.yml +3 -0
- data/docs/0-installation.md +84 -0
- data/docs/1-general-configuration.md +137 -0
- data/docs/10-custom-pages.md +98 -0
- data/docs/11-decorators.md +66 -0
- data/docs/12-arbre-components.md +144 -0
- data/docs/13-authorization-adapter.md +227 -0
- data/docs/2-resource-customization.md +340 -0
- data/docs/3-index-pages/create-an-index.md +29 -0
- data/docs/3-index-pages/index-as-block.md +21 -0
- data/docs/3-index-pages/index-as-blog.md +71 -0
- data/docs/3-index-pages/index-as-grid.md +29 -0
- data/docs/3-index-pages/index-as-table.md +154 -0
- data/docs/3-index-pages.md +206 -0
- data/docs/4-csv-format.md +39 -0
- data/docs/5-forms.md +110 -0
- data/docs/6-show-pages.md +77 -0
- data/docs/7-sidebars.md +42 -0
- data/docs/8-custom-actions.md +139 -0
- data/docs/9-batch-actions.md +155 -0
- data/features/action_item.feature +73 -0
- data/features/authorization.feature +64 -0
- data/features/authorization_cancan.feature +52 -0
- data/features/belongs_to.feature +63 -0
- data/features/breadcrumb.feature +27 -0
- data/features/comments/commenting.feature +140 -0
- data/features/comments/viewing_index.feature +19 -0
- data/features/dashboard.feature +16 -0
- data/features/decorators.feature +41 -0
- data/features/development_reloading.feature +31 -0
- data/features/edit_page.feature +127 -0
- data/features/favicon.feature +20 -0
- data/features/first_boot.feature +16 -0
- data/features/global_navigation.feature +29 -0
- data/features/i18n.feature +38 -0
- data/features/index/batch_actions.feature +123 -0
- data/features/index/filters.feature +138 -0
- data/features/index/format_as_csv.feature +117 -0
- data/features/index/formats.feature +66 -0
- data/features/index/index_as_block.feature +15 -0
- data/features/index/index_as_blog.feature +69 -0
- data/features/index/index_as_grid.feature +45 -0
- data/features/index/index_as_table.feature +195 -0
- data/features/index/index_blank_slate.feature +61 -0
- data/features/index/index_parameters.feature +75 -0
- data/features/index/index_scope_to.feature +56 -0
- data/features/index/index_scopes.feature +251 -0
- data/features/index/page_title.feature +30 -0
- data/features/index/pagination.feature +59 -0
- data/features/index/switch_index_view.feature +73 -0
- data/features/menu.feature +53 -0
- data/features/new_page.feature +119 -0
- data/features/registering_assets.feature +35 -0
- data/features/registering_pages.feature +148 -0
- data/features/registering_resources.feature +33 -0
- data/features/root_to.feature +17 -0
- data/features/show/default_content.feature +43 -0
- data/features/show/page_title.feature +47 -0
- data/features/sidebar_sections.feature +198 -0
- data/features/site_title.feature +47 -0
- data/features/specifying_actions.feature +93 -0
- data/features/step_definitions/action_item_steps.rb +7 -0
- data/features/step_definitions/action_link_steps.rb +7 -0
- data/features/step_definitions/additional_web_steps.rb +82 -0
- data/features/step_definitions/asset_steps.rb +15 -0
- data/features/step_definitions/attribute_steps.rb +13 -0
- data/features/step_definitions/batch_action_steps.rb +55 -0
- data/features/step_definitions/breadcrumb_steps.rb +3 -0
- data/features/step_definitions/comment_steps.rb +12 -0
- data/features/step_definitions/configuration_steps.rb +100 -0
- data/features/step_definitions/dashboard_steps.rb +15 -0
- data/features/step_definitions/factory_steps.rb +34 -0
- data/features/step_definitions/filter_steps.rb +17 -0
- data/features/step_definitions/flash_steps.rb +11 -0
- data/features/step_definitions/format_steps.rb +45 -0
- data/features/step_definitions/i18n_steps.rb +3 -0
- data/features/step_definitions/index_scope_steps.rb +21 -0
- data/features/step_definitions/index_views_steps.rb +3 -0
- data/features/step_definitions/layout_steps.rb +3 -0
- data/features/step_definitions/member_link_steps.rb +7 -0
- data/features/step_definitions/menu_steps.rb +11 -0
- data/features/step_definitions/pagination_steps.rb +8 -0
- data/features/step_definitions/sidebar_steps.rb +8 -0
- data/features/step_definitions/site_title_steps.rb +15 -0
- data/features/step_definitions/symbol_leak_steps.rb +3 -0
- data/features/step_definitions/tab_steps.rb +3 -0
- data/features/step_definitions/table_steps.rb +119 -0
- data/features/step_definitions/user_steps.rb +39 -0
- data/features/step_definitions/web_steps.rb +86 -0
- data/features/sti_resource.feature +73 -0
- data/features/support/env.rb +112 -0
- data/features/support/paths.rb +71 -0
- data/features/support/selectors.rb +45 -0
- data/features/symbol_leak.feature +35 -0
- data/features/users/logging_in.feature +34 -0
- data/features/users/logging_out.feature +13 -0
- data/features/users/resetting_password.feature +34 -0
- data/lib/active_admin/abstract_view_factory.rb +95 -0
- data/lib/active_admin/application.rb +242 -0
- data/lib/active_admin/asset_registration.rb +29 -0
- data/lib/active_admin/authorization_adapter.rb +132 -0
- data/lib/active_admin/base_controller/authorization.rb +151 -0
- data/lib/active_admin/base_controller/menu.rb +34 -0
- data/lib/active_admin/base_controller.rb +78 -0
- data/lib/active_admin/batch_actions/controller.rb +24 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +127 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
- data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +66 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
- data/lib/active_admin/batch_actions.rb +17 -0
- data/lib/active_admin/callbacks.rb +87 -0
- data/lib/active_admin/cancan_adapter.rb +40 -0
- data/lib/active_admin/component.rb +5 -0
- data/lib/active_admin/controller_action.rb +12 -0
- data/lib/active_admin/csv_builder.rb +49 -0
- data/lib/active_admin/deprecation.rb +36 -0
- data/lib/active_admin/devise.rb +70 -0
- data/lib/active_admin/dsl.rb +166 -0
- data/lib/active_admin/engine.rb +7 -0
- data/lib/active_admin/event.rb +33 -0
- data/lib/active_admin/filters/dsl.rb +21 -0
- data/lib/active_admin/filters/forms.rb +89 -0
- data/lib/active_admin/filters/formtastic_addons.rb +70 -0
- data/lib/active_admin/filters/resource_extension.rb +136 -0
- data/lib/active_admin/filters.rb +9 -0
- data/lib/active_admin/form_builder.rb +152 -0
- data/lib/active_admin/helpers/collection.rb +23 -0
- data/lib/active_admin/helpers/optional_display.rb +38 -0
- data/lib/active_admin/helpers/scope_chain.rb +23 -0
- data/lib/active_admin/helpers/settings.rb +108 -0
- data/lib/active_admin/iconic/icons.rb +142 -0
- data/lib/active_admin/iconic.rb +51 -0
- data/lib/active_admin/inputs/datepicker_input.rb +20 -0
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
- data/lib/active_admin/inputs/filter_base.rb +33 -0
- data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +51 -0
- data/lib/active_admin/inputs/filter_date_range_input.rb +34 -0
- data/lib/active_admin/inputs/filter_numeric_input.rb +10 -0
- data/lib/active_admin/inputs/filter_select_input.rb +61 -0
- data/lib/active_admin/inputs/filter_string_input.rb +24 -0
- data/lib/active_admin/inputs.rb +15 -0
- data/lib/active_admin/menu.rb +107 -0
- data/lib/active_admin/menu_collection.rb +96 -0
- data/lib/active_admin/menu_item.rb +97 -0
- data/lib/active_admin/namespace.rb +224 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +39 -0
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +14 -0
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +17 -0
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +23 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +75 -0
- data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
- data/lib/active_admin/orm/active_record/comments.rb +84 -0
- data/lib/active_admin/orm/active_record.rb +3 -0
- data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/page.rb +88 -0
- data/lib/active_admin/page_controller.rb +29 -0
- data/lib/active_admin/page_dsl.rb +28 -0
- data/lib/active_admin/page_presenter.rb +32 -0
- data/lib/active_admin/resource/action_items.rb +91 -0
- data/lib/active_admin/resource/belongs_to.rb +36 -0
- data/lib/active_admin/resource/controllers.rb +18 -0
- data/lib/active_admin/resource/menu.rb +64 -0
- data/lib/active_admin/resource/naming.rb +84 -0
- data/lib/active_admin/resource/page_presenters.rb +82 -0
- data/lib/active_admin/resource/pagination.rb +19 -0
- data/lib/active_admin/resource/routes.rb +99 -0
- data/lib/active_admin/resource/scope_to.rb +74 -0
- data/lib/active_admin/resource/scopes.rb +50 -0
- data/lib/active_admin/resource/sidebars.rb +27 -0
- data/lib/active_admin/resource.rb +153 -0
- data/lib/active_admin/resource_collection.rb +42 -0
- data/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/lib/active_admin/resource_controller/data_access.rb +298 -0
- data/lib/active_admin/resource_controller/decorators.rb +20 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
- data/lib/active_admin/resource_controller/scoping.rb +31 -0
- data/lib/active_admin/resource_controller/sidebars.rb +18 -0
- data/lib/active_admin/resource_controller.rb +50 -0
- data/lib/active_admin/resource_dsl.rb +134 -0
- data/lib/active_admin/router.rb +106 -0
- data/lib/active_admin/scope.rb +57 -0
- data/lib/active_admin/sidebar_section.rb +37 -0
- data/lib/active_admin/version.rb +3 -0
- data/lib/active_admin/view_factory.rb +27 -0
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +7 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +34 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +26 -0
- data/lib/active_admin/view_helpers/display_helper.rb +49 -0
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +49 -0
- data/lib/active_admin/view_helpers/fields_for.rb +50 -0
- data/lib/active_admin/view_helpers/flash_helper.rb +13 -0
- data/lib/active_admin/view_helpers/form_helper.rb +24 -0
- data/lib/active_admin/view_helpers/icon_helper.rb +12 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +93 -0
- data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
- data/lib/active_admin/view_helpers/title_helper.rb +11 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
- data/lib/active_admin/view_helpers.rb +21 -0
- data/lib/active_admin/views/action_items.rb +17 -0
- data/lib/active_admin/views/components/action_list_popover.rb +29 -0
- data/lib/active_admin/views/components/attributes_table.rb +103 -0
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +150 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
- data/lib/active_admin/views/components/index_list.rb +68 -0
- data/lib/active_admin/views/components/paginated_collection.rb +125 -0
- data/lib/active_admin/views/components/panel.rb +34 -0
- data/lib/active_admin/views/components/popover.rb +27 -0
- data/lib/active_admin/views/components/scopes.rb +66 -0
- data/lib/active_admin/views/components/sidebar_section.rb +28 -0
- data/lib/active_admin/views/components/site_title.rb +55 -0
- data/lib/active_admin/views/components/status_tag.rb +56 -0
- data/lib/active_admin/views/components/table_for.rb +191 -0
- data/lib/active_admin/views/footer.rb +20 -0
- data/lib/active_admin/views/header.rb +32 -0
- data/lib/active_admin/views/index_as_block.rb +36 -0
- data/lib/active_admin/views/index_as_blog.rb +156 -0
- data/lib/active_admin/views/index_as_grid.rb +80 -0
- data/lib/active_admin/views/index_as_table.rb +264 -0
- data/lib/active_admin/views/pages/base.rb +139 -0
- data/lib/active_admin/views/pages/form.rb +51 -0
- data/lib/active_admin/views/pages/index.rb +147 -0
- data/lib/active_admin/views/pages/layout.rb +26 -0
- data/lib/active_admin/views/pages/page.rb +30 -0
- data/lib/active_admin/views/pages/show.rb +59 -0
- data/lib/active_admin/views/tabbed_navigation.rb +62 -0
- data/lib/active_admin/views/title_bar.rb +53 -0
- data/lib/active_admin/views.rb +8 -0
- data/lib/active_admin.rb +125 -0
- data/lib/activeadmin.rb +1 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +16 -0
- data/lib/generators/active_admin/assets/templates/active_admin.css.scss +17 -0
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +86 -0
- data/lib/generators/active_admin/install/install_generator.rb +46 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +235 -0
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +27 -0
- data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +16 -0
- data/lib/generators/active_admin/resource/templates/admin.rb +3 -0
- data/lib/ransack_ext.rb +12 -0
- data/script/local +44 -0
- data/script/use_rails +53 -0
- data/spec/integration/default_namespace_spec.rb +61 -0
- data/spec/integration/javascript_spec.rb +20 -0
- data/spec/integration/memory_spec.rb +29 -0
- data/spec/integration/stylesheets_spec.rb +41 -0
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
- data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
- data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
- data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
- data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
- data/spec/javascripts/fixtures/checkboxes.html +9 -0
- data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
- data/spec/javascripts/helpers/SpecHelper.js +3 -0
- data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
- data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
- data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
- data/spec/javascripts/support/jasmine.yml +74 -0
- data/spec/javascripts/support/jasmine_config.rb +23 -0
- data/spec/javascripts/support/jasmine_runner.rb +32 -0
- data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
- data/spec/javascripts/support/jquery.min.js +4 -0
- data/spec/spec_helper.rb +175 -0
- data/spec/spec_helper_without_rails.rb +16 -0
- data/spec/support/deferred_garbage_collection.rb +19 -0
- data/spec/support/detect_rails_version.rb +42 -0
- data/spec/support/integration_example_group.rb +31 -0
- data/spec/support/jslint.yml +80 -0
- data/spec/support/rails_template.rb +111 -0
- data/spec/support/rails_template_with_data.rb +59 -0
- data/spec/support/templates/admin/stores.rb +11 -0
- data/spec/support/templates/cucumber.rb +24 -0
- data/spec/support/templates/cucumber_with_reloading.rb +5 -0
- data/spec/support/templates/en.yml +8 -0
- data/spec/support/templates/post_decorator.rb +53 -0
- data/spec/unit/abstract_view_factory_spec.rb +79 -0
- data/spec/unit/action_builder_spec.rb +126 -0
- data/spec/unit/active_admin_spec.rb +11 -0
- data/spec/unit/application_spec.rb +141 -0
- data/spec/unit/asset_registration_spec.rb +52 -0
- data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
- data/spec/unit/authorization/controller_authorization_spec.rb +39 -0
- data/spec/unit/auto_link_spec.rb +32 -0
- data/spec/unit/batch_actions/resource_spec.rb +91 -0
- data/spec/unit/batch_actions/settings_spec.rb +61 -0
- data/spec/unit/belongs_to_spec.rb +42 -0
- data/spec/unit/cancan_adapter_spec.rb +43 -0
- data/spec/unit/comments_spec.rb +106 -0
- data/spec/unit/component_spec.rb +18 -0
- data/spec/unit/config_shared_examples.rb +59 -0
- data/spec/unit/controller_filters_spec.rb +32 -0
- data/spec/unit/csv_builder_spec.rb +103 -0
- data/spec/unit/devise_spec.rb +116 -0
- data/spec/unit/dsl_spec.rb +61 -0
- data/spec/unit/event_spec.rb +47 -0
- data/spec/unit/filters/filter_form_builder_spec.rb +423 -0
- data/spec/unit/filters/resource_spec.rb +119 -0
- data/spec/unit/form_builder_spec.rb +514 -0
- data/spec/unit/generators/install_spec.rb +23 -0
- data/spec/unit/helpers/collection_spec.rb +65 -0
- data/spec/unit/helpers/scope_chain_spec.rb +36 -0
- data/spec/unit/helpers/settings_spec.rb +30 -0
- data/spec/unit/menu_collection_spec.rb +62 -0
- data/spec/unit/menu_item_spec.rb +143 -0
- data/spec/unit/menu_spec.rb +71 -0
- data/spec/unit/namespace/authorization_spec.rb +27 -0
- data/spec/unit/namespace/register_page_spec.rb +74 -0
- data/spec/unit/namespace/register_resource_spec.rb +163 -0
- data/spec/unit/namespace_spec.rb +103 -0
- data/spec/unit/page_controller_spec.rb +5 -0
- data/spec/unit/page_spec.rb +72 -0
- data/spec/unit/pretty_format_spec.rb +35 -0
- data/spec/unit/resource/action_items_spec.rb +62 -0
- data/spec/unit/resource/menu_spec.rb +18 -0
- data/spec/unit/resource/naming_spec.rb +122 -0
- data/spec/unit/resource/page_presenters_spec.rb +44 -0
- data/spec/unit/resource/pagination_spec.rb +38 -0
- data/spec/unit/resource/routes_spec.rb +73 -0
- data/spec/unit/resource/scopes_spec.rb +43 -0
- data/spec/unit/resource/sidebars_spec.rb +43 -0
- data/spec/unit/resource_collection_spec.rb +160 -0
- data/spec/unit/resource_controller/data_access_spec.rb +73 -0
- data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
- data/spec/unit/resource_controller_spec.rb +265 -0
- data/spec/unit/resource_registration_spec.rb +56 -0
- data/spec/unit/resource_spec.rb +243 -0
- data/spec/unit/routing_spec.rb +172 -0
- data/spec/unit/scope_spec.rb +108 -0
- data/spec/unit/settings_spec.rb +88 -0
- data/spec/unit/view_factory_spec.rb +21 -0
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +149 -0
- data/spec/unit/view_helpers/display_name_spec.rb +41 -0
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
- data/spec/unit/view_helpers/fields_for_spec.rb +50 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +56 -0
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +101 -0
- data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
- data/spec/unit/views/components/attributes_table_spec.rb +230 -0
- data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
- data/spec/unit/views/components/blank_slate_spec.rb +17 -0
- data/spec/unit/views/components/columns_spec.rb +142 -0
- data/spec/unit/views/components/index_list_spec.rb +32 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +227 -0
- data/spec/unit/views/components/panel_spec.rb +51 -0
- data/spec/unit/views/components/popover_spec.rb +33 -0
- data/spec/unit/views/components/sidebar_section_spec.rb +37 -0
- data/spec/unit/views/components/site_title_spec.rb +78 -0
- data/spec/unit/views/components/status_tag_spec.rb +95 -0
- data/spec/unit/views/components/table_for_spec.rb +201 -0
- data/spec/unit/views/pages/form_spec.rb +35 -0
- data/spec/unit/views/pages/layout_spec.rb +63 -0
- data/spec/unit/views/pages/show_spec.rb +20 -0
- data/spec/unit/views/tabbed_navigation_spec.rb +149 -0
- data/tasks/docs.rake +37 -0
- data/tasks/js.rake +32 -0
- data/tasks/parallel_tests.rake +60 -0
- data/tasks/test.rake +79 -0
- data/tasks/yard.rake +7 -0
- metadata +896 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ActiveAdmin::Views::Panel do
|
|
4
|
+
|
|
5
|
+
let(:the_panel) do
|
|
6
|
+
render_arbre_component do
|
|
7
|
+
panel "My Title" do
|
|
8
|
+
span("Hello World")
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "should have a title h3" do
|
|
14
|
+
the_panel.find_by_tag("h3").first.content.should == "My Title"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "should have a contents div" do
|
|
18
|
+
the_panel.find_by_tag("div").first.class_list.should include("panel_contents")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should add children to the contents div" do
|
|
22
|
+
the_panel.find_by_tag("span").first.parent.should == the_panel.find_by_tag("div").first
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should set the icon" do
|
|
26
|
+
the_panel = render_arbre_component do
|
|
27
|
+
panel("Title", :icon => :arrow_down)
|
|
28
|
+
end
|
|
29
|
+
the_panel.find_by_tag("h3").first.content.should include("span class=\"icon")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "should allow a html_safe title (without icon)" do
|
|
33
|
+
title_with_html = %q[Title with <abbr>HTML</abbr>].html_safe
|
|
34
|
+
the_panel = render_arbre_component do
|
|
35
|
+
panel(title_with_html)
|
|
36
|
+
end
|
|
37
|
+
the_panel.find_by_tag("h3").first.content.should eq(title_with_html)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe "#children?" do
|
|
41
|
+
|
|
42
|
+
it "returns false if no children have been added to the panel" do
|
|
43
|
+
the_panel = render_arbre_component do
|
|
44
|
+
panel("A Panel")
|
|
45
|
+
end
|
|
46
|
+
the_panel.children?.should == false
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ActiveAdmin::Views::Popover do
|
|
4
|
+
|
|
5
|
+
let(:the_popover) do
|
|
6
|
+
render_arbre_component do
|
|
7
|
+
popover :id => "my_awesome_popover" do
|
|
8
|
+
para "Hello World, this is popover content baby."
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "should have the class of 'sidebar_section'" do
|
|
14
|
+
the_popover.class_list.should include("popover")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "should have an inner content element class of 'popover_contents'" do
|
|
18
|
+
the_popover.find_by_tag("div").first.class_list.should include("popover_contents")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should have the popover content in the inner content element" do
|
|
22
|
+
the_popover.find_by_class("popover_contents").first.content.should include("Hello World, this is popover content baby.")
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should have an id" do
|
|
26
|
+
the_popover.id.should == "my_awesome_popover"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "should be hidden" do
|
|
30
|
+
the_popover.attributes.should include(:style => "display: none");
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ActiveAdmin::Views::SidebarSection do
|
|
4
|
+
|
|
5
|
+
let(:section) do
|
|
6
|
+
ActiveAdmin::SidebarSection.new("Help Section") do
|
|
7
|
+
span "Help Me"
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
let(:html) do
|
|
12
|
+
render_arbre_component :section => section do
|
|
13
|
+
sidebar_section(assigns[:section])
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "should have a title h3" do
|
|
18
|
+
html.find_by_tag("h3").first.content.should == "Help Section"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should have the class of 'sidebar_section'" do
|
|
22
|
+
html.class_list.should include("sidebar_section")
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should have an id based on the title" do
|
|
26
|
+
html.id.should == "help-section_sidebar_section"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "should have a contents div" do
|
|
30
|
+
html.find_by_tag("div").first.class_list.should include("panel_contents")
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should add children to the contents div" do
|
|
34
|
+
html.find_by_tag("span").first.parent.should == html.find_by_tag("div").first
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ActiveAdmin::Views::SiteTitle do
|
|
4
|
+
|
|
5
|
+
let(:helpers){ mock_action_view }
|
|
6
|
+
|
|
7
|
+
def build_title(namespace)
|
|
8
|
+
render_arbre_component({namespace: namespace}, helpers) do
|
|
9
|
+
insert_tag ActiveAdmin::Views::SiteTitle, assigns[:namespace]
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
context "when a value" do
|
|
14
|
+
|
|
15
|
+
it "renders the string when a string is passed in" do
|
|
16
|
+
namespace = double site_title: "Hello World",
|
|
17
|
+
site_title_image: nil,
|
|
18
|
+
site_title_link: nil
|
|
19
|
+
|
|
20
|
+
site_title = build_title(namespace)
|
|
21
|
+
site_title.content.should eq "Hello World"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "renders the return value of a method when a symbol" do
|
|
25
|
+
helpers.should_receive(:hello_world).and_return("Hello World")
|
|
26
|
+
|
|
27
|
+
namespace = double site_title: :hello_world,
|
|
28
|
+
site_title_image: nil,
|
|
29
|
+
site_title_link: nil
|
|
30
|
+
|
|
31
|
+
site_title = build_title(namespace)
|
|
32
|
+
site_title.content.should eq "Hello World"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "renders the return value of a proc" do
|
|
36
|
+
namespace = double site_title: proc{ "Hello World" },
|
|
37
|
+
site_title_image: nil,
|
|
38
|
+
site_title_link: nil
|
|
39
|
+
|
|
40
|
+
site_title = build_title(namespace)
|
|
41
|
+
site_title.content.should eq "Hello World"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
context "when an image" do
|
|
47
|
+
|
|
48
|
+
it "renders the string when a string is passed in" do
|
|
49
|
+
helpers.should_receive(:image_tag).
|
|
50
|
+
with("an/image.png", alt: nil, id: "site_title_image").
|
|
51
|
+
and_return '<img src="/assets/an/image.png" />'.html_safe
|
|
52
|
+
|
|
53
|
+
namespace = double site_title: nil,
|
|
54
|
+
site_title_image: "an/image.png",
|
|
55
|
+
site_title_link: nil
|
|
56
|
+
|
|
57
|
+
site_title = build_title(namespace)
|
|
58
|
+
site_title.content.strip.should eq '<img src="/assets/an/image.png" />'
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
context "when a link is present" do
|
|
64
|
+
|
|
65
|
+
it "renders the string when a string is passed in" do
|
|
66
|
+
namespace = double site_title: "Hello World",
|
|
67
|
+
site_title_image: nil,
|
|
68
|
+
site_title_link: "/"
|
|
69
|
+
|
|
70
|
+
site_title = build_title(namespace)
|
|
71
|
+
site_title.content.should eq '<a href="/">Hello World</a>'
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ActiveAdmin::Views::StatusTag do
|
|
4
|
+
|
|
5
|
+
describe "#status_tag" do
|
|
6
|
+
|
|
7
|
+
# Helper method to build StatusTag objects in an Arbre context
|
|
8
|
+
def status_tag(*args)
|
|
9
|
+
render_arbre_component(:status_tag_args => args) do
|
|
10
|
+
status_tag(*assigns[:status_tag_args])
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
subject { status_tag(nil) }
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
its(:tag_name) { should == 'span' }
|
|
18
|
+
its(:class_list) { should include('status_tag') }
|
|
19
|
+
|
|
20
|
+
context "when status is 'completed'" do
|
|
21
|
+
subject { status_tag('completed') }
|
|
22
|
+
|
|
23
|
+
its(:tag_name) { should == 'span' }
|
|
24
|
+
its(:class_list) { should include('status_tag') }
|
|
25
|
+
its(:class_list) { should include('completed') }
|
|
26
|
+
its(:content) { should == 'Completed' }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
context "when status is 'in_progress'" do
|
|
30
|
+
subject { status_tag('in_progress') }
|
|
31
|
+
|
|
32
|
+
its(:class_list) { should include('in_progress') }
|
|
33
|
+
its(:content) { should == 'In Progress' }
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
context "when status is 'In progress'" do
|
|
37
|
+
subject { status_tag('In progress') }
|
|
38
|
+
|
|
39
|
+
its(:class_list) { should include('in_progress') }
|
|
40
|
+
its(:content) { should == 'In Progress' }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
context "when status is an empty string" do
|
|
44
|
+
subject { status_tag('') }
|
|
45
|
+
|
|
46
|
+
its(:class_list) { should include('status_tag') }
|
|
47
|
+
its(:content) { should == '' }
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
context "when status is nil" do
|
|
51
|
+
subject { status_tag(nil) }
|
|
52
|
+
|
|
53
|
+
its(:class_list) { should include('status_tag') }
|
|
54
|
+
its(:content) { should == '' }
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
context "when status is 'Active' and type is :ok" do
|
|
58
|
+
subject { status_tag('Active', :ok) }
|
|
59
|
+
|
|
60
|
+
its(:class_list) { should include('status_tag') }
|
|
61
|
+
its(:class_list) { should include('active') }
|
|
62
|
+
its(:class_list) { should include('ok') }
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
context "when status is 'Active' and class is 'ok'" do
|
|
66
|
+
subject { status_tag('Active', :class => 'ok') }
|
|
67
|
+
|
|
68
|
+
its(:class_list) { should include('status_tag') }
|
|
69
|
+
its(:class_list) { should include('active') }
|
|
70
|
+
its(:class_list) { should include('ok') }
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
context "when status is 'Active' and label is 'on'" do
|
|
74
|
+
subject { status_tag('Active', :label => 'on') }
|
|
75
|
+
|
|
76
|
+
its(:content) { should == 'on' }
|
|
77
|
+
its(:class_list) { should include('status_tag') }
|
|
78
|
+
its(:class_list) { should include('active') }
|
|
79
|
+
its(:class_list) { should_not include('on') }
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
context "when status is 'So useless', type is :ok, class is 'woot awesome' and id is 'useless'" do
|
|
83
|
+
subject { status_tag('So useless', :ok, :class => 'woot awesome', :id => 'useless') }
|
|
84
|
+
|
|
85
|
+
its(:content) { should == 'So Useless' }
|
|
86
|
+
its(:class_list) { should include('status_tag') }
|
|
87
|
+
its(:class_list) { should include('ok') }
|
|
88
|
+
its(:class_list) { should include('so_useless') }
|
|
89
|
+
its(:class_list) { should include('woot') }
|
|
90
|
+
its(:class_list) { should include('awesome') }
|
|
91
|
+
its(:id) { should == 'useless' }
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
end # describe "#status_tag"
|
|
95
|
+
end
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ActiveAdmin::Views::TableFor do
|
|
4
|
+
describe "creating with the dsl" do
|
|
5
|
+
|
|
6
|
+
let(:collection) do
|
|
7
|
+
[Post.new(:title => "First Post"), Post.new(:title => "Second Post"), Post.new(:title => "Third Post")]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
let(:assigns){ { :collection => collection } }
|
|
11
|
+
let(:helpers){ mock_action_view }
|
|
12
|
+
|
|
13
|
+
context "when creating a column with a symbol" do
|
|
14
|
+
let(:table) do
|
|
15
|
+
render_arbre_component assigns, helpers do
|
|
16
|
+
table_for(collection) do
|
|
17
|
+
column :title
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should create a table header based on the symbol" do
|
|
23
|
+
table.find_by_tag("th").first.content.should == "Title"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should create a table row for each element in the collection" do
|
|
27
|
+
table.find_by_tag("tr").size.should == 4 # 1 for head, 3 for rows
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
["First Post", "Second Post", "Third Post"].each_with_index do |content, index|
|
|
31
|
+
it "should create a cell with #{content}" do
|
|
32
|
+
table.find_by_tag("td")[index].content.should == content
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
context "when creating many columns with symbols" do
|
|
38
|
+
let(:table) do
|
|
39
|
+
render_arbre_component assigns, helpers do
|
|
40
|
+
table_for(collection) do
|
|
41
|
+
column :title
|
|
42
|
+
column :created_at
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "should create a table header based on the symbol" do
|
|
48
|
+
table.find_by_tag("th").first.content.should == "Title"
|
|
49
|
+
table.find_by_tag("th").last.content.should == "Created At"
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "should add a class to each table header based on the col name" do
|
|
53
|
+
table.find_by_tag("th").first
|
|
54
|
+
.class_list.to_a.join(' ').should == "col col-title"
|
|
55
|
+
table.find_by_tag("th").last
|
|
56
|
+
.class_list.to_a.join(' ').should == "col col-created_at"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it "should create a table row for each element in the collection" do
|
|
60
|
+
table.find_by_tag("tr").size.should == 4 # 1 for head, 3 for rows
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it "should create a cell for each column" do
|
|
64
|
+
table.find_by_tag("td").size.should == 6
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it "should add a class for each cell based on the col name" do
|
|
68
|
+
table.find_by_tag("td").first
|
|
69
|
+
.class_list.to_a.join(' ').should == "col col-title"
|
|
70
|
+
table.find_by_tag("td").last
|
|
71
|
+
.class_list.to_a.join(' ').should == "col col-created_at"
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
context "when creating a column with block content" do
|
|
76
|
+
let(:table) do
|
|
77
|
+
render_arbre_component assigns, helpers do
|
|
78
|
+
table_for(collection) do
|
|
79
|
+
column :title do |post|
|
|
80
|
+
span(post.title)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it "should add a class to each table header based on the col name" do
|
|
87
|
+
table.find_by_tag("th").first.class_list.should include("col-title")
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
[ "<span>First Post</span>",
|
|
91
|
+
"<span>Second Post</span>",
|
|
92
|
+
"<span>Third Post</span>" ].each_with_index do |content, index|
|
|
93
|
+
it "should create a cell with #{content}" do
|
|
94
|
+
table.find_by_tag("td")[index].content.strip.should == content
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
context "when creating a column with multiple block content" do
|
|
100
|
+
let(:table) do
|
|
101
|
+
render_arbre_component assigns, helpers do
|
|
102
|
+
table_for(collection) do
|
|
103
|
+
column :title do |post|
|
|
104
|
+
span(post.title)
|
|
105
|
+
span(post.title)
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
3.times do |index|
|
|
112
|
+
it "should create a cell with multiple elements in row #{index}" do
|
|
113
|
+
table.find_by_tag("td")[index].find_by_tag("span").size.should == 2
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
context "when creating many columns with symbols, blocks and strings" do
|
|
120
|
+
let(:table) do
|
|
121
|
+
render_arbre_component assigns, helpers do
|
|
122
|
+
table_for(collection) do
|
|
123
|
+
column "My Custom Title", :title
|
|
124
|
+
column :created_at , :class=>"datetime"
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
it "should add a class to each table header based on class option or the col name" do
|
|
131
|
+
table.find_by_tag("th").first
|
|
132
|
+
.class_list.to_a.join(' ').should == "col col-my_custom_title"
|
|
133
|
+
table.find_by_tag("th").last
|
|
134
|
+
.class_list.to_a.join(' ').should == "col datetime"
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
it "should add a class to each cell based on class option or the col name" do
|
|
138
|
+
table.find_by_tag("td").first
|
|
139
|
+
.class_list.to_a.join(' ').should == "col col-my_custom_title"
|
|
140
|
+
table.find_by_tag("td").last
|
|
141
|
+
.class_list.to_a.join(' ').should == "col datetime"
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
context "when using a single record instead of a collection" do
|
|
146
|
+
let(:table) do
|
|
147
|
+
render_arbre_component nil, helpers do
|
|
148
|
+
table_for Post.new do
|
|
149
|
+
column :title
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
it "should render" do
|
|
154
|
+
table.find_by_tag("th").first.content.should == "Title"
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
describe "column sorting" do
|
|
162
|
+
|
|
163
|
+
def build_column(*args, &block)
|
|
164
|
+
ActiveAdmin::Views::TableFor::Column.new(*args, &block)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
subject { table_column }
|
|
168
|
+
|
|
169
|
+
context "when default" do
|
|
170
|
+
let(:table_column){ build_column(:username) }
|
|
171
|
+
it { should be_sortable }
|
|
172
|
+
its(:sort_key){ should == "username" }
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
context "when a block given with no sort key" do
|
|
176
|
+
let(:table_column){ build_column("Username"){ } }
|
|
177
|
+
it { should_not be_sortable }
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
context "when a block given with a sort key" do
|
|
181
|
+
let(:table_column){ build_column("Username", :sortable => :username){ } }
|
|
182
|
+
it { should be_sortable }
|
|
183
|
+
its(:sort_key){ should == "username" }
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
context "when :sortable => false with a symbol" do
|
|
187
|
+
let(:table_column){ build_column(:username, :sortable => false) }
|
|
188
|
+
it { should_not be_sortable }
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
context "when :sortable => false with a symbol and string" do
|
|
192
|
+
let(:table_column){ build_column("Username", :username, :sortable => false) }
|
|
193
|
+
it { should_not be_sortable }
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
context "when :sortable column is an association" do
|
|
197
|
+
let(:table_column){ build_column("Category", :category, Post) }
|
|
198
|
+
it { should_not be_sortable }
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
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!(:params){ { :controller => "UsersController", :action => "edit" } }
|
|
8
|
+
let(:helpers) do
|
|
9
|
+
helpers = mock_action_view
|
|
10
|
+
helpers.stub :active_admin_config => namespace.register(Post),
|
|
11
|
+
:params => params
|
|
12
|
+
|
|
13
|
+
helpers
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
let(:arbre_context) do
|
|
17
|
+
OpenStruct.new(:params => params, :helpers => helpers, :assigns => {})
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
context "when page_title is assigned" do
|
|
21
|
+
it "should show the set page title" do
|
|
22
|
+
arbre_context.assigns[:page_title] = "My Page Title"
|
|
23
|
+
page = ActiveAdmin::Views::Pages::Form.new(arbre_context)
|
|
24
|
+
page.title.should eq "My Page Title"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
context "when page_title is not assigned" do
|
|
29
|
+
it "should show the correct I18n text" do
|
|
30
|
+
page = ActiveAdmin::Views::Pages::Form.new(arbre_context)
|
|
31
|
+
page.title.should eq "Edit Post"
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ActiveAdmin::Views::Pages::Layout do
|
|
4
|
+
|
|
5
|
+
let(:assigns){ {} }
|
|
6
|
+
let(:helpers) do
|
|
7
|
+
helpers = mock_action_view
|
|
8
|
+
|
|
9
|
+
helpers.stub :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
|
+
:breadcrumb_links => [],
|
|
13
|
+
:content_for => "",
|
|
14
|
+
:csrf_meta_tag => "",
|
|
15
|
+
:current_active_admin_user => nil,
|
|
16
|
+
:current_active_admin_user? => false,
|
|
17
|
+
:current_menu => double('Menu', :items => []),
|
|
18
|
+
:flash => {},
|
|
19
|
+
:javascript_path => "/dummy/",
|
|
20
|
+
:link_to => "",
|
|
21
|
+
:render_or_call_method_or_proc_on => "",
|
|
22
|
+
:stylesheet_link_tag => double(html_safe: ""),
|
|
23
|
+
:view_factory => view_factory,
|
|
24
|
+
:params => {:controller => 'UsersController', :action => 'edit'}
|
|
25
|
+
|
|
26
|
+
helpers
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
let(:active_admin_namespace){ ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :myspace) }
|
|
30
|
+
let(:active_admin_application){ ActiveAdmin.application }
|
|
31
|
+
let(:view_factory) { ActiveAdmin::ViewFactory.new }
|
|
32
|
+
|
|
33
|
+
let(:layout) do
|
|
34
|
+
render_arbre_component assigns, helpers do
|
|
35
|
+
insert_tag ActiveAdmin::Views::Pages::Layout
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "should be the @page_title if assigned in the controller" do
|
|
40
|
+
assigns[:page_title] = "My Page Title"
|
|
41
|
+
|
|
42
|
+
layout.title.should == "My Page Title"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "should be the default translation" do
|
|
46
|
+
helpers.params[:action] = "edit"
|
|
47
|
+
|
|
48
|
+
layout.title.should == "Edit"
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
describe "the body" do
|
|
52
|
+
|
|
53
|
+
it "should have class 'active_admin'" do
|
|
54
|
+
layout.build.class_list.should include 'active_admin'
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "should have namespace class" do
|
|
58
|
+
layout.build.class_list.should include "#{active_admin_namespace.name}_namespace"
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
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
|
+
|
|
9
|
+
context 'when the resource does not respond to #decorator' do
|
|
10
|
+
let(:resource) { 'Test Resource' }
|
|
11
|
+
|
|
12
|
+
it "normally returns the resource" do
|
|
13
|
+
page = ActiveAdmin::Views::Pages::Show.new(arbre_context)
|
|
14
|
+
page.resource.should == 'Test Resource'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|