activeadmin 1.0.0.pre4 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/CHANGELOG.md +529 -52
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +129 -58
- data/README.md +80 -79
- data/app/assets/javascripts/active_admin/base.es6 +23 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
- data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
- data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
- data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
- data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
- data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
- data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
- data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
- data/app/assets/stylesheets/active_admin/_base.scss +2 -2
- data/app/assets/stylesheets/active_admin/_forms.scss +19 -26
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
- data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/assets/stylesheets/active_admin/print.scss +2 -3
- data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
- data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
- data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/shared/_links.erb +12 -6
- data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
- data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
- data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
- data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
- data/config/locales/ar.yml +4 -5
- data/config/locales/bg.yml +1 -3
- data/config/locales/bs.yml +1 -2
- data/config/locales/ca.yml +2 -4
- data/config/locales/cs.yml +1 -2
- data/config/locales/da.yml +45 -14
- data/config/locales/de-CH.yml +2 -3
- data/config/locales/de.yml +30 -3
- data/config/locales/el.yml +3 -4
- data/config/locales/en-CA.yml +139 -0
- data/config/locales/en-GB.yml +44 -3
- data/config/locales/en.yml +31 -5
- data/config/locales/eo.yml +145 -0
- data/config/locales/es-MX.yml +5 -3
- data/config/locales/es.yml +32 -6
- data/config/locales/fa.yml +1 -2
- data/config/locales/fi.yml +2 -3
- data/config/locales/fr.yml +27 -5
- data/config/locales/he.yml +53 -7
- data/config/locales/hr.yml +1 -2
- data/config/locales/hu.yml +5 -2
- data/config/locales/id.yml +2 -3
- data/config/locales/it.yml +15 -7
- data/config/locales/ja.yml +8 -3
- data/config/locales/ko.yml +1 -2
- data/config/locales/lt.yml +27 -6
- data/config/locales/lv.yml +1 -2
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +16 -7
- data/config/locales/nl.yml +13 -3
- data/config/locales/pl.yml +75 -5
- data/config/locales/pt-BR.yml +10 -3
- data/config/locales/pt-PT.yml +1 -2
- data/config/locales/ro.yml +1 -2
- data/config/locales/ru.yml +5 -3
- data/config/locales/sk.yml +168 -0
- data/config/locales/sv-SE.yml +4 -3
- data/config/locales/tr.yml +10 -2
- data/config/locales/uk.yml +4 -3
- data/config/locales/vi.yml +48 -8
- data/config/locales/zh-CN.yml +38 -7
- data/config/locales/zh-TW.yml +2 -3
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +19 -13
- data/docs/1-general-configuration.md +37 -4
- data/docs/10-custom-pages.md +47 -3
- data/docs/11-decorators.md +4 -0
- data/docs/12-arbre-components.md +73 -9
- data/docs/13-authorization-adapter.md +72 -35
- data/docs/14-gotchas.md +57 -19
- data/docs/2-resource-customization.md +64 -20
- data/docs/3-index-pages/custom-index.md +5 -1
- data/docs/3-index-pages/index-as-block.md +3 -5
- data/docs/3-index-pages/index-as-blog.md +4 -6
- data/docs/3-index-pages/index-as-grid.md +3 -5
- data/docs/3-index-pages/index-as-table.md +33 -12
- data/docs/3-index-pages.md +65 -9
- data/docs/4-csv-format.md +16 -0
- data/docs/5-forms.md +78 -17
- data/docs/6-show-pages.md +5 -29
- data/docs/7-sidebars.md +5 -1
- data/docs/8-custom-actions.md +18 -1
- data/docs/9-batch-actions.md +8 -4
- data/docs/CNAME +1 -0
- data/docs/Gemfile +3 -0
- data/docs/Gemfile.lock +248 -0
- data/docs/_config.yml +4 -0
- data/docs/_includes/footer.html +8 -0
- data/docs/_includes/google-analytics.html +16 -0
- data/docs/_includes/head.html +7 -0
- data/docs/_includes/toc.html +98 -0
- data/docs/_includes/top-menu.html +17 -0
- data/docs/_layouts/default.html +21 -0
- data/docs/documentation.md +60 -0
- data/docs/images/activeadmin.png +0 -0
- data/docs/images/code-header.png +0 -0
- data/docs/images/divider.png +0 -0
- data/docs/images/features.png +0 -0
- data/docs/images/tidelift.svg +14 -0
- data/docs/index.html +226 -0
- data/docs/stylesheets/main.css +1205 -0
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +50 -140
- data/lib/active_admin/application_settings.rb +42 -0
- data/lib/active_admin/authorization_adapter.rb +0 -3
- data/lib/active_admin/base_controller/authorization.rb +4 -7
- data/lib/active_admin/base_controller/menu.rb +10 -14
- data/lib/active_admin/base_controller.rb +8 -14
- data/lib/active_admin/batch_actions/controller.rb +3 -3
- data/lib/active_admin/batch_actions/resource_extension.rb +9 -13
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
- data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/controller_action.rb +2 -1
- data/lib/active_admin/csv_builder.rb +15 -12
- data/lib/active_admin/dependency.rb +8 -76
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/devise.rb +3 -3
- data/lib/active_admin/dsl.rb +3 -16
- data/lib/active_admin/dynamic_setting.rb +38 -0
- data/lib/active_admin/dynamic_settings_node.rb +28 -0
- data/lib/active_admin/engine.rb +5 -0
- data/lib/active_admin/error.rb +5 -3
- data/lib/active_admin/filters/active.rb +13 -14
- data/lib/active_admin/filters/active_filter.rb +124 -0
- data/lib/active_admin/filters/active_sidebar.rb +54 -0
- data/lib/active_admin/filters/forms.rb +6 -4
- data/lib/active_admin/filters/formtastic_addons.rb +2 -2
- data/lib/active_admin/filters/resource_extension.rb +28 -43
- data/lib/active_admin/filters.rb +2 -0
- data/lib/active_admin/form_builder.rb +100 -59
- data/lib/active_admin/generators/boilerplate.rb +12 -4
- data/lib/active_admin/helpers/collection.rb +2 -0
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +12 -5
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
- data/lib/active_admin/inputs/filters/date_range_input.rb +21 -8
- data/lib/active_admin/inputs/filters/select_input.rb +6 -3
- data/lib/active_admin/inputs/filters/text_input.rb +25 -0
- data/lib/active_admin/inputs.rb +1 -0
- data/lib/active_admin/localizers/resource_localizer.rb +35 -0
- data/lib/active_admin/localizers.rb +11 -0
- data/lib/active_admin/menu.rb +6 -12
- data/lib/active_admin/menu_collection.rb +0 -2
- data/lib/active_admin/menu_item.rb +4 -32
- data/lib/active_admin/namespace.rb +36 -17
- data/lib/active_admin/namespace_settings.rb +123 -0
- data/lib/active_admin/order_clause.rb +30 -8
- data/lib/active_admin/orm/active_record/comments/comment.rb +3 -17
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +19 -7
- data/lib/active_admin/orm/active_record/comments.rb +17 -11
- data/lib/active_admin/page.rb +23 -4
- data/lib/active_admin/page_controller.rb +2 -6
- data/lib/active_admin/page_dsl.rb +5 -1
- data/lib/active_admin/page_presenter.rb +2 -1
- data/lib/active_admin/pundit_adapter.rb +18 -5
- data/lib/active_admin/resource/action_items.rb +17 -5
- data/lib/active_admin/resource/attributes.rb +47 -0
- data/lib/active_admin/resource/belongs_to.rb +10 -1
- data/lib/active_admin/resource/menu.rb +7 -4
- data/lib/active_admin/resource/model.rb +15 -0
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/ordering.rb +11 -0
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/routes.rb +52 -20
- data/lib/active_admin/resource/scopes.rb +5 -3
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource.rb +59 -7
- data/lib/active_admin/resource_collection.rb +2 -2
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/data_access.rb +32 -27
- data/lib/active_admin/resource_controller/decorators.rb +5 -5
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/resource_controller.rb +15 -0
- data/lib/active_admin/resource_dsl.rb +58 -24
- data/lib/active_admin/router.rb +90 -82
- data/lib/active_admin/scope.rb +20 -12
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/sidebar_section.rb +3 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
- data/lib/active_admin/view_helpers/display_helper.rb +28 -16
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +13 -0
- data/lib/active_admin/view_helpers/fields_for.rb +1 -2
- data/lib/active_admin/view_helpers/form_helper.rb +2 -2
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +8 -1
- data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
- data/lib/active_admin/view_helpers.rb +2 -1
- data/lib/active_admin/views/action_items.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +43 -11
- data/lib/active_admin/views/components/attributes_table.rb +4 -4
- data/lib/active_admin/views/components/columns.rb +3 -3
- data/lib/active_admin/views/components/dropdown_menu.rb +4 -4
- data/lib/active_admin/views/components/index_list.rb +4 -3
- data/lib/active_admin/views/components/menu.rb +32 -0
- data/lib/active_admin/views/components/menu_item.rb +58 -0
- data/lib/active_admin/views/components/paginated_collection.rb +7 -11
- data/lib/active_admin/views/components/scopes.rb +14 -8
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/site_title.rb +5 -6
- data/lib/active_admin/views/components/status_tag.rb +11 -16
- data/lib/active_admin/views/components/table_for.rb +7 -16
- data/lib/active_admin/views/components/tabs.rb +15 -3
- data/lib/active_admin/views/footer.rb +14 -4
- data/lib/active_admin/views/header.rb +3 -16
- data/lib/active_admin/views/index_as_blog.rb +2 -3
- data/lib/active_admin/views/index_as_grid.rb +25 -25
- data/lib/active_admin/views/index_as_table.rb +39 -13
- data/lib/active_admin/views/pages/base.rb +36 -57
- data/lib/active_admin/views/pages/form.rb +2 -3
- data/lib/active_admin/views/pages/layout.rb +1 -1
- data/lib/active_admin/views/pages/show.rb +8 -2
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/active_admin/views/title_bar.rb +4 -4
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin.rb +11 -7
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +8 -5
- data/lib/generators/active_admin/install/install_generator.rb +7 -3
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +60 -4
- data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
- data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
- data/lib/ransack_ext.rb +5 -5
- data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
- data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
- data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
- data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
- metadata +190 -539
- data/.gitignore +0 -49
- data/.hound.yml +0 -14
- data/.travis.yml +0 -46
- data/.yardopts +0 -8
- data/Gemfile +0 -75
- data/Guardfile +0 -8
- data/Rakefile +0 -33
- data/activeadmin.gemspec +0 -31
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -15
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
- data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -11
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -31
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
- data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
- data/cucumber.yml +0 -3
- data/features/action_item.feature +0 -73
- data/features/authorization.feature +0 -64
- data/features/authorization_cancan.feature +0 -52
- data/features/authorization_pundit.feature +0 -37
- data/features/belongs_to.feature +0 -66
- data/features/breadcrumb.feature +0 -75
- data/features/comments/commenting.feature +0 -171
- data/features/comments/viewing_index.feature +0 -19
- data/features/dashboard.feature +0 -16
- data/features/decorators.feature +0 -43
- data/features/development_reloading.feature +0 -30
- data/features/edit_page.feature +0 -117
- data/features/favicon.feature +0 -20
- data/features/first_boot.feature +0 -16
- data/features/global_navigation.feature +0 -29
- data/features/i18n.feature +0 -43
- data/features/index/batch_actions.feature +0 -196
- data/features/index/filters.feature +0 -161
- data/features/index/format_as_csv.feature +0 -203
- data/features/index/formats.feature +0 -66
- data/features/index/index_as_block.feature +0 -15
- data/features/index/index_as_blog.feature +0 -69
- data/features/index/index_as_grid.feature +0 -45
- data/features/index/index_as_table.feature +0 -291
- data/features/index/index_blank_slate.feature +0 -83
- data/features/index/index_parameters.feature +0 -75
- data/features/index/index_scope_to.feature +0 -56
- data/features/index/index_scopes.feature +0 -251
- data/features/index/page_title.feature +0 -42
- data/features/index/pagination.feature +0 -63
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -53
- data/features/meta_tags.feature +0 -21
- data/features/new_page.feature +0 -109
- data/features/registering_assets.feature +0 -34
- data/features/registering_pages.feature +0 -148
- data/features/registering_resources.feature +0 -33
- data/features/renamed_resource.feature +0 -32
- data/features/root_to.feature +0 -17
- data/features/show/columns.feature +0 -40
- data/features/show/default_content.feature +0 -44
- data/features/show/page_title.feature +0 -59
- data/features/show/tabs.feature +0 -27
- data/features/sidebar_sections.feature +0 -210
- data/features/site_title.feature +0 -47
- data/features/specifying_actions.feature +0 -93
- data/features/step_definitions/action_item_steps.rb +0 -7
- data/features/step_definitions/action_link_steps.rb +0 -20
- data/features/step_definitions/additional_web_steps.rb +0 -81
- data/features/step_definitions/asset_steps.rb +0 -15
- data/features/step_definitions/attribute_steps.rb +0 -18
- data/features/step_definitions/batch_action_steps.rb +0 -81
- data/features/step_definitions/blog_steps.rb +0 -3
- data/features/step_definitions/breadcrumb_steps.rb +0 -3
- data/features/step_definitions/column_steps.rb +0 -8
- data/features/step_definitions/comment_steps.rb +0 -12
- data/features/step_definitions/configuration_steps.rb +0 -100
- data/features/step_definitions/dashboard_steps.rb +0 -15
- data/features/step_definitions/factory_steps.rb +0 -35
- data/features/step_definitions/filter_steps.rb +0 -39
- data/features/step_definitions/flash_steps.rb +0 -11
- data/features/step_definitions/format_steps.rb +0 -52
- data/features/step_definitions/i18n_steps.rb +0 -3
- data/features/step_definitions/index_scope_steps.rb +0 -21
- data/features/step_definitions/index_views_steps.rb +0 -3
- data/features/step_definitions/layout_steps.rb +0 -3
- data/features/step_definitions/member_link_steps.rb +0 -7
- data/features/step_definitions/menu_steps.rb +0 -11
- data/features/step_definitions/meta_tag_steps.rb +0 -3
- data/features/step_definitions/pagination_steps.rb +0 -15
- data/features/step_definitions/sidebar_steps.rb +0 -13
- data/features/step_definitions/site_title_steps.rb +0 -17
- data/features/step_definitions/symbol_leak_steps.rb +0 -3
- data/features/step_definitions/tab_steps.rb +0 -8
- data/features/step_definitions/table_steps.rb +0 -120
- data/features/step_definitions/user_steps.rb +0 -45
- data/features/step_definitions/web_steps.rb +0 -85
- data/features/sti_resource.feature +0 -65
- data/features/strong_parameters.feature +0 -73
- data/features/support/env.rb +0 -162
- data/features/support/paths.rb +0 -71
- data/features/support/selectors.rb +0 -45
- data/features/symbol_leak.feature +0 -35
- data/features/users/logging_in.feature +0 -34
- data/features/users/logging_out.feature +0 -13
- data/features/users/resetting_password.feature +0 -34
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/filters/humanized.rb +0 -68
- data/lib/active_admin/helpers/settings.rb +0 -115
- data/lib/active_admin/reloader.rb +0 -25
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/lib/generators/active_admin/resource/templates/admin.rb +0 -45
- data/script/local +0 -53
- data/script/travis_cache +0 -107
- data/script/use_rails +0 -53
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
- data/spec/javascripts/fixtures/checkboxes.html +0 -9
- data/spec/javascripts/fixtures/flashes.html +0 -2
- data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
- data/spec/javascripts/helpers/SpecHelper.js +0 -3
- data/spec/javascripts/support/jasmine.yml +0 -74
- data/spec/javascripts/support/jasmine_config.rb +0 -23
- data/spec/javascripts/support/jasmine_runner.rb +0 -32
- data/spec/rails_helper.rb +0 -169
- data/spec/requests/default_namespace_spec.rb +0 -61
- data/spec/requests/javascript_spec.rb +0 -22
- data/spec/requests/memory_spec.rb +0 -21
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -17
- data/spec/support/active_admin_request_helpers.rb +0 -27
- data/spec/support/deferred_garbage_collection.rb +0 -19
- data/spec/support/detect_rails_version.rb +0 -34
- data/spec/support/jslint.yml +0 -80
- data/spec/support/rails_template.rb +0 -158
- data/spec/support/rails_template_with_data.rb +0 -55
- data/spec/support/templates/admin/stores.rb +0 -9
- data/spec/support/templates/en.yml +0 -8
- data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
- data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
- data/spec/support/templates/policies/admin_user_policy.rb +0 -11
- data/spec/support/templates/policies/application_policy.rb +0 -45
- data/spec/support/templates/policies/category_policy.rb +0 -7
- data/spec/support/templates/policies/post_policy.rb +0 -15
- data/spec/support/templates/policies/store_policy.rb +0 -11
- data/spec/support/templates/policies/user_policy.rb +0 -11
- data/spec/support/templates/post_decorator.rb +0 -11
- data/spec/unit/abstract_view_factory_spec.rb +0 -79
- data/spec/unit/action_builder_spec.rb +0 -134
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -165
- data/spec/unit/asset_registration_spec.rb +0 -52
- data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
- data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
- data/spec/unit/authorization/index_overriding_spec.rb +0 -23
- data/spec/unit/auto_link_spec.rb +0 -69
- data/spec/unit/batch_actions/resource_spec.rb +0 -97
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -65
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -188
- data/spec/unit/component_spec.rb +0 -18
- data/spec/unit/config_shared_examples.rb +0 -59
- data/spec/unit/controller_filters_spec.rb +0 -41
- data/spec/unit/csv_builder_spec.rb +0 -303
- data/spec/unit/dependency_spec.rb +0 -135
- data/spec/unit/devise_spec.rb +0 -96
- data/spec/unit/dsl_spec.rb +0 -122
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -434
- data/spec/unit/filters/humanized_spec.rb +0 -56
- data/spec/unit/filters/resource_spec.rb +0 -128
- data/spec/unit/form_builder_spec.rb +0 -815
- data/spec/unit/generators/install_spec.rb +0 -24
- data/spec/unit/helpers/collection_spec.rb +0 -65
- data/spec/unit/helpers/scope_chain_spec.rb +0 -36
- data/spec/unit/helpers/settings_spec.rb +0 -30
- data/spec/unit/i18n_spec.rb +0 -12
- data/spec/unit/menu_collection_spec.rb +0 -62
- data/spec/unit/menu_item_spec.rb +0 -143
- data/spec/unit/menu_spec.rb +0 -71
- data/spec/unit/namespace/authorization_spec.rb +0 -27
- data/spec/unit/namespace/register_page_spec.rb +0 -73
- data/spec/unit/namespace/register_resource_spec.rb +0 -160
- data/spec/unit/namespace_spec.rb +0 -103
- data/spec/unit/order_clause_spec.rb +0 -81
- data/spec/unit/page_controller_spec.rb +0 -5
- data/spec/unit/page_spec.rb +0 -78
- data/spec/unit/pretty_format_spec.rb +0 -77
- data/spec/unit/pundit_adapter_spec.rb +0 -98
- data/spec/unit/resource/action_items_spec.rb +0 -65
- data/spec/unit/resource/includes_spec.rb +0 -21
- data/spec/unit/resource/menu_spec.rb +0 -18
- data/spec/unit/resource/naming_spec.rb +0 -122
- data/spec/unit/resource/page_presenters_spec.rb +0 -44
- data/spec/unit/resource/pagination_spec.rb +0 -38
- data/spec/unit/resource/routes_spec.rb +0 -77
- data/spec/unit/resource/scopes_spec.rb +0 -50
- data/spec/unit/resource/sidebars_spec.rb +0 -43
- data/spec/unit/resource_collection_spec.rb +0 -175
- data/spec/unit/resource_controller/data_access_spec.rb +0 -140
- data/spec/unit/resource_controller/decorators_spec.rb +0 -94
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -38
- data/spec/unit/resource_controller_spec.rb +0 -269
- data/spec/unit/resource_registration_spec.rb +0 -56
- data/spec/unit/resource_spec.rb +0 -331
- data/spec/unit/routing_spec.rb +0 -185
- data/spec/unit/scope_spec.rb +0 -185
- data/spec/unit/settings_spec.rb +0 -118
- data/spec/unit/view_factory_spec.rb +0 -19
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -165
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
- data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
- data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
- data/spec/unit/views/components/attributes_table_spec.rb +0 -272
- data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
- data/spec/unit/views/components/blank_slate_spec.rb +0 -27
- data/spec/unit/views/components/columns_spec.rb +0 -189
- data/spec/unit/views/components/index_list_spec.rb +0 -35
- data/spec/unit/views/components/index_table_for_spec.rb +0 -127
- data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
- data/spec/unit/views/components/panel_spec.rb +0 -58
- data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
- data/spec/unit/views/components/site_title_spec.rb +0 -78
- data/spec/unit/views/components/status_tag_spec.rb +0 -249
- data/spec/unit/views/components/table_for_spec.rb +0 -434
- data/spec/unit/views/components/tabs_spec.rb +0 -39
- data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
- data/spec/unit/views/index_as_blog_spec.rb +0 -76
- data/spec/unit/views/pages/form_spec.rb +0 -51
- data/spec/unit/views/pages/index_spec.rb +0 -60
- data/spec/unit/views/pages/layout_spec.rb +0 -59
- data/spec/unit/views/pages/show_spec.rb +0 -33
- data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
- data/tasks/docs.rake +0 -37
- data/tasks/parallel_tests.rake +0 -66
- data/tasks/test.rake +0 -91
- data/tasks/yard.rake +0 -9
@@ -1,160 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
# TODO: refactor this file so it doesn't depend on the Admin namespace in such a broken way.
|
4
|
-
# Specifically, the dashboard is already defined.
|
5
|
-
|
6
|
-
describe ActiveAdmin::Namespace, "registering a resource" do
|
7
|
-
let(:application){ ActiveAdmin::Application.new }
|
8
|
-
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
|
9
|
-
let(:menu){ namespace.fetch_menu(:default) }
|
10
|
-
|
11
|
-
context "with no configuration" do
|
12
|
-
before do
|
13
|
-
namespace.register Category
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should store the namespaced registered configuration" do
|
17
|
-
expect(namespace.resources.keys).to include('Category')
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should create a new controller in the default namespace" do
|
21
|
-
expect(defined?(Admin::CategoriesController)).to eq 'constant'
|
22
|
-
end
|
23
|
-
|
24
|
-
skip "should not create the dashboard controller" do
|
25
|
-
defined?(Admin::DashboardController).to_not eq 'constant'
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should create a menu item" do
|
29
|
-
expect(menu["Categories"]).to be_a ActiveAdmin::MenuItem
|
30
|
-
expect(menu["Categories"].instance_variable_get(:@url)).to be_a Proc
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
context "with a block configuration" do
|
35
|
-
it "should be evaluated in the dsl" do
|
36
|
-
expect{ |block|
|
37
|
-
namespace.register Category, &block
|
38
|
-
}.to yield_control
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
context "with a resource that's namespaced" do
|
43
|
-
before do
|
44
|
-
module ::Mock; class Resource; def self.has_many(arg1, arg2); end; end; end
|
45
|
-
namespace.register Mock::Resource
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should store the namespaced registered configuration" do
|
49
|
-
expect(namespace.resources.keys).to include('Mock::Resource')
|
50
|
-
end
|
51
|
-
it "should create a new controller in the default namespace" do
|
52
|
-
expect(defined?(Admin::MockResourcesController)).to eq 'constant'
|
53
|
-
end
|
54
|
-
it "should create a menu item" do
|
55
|
-
expect(menu["Mock Resources"]).to be_an_instance_of(ActiveAdmin::MenuItem)
|
56
|
-
end
|
57
|
-
|
58
|
-
it "should use the resource as the model in the controller" do
|
59
|
-
expect(Admin::MockResourcesController.resource_class).to eq Mock::Resource
|
60
|
-
end
|
61
|
-
end # context "with a resource that's namespaced"
|
62
|
-
|
63
|
-
describe "finding resource instances" do
|
64
|
-
it "should return the resource when its been registered" do
|
65
|
-
post = namespace.register Post
|
66
|
-
expect(namespace.resource_for(Post)).to eq post
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'should return nil when the resource has not been registered' do
|
70
|
-
expect(namespace.resource_for(Post)).to eq nil
|
71
|
-
end
|
72
|
-
|
73
|
-
it "should return the parent when the parent class has been registered and the child has not" do
|
74
|
-
user = namespace.register User
|
75
|
-
expect(namespace.resource_for(Publisher)).to eq user
|
76
|
-
end
|
77
|
-
|
78
|
-
it "should return the resource if it and it's parent were registered" do
|
79
|
-
user = namespace.register User
|
80
|
-
publisher = namespace.register Publisher
|
81
|
-
expect(namespace.resource_for(Publisher)).to eq publisher
|
82
|
-
end
|
83
|
-
end # describe "finding resource instances"
|
84
|
-
|
85
|
-
describe "adding to the menu" do
|
86
|
-
describe "adding as a top level item" do
|
87
|
-
before do
|
88
|
-
namespace.register Category
|
89
|
-
end
|
90
|
-
it "should add a new menu item" do
|
91
|
-
expect(menu['Categories']).to_not eq nil
|
92
|
-
end
|
93
|
-
end # describe "adding as a top level item"
|
94
|
-
|
95
|
-
describe "adding as a child" do
|
96
|
-
before do
|
97
|
-
namespace.register Category do
|
98
|
-
menu parent: 'Blog'
|
99
|
-
end
|
100
|
-
end
|
101
|
-
it "should generate the parent menu item" do
|
102
|
-
expect(menu['Blog']).to_not eq nil
|
103
|
-
end
|
104
|
-
it "should generate its own child item" do
|
105
|
-
expect(menu['Blog']['Categories']).to_not eq nil
|
106
|
-
end
|
107
|
-
end # describe "adding as a child"
|
108
|
-
|
109
|
-
describe "disabling the menu" do
|
110
|
-
before do
|
111
|
-
namespace.register Category do
|
112
|
-
menu false
|
113
|
-
end
|
114
|
-
end
|
115
|
-
it "should not create a menu item" do
|
116
|
-
expect(menu["Categories"]).to eq nil
|
117
|
-
end
|
118
|
-
end # describe "disabling the menu"
|
119
|
-
|
120
|
-
describe "adding as a belongs to" do
|
121
|
-
context "when not optional" do
|
122
|
-
before do
|
123
|
-
namespace.register Post do
|
124
|
-
belongs_to :author
|
125
|
-
end
|
126
|
-
end
|
127
|
-
it "should not show up in the menu" do
|
128
|
-
expect(menu["Posts"]).to eq nil
|
129
|
-
end
|
130
|
-
end
|
131
|
-
context "when optional" do
|
132
|
-
before do
|
133
|
-
namespace.register Post do
|
134
|
-
belongs_to :author, optional: true
|
135
|
-
end
|
136
|
-
end
|
137
|
-
it "should show up in the menu" do
|
138
|
-
expect(menu["Posts"]).to_not eq nil
|
139
|
-
end
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end # describe "adding to the menu"
|
143
|
-
|
144
|
-
describe "dashboard controller name" do
|
145
|
-
context "when namespaced" do
|
146
|
-
it "should be namespaced" do
|
147
|
-
namespace = ActiveAdmin::Namespace.new(application, :one)
|
148
|
-
namespace.register Category
|
149
|
-
expect(defined?(One::CategoriesController)).to eq 'constant'
|
150
|
-
end
|
151
|
-
end
|
152
|
-
context "when not namespaced" do
|
153
|
-
it "should not be namespaced" do
|
154
|
-
namespace = ActiveAdmin::Namespace.new(application, :two)
|
155
|
-
namespace.register Category
|
156
|
-
expect(defined?(Two::CategoriesController)).to eq 'constant'
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end # describe "dashboard controller name"
|
160
|
-
end # describe "registering a resource"
|
data/spec/unit/namespace_spec.rb
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
describe ActiveAdmin::Namespace do
|
4
|
-
|
5
|
-
let(:application){ ActiveAdmin::Application.new }
|
6
|
-
|
7
|
-
context "when new" do
|
8
|
-
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
|
9
|
-
|
10
|
-
it "should have an application instance" do
|
11
|
-
expect(namespace.application).to eq application
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should have a name" do
|
15
|
-
expect(namespace.name).to eq :admin
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should have no resources" do
|
19
|
-
expect(namespace.resources).to be_empty
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should not have any menu item" do
|
23
|
-
expect(namespace.fetch_menu(:default).children).to be_empty
|
24
|
-
end
|
25
|
-
end # context "when new"
|
26
|
-
|
27
|
-
describe "settings" do
|
28
|
-
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
|
29
|
-
|
30
|
-
it "should inherit the site title from the application" do
|
31
|
-
ActiveAdmin::Namespace.setting :site_title, "Not the Same"
|
32
|
-
expect(namespace.site_title).to eq application.site_title
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should be able to override the site title" do
|
36
|
-
expect(namespace.site_title).to eq application.site_title
|
37
|
-
namespace.site_title = "My Site Title"
|
38
|
-
expect(namespace.site_title).to_not eq application.site_title
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
|
43
|
-
describe "#fetch_menu" do
|
44
|
-
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
|
45
|
-
|
46
|
-
it "returns the menu" do
|
47
|
-
expect(namespace.fetch_menu(:default)).to be_an_instance_of(ActiveAdmin::Menu)
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should have utility nav menu" do
|
51
|
-
expect(namespace.fetch_menu(:utility_navigation)).to be_an_instance_of(ActiveAdmin::Menu)
|
52
|
-
end
|
53
|
-
|
54
|
-
it "should raise an exception if the menu doesn't exist" do
|
55
|
-
expect {
|
56
|
-
namespace.fetch_menu(:not_a_menu_that_exists)
|
57
|
-
}.to raise_error(KeyError)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe "#build_menu" do
|
62
|
-
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
|
63
|
-
|
64
|
-
it "should set the block as a menu build callback" do
|
65
|
-
namespace.build_menu do |menu|
|
66
|
-
menu.add label: "menu item"
|
67
|
-
end
|
68
|
-
|
69
|
-
expect(namespace.fetch_menu(:default)["menu item"]).to_not eq nil
|
70
|
-
end
|
71
|
-
|
72
|
-
it "should set a block on a custom menu" do
|
73
|
-
namespace.build_menu :test do |menu|
|
74
|
-
menu.add label: "menu item"
|
75
|
-
end
|
76
|
-
|
77
|
-
expect(namespace.fetch_menu(:test)["menu item"]).to_not eq nil
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
describe "utility navigation" do
|
82
|
-
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
|
83
|
-
let(:menu) do
|
84
|
-
namespace.build_menu :utility_navigation do |menu|
|
85
|
-
menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank }
|
86
|
-
namespace.add_logout_button_to_menu menu, 1, class: "matt"
|
87
|
-
end
|
88
|
-
namespace.fetch_menu(:utility_navigation)
|
89
|
-
end
|
90
|
-
|
91
|
-
it "should have a logout button to the far left" do
|
92
|
-
expect(menu["Logout"]).to_not eq nil
|
93
|
-
expect(menu["Logout"].priority).to eq 1
|
94
|
-
end
|
95
|
-
|
96
|
-
it "should have a static link with a target of :blank" do
|
97
|
-
expect(menu["ActiveAdmin.info"]).to_not eq nil
|
98
|
-
expect(menu["ActiveAdmin.info"].html_options).to include(target: :blank)
|
99
|
-
end
|
100
|
-
|
101
|
-
end
|
102
|
-
|
103
|
-
end
|
@@ -1,81 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
describe ActiveAdmin::OrderClause do
|
4
|
-
subject { described_class.new clause }
|
5
|
-
|
6
|
-
let(:application) { ActiveAdmin::Application.new }
|
7
|
-
let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
|
8
|
-
let(:config) { ActiveAdmin::Resource.new namespace, Post }
|
9
|
-
|
10
|
-
describe 'id_asc (existing column)' do
|
11
|
-
let(:clause) { 'id_asc' }
|
12
|
-
|
13
|
-
it { is_expected.to be_valid }
|
14
|
-
|
15
|
-
describe '#field' do
|
16
|
-
subject { super().field }
|
17
|
-
it { is_expected.to eq('id') }
|
18
|
-
end
|
19
|
-
|
20
|
-
describe '#order' do
|
21
|
-
subject { super().order }
|
22
|
-
it { is_expected.to eq('asc') }
|
23
|
-
end
|
24
|
-
|
25
|
-
specify '#to_sql prepends table name' do
|
26
|
-
expect(subject.to_sql(config)).to eq '"posts"."id" asc'
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe 'virtual_column_asc' do
|
31
|
-
let(:clause) { 'virtual_column_asc' }
|
32
|
-
|
33
|
-
it { is_expected.to be_valid }
|
34
|
-
|
35
|
-
describe '#field' do
|
36
|
-
subject { super().field }
|
37
|
-
it { is_expected.to eq('virtual_column') }
|
38
|
-
end
|
39
|
-
|
40
|
-
describe '#order' do
|
41
|
-
subject { super().order }
|
42
|
-
it { is_expected.to eq('asc') }
|
43
|
-
end
|
44
|
-
|
45
|
-
specify '#to_sql' do
|
46
|
-
expect(subject.to_sql(config)).to eq '"virtual_column" asc'
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "hstore_col->'field'_desc" do
|
51
|
-
let(:clause) { "hstore_col->'field'_desc" }
|
52
|
-
|
53
|
-
it { is_expected.to be_valid }
|
54
|
-
|
55
|
-
describe '#field' do
|
56
|
-
subject { super().field }
|
57
|
-
it { is_expected.to eq("hstore_col->'field'") }
|
58
|
-
end
|
59
|
-
|
60
|
-
describe '#order' do
|
61
|
-
subject { super().order }
|
62
|
-
it { is_expected.to eq('desc') }
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'converts to sql' do
|
66
|
-
expect(subject.to_sql(config)).to eq %Q("hstore_col"->'field' desc)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
describe '_asc' do
|
71
|
-
let(:clause) { '_asc' }
|
72
|
-
|
73
|
-
it { is_expected.not_to be_valid }
|
74
|
-
end
|
75
|
-
|
76
|
-
describe 'nil' do
|
77
|
-
let(:clause) { nil }
|
78
|
-
|
79
|
-
it { is_expected.not_to be_valid }
|
80
|
-
end
|
81
|
-
end
|
data/spec/unit/page_spec.rb
DELETED
@@ -1,78 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
require File.expand_path('config_shared_examples', File.dirname(__FILE__))
|
5
|
-
|
6
|
-
module ActiveAdmin
|
7
|
-
describe Page do
|
8
|
-
|
9
|
-
it_should_behave_like "ActiveAdmin::Resource"
|
10
|
-
before { load_defaults! }
|
11
|
-
|
12
|
-
let(:application){ ActiveAdmin::Application.new }
|
13
|
-
let(:namespace){ Namespace.new(application, :admin) }
|
14
|
-
|
15
|
-
def config(options = {})
|
16
|
-
@config ||= namespace.register_page("Chocolate I lØve You!", options)
|
17
|
-
end
|
18
|
-
|
19
|
-
describe "controller name" do
|
20
|
-
it "should return a namespaced controller name" do
|
21
|
-
expect(config.controller_name).to eq "Admin::ChocolateILoveYouController"
|
22
|
-
end
|
23
|
-
context "when non namespaced controller" do
|
24
|
-
let(:namespace){ ActiveAdmin::Namespace.new(application, :root) }
|
25
|
-
it "should return a non namespaced controller name" do
|
26
|
-
expect(config.controller_name).to eq "ChocolateILoveYouController"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
describe "#resource_name" do
|
32
|
-
it "returns the name" do
|
33
|
-
expect(config.resource_name).to eq "Chocolate I lØve You!"
|
34
|
-
end
|
35
|
-
|
36
|
-
it "returns the singular, lowercase name" do
|
37
|
-
expect(config.resource_name.singular).to eq "chocolate i lØve you!"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe "#plural_resource_label" do
|
42
|
-
it "returns the singular name" do
|
43
|
-
expect(config.plural_resource_label).to eq "Chocolate I lØve You!"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
describe "#underscored_resource_name" do
|
48
|
-
it "returns the resource name underscored" do
|
49
|
-
expect(config.underscored_resource_name).to eq "chocolate_i_love_you"
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "#camelized_resource_name" do
|
54
|
-
it "returns the resource name camel case" do
|
55
|
-
expect(config.camelized_resource_name).to eq "ChocolateILoveYou"
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
describe "#namespace_name" do
|
60
|
-
it "returns the name of the namespace" do
|
61
|
-
expect(config.namespace_name).to eq "admin"
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should not belong_to anything" do
|
66
|
-
expect(config.belongs_to?).to eq false
|
67
|
-
end
|
68
|
-
|
69
|
-
it "should not have any action_items" do
|
70
|
-
expect(config.action_items?).to eq false
|
71
|
-
end
|
72
|
-
|
73
|
-
it "should not have any sidebar_sections" do
|
74
|
-
expect(config.sidebar_sections?).to eq false
|
75
|
-
end
|
76
|
-
|
77
|
-
end
|
78
|
-
end
|
@@ -1,77 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
describe "#pretty_format" do
|
4
|
-
include ActiveAdmin::ViewHelpers::DisplayHelper
|
5
|
-
|
6
|
-
def method_missing(*args, &block)
|
7
|
-
mock_action_view.send *args, &block
|
8
|
-
end
|
9
|
-
|
10
|
-
{String: 'hello', Fixnum: 23, Float: 5.67, Bignum: 10**30, Symbol: :foo,
|
11
|
-
'Arbre::Element' => Arbre::Element.new.br(:foo)
|
12
|
-
}.each do |klass, obj|
|
13
|
-
it "should call `to_s` on #{klass}s" do
|
14
|
-
expect(obj).to be_a klass.to_s.constantize # safeguard for Bignum
|
15
|
-
expect(pretty_format(obj)).to eq obj.to_s
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
context "given a Date or a Time" do
|
20
|
-
it "should return a localized Date or Time with long format" do
|
21
|
-
t = Time.now
|
22
|
-
expect(self).to receive(:localize).with(t, {format: :long}) { "Just Now!" }
|
23
|
-
expect(pretty_format(t)).to eq "Just Now!"
|
24
|
-
end
|
25
|
-
|
26
|
-
context "actually do the formatting" do
|
27
|
-
it "should actually do the formatting" do
|
28
|
-
t = Time.utc(1985,"feb",28,20,15,1)
|
29
|
-
expect(pretty_format(t)).to eq "February 28, 1985 20:15"
|
30
|
-
end
|
31
|
-
|
32
|
-
context "apply custom localize format" do
|
33
|
-
before do
|
34
|
-
ActiveAdmin.application.localize_format = :short
|
35
|
-
end
|
36
|
-
after do
|
37
|
-
ActiveAdmin.application = nil
|
38
|
-
end
|
39
|
-
it "should actually do the formatting" do
|
40
|
-
t = Time.utc(1985, "feb", 28, 20, 15, 1)
|
41
|
-
|
42
|
-
expect(pretty_format(t)).to eq "28 Feb 20:15"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
context "with non-English locale" do
|
47
|
-
before(:all) do
|
48
|
-
@previous_locale = I18n.locale.to_s
|
49
|
-
I18n.locale = "es"
|
50
|
-
end
|
51
|
-
after(:all) do
|
52
|
-
I18n.locale = @previous_locale
|
53
|
-
end
|
54
|
-
it "should return a localized Date or Time with long format for non-english locale" do
|
55
|
-
t = Time.utc(1985,"feb",28,20,15,1)
|
56
|
-
expect(pretty_format(t)).to eq "28 de febrero de 1985 20:15"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
context "given an ActiveRecord object" do
|
63
|
-
it "should delegate to auto_link" do
|
64
|
-
post = Post.new
|
65
|
-
expect(self).to receive(:auto_link).with(post) { "model name" }
|
66
|
-
expect(pretty_format(post)).to eq "model name"
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
context "given an arbitrary object" do
|
71
|
-
it "should delegate to `display_name`" do
|
72
|
-
something = Class.new.new
|
73
|
-
expect(self).to receive(:display_name).with(something) { "I'm not famous" }
|
74
|
-
expect(pretty_format(something)).to eq "I'm not famous"
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
@@ -1,98 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
class DefaultPolicy < ApplicationPolicy
|
4
|
-
def respond_to_missing?(method, include_private = false)
|
5
|
-
method.to_s[0...3] == "foo" || super
|
6
|
-
end
|
7
|
-
|
8
|
-
def method_missing(method, *args, &block)
|
9
|
-
if method.to_s[0...3] == "foo"
|
10
|
-
method.to_s[4...7] == "yes"
|
11
|
-
else
|
12
|
-
super
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
class Scope
|
17
|
-
|
18
|
-
attr_reader :user, :scope
|
19
|
-
|
20
|
-
def initialize(user, scope)
|
21
|
-
@user = user
|
22
|
-
@scope = scope
|
23
|
-
end
|
24
|
-
|
25
|
-
def resolve
|
26
|
-
scope
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
describe ActiveAdmin::PunditAdapter do
|
32
|
-
|
33
|
-
describe "full integration" do
|
34
|
-
|
35
|
-
let(:application) { ActiveAdmin::Application.new }
|
36
|
-
let(:namespace) { ActiveAdmin::Namespace.new(application, "Admin") }
|
37
|
-
let(:resource) { namespace.register(Post) }
|
38
|
-
let(:auth) { namespace.authorization_adapter.new(resource, double) }
|
39
|
-
let(:default_policy_klass) { DefaultPolicy }
|
40
|
-
let(:default_policy_klass_name) { "DefaultPolicy" }
|
41
|
-
|
42
|
-
before do
|
43
|
-
namespace.authorization_adapter = ActiveAdmin::PunditAdapter
|
44
|
-
end
|
45
|
-
|
46
|
-
it "should initialize the ability stored in the namespace configuration" do
|
47
|
-
expect(auth.authorized?(:read, Post)).to eq true
|
48
|
-
expect(auth.authorized?(:update, Post)).to eq false
|
49
|
-
end
|
50
|
-
|
51
|
-
it "should scope the collection" do
|
52
|
-
class RSpec::Mocks::DoublePolicy < ApplicationPolicy
|
53
|
-
class Scope < Struct.new(:user, :scope)
|
54
|
-
def resolve
|
55
|
-
scope
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
collection = double
|
61
|
-
auth.scope_collection(collection, :read)
|
62
|
-
expect(collection).to eq collection
|
63
|
-
end
|
64
|
-
|
65
|
-
it "works well with method_missing" do
|
66
|
-
allow(auth).to receive(:retrieve_policy).and_return(DefaultPolicy.new(double, double))
|
67
|
-
expect(auth.authorized?(:foo_no)).to eq false
|
68
|
-
expect(auth.authorized?(:foo_yes)).to eq true
|
69
|
-
expect(auth.authorized?(:bar_yes)).to eq false
|
70
|
-
end
|
71
|
-
|
72
|
-
context 'when Pundit is unable to find policy scope' do
|
73
|
-
let(:collection) { double("collection", to_sym: :collection) }
|
74
|
-
subject(:scope) { auth.scope_collection(collection, :read) }
|
75
|
-
|
76
|
-
before do
|
77
|
-
allow(ActiveAdmin.application).to receive(:pundit_default_policy).and_return default_policy_klass_name
|
78
|
-
allow(Pundit).to receive(:policy_scope!) { raise Pundit::NotDefinedError.new }
|
79
|
-
end
|
80
|
-
|
81
|
-
it("should return default policy's scope if defined") { is_expected.to eq(collection) }
|
82
|
-
end
|
83
|
-
|
84
|
-
context "when Pundit is unable to find policy" do
|
85
|
-
let(:record) { double }
|
86
|
-
|
87
|
-
subject(:policy) { auth.retrieve_policy(record) }
|
88
|
-
|
89
|
-
before do
|
90
|
-
allow(ActiveAdmin.application).to receive(:pundit_default_policy).and_return default_policy_klass_name
|
91
|
-
allow(Pundit).to receive(:policy!) { raise Pundit::NotDefinedError.new }
|
92
|
-
end
|
93
|
-
|
94
|
-
it("should return default policy instance") { is_expected.to be_instance_of(default_policy_klass) }
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
describe ActiveAdmin::Resource::ActionItems do
|
4
|
-
|
5
|
-
let(:resource) do
|
6
|
-
namespace = ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
|
7
|
-
namespace.register(Post)
|
8
|
-
end
|
9
|
-
|
10
|
-
describe "adding a new action item" do
|
11
|
-
|
12
|
-
before do
|
13
|
-
resource.clear_action_items!
|
14
|
-
resource.add_action_item :empty do
|
15
|
-
# Empty ...
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should add an action item" do
|
20
|
-
expect(resource.action_items.size).to eq 1
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should store an instance of ActionItem" do
|
24
|
-
expect(resource.action_items.first).to be_an_instance_of(ActiveAdmin::ActionItem)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should store the block in the action item" do
|
28
|
-
expect(resource.action_items.first.block).to_not eq nil
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
describe "setting an action item to only display on specific controller actions" do
|
34
|
-
|
35
|
-
before do
|
36
|
-
resource.clear_action_items!
|
37
|
-
resource.add_action_item :new, only: :index do
|
38
|
-
raise StandardError
|
39
|
-
end
|
40
|
-
resource.add_action_item :edit, only: :show do
|
41
|
-
# Empty ...
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should return only relevant action items" do
|
46
|
-
expect(resource.action_items_for(:index).size).to eq 1
|
47
|
-
expect {
|
48
|
-
resource.action_items_for(:index).first.call
|
49
|
-
}.to raise_exception(StandardError)
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|
53
|
-
|
54
|
-
describe "default action items" do
|
55
|
-
it "should have 3 action items" do
|
56
|
-
expect(resource.action_items.size).to eq 3
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'can be removed by name' do
|
60
|
-
resource.remove_action_item :new
|
61
|
-
expect(resource.action_items.size).to eq 2
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
module ActiveAdmin
|
4
|
-
describe Resource, "Includes" do
|
5
|
-
describe "#includes" do
|
6
|
-
|
7
|
-
let(:application) { ActiveAdmin::Application.new }
|
8
|
-
let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
|
9
|
-
let(:resource_config) { ActiveAdmin::Resource.new namespace, Post }
|
10
|
-
let(:dsl){ ActiveAdmin::ResourceDSL.new(resource_config, Post) }
|
11
|
-
|
12
|
-
it "should register the includes in the config" do
|
13
|
-
dsl.run_registration_block do
|
14
|
-
includes :taggings, :author
|
15
|
-
end
|
16
|
-
expect(resource_config.includes.size).to eq(2)
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|