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
data/spec/unit/resource_spec.rb
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'rails_helper'
|
|
2
2
|
require File.expand_path('config_shared_examples', File.dirname(__FILE__))
|
|
3
3
|
|
|
4
4
|
module ActiveAdmin
|
|
5
5
|
describe Resource do
|
|
6
6
|
|
|
7
|
-
it_should_behave_like "ActiveAdmin::
|
|
8
|
-
|
|
7
|
+
it_should_behave_like "ActiveAdmin::Resource"
|
|
9
8
|
before { load_defaults! }
|
|
10
9
|
|
|
11
10
|
let(:application){ ActiveAdmin::Application.new }
|
|
@@ -19,33 +18,33 @@ module ActiveAdmin
|
|
|
19
18
|
|
|
20
19
|
describe "#resource_table_name" do
|
|
21
20
|
it "should return the resource's table name" do
|
|
22
|
-
config.resource_table_name.
|
|
21
|
+
expect(config.resource_table_name).to eq '"categories"'
|
|
23
22
|
end
|
|
24
23
|
context "when the :as option is given" do
|
|
25
24
|
it "should return the resource's table name" do
|
|
26
|
-
config(:
|
|
25
|
+
expect(config(as: "My Category").resource_table_name).to eq '"categories"'
|
|
27
26
|
end
|
|
28
27
|
end
|
|
29
28
|
end
|
|
30
29
|
|
|
31
30
|
describe "#resource_column_names" do
|
|
32
31
|
it "should return the resource's column names" do
|
|
33
|
-
config.resource_column_names.
|
|
32
|
+
expect(config.resource_column_names).to eq Category.column_names
|
|
34
33
|
end
|
|
35
34
|
end
|
|
36
35
|
|
|
37
36
|
describe '#decorator_class' do
|
|
38
37
|
it 'returns nil by default' do
|
|
39
|
-
config.decorator_class.
|
|
38
|
+
expect(config.decorator_class).to be_nil
|
|
40
39
|
end
|
|
41
40
|
context 'when a decorator is defined' do
|
|
42
41
|
let(:resource) { namespace.register(Post) { decorate_with PostDecorator } }
|
|
43
42
|
specify '#decorator_class_name should return PostDecorator' do
|
|
44
|
-
resource.decorator_class_name.
|
|
43
|
+
expect(resource.decorator_class_name).to eq '::PostDecorator'
|
|
45
44
|
end
|
|
46
45
|
|
|
47
46
|
it 'returns the decorator class' do
|
|
48
|
-
resource.decorator_class.
|
|
47
|
+
expect(resource.decorator_class).to eq PostDecorator
|
|
49
48
|
end
|
|
50
49
|
end
|
|
51
50
|
end
|
|
@@ -53,12 +52,12 @@ module ActiveAdmin
|
|
|
53
52
|
|
|
54
53
|
describe "controller name" do
|
|
55
54
|
it "should return a namespaced controller name" do
|
|
56
|
-
config.controller_name.
|
|
55
|
+
expect(config.controller_name).to eq "Admin::CategoriesController"
|
|
57
56
|
end
|
|
58
57
|
context "when non namespaced controller" do
|
|
59
58
|
let(:namespace){ ActiveAdmin::Namespace.new(application, :root) }
|
|
60
59
|
it "should return a non namespaced controller name" do
|
|
61
|
-
config.controller_name.
|
|
60
|
+
expect(config.controller_name).to eq "CategoriesController"
|
|
62
61
|
end
|
|
63
62
|
end
|
|
64
63
|
end
|
|
@@ -69,27 +68,27 @@ module ActiveAdmin
|
|
|
69
68
|
|
|
70
69
|
context "when regular resource" do
|
|
71
70
|
let(:resource){ namespace.register(Post) }
|
|
72
|
-
it {
|
|
71
|
+
it { is_expected.to be_include_in_menu }
|
|
73
72
|
end
|
|
74
73
|
|
|
75
74
|
context "when menu set to false" do
|
|
76
75
|
let(:resource){ namespace.register(Post){ menu false } }
|
|
77
|
-
it {
|
|
76
|
+
it { is_expected.not_to be_include_in_menu }
|
|
78
77
|
end
|
|
79
78
|
end
|
|
80
79
|
|
|
81
80
|
describe "#belongs_to" do
|
|
82
81
|
|
|
83
82
|
it "should build a belongs to configuration" do
|
|
84
|
-
config.belongs_to_config.
|
|
83
|
+
expect(config.belongs_to_config).to be_nil
|
|
85
84
|
config.belongs_to :posts
|
|
86
|
-
config.belongs_to_config.
|
|
85
|
+
expect(config.belongs_to_config).to_not be_nil
|
|
87
86
|
end
|
|
88
87
|
|
|
89
88
|
it "should set the target menu to the belongs to target" do
|
|
90
|
-
config.navigation_menu_name.
|
|
89
|
+
expect(config.navigation_menu_name).to eq ActiveAdmin::DEFAULT_MENU
|
|
91
90
|
config.belongs_to :posts
|
|
92
|
-
config.navigation_menu_name.
|
|
91
|
+
expect(config.navigation_menu_name).to eq :posts
|
|
93
92
|
end
|
|
94
93
|
|
|
95
94
|
end
|
|
@@ -105,7 +104,7 @@ module ActiveAdmin
|
|
|
105
104
|
end
|
|
106
105
|
it "should call the proc for the begin of association chain" do
|
|
107
106
|
begin_of_association_chain = @resource.controller.new.send(:begin_of_association_chain)
|
|
108
|
-
begin_of_association_chain.
|
|
107
|
+
expect(begin_of_association_chain).to eq "scoped"
|
|
109
108
|
end
|
|
110
109
|
end
|
|
111
110
|
|
|
@@ -117,9 +116,9 @@ module ActiveAdmin
|
|
|
117
116
|
end
|
|
118
117
|
it "should call the method for the begin of association chain" do
|
|
119
118
|
controller = @resource.controller.new
|
|
120
|
-
controller.
|
|
119
|
+
expect(controller).to receive(:current_user).and_return(true)
|
|
121
120
|
begin_of_association_chain = controller.send(:begin_of_association_chain)
|
|
122
|
-
begin_of_association_chain.
|
|
121
|
+
expect(begin_of_association_chain).to eq true
|
|
123
122
|
end
|
|
124
123
|
end
|
|
125
124
|
|
|
@@ -131,17 +130,17 @@ module ActiveAdmin
|
|
|
131
130
|
end
|
|
132
131
|
end
|
|
133
132
|
it "should return the pluralized collection name" do
|
|
134
|
-
@resource.controller.new.send(:method_for_association_chain).
|
|
133
|
+
expect(@resource.controller.new.send(:method_for_association_chain)).to eq :categories
|
|
135
134
|
end
|
|
136
135
|
end
|
|
137
136
|
context "when passing in the method as an option" do
|
|
138
137
|
before do
|
|
139
138
|
@resource = application.register Category do
|
|
140
|
-
scope_to :current_user, :
|
|
139
|
+
scope_to :current_user, association_method: :blog_categories
|
|
141
140
|
end
|
|
142
141
|
end
|
|
143
142
|
it "should return the method from the option" do
|
|
144
|
-
@resource.controller.new.send(:method_for_association_chain).
|
|
143
|
+
expect(@resource.controller.new.send(:method_for_association_chain)).to eq :blog_categories
|
|
145
144
|
end
|
|
146
145
|
end
|
|
147
146
|
end
|
|
@@ -152,22 +151,22 @@ module ActiveAdmin
|
|
|
152
151
|
|
|
153
152
|
context "when resource class responds to primary_key" do
|
|
154
153
|
it "should sort by primary key desc by default" do
|
|
155
|
-
MockResource.
|
|
154
|
+
expect(MockResource).to receive(:primary_key).and_return("pk")
|
|
156
155
|
config = Resource.new(namespace, MockResource)
|
|
157
|
-
config.sort_order.
|
|
156
|
+
expect(config.sort_order).to eq "pk_desc"
|
|
158
157
|
end
|
|
159
158
|
end
|
|
160
159
|
|
|
161
160
|
context "when resource class does not respond to primary_key" do
|
|
162
161
|
it "should default to id" do
|
|
163
162
|
config = Resource.new(namespace, MockResource)
|
|
164
|
-
config.sort_order.
|
|
163
|
+
expect(config.sort_order).to eq "id_desc"
|
|
165
164
|
end
|
|
166
165
|
end
|
|
167
166
|
|
|
168
167
|
it "should be set-able" do
|
|
169
168
|
config.sort_order = "task_id_desc"
|
|
170
|
-
config.sort_order.
|
|
169
|
+
expect(config.sort_order).to eq "task_id_desc"
|
|
171
170
|
end
|
|
172
171
|
|
|
173
172
|
end
|
|
@@ -176,19 +175,19 @@ module ActiveAdmin
|
|
|
176
175
|
|
|
177
176
|
it "should add a scope" do
|
|
178
177
|
config.scope :published
|
|
179
|
-
config.scopes.first.
|
|
180
|
-
config.scopes.first.name.
|
|
178
|
+
expect(config.scopes.first).to be_a(ActiveAdmin::Scope)
|
|
179
|
+
expect(config.scopes.first.name).to eq "Published"
|
|
181
180
|
end
|
|
182
181
|
|
|
183
182
|
it "should retrive a scope by its id" do
|
|
184
183
|
config.scope :published
|
|
185
|
-
config.get_scope_by_id(:published).name.
|
|
184
|
+
expect(config.get_scope_by_id(:published).name).to eq "Published"
|
|
186
185
|
end
|
|
187
186
|
|
|
188
187
|
it "should retrieve the default scope by proc" do
|
|
189
|
-
config.scope :published, :
|
|
188
|
+
config.scope :published, default: proc{ true }
|
|
190
189
|
config.scope :all
|
|
191
|
-
config.default_scope.name.
|
|
190
|
+
expect(config.default_scope.name).to eq "Published"
|
|
192
191
|
end
|
|
193
192
|
|
|
194
193
|
end
|
|
@@ -196,7 +195,7 @@ module ActiveAdmin
|
|
|
196
195
|
describe "#csv_builder" do
|
|
197
196
|
context "when no csv builder set" do
|
|
198
197
|
it "should return a default column builder with id and content columns" do
|
|
199
|
-
config.csv_builder.
|
|
198
|
+
expect(config.csv_builder.exec_columns.size).to eq Category.content_columns.size + 1
|
|
200
199
|
end
|
|
201
200
|
end
|
|
202
201
|
|
|
@@ -204,7 +203,27 @@ module ActiveAdmin
|
|
|
204
203
|
it "shuld return the csv_builder we set" do
|
|
205
204
|
csv_builder = CSVBuilder.new
|
|
206
205
|
config.csv_builder = csv_builder
|
|
207
|
-
config.csv_builder.
|
|
206
|
+
expect(config.csv_builder).to eq csv_builder
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
describe "#breadcrumb" do
|
|
212
|
+
subject { config.breadcrumb }
|
|
213
|
+
|
|
214
|
+
context "when no breadcrumb is set" do
|
|
215
|
+
it { is_expected.to eq(namespace.breadcrumb) }
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
context "when breadcrumb is set" do
|
|
219
|
+
context "when set to true" do
|
|
220
|
+
before { config.breadcrumb = true }
|
|
221
|
+
it { is_expected.to be_truthy }
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
context "when set to false" do
|
|
225
|
+
before { config.breadcrumb = false }
|
|
226
|
+
it { is_expected.to be_falsey }
|
|
208
227
|
end
|
|
209
228
|
end
|
|
210
229
|
end
|
|
@@ -213,29 +232,45 @@ module ActiveAdmin
|
|
|
213
232
|
let(:resource) { namespace.register(Post) }
|
|
214
233
|
let(:post) { double }
|
|
215
234
|
before do
|
|
216
|
-
Post.
|
|
235
|
+
allow(Post).to receive(:find_by_id).with('12345') { post }
|
|
217
236
|
end
|
|
218
237
|
|
|
219
238
|
it 'can find the resource' do
|
|
220
|
-
resource.find_resource('12345').
|
|
239
|
+
expect(resource.find_resource('12345')).to eq post
|
|
221
240
|
end
|
|
222
241
|
|
|
223
242
|
context 'with a decorator' do
|
|
224
243
|
let(:resource) { namespace.register(Post) { decorate_with PostDecorator } }
|
|
225
244
|
it 'decorates the resource' do
|
|
226
|
-
resource.find_resource('12345').
|
|
245
|
+
expect(resource.find_resource('12345')).to eq PostDecorator.new(post)
|
|
227
246
|
end
|
|
228
247
|
end
|
|
229
248
|
|
|
230
249
|
context 'when using a nonstandard primary key' do
|
|
231
250
|
let(:different_post) { double }
|
|
232
251
|
before do
|
|
233
|
-
Post.
|
|
234
|
-
Post.
|
|
252
|
+
allow(Post).to receive(:primary_key).and_return 'something_else'
|
|
253
|
+
allow(Post).to receive(:find_by_something_else).with('55555') { different_post }
|
|
235
254
|
end
|
|
236
255
|
|
|
237
256
|
it 'can find the post by the custom primary key' do
|
|
238
|
-
resource.find_resource('55555').
|
|
257
|
+
expect(resource.find_resource('55555')).to eq different_post
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
context 'when using controller finder' do
|
|
262
|
+
let(:resource) do
|
|
263
|
+
namespace.register(Post) do
|
|
264
|
+
controller do
|
|
265
|
+
defaults finder: :find_by_title!
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
it 'can find the post by controller finder' do
|
|
271
|
+
allow(Post).to receive(:find_by_title!).with('title-name').and_return(post)
|
|
272
|
+
|
|
273
|
+
expect(resource.find_resource('title-name')).to eq post
|
|
239
274
|
end
|
|
240
275
|
end
|
|
241
276
|
end
|
data/spec/unit/routing_spec.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
|
-
require '
|
|
3
|
+
require 'rails_helper'
|
|
4
4
|
|
|
5
|
-
describe ActiveAdmin, "Routing", :
|
|
5
|
+
describe ActiveAdmin, "Routing", type: :routing do
|
|
6
6
|
|
|
7
7
|
before do
|
|
8
8
|
load_defaults!
|
|
@@ -10,51 +10,59 @@ describe ActiveAdmin, "Routing", :type => :routing do
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
it "should only have the namespaces necessary for route testing" do
|
|
13
|
-
ActiveAdmin.application.namespaces.
|
|
13
|
+
expect(ActiveAdmin.application.namespaces.names).to eq [:admin, :root]
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
it "should route to the admin dashboard" do
|
|
17
|
-
get('/admin').
|
|
17
|
+
expect(get('/admin')).to route_to 'admin/dashboard#index'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe "root path helper" do
|
|
21
|
+
context "when in admin namespace" do
|
|
22
|
+
it "should be admin_root_path" do
|
|
23
|
+
expect(admin_root_path).to eq "/admin"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
18
26
|
end
|
|
19
27
|
|
|
20
28
|
describe "standard resources" do
|
|
21
29
|
context "when in admin namespace" do
|
|
22
30
|
it "should route the index path" do
|
|
23
|
-
admin_posts_path.
|
|
31
|
+
expect(admin_posts_path).to eq "/admin/posts"
|
|
24
32
|
end
|
|
25
33
|
|
|
26
34
|
it "should route the show path" do
|
|
27
|
-
admin_post_path(1).
|
|
35
|
+
expect(admin_post_path(1)).to eq "/admin/posts/1"
|
|
28
36
|
end
|
|
29
37
|
|
|
30
38
|
it "should route the new path" do
|
|
31
|
-
new_admin_post_path.
|
|
39
|
+
expect(new_admin_post_path).to eq "/admin/posts/new"
|
|
32
40
|
end
|
|
33
41
|
|
|
34
42
|
it "should route the edit path" do
|
|
35
|
-
edit_admin_post_path(1).
|
|
43
|
+
expect(edit_admin_post_path(1)).to eq "/admin/posts/1/edit"
|
|
36
44
|
end
|
|
37
45
|
end
|
|
38
46
|
|
|
39
47
|
context "when in root namespace" do
|
|
40
48
|
before(:each) do
|
|
41
|
-
load_resources { ActiveAdmin.register(Post, :
|
|
49
|
+
load_resources { ActiveAdmin.register(Post, namespace: false) }
|
|
42
50
|
end
|
|
43
51
|
|
|
44
52
|
it "should route the index path" do
|
|
45
|
-
posts_path.
|
|
53
|
+
expect(posts_path).to eq "/posts"
|
|
46
54
|
end
|
|
47
55
|
|
|
48
56
|
it "should route the show path" do
|
|
49
|
-
post_path(1).
|
|
57
|
+
expect(post_path(1)).to eq "/posts/1"
|
|
50
58
|
end
|
|
51
59
|
|
|
52
60
|
it "should route the new path" do
|
|
53
|
-
new_post_path.
|
|
61
|
+
expect(new_post_path).to eq "/posts/new"
|
|
54
62
|
end
|
|
55
63
|
|
|
56
64
|
it "should route the edit path" do
|
|
57
|
-
edit_post_path(1).
|
|
65
|
+
expect(edit_post_path(1)).to eq "/posts/1/edit"
|
|
58
66
|
end
|
|
59
67
|
end
|
|
60
68
|
|
|
@@ -67,36 +75,36 @@ describe ActiveAdmin, "Routing", :type => :routing do
|
|
|
67
75
|
end
|
|
68
76
|
|
|
69
77
|
it "should default to GET" do
|
|
70
|
-
{:
|
|
71
|
-
{:
|
|
78
|
+
expect({get: "/admin/posts/1/do_something"}).to be_routable
|
|
79
|
+
expect({post: "/admin/posts/1/do_something"}).to_not be_routable
|
|
72
80
|
end
|
|
73
81
|
end
|
|
74
82
|
|
|
75
83
|
context "with one http verb" do
|
|
76
84
|
before do
|
|
77
85
|
load_resources do
|
|
78
|
-
ActiveAdmin.register(Post){ member_action "do_something", :
|
|
86
|
+
ActiveAdmin.register(Post){ member_action "do_something", method: :post }
|
|
79
87
|
end
|
|
80
88
|
end
|
|
81
89
|
|
|
82
90
|
it "should properly route" do
|
|
83
|
-
{:
|
|
91
|
+
expect({post: "/admin/posts/1/do_something"}).to be_routable
|
|
84
92
|
end
|
|
85
93
|
end
|
|
86
94
|
|
|
87
95
|
context "with two http verbs" do
|
|
88
96
|
before do
|
|
89
97
|
load_resources do
|
|
90
|
-
ActiveAdmin.register(Post){ member_action "do_something", :
|
|
98
|
+
ActiveAdmin.register(Post){ member_action "do_something", method: [:put, :delete] }
|
|
91
99
|
end
|
|
92
100
|
end
|
|
93
101
|
|
|
94
102
|
it "should properly route the first verb" do
|
|
95
|
-
{:
|
|
103
|
+
expect({put: "/admin/posts/1/do_something"}).to be_routable
|
|
96
104
|
end
|
|
97
105
|
|
|
98
106
|
it "should properly route the second verb" do
|
|
99
|
-
{:
|
|
107
|
+
expect({delete: "/admin/posts/1/do_something"}).to be_routable
|
|
100
108
|
end
|
|
101
109
|
end
|
|
102
110
|
end
|
|
@@ -104,26 +112,26 @@ describe ActiveAdmin, "Routing", :type => :routing do
|
|
|
104
112
|
|
|
105
113
|
describe "belongs to resource" do
|
|
106
114
|
it "should route the nested index path" do
|
|
107
|
-
admin_user_posts_path(1).
|
|
115
|
+
expect(admin_user_posts_path(1)).to eq "/admin/users/1/posts"
|
|
108
116
|
end
|
|
109
117
|
|
|
110
118
|
it "should route the nested show path" do
|
|
111
|
-
admin_user_post_path(1,2).
|
|
119
|
+
expect(admin_user_post_path(1,2)).to eq "/admin/users/1/posts/2"
|
|
112
120
|
end
|
|
113
121
|
|
|
114
122
|
it "should route the nested new path" do
|
|
115
|
-
new_admin_user_post_path(1).
|
|
123
|
+
expect(new_admin_user_post_path(1)).to eq "/admin/users/1/posts/new"
|
|
116
124
|
end
|
|
117
125
|
|
|
118
126
|
it "should route the nested edit path" do
|
|
119
|
-
edit_admin_user_post_path(1,2).
|
|
127
|
+
expect(edit_admin_user_post_path(1,2)).to eq "/admin/users/1/posts/2/edit"
|
|
120
128
|
end
|
|
121
129
|
|
|
122
130
|
context "with collection action" do
|
|
123
131
|
before do
|
|
124
132
|
load_resources do
|
|
125
133
|
ActiveAdmin.register(Post) do
|
|
126
|
-
belongs_to :user, :
|
|
134
|
+
belongs_to :user, optional: true
|
|
127
135
|
end
|
|
128
136
|
ActiveAdmin.register(User) do
|
|
129
137
|
collection_action "do_something"
|
|
@@ -132,8 +140,8 @@ describe ActiveAdmin, "Routing", :type => :routing do
|
|
|
132
140
|
end
|
|
133
141
|
|
|
134
142
|
it "should properly route the collection action" do
|
|
135
|
-
{ :
|
|
136
|
-
|
|
143
|
+
expect({ get: "/admin/users/do_something" }).to \
|
|
144
|
+
route_to({ controller: 'admin/users', action: 'do_something'})
|
|
137
145
|
end
|
|
138
146
|
end
|
|
139
147
|
end
|
|
@@ -145,16 +153,16 @@ describe ActiveAdmin, "Routing", :type => :routing do
|
|
|
145
153
|
end
|
|
146
154
|
|
|
147
155
|
it "should route to the page under /admin" do
|
|
148
|
-
admin_chocolate_i_love_you_path.
|
|
156
|
+
expect(admin_chocolate_i_love_you_path).to eq "/admin/chocolate_i_love_you"
|
|
149
157
|
end
|
|
150
158
|
|
|
151
159
|
context "when in the root namespace" do
|
|
152
160
|
before(:each) do
|
|
153
|
-
load_resources { ActiveAdmin.register_page("Chocolate I lØve You!", :
|
|
161
|
+
load_resources { ActiveAdmin.register_page("Chocolate I lØve You!", namespace: false) }
|
|
154
162
|
end
|
|
155
163
|
|
|
156
164
|
it "should route to page under /" do
|
|
157
|
-
chocolate_i_love_you_path.
|
|
165
|
+
expect(chocolate_i_love_you_path).to eq "/chocolate_i_love_you"
|
|
158
166
|
end
|
|
159
167
|
end
|
|
160
168
|
|
|
@@ -164,7 +172,7 @@ describe ActiveAdmin, "Routing", :type => :routing do
|
|
|
164
172
|
end
|
|
165
173
|
|
|
166
174
|
it "should not inject _index_ into the route name" do
|
|
167
|
-
admin_log_path.
|
|
175
|
+
expect(admin_log_path).to eq "/admin/log"
|
|
168
176
|
end
|
|
169
177
|
end
|
|
170
178
|
end
|