activeadmin 1.1.0 → 2.5.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 +492 -108
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +117 -49
- data/README.md +73 -19
- data/app/assets/javascripts/active_admin/base.js +509 -0
- data/app/assets/stylesheets/active_admin/_base.scss +29 -29
- data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
- data/app/assets/stylesheets/active_admin/_header.scss +3 -5
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +5 -0
- data/app/assets/stylesheets/active_admin/print.scss +2 -2
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
- data/app/javascript/active_admin/base.js +19 -0
- data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
- data/app/javascript/active_admin/ext/jquery.js +9 -0
- data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/datepicker.js +16 -0
- data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
- data/app/javascript/active_admin/initializers/filters.js +10 -0
- data/app/javascript/active_admin/initializers/has-many.js +95 -0
- data/app/javascript/active_admin/initializers/per-page.js +13 -0
- data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/tabs.js +6 -0
- data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
- data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
- data/app/javascript/active_admin/lib/filters.js +39 -0
- data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
- data/app/javascript/active_admin/lib/per-page.js +38 -0
- data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
- data/app/javascript/active_admin/lib/utils.js +40 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
- data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
- data/app/views/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 +3 -2
- data/config/locales/az.yml +138 -0
- data/config/locales/bg.yml +1 -1
- data/config/locales/bs.yml +1 -0
- data/config/locales/ca.yml +1 -1
- data/config/locales/cs.yml +1 -0
- data/config/locales/da.yml +1 -0
- data/config/locales/de-CH.yml +1 -0
- data/config/locales/de.yml +29 -0
- data/config/locales/el.yml +1 -0
- data/config/locales/en-CA.yml +1 -0
- data/config/locales/en-GB.yml +1 -0
- data/config/locales/en.yml +21 -1
- data/config/locales/eo.yml +145 -0
- data/config/locales/es-MX.yml +1 -0
- data/config/locales/es.yml +21 -1
- data/config/locales/fa.yml +1 -0
- data/config/locales/fi.yml +2 -1
- data/config/locales/fr.yml +2 -1
- data/config/locales/he.yml +1 -1
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +5 -0
- data/config/locales/id.yml +1 -0
- data/config/locales/it.yml +13 -3
- data/config/locales/ja.yml +6 -0
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt.yml +3 -2
- data/config/locales/lv.yml +1 -0
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +16 -5
- data/config/locales/nl.yml +12 -0
- data/config/locales/pl.yml +72 -3
- data/config/locales/pt-BR.yml +9 -0
- data/config/locales/pt-PT.yml +1 -0
- data/config/locales/ro.yml +1 -0
- data/config/locales/ru.yml +3 -0
- data/config/locales/sk.yml +60 -0
- data/config/locales/sv-SE.yml +3 -0
- data/config/locales/tr.yml +10 -0
- data/config/locales/uk.yml +3 -0
- data/config/locales/vi.yml +48 -6
- data/config/locales/zh-CN.yml +34 -5
- data/config/locales/zh-TW.yml +1 -0
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +2 -2
- data/docs/1-general-configuration.md +36 -1
- data/docs/10-custom-pages.md +14 -0
- data/docs/12-arbre-components.md +41 -1
- data/docs/13-authorization-adapter.md +41 -22
- data/docs/2-resource-customization.md +10 -5
- data/docs/3-index-pages/custom-index.md +1 -1
- data/docs/3-index-pages/index-as-blog.md +1 -1
- data/docs/3-index-pages/index-as-table.md +12 -5
- data/docs/3-index-pages.md +17 -0
- data/docs/5-forms.md +16 -2
- data/docs/8-custom-actions.md +11 -0
- data/docs/CNAME +1 -1
- data/docs/Gemfile +2 -1
- data/docs/Gemfile.lock +249 -0
- data/docs/_config.yml +3 -1
- data/docs/_includes/toc.html +1 -1
- data/docs/_includes/top-menu.html +9 -1
- data/docs/documentation.md +1 -1
- data/docs/images/tidelift.svg +14 -0
- data/docs/index.html +109 -8
- data/docs/stylesheets/main.css +55 -2
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +53 -160
- data/lib/active_admin/application_settings.rb +42 -0
- data/lib/active_admin/asset_registration.rb +0 -8
- data/lib/active_admin/base_controller/authorization.rb +4 -6
- data/lib/active_admin/base_controller.rb +6 -6
- data/lib/active_admin/batch_actions/controller.rb +2 -2
- data/lib/active_admin/batch_actions/resource_extension.rb +9 -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 +10 -7
- data/lib/active_admin/dependency.rb +3 -67
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/dsl.rb +1 -8
- data/lib/active_admin/dynamic_setting.rb +38 -0
- data/lib/active_admin/dynamic_settings_node.rb +28 -0
- data/lib/active_admin/engine.rb +5 -0
- data/lib/active_admin/error.rb +4 -2
- data/lib/active_admin/filters/active_filter.rb +49 -12
- data/lib/active_admin/filters/active_sidebar.rb +6 -2
- data/lib/active_admin/filters/forms.rb +7 -4
- data/lib/active_admin/filters/formtastic_addons.rb +1 -1
- data/lib/active_admin/filters/resource_extension.rb +28 -4
- data/lib/active_admin/form_builder.rb +98 -63
- data/lib/active_admin/generators/boilerplate.rb +12 -4
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +8 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
- data/lib/active_admin/inputs/filters/date_range_input.rb +4 -4
- data/lib/active_admin/inputs/filters/select_input.rb +5 -1
- data/lib/active_admin/menu.rb +2 -8
- data/lib/active_admin/menu_item.rb +4 -32
- data/lib/active_admin/namespace.rb +20 -8
- data/lib/active_admin/namespace_settings.rb +123 -0
- data/lib/active_admin/order_clause.rb +2 -2
- data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +17 -7
- data/lib/active_admin/orm/active_record/comments.rb +15 -4
- data/lib/active_admin/page_dsl.rb +1 -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 +7 -2
- data/lib/active_admin/resource/attributes.rb +7 -4
- data/lib/active_admin/resource/belongs_to.rb +6 -1
- data/lib/active_admin/resource/menu.rb +3 -3
- data/lib/active_admin/resource/model.rb +15 -0
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/routes.rb +20 -7
- data/lib/active_admin/resource/scopes.rb +3 -3
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource.rb +18 -4
- 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 +5 -1
- data/lib/active_admin/resource_controller/decorators.rb +5 -5
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -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 +2 -0
- data/lib/active_admin/resource_dsl.rb +7 -3
- data/lib/active_admin/router.rb +90 -84
- data/lib/active_admin/scope.rb +16 -8
- 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/breadcrumb_helper.rb +2 -2
- data/lib/active_admin/view_helpers/display_helper.rb +13 -4
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
- data/lib/active_admin/view_helpers.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +9 -4
- data/lib/active_admin/views/components/attributes_table.rb +3 -3
- data/lib/active_admin/views/components/menu.rb +32 -0
- data/lib/active_admin/views/components/menu_item.rb +58 -0
- data/lib/active_admin/views/components/paginated_collection.rb +4 -3
- data/lib/active_admin/views/components/scopes.rb +11 -4
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/site_title.rb +5 -6
- data/lib/active_admin/views/components/status_tag.rb +6 -19
- data/lib/active_admin/views/components/table_for.rb +4 -12
- data/lib/active_admin/views/components/tabs.rb +15 -3
- data/lib/active_admin/views/footer.rb +3 -7
- data/lib/active_admin/views/header.rb +3 -15
- data/lib/active_admin/views/index_as_blog.rb +1 -1
- data/lib/active_admin/views/index_as_grid.rb +25 -25
- data/lib/active_admin/views/index_as_table.rb +18 -10
- data/lib/active_admin/views/pages/base.rb +31 -54
- data/lib/active_admin/views/pages/index.rb +1 -0
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin.rb +9 -4
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/install/install_generator.rb +7 -3
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +38 -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.erb +1 -15
- 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 +40 -37
- data/lib/ransack_ext.rb +3 -3
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
- metadata +115 -527
- data/.github/ISSUE_TEMPLATE.md +0 -20
- data/.gitignore +0 -49
- data/.mdlrc +0 -1
- data/.rubocop.yml +0 -76
- data/.simplecov +0 -13
- data/.travis.yml +0 -51
- data/.yardopts +0 -7
- data/Gemfile +0 -58
- data/Rakefile +0 -54
- data/activeadmin.gemspec +0 -32
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
- data/codecov.yml +0 -25
- data/config/i18n-tasks.yml +0 -26
- data/config/mdl_style.rb +0 -9
- data/cucumber.yml +0 -3
- data/features/action_item.feature +0 -73
- data/features/authorization.feature +0 -64
- data/features/authorization_cancan.feature +0 -52
- data/features/authorization_pundit.feature +0 -37
- data/features/belongs_to.feature +0 -124
- data/features/breadcrumb.feature +0 -75
- data/features/comments/commenting.feature +0 -178
- data/features/comments/viewing_index.feature +0 -19
- data/features/create_another.feature +0 -55
- data/features/dashboard.feature +0 -16
- data/features/decorators.feature +0 -43
- data/features/development_reloading.feature +0 -28
- data/features/edit_page.feature +0 -116
- data/features/favicon.feature +0 -20
- data/features/first_boot.feature +0 -16
- data/features/footer.feature +0 -28
- data/features/global_navigation.feature +0 -29
- data/features/i18n.feature +0 -55
- data/features/index/batch_actions.feature +0 -218
- data/features/index/filters.feature +0 -239
- data/features/index/format_as_csv.feature +0 -220
- data/features/index/formats.feature +0 -88
- data/features/index/index_as_block.feature +0 -15
- data/features/index/index_as_blog.feature +0 -69
- data/features/index/index_as_grid.feature +0 -45
- data/features/index/index_as_table.feature +0 -291
- data/features/index/index_blank_slate.feature +0 -83
- data/features/index/index_parameters.feature +0 -75
- data/features/index/index_scope_to.feature +0 -56
- data/features/index/index_scopes.feature +0 -285
- data/features/index/page_title.feature +0 -41
- data/features/index/pagination.feature +0 -63
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -72
- data/features/meta_tags.feature +0 -21
- data/features/new_page.feature +0 -107
- data/features/registering_assets.feature +0 -38
- data/features/registering_pages.feature +0 -237
- data/features/registering_resources.feature +0 -33
- data/features/renamed_resource.feature +0 -30
- data/features/root_to.feature +0 -17
- data/features/show/attributes_table_title.feature +0 -54
- data/features/show/columns.feature +0 -40
- data/features/show/default_content.feature +0 -44
- data/features/show/page_title.feature +0 -58
- data/features/show/tabs.feature +0 -33
- data/features/sidebar_sections.feature +0 -210
- data/features/site_title.feature +0 -47
- data/features/specifying_actions.feature +0 -118
- data/features/step_definitions/action_item_steps.rb +0 -7
- data/features/step_definitions/action_link_steps.rb +0 -19
- data/features/step_definitions/additional_web_steps.rb +0 -81
- data/features/step_definitions/asset_steps.rb +0 -15
- data/features/step_definitions/attribute_steps.rb +0 -18
- data/features/step_definitions/attributes_table_title_steps.rb +0 -11
- data/features/step_definitions/batch_action_steps.rb +0 -81
- data/features/step_definitions/blog_steps.rb +0 -3
- data/features/step_definitions/breadcrumb_steps.rb +0 -3
- data/features/step_definitions/column_steps.rb +0 -8
- data/features/step_definitions/comment_steps.rb +0 -32
- data/features/step_definitions/configuration_steps.rb +0 -100
- data/features/step_definitions/dashboard_steps.rb +0 -15
- data/features/step_definitions/factory_steps.rb +0 -35
- data/features/step_definitions/filter_steps.rb +0 -48
- data/features/step_definitions/flash_steps.rb +0 -11
- data/features/step_definitions/footer_steps.rb +0 -11
- data/features/step_definitions/format_steps.rb +0 -56
- data/features/step_definitions/i18n_steps.rb +0 -11
- data/features/step_definitions/index_scope_steps.rb +0 -29
- data/features/step_definitions/index_views_steps.rb +0 -3
- data/features/step_definitions/layout_steps.rb +0 -3
- data/features/step_definitions/member_link_steps.rb +0 -7
- data/features/step_definitions/menu_steps.rb +0 -11
- data/features/step_definitions/meta_tag_steps.rb +0 -3
- data/features/step_definitions/pagination_steps.rb +0 -15
- data/features/step_definitions/sidebar_steps.rb +0 -11
- data/features/step_definitions/site_title_steps.rb +0 -17
- data/features/step_definitions/tab_steps.rb +0 -8
- data/features/step_definitions/table_steps.rb +0 -116
- data/features/step_definitions/user_steps.rb +0 -52
- data/features/step_definitions/web_steps.rb +0 -86
- data/features/sti_resource.feature +0 -65
- data/features/strong_parameters.feature +0 -69
- data/features/support/env.rb +0 -122
- data/features/support/paths.rb +0 -73
- data/features/support/regular_env.rb +0 -7
- data/features/support/reload_env.rb +0 -7
- data/features/support/selectors.rb +0 -45
- data/features/users/logging_in.feature +0 -36
- data/features/users/logging_out.feature +0 -13
- data/features/users/resetting_password.feature +0 -34
- data/gemfiles/rails_42.gemfile +0 -10
- data/gemfiles/rails_50.gemfile +0 -10
- data/gemfiles/rails_51.gemfile +0 -10
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/helpers/settings.rb +0 -114
- data/lib/active_admin/reloader.rb +0 -25
- data/lib/bug_report_templates/active_admin_master.rb +0 -113
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/spec/bug_report_templates_spec.rb +0 -26
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
- data/spec/javascripts/fixtures/checkboxes.html +0 -9
- data/spec/javascripts/fixtures/flashes.html +0 -2
- data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
- data/spec/javascripts/helpers/SpecHelper.js +0 -3
- data/spec/javascripts/support/jasmine.yml +0 -74
- data/spec/javascripts/support/jasmine_runner.rb +0 -19
- data/spec/rails_helper.rb +0 -59
- data/spec/requests/default_namespace_spec.rb +0 -81
- data/spec/requests/memory_spec.rb +0 -25
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -1
- data/spec/support/active_admin_integration_spec_helper.rb +0 -73
- data/spec/support/active_admin_request_helpers.rb +0 -39
- data/spec/support/rails_template.rb +0 -150
- data/spec/support/rails_template_with_data.rb +0 -327
- data/spec/support/templates/admin/stores.rb +0 -7
- data/spec/support/templates/en.yml +0 -8
- data/spec/support/templates/manifest.js +0 -3
- data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
- data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
- data/spec/support/templates/policies/admin_user_policy.rb +0 -11
- data/spec/support/templates/policies/application_policy.rb +0 -44
- data/spec/support/templates/policies/category_policy.rb +0 -7
- data/spec/support/templates/policies/post_policy.rb +0 -15
- data/spec/support/templates/policies/store_policy.rb +0 -11
- data/spec/support/templates/policies/user_policy.rb +0 -11
- data/spec/support/templates/post_decorator.rb +0 -10
- data/spec/unit/abstract_view_factory_spec.rb +0 -78
- data/spec/unit/action_builder_spec.rb +0 -125
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -184
- data/spec/unit/asset_registration_spec.rb +0 -81
- data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
- data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
- data/spec/unit/authorization/index_overriding_spec.rb +0 -23
- data/spec/unit/auto_link_spec.rb +0 -93
- data/spec/unit/batch_actions/resource_spec.rb +0 -84
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -76
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -176
- data/spec/unit/component_spec.rb +0 -18
- data/spec/unit/config_shared_examples.rb +0 -59
- data/spec/unit/controller_filters_spec.rb +0 -41
- data/spec/unit/csv_builder_spec.rb +0 -304
- data/spec/unit/dependency_spec.rb +0 -135
- data/spec/unit/devise_spec.rb +0 -110
- data/spec/unit/dsl_spec.rb +0 -120
- data/spec/unit/filters/active_filter_spec.rb +0 -135
- data/spec/unit/filters/active_spec.rb +0 -24
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
- data/spec/unit/filters/resource_spec.rb +0 -128
- data/spec/unit/form_builder_spec.rb +0 -990
- data/spec/unit/generators/install_spec.rb +0 -31
- data/spec/unit/helpers/collection_spec.rb +0 -68
- data/spec/unit/helpers/scope_chain_spec.rb +0 -35
- data/spec/unit/helpers/settings_spec.rb +0 -30
- data/spec/unit/i18n_spec.rb +0 -29
- data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
- data/spec/unit/menu_collection_spec.rb +0 -62
- data/spec/unit/menu_item_spec.rb +0 -141
- data/spec/unit/menu_spec.rb +0 -71
- data/spec/unit/namespace/authorization_spec.rb +0 -27
- data/spec/unit/namespace/register_page_spec.rb +0 -99
- data/spec/unit/namespace/register_resource_spec.rb +0 -162
- data/spec/unit/namespace_spec.rb +0 -124
- data/spec/unit/order_clause_spec.rb +0 -81
- data/spec/unit/page_controller_spec.rb +0 -5
- data/spec/unit/page_spec.rb +0 -128
- data/spec/unit/pretty_format_spec.rb +0 -82
- data/spec/unit/pundit_adapter_spec.rb +0 -98
- data/spec/unit/resource/action_items_spec.rb +0 -69
- data/spec/unit/resource/attributes_spec.rb +0 -49
- data/spec/unit/resource/includes_spec.rb +0 -21
- data/spec/unit/resource/menu_spec.rb +0 -18
- data/spec/unit/resource/naming_spec.rb +0 -122
- data/spec/unit/resource/ordering_spec.rb +0 -35
- data/spec/unit/resource/page_presenters_spec.rb +0 -44
- data/spec/unit/resource/pagination_spec.rb +0 -38
- data/spec/unit/resource/routes_spec.rb +0 -125
- data/spec/unit/resource/scopes_spec.rb +0 -50
- data/spec/unit/resource/sidebars_spec.rb +0 -43
- data/spec/unit/resource_collection_spec.rb +0 -175
- data/spec/unit/resource_controller/data_access_spec.rb +0 -230
- data/spec/unit/resource_controller/decorators_spec.rb +0 -94
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
- data/spec/unit/resource_controller_spec.rb +0 -273
- data/spec/unit/resource_registration_spec.rb +0 -61
- data/spec/unit/resource_spec.rb +0 -320
- data/spec/unit/routing_spec.rb +0 -211
- data/spec/unit/scope_spec.rb +0 -209
- data/spec/unit/settings_spec.rb +0 -117
- data/spec/unit/view_factory_spec.rb +0 -19
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
- data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
- data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
- data/spec/unit/views/components/attributes_table_spec.rb +0 -271
- data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
- data/spec/unit/views/components/blank_slate_spec.rb +0 -27
- data/spec/unit/views/components/columns_spec.rb +0 -187
- data/spec/unit/views/components/index_list_spec.rb +0 -49
- data/spec/unit/views/components/index_table_for_spec.rb +0 -127
- data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
- data/spec/unit/views/components/panel_spec.rb +0 -58
- data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
- data/spec/unit/views/components/site_title_spec.rb +0 -76
- data/spec/unit/views/components/status_tag_spec.rb +0 -265
- data/spec/unit/views/components/table_for_spec.rb +0 -436
- data/spec/unit/views/components/tabs_spec.rb +0 -67
- data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
- data/spec/unit/views/index_as_blog_spec.rb +0 -76
- data/spec/unit/views/pages/form_spec.rb +0 -54
- data/spec/unit/views/pages/index_spec.rb +0 -60
- data/spec/unit/views/pages/layout_spec.rb +0 -59
- data/spec/unit/views/pages/show_spec.rb +0 -32
- data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
- data/tasks/docs.rake +0 -64
- data/tasks/lint.rake +0 -21
- data/tasks/local.rake +0 -25
- data/tasks/parallel_tests.rake +0 -66
- data/tasks/test.rake +0 -29
- /data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
- /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
@@ -1,156 +1,45 @@
|
|
1
1
|
require 'active_admin/router'
|
2
|
-
require 'active_admin/
|
3
|
-
require 'active_admin/
|
2
|
+
require 'active_admin/application_settings'
|
3
|
+
require 'active_admin/namespace_settings'
|
4
4
|
|
5
5
|
module ActiveAdmin
|
6
6
|
class Application
|
7
|
-
include Settings
|
8
|
-
include Settings::Inheritance
|
9
7
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
#
|
15
|
-
# config.default_namespace = :super_admin
|
16
|
-
#
|
17
|
-
setting :default_namespace, :admin
|
8
|
+
class << self
|
9
|
+
def setting(name, default)
|
10
|
+
ApplicationSettings.register name, default
|
11
|
+
end
|
18
12
|
|
19
|
-
|
20
|
-
|
21
|
-
|
13
|
+
def inheritable_setting(name, default)
|
14
|
+
NamespaceSettings.register name, default
|
15
|
+
end
|
22
16
|
end
|
23
17
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
setting :load_paths, [File.expand_path('app/admin', Rails.root)]
|
28
|
-
|
29
|
-
# The default number of resources to display on index pages
|
30
|
-
inheritable_setting :default_per_page, 30
|
31
|
-
|
32
|
-
# The max number of resources to display on index pages and batch exports
|
33
|
-
inheritable_setting :max_per_page, 10_000
|
34
|
-
|
35
|
-
# The title which gets displayed in the main layout
|
36
|
-
inheritable_setting :site_title, ""
|
37
|
-
|
38
|
-
# Set the site title link href (defaults to AA dashboard)
|
39
|
-
inheritable_setting :site_title_link, ""
|
40
|
-
|
41
|
-
# Set the site title image displayed in the main layout (has precendence over :site_title)
|
42
|
-
inheritable_setting :site_title_image, ""
|
43
|
-
|
44
|
-
# Set the site footer text (defaults to Powered by ActiveAdmin text with version)
|
45
|
-
inheritable_setting :footer, ""
|
46
|
-
|
47
|
-
# Set a favicon
|
48
|
-
inheritable_setting :favicon, false
|
49
|
-
|
50
|
-
# Additional meta tags to place in head of logged in pages.
|
51
|
-
inheritable_setting :meta_tags, {}
|
52
|
-
|
53
|
-
# Additional meta tags to place in head of logged out pages.
|
54
|
-
inheritable_setting :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
|
55
|
-
|
56
|
-
# The view factory to use to generate all the view classes. Take
|
57
|
-
# a look at ActiveAdmin::ViewFactory
|
58
|
-
inheritable_setting :view_factory, ActiveAdmin::ViewFactory.new
|
59
|
-
|
60
|
-
# The method to call in controllers to get the current user
|
61
|
-
inheritable_setting :current_user_method, false
|
62
|
-
|
63
|
-
# The method to call in the controllers to ensure that there
|
64
|
-
# is a currently authenticated admin user
|
65
|
-
inheritable_setting :authentication_method, false
|
66
|
-
|
67
|
-
# The path to log user's out with. If set to a symbol, we assume
|
68
|
-
# that it's a method to call which returns the path
|
69
|
-
inheritable_setting :logout_link_path, :destroy_admin_user_session_path
|
70
|
-
|
71
|
-
# The method to use when generating the link for user logout
|
72
|
-
inheritable_setting :logout_link_method, :get
|
73
|
-
|
74
|
-
# Whether the batch actions are enabled or not
|
75
|
-
inheritable_setting :batch_actions, false
|
76
|
-
|
77
|
-
# Whether filters are enabled
|
78
|
-
inheritable_setting :filters, true
|
79
|
-
|
80
|
-
# The namespace root.
|
81
|
-
inheritable_setting :root_to, 'dashboard#index'
|
82
|
-
|
83
|
-
# Options that a passed to root_to.
|
84
|
-
inheritable_setting :root_to_options, {}
|
85
|
-
|
86
|
-
# Options passed to the routes, i.e. { path: '/custom' }
|
87
|
-
inheritable_setting :route_options, {}
|
88
|
-
|
89
|
-
# Display breadcrumbs
|
90
|
-
inheritable_setting :breadcrumb, true
|
91
|
-
|
92
|
-
# Display create another checkbox on a new page
|
93
|
-
# @return [Boolean] (true)
|
94
|
-
inheritable_setting :create_another, false
|
95
|
-
|
96
|
-
# Default CSV options
|
97
|
-
inheritable_setting :csv_options, { col_sep: ',', byte_order_mark: "\xEF\xBB\xBF" }
|
98
|
-
|
99
|
-
# Default Download Links options
|
100
|
-
inheritable_setting :download_links, true
|
101
|
-
|
102
|
-
# The authorization adapter to use
|
103
|
-
inheritable_setting :authorization_adapter, ActiveAdmin::AuthorizationAdapter
|
104
|
-
|
105
|
-
# A proc to be used when a user is not authorized to view the current resource
|
106
|
-
inheritable_setting :on_unauthorized_access, :rescue_active_admin_access_denied
|
107
|
-
|
108
|
-
# A regex to detect unsupported browser, set to false to disable
|
109
|
-
inheritable_setting :unsupported_browser_matcher, /MSIE [1-8]\.0/
|
110
|
-
|
111
|
-
# Whether to display 'Current Filters' on search screen
|
112
|
-
inheritable_setting :current_filters, true
|
113
|
-
|
114
|
-
# class to handle ordering
|
115
|
-
inheritable_setting :order_clause, ActiveAdmin::OrderClause
|
116
|
-
|
117
|
-
# default show_count for scopes
|
118
|
-
inheritable_setting :scopes_show_count, true
|
119
|
-
|
120
|
-
# Request parameters that are permitted by default
|
121
|
-
inheritable_setting :permitted_params, [
|
122
|
-
:utf8, :_method, :authenticity_token, :commit, :id
|
123
|
-
]
|
124
|
-
|
125
|
-
# Set flash message keys that shouldn't show in ActiveAdmin
|
126
|
-
inheritable_setting :flash_keys_to_except, ['timedout']
|
127
|
-
|
128
|
-
# Set default localize format for Date/Time values
|
129
|
-
setting :localize_format, :long
|
130
|
-
|
131
|
-
# Include association filters by default
|
132
|
-
inheritable_setting :include_default_association_filters, true
|
18
|
+
def settings
|
19
|
+
@settings ||= SettingsNode.build(ApplicationSettings)
|
20
|
+
end
|
133
21
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
# used by auto generated dropdowns in filter or belongs_to field of Active Admin
|
138
|
-
setting :display_name_methods, [ :display_name,
|
139
|
-
:full_name,
|
140
|
-
:name,
|
141
|
-
:username,
|
142
|
-
:login,
|
143
|
-
:title,
|
144
|
-
:email,
|
145
|
-
:to_s ]
|
22
|
+
def namespace_settings
|
23
|
+
@namespace_settings ||= SettingsNode.build(NamespaceSettings)
|
24
|
+
end
|
146
25
|
|
147
|
-
|
148
|
-
|
26
|
+
def respond_to_missing?(method, include_private = false)
|
27
|
+
[settings, namespace_settings].any? { |sets| sets.respond_to?(method) } || super
|
28
|
+
end
|
149
29
|
|
150
|
-
|
30
|
+
def method_missing(method, *args)
|
31
|
+
if settings.respond_to?(method)
|
32
|
+
settings.send(method, *args)
|
33
|
+
elsif namespace_settings.respond_to?(method)
|
34
|
+
namespace_settings.send(method, *args)
|
35
|
+
else
|
36
|
+
super
|
37
|
+
end
|
38
|
+
end
|
151
39
|
|
152
|
-
|
153
|
-
|
40
|
+
attr_reader :namespaces
|
41
|
+
def initialize
|
42
|
+
@namespaces = Namespace::Store.new
|
154
43
|
end
|
155
44
|
|
156
45
|
include AssetRegistration
|
@@ -172,7 +61,7 @@ module ActiveAdmin
|
|
172
61
|
|
173
62
|
# Registers a brand new configuration for the given resource.
|
174
63
|
def register(resource, options = {}, &block)
|
175
|
-
ns = options.fetch(:namespace){ default_namespace }
|
64
|
+
ns = options.fetch(:namespace) { default_namespace }
|
176
65
|
namespace(ns).register resource, options, &block
|
177
66
|
end
|
178
67
|
|
@@ -184,7 +73,7 @@ module ActiveAdmin
|
|
184
73
|
def namespace(name)
|
185
74
|
name ||= :root
|
186
75
|
|
187
|
-
namespace = namespaces[name] ||= begin
|
76
|
+
namespace = namespaces[name.to_sym] ||= begin
|
188
77
|
namespace = Namespace.new(self, name)
|
189
78
|
ActiveSupport::Notifications.publish ActiveAdmin::Namespace::RegisterEvent, namespace
|
190
79
|
namespace
|
@@ -202,7 +91,7 @@ module ActiveAdmin
|
|
202
91
|
# @&block The registration block.
|
203
92
|
#
|
204
93
|
def register_page(name, options = {}, &block)
|
205
|
-
ns = options.fetch(:namespace){ default_namespace }
|
94
|
+
ns = options.fetch(:namespace) { default_namespace }
|
206
95
|
namespace(ns).register_page name, options, &block
|
207
96
|
end
|
208
97
|
|
@@ -223,7 +112,7 @@ module ActiveAdmin
|
|
223
112
|
def load!
|
224
113
|
unless loaded?
|
225
114
|
ActiveSupport::Notifications.publish BeforeLoadEvent, self # before_load hook
|
226
|
-
files.each{ |file| load file }
|
115
|
+
files.each { |file| load file } # load files
|
227
116
|
namespace(default_namespace) # init AA resources
|
228
117
|
ActiveSupport::Notifications.publish AfterLoadEvent, self # after_load hook
|
229
118
|
@@loaded = true
|
@@ -231,22 +120,26 @@ module ActiveAdmin
|
|
231
120
|
end
|
232
121
|
|
233
122
|
def load(file)
|
234
|
-
DatabaseHitDuringLoad.capture{ super }
|
123
|
+
DatabaseHitDuringLoad.capture { super }
|
235
124
|
end
|
236
125
|
|
237
126
|
# Returns ALL the files to be loaded
|
238
127
|
def files
|
239
|
-
load_paths.flatten.compact.uniq.flat_map{ |path| Dir["#{path}/**/*.rb"] }
|
240
|
-
end
|
241
|
-
|
242
|
-
def router
|
243
|
-
@router ||= Router.new(self)
|
128
|
+
load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"] }
|
244
129
|
end
|
245
130
|
|
246
|
-
#
|
131
|
+
# Creates all the necessary routes for the ActiveAdmin configurations
|
132
|
+
#
|
133
|
+
# Use this within the routes.rb file:
|
134
|
+
#
|
135
|
+
# Application.routes.draw do |map|
|
136
|
+
# ActiveAdmin.routes(self)
|
137
|
+
# end
|
138
|
+
#
|
139
|
+
# @param rails_router [ActionDispatch::Routing::Mapper]
|
247
140
|
def routes(rails_router)
|
248
141
|
load!
|
249
|
-
|
142
|
+
Router.new(router: rails_router, namespaces: namespaces).apply
|
250
143
|
end
|
251
144
|
|
252
145
|
# Adds before, around and after filters to all controllers.
|
@@ -268,12 +161,12 @@ module ActiveAdmin
|
|
268
161
|
controllers
|
269
162
|
end
|
270
163
|
|
271
|
-
|
164
|
+
private
|
272
165
|
|
273
166
|
def register_default_assets
|
274
|
-
|
275
|
-
|
276
|
-
|
167
|
+
register_stylesheet 'active_admin.css', media: 'screen'
|
168
|
+
register_stylesheet 'active_admin/print.css', media: 'print'
|
169
|
+
register_javascript 'active_admin.js'
|
277
170
|
end
|
278
171
|
|
279
172
|
# Since app/admin is alphabetically before app/models, we have to remove it
|
@@ -300,11 +193,11 @@ module ActiveAdmin
|
|
300
193
|
# Rails is about to unload all the app files (e.g. models), so we
|
301
194
|
# should first unload the classes generated by Active Admin, otherwise
|
302
195
|
# they will contain references to the stale (unloaded) classes.
|
303
|
-
Reloader.to_prepare(prepend: true, &unload_active_admin)
|
196
|
+
ActiveSupport::Reloader.to_prepare(prepend: true, &unload_active_admin)
|
304
197
|
else
|
305
198
|
# If the user has configured the app to always reload app files after
|
306
199
|
# each request, so we should unload the generated classes too.
|
307
|
-
Reloader.to_complete(&unload_active_admin)
|
200
|
+
ActiveSupport::Reloader.to_complete(&unload_active_admin)
|
308
201
|
end
|
309
202
|
|
310
203
|
admin_dirs = {}
|
@@ -319,7 +212,7 @@ module ActiveAdmin
|
|
319
212
|
|
320
213
|
app.reloaders << routes_reloader
|
321
214
|
|
322
|
-
Reloader.to_prepare do
|
215
|
+
ActiveSupport::Reloader.to_prepare do
|
323
216
|
# Rails might have reloaded the routes for other reasons (e.g.
|
324
217
|
# routes.rb has changed), in which case Active Admin would have been
|
325
218
|
# loaded via the `ActiveAdmin.routes` call in `routes.rb`.
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'active_admin/settings_node'
|
2
|
+
|
3
|
+
module ActiveAdmin
|
4
|
+
class ApplicationSettings < SettingsNode
|
5
|
+
|
6
|
+
# The default namespace to put controllers and routes inside. Set this
|
7
|
+
# in config/initializers/active_admin.rb using:
|
8
|
+
#
|
9
|
+
# config.default_namespace = :super_admin
|
10
|
+
#
|
11
|
+
register :default_namespace, :admin
|
12
|
+
|
13
|
+
register :app_path, Rails.root
|
14
|
+
|
15
|
+
# Load paths for admin configurations. Add folders to this load path
|
16
|
+
# to load up other resources for administration. External gems can
|
17
|
+
# include their paths in this load path to provide active_admin UIs
|
18
|
+
register :load_paths, [File.expand_path('app/admin', Rails.root)]
|
19
|
+
|
20
|
+
# Set default localize format for Date/Time values
|
21
|
+
register :localize_format, :long
|
22
|
+
|
23
|
+
# Active Admin makes educated guesses when displaying objects, this is
|
24
|
+
# the list of methods it tries calling in order
|
25
|
+
# Note that Formtastic also has 'collection_label_methods' similar to this
|
26
|
+
# used by auto generated dropdowns in filter or belongs_to field of Active Admin
|
27
|
+
register :display_name_methods, [ :display_name,
|
28
|
+
:full_name,
|
29
|
+
:name,
|
30
|
+
:username,
|
31
|
+
:login,
|
32
|
+
:title,
|
33
|
+
:email,
|
34
|
+
:to_s ]
|
35
|
+
|
36
|
+
# To make debugging easier, by default don't stream in development
|
37
|
+
register :disable_streaming_in, ['development']
|
38
|
+
|
39
|
+
# Remove sensitive attributes from being displayed, made editable, or exported by default
|
40
|
+
register :filter_attributes, [:encrypted_password, :password, :password_confirmation]
|
41
|
+
end
|
42
|
+
end
|
@@ -2,10 +2,6 @@ module ActiveAdmin
|
|
2
2
|
module AssetRegistration
|
3
3
|
|
4
4
|
def register_stylesheet(path, options = {})
|
5
|
-
Deprecation.warn <<-MSG.strip_heredoc
|
6
|
-
The `register_stylesheet` config is deprecated and will be removed
|
7
|
-
in v2. Import your "#{path}" stylesheet in the active_admin.scss.
|
8
|
-
MSG
|
9
5
|
stylesheets[path] = options
|
10
6
|
end
|
11
7
|
|
@@ -18,10 +14,6 @@ module ActiveAdmin
|
|
18
14
|
end
|
19
15
|
|
20
16
|
def register_javascript(name)
|
21
|
-
Deprecation.warn <<-MSG.strip_heredoc
|
22
|
-
The `register_javascript` config is deprecated and will be removed
|
23
|
-
in v2. Import your "#{name}" javascript in the active_admin.js.
|
24
|
-
MSG
|
25
17
|
javascripts.add name
|
26
18
|
end
|
27
19
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module ActiveAdmin
|
2
2
|
class BaseController < ::InheritedResources::Base
|
3
3
|
module Authorization
|
4
|
-
include MethodOrProcHelper
|
5
4
|
extend ActiveSupport::Concern
|
6
5
|
|
7
6
|
ACTIONS_DICTIONARY = {
|
@@ -19,6 +18,7 @@ module ActiveAdmin
|
|
19
18
|
|
20
19
|
helper_method :authorized?
|
21
20
|
helper_method :authorize!
|
21
|
+
helper_method :active_admin_authorization
|
22
22
|
end
|
23
23
|
|
24
24
|
protected
|
@@ -100,7 +100,7 @@ module ActiveAdmin
|
|
100
100
|
end
|
101
101
|
|
102
102
|
def dispatch_active_admin_access_denied(exception)
|
103
|
-
|
103
|
+
instance_exec(self, exception, &active_admin_namespace.on_unauthorized_access.to_proc)
|
104
104
|
end
|
105
105
|
|
106
106
|
def rescue_active_admin_access_denied(exception)
|
@@ -112,16 +112,14 @@ module ActiveAdmin
|
|
112
112
|
redirect_backwards_or_to_root
|
113
113
|
end
|
114
114
|
|
115
|
-
body
|
116
|
-
|
117
|
-
format.csv { render body => error, status: :unauthorized }
|
115
|
+
format.csv { render body: error, status: :unauthorized }
|
118
116
|
format.json { render json: { error: error }, status: :unauthorized }
|
119
117
|
format.xml { render xml: "<error>#{error}</error>", status: :unauthorized }
|
120
118
|
end
|
121
119
|
end
|
122
120
|
|
123
121
|
def redirect_backwards_or_to_root
|
124
|
-
|
122
|
+
redirect_back fallback_location: active_admin_root
|
125
123
|
end
|
126
124
|
|
127
125
|
end
|
@@ -22,6 +22,11 @@ module ActiveAdmin
|
|
22
22
|
attr_accessor :active_admin_config
|
23
23
|
end
|
24
24
|
|
25
|
+
include Authorization
|
26
|
+
include Menu
|
27
|
+
|
28
|
+
private
|
29
|
+
|
25
30
|
# By default Rails will render un-implemented actions when the view exists. Because Active
|
26
31
|
# Admin allows you to not render any of the actions by using the #actions method, we need
|
27
32
|
# to check if they are implemented.
|
@@ -29,11 +34,6 @@ module ActiveAdmin
|
|
29
34
|
raise AbstractController::ActionNotFound unless action_methods.include?(params[:action])
|
30
35
|
end
|
31
36
|
|
32
|
-
include Authorization
|
33
|
-
include Menu
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
37
|
# Calls the authentication method as defined in ActiveAdmin.authentication_method
|
38
38
|
def authenticate_active_admin_user
|
39
39
|
send(active_admin_namespace.authentication_method) if active_admin_namespace.authentication_method
|
@@ -74,7 +74,7 @@ module ActiveAdmin
|
|
74
74
|
|
75
75
|
def active_admin_root
|
76
76
|
controller, action = active_admin_namespace.root_to.split '#'
|
77
|
-
{controller: controller, action: action}
|
77
|
+
{ controller: controller, action: action }
|
78
78
|
end
|
79
79
|
|
80
80
|
end
|
@@ -7,7 +7,7 @@ module ActiveAdmin
|
|
7
7
|
if action_present?
|
8
8
|
selection = params[:collection_selection] || []
|
9
9
|
inputs = JSON.parse params[:batch_action_inputs] || '{}'
|
10
|
-
valid_keys = render_in_context(self, current_batch_action.inputs).try(:keys)
|
10
|
+
valid_keys = MethodOrProcHelper.render_in_context(self, current_batch_action.inputs).try(:keys)
|
11
11
|
inputs = inputs.with_indifferent_access.slice *valid_keys
|
12
12
|
instance_exec selection, inputs, ¤t_batch_action.block
|
13
13
|
else
|
@@ -22,7 +22,7 @@ module ActiveAdmin
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def current_batch_action
|
25
|
-
active_admin_config.batch_actions.detect{ |action| action.sym.to_s == params[:batch_action] }
|
25
|
+
active_admin_config.batch_actions.detect { |action| action.sym.to_s == params[:batch_action] }
|
26
26
|
end
|
27
27
|
|
28
28
|
COLLECTION_APPLIES = [
|
@@ -57,8 +57,8 @@ module ActiveAdmin
|
|
57
57
|
def add_default_batch_action
|
58
58
|
destroy_options = {
|
59
59
|
priority: 100,
|
60
|
-
confirm: proc{ I18n.t('active_admin.batch_actions.delete_confirmation', plural_model: active_admin_config.plural_resource_label.downcase) },
|
61
|
-
if: proc{ controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, active_admin_config.resource_class) }
|
60
|
+
confirm: proc { I18n.t('active_admin.batch_actions.delete_confirmation', plural_model: active_admin_config.plural_resource_label.downcase) },
|
61
|
+
if: proc { controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, active_admin_config.resource_class) }
|
62
62
|
}
|
63
63
|
|
64
64
|
add_batch_action :destroy, proc { I18n.t('active_admin.delete') }, destroy_options do |selected_ids|
|
@@ -84,7 +84,7 @@ module ActiveAdmin
|
|
84
84
|
|
85
85
|
attr_reader :block, :title, :sym
|
86
86
|
|
87
|
-
DEFAULT_CONFIRM_MESSAGE = proc{ I18n.t 'active_admin.batch_actions.default_confirmation' }
|
87
|
+
DEFAULT_CONFIRM_MESSAGE = proc { I18n.t 'active_admin.batch_actions.default_confirmation' }
|
88
88
|
|
89
89
|
# Create a Batch Action
|
90
90
|
#
|
@@ -112,7 +112,11 @@ module ActiveAdmin
|
|
112
112
|
# => You can pass a hash of options to `:form` that will be rendered as form input fields for the user to fill out.
|
113
113
|
#
|
114
114
|
def initialize(sym, title, options = {}, &block)
|
115
|
-
@sym
|
115
|
+
@sym = sym
|
116
|
+
@title = title
|
117
|
+
@options = options
|
118
|
+
@block = block
|
119
|
+
@confirm = options[:confirm]
|
116
120
|
@block ||= proc {}
|
117
121
|
end
|
118
122
|
|
@@ -133,7 +137,7 @@ module ActiveAdmin
|
|
133
137
|
# Returns the display if block. If the block was not explicitly defined
|
134
138
|
# a default block always returning true will be returned.
|
135
139
|
def display_if_block
|
136
|
-
@options[:if] || proc{ true }
|
140
|
+
@options[:if] || proc { true }
|
137
141
|
end
|
138
142
|
|
139
143
|
# Used for sorting
|
@@ -75,7 +75,7 @@ module ActiveAdmin
|
|
75
75
|
|
76
76
|
# def run_create_callbacks
|
77
77
|
define_method "run_#{name}_callbacks" do |*args, &block|
|
78
|
-
self.class.send("before_#{name}_callbacks").each{ |cbk| run_callback(cbk, *args) }
|
78
|
+
self.class.send("before_#{name}_callbacks").each { |cbk| run_callback(cbk, *args) }
|
79
79
|
value = block.try :call
|
80
80
|
self.class.send("after_#{name}_callbacks").each { |cbk| run_callback(cbk, *args) }
|
81
81
|
return value
|
@@ -32,7 +32,9 @@ module ActiveAdmin
|
|
32
32
|
|
33
33
|
def initialize(options = {}, &block)
|
34
34
|
@resource = options.delete(:resource)
|
35
|
-
@columns
|
35
|
+
@columns = []
|
36
|
+
@options = ActiveAdmin.application.csv_options.merge options
|
37
|
+
@block = block
|
36
38
|
end
|
37
39
|
|
38
40
|
def column(name, options = {}, &block)
|
@@ -42,7 +44,6 @@ module ActiveAdmin
|
|
42
44
|
def build(controller, csv)
|
43
45
|
@collection = controller.send :find_collection, except: :pagination
|
44
46
|
columns = exec_columns controller.view_context
|
45
|
-
options = ActiveAdmin.application.csv_options.merge self.options
|
46
47
|
bom = options.delete :byte_order_mark
|
47
48
|
column_names = options.delete(:column_names) { true }
|
48
49
|
csv_options = options.except :encoding_options, :humanize_name
|
@@ -50,13 +51,15 @@ module ActiveAdmin
|
|
50
51
|
csv << bom if bom
|
51
52
|
|
52
53
|
if column_names
|
53
|
-
csv << CSV.generate_line(columns.map{ |c| encode c.name, options }, csv_options)
|
54
|
+
csv << CSV.generate_line(columns.map { |c| encode c.name, options }, csv_options)
|
54
55
|
end
|
55
56
|
|
56
|
-
|
57
|
-
paginated_collection
|
58
|
-
|
59
|
-
|
57
|
+
ActiveRecord::Base.uncached do
|
58
|
+
(1..paginated_collection.total_pages).each do |page|
|
59
|
+
paginated_collection(page).each do |resource|
|
60
|
+
resource = controller.send :apply_decorator, resource
|
61
|
+
csv << CSV.generate_line(build_row(resource, columns, options), csv_options)
|
62
|
+
end
|
60
63
|
end
|
61
64
|
end
|
62
65
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module ActiveAdmin
|
2
2
|
module Dependency
|
3
3
|
module Requirements
|
4
|
-
DEVISE = '>=
|
4
|
+
DEVISE = '>= 4.0', '< 5'
|
5
5
|
end
|
6
6
|
|
7
7
|
# Provides a clean interface to check for gem dependencies at runtime.
|
@@ -55,8 +55,8 @@ module ActiveAdmin
|
|
55
55
|
Matcher.new name.to_s
|
56
56
|
end
|
57
57
|
|
58
|
-
def self.
|
59
|
-
rails >=
|
58
|
+
def self.supports_zeitwerk?
|
59
|
+
rails >= "6.0.0.beta3" && RUBY_ENGINE != "jruby"
|
60
60
|
end
|
61
61
|
|
62
62
|
class Matcher
|
@@ -94,70 +94,6 @@ module ActiveAdmin
|
|
94
94
|
info = spec ? "#{spec.name} #{spec.version}" : '(missing)'
|
95
95
|
"<ActiveAdmin::Dependency::Matcher for #{info}>"
|
96
96
|
end
|
97
|
-
|
98
|
-
def adapter
|
99
|
-
@adapter ||= Adapter.const_get(@name.camelize).new self
|
100
|
-
end
|
101
|
-
|
102
|
-
def method_missing(method, *args, &block)
|
103
|
-
if respond_to_missing?(method)
|
104
|
-
adapter.send method, *args, &block
|
105
|
-
else
|
106
|
-
super
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
def respond_to_missing?(method, include_private = false)
|
111
|
-
adapter.respond_to?(method) || super
|
112
|
-
rescue NameError
|
113
|
-
# 🐾
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
# Dependency adapters provide an easy way to wrap the conditional logic
|
118
|
-
# necessary to support multiple versions of a gem.
|
119
|
-
#
|
120
|
-
# ActiveAdmin::Dependency.rails.adapter.parameterize 'a b'
|
121
|
-
# => 'a_b'
|
122
|
-
#
|
123
|
-
# ActiveAdmin::Dependency.rails.parameterize 'a b'
|
124
|
-
# => 'a_b'
|
125
|
-
#
|
126
|
-
# ActiveAdmin::Dependency.devise.adapter
|
127
|
-
# -> NameError: uninitialized constant ActiveAdmin::Dependency::Adapter::Devise
|
128
|
-
#
|
129
|
-
module Adapter
|
130
|
-
class Base
|
131
|
-
def initialize(version)
|
132
|
-
@version = version
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
class Rails < Base
|
137
|
-
def parameterize(string)
|
138
|
-
if Dependency.rails5?
|
139
|
-
string.parameterize separator: '_'
|
140
|
-
else
|
141
|
-
string.parameterize '_'
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
def redirect_back(controller, fallback_location)
|
146
|
-
controller.instance_exec do
|
147
|
-
if Dependency.rails5?
|
148
|
-
redirect_back fallback_location: fallback_location
|
149
|
-
elsif controller.request.headers.key? 'HTTP_REFERER'
|
150
|
-
redirect_to :back
|
151
|
-
else
|
152
|
-
redirect_to fallback_location
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
def render_key
|
158
|
-
Dependency.rails5? ? :body : :text
|
159
|
-
end
|
160
|
-
end
|
161
97
|
end
|
162
98
|
|
163
99
|
end
|
@@ -6,30 +6,5 @@ module ActiveAdmin
|
|
6
6
|
ActiveSupport::Deprecation.warn "Active Admin: #{message}", callstack
|
7
7
|
end
|
8
8
|
|
9
|
-
# Deprecate a method.
|
10
|
-
#
|
11
|
-
# @param [Module] klass the Class or Module to deprecate the method on
|
12
|
-
# @param [Symbol] method the method to deprecate
|
13
|
-
# @param [String] message the message to display to the end user
|
14
|
-
#
|
15
|
-
# Example:
|
16
|
-
#
|
17
|
-
# class MyClass
|
18
|
-
# def my_method
|
19
|
-
# # ...
|
20
|
-
# end
|
21
|
-
# ActiveAdmin::Deprecation.deprecate self, :my_method,
|
22
|
-
# "MyClass#my_method is being removed in the next release"
|
23
|
-
# end
|
24
|
-
#
|
25
|
-
def deprecate(klass, method, message)
|
26
|
-
klass.send :define_method, "deprecated_#{method}", klass.instance_method(method)
|
27
|
-
|
28
|
-
klass.send :define_method, method do |*args|
|
29
|
-
ActiveAdmin::Deprecation.warn "#{message}", caller
|
30
|
-
send "deprecated_#{method}", *args
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
9
|
end
|
35
10
|
end
|