activeadmin 1.2.1 → 2.13.1
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 +769 -132
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +83 -61
- data/README.md +73 -19
- data/app/assets/javascripts/active_admin/base.js +524 -0
- data/app/assets/stylesheets/active_admin/_base.scss +53 -37
- data/app/assets/stylesheets/active_admin/_forms.scss +3 -25
- data/app/assets/stylesheets/active_admin/_header.scss +40 -8
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
- data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +25 -123
- data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
- data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -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 +17 -0
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
- data/app/javascript/active_admin/base.js +28 -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 +98 -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/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/mailer/unlock_instructions.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/shared/_links.erb +1 -1
- data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
- data/app/views/active_admin/page/index.html.arb +1 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -0
- data/app/views/active_admin/resource/index.html.arb +1 -0
- data/app/views/active_admin/resource/new.html.arb +1 -0
- data/app/views/active_admin/resource/show.html.arb +1 -0
- data/app/views/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.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
- data/config/locales/ar.yml +9 -8
- 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 +4 -3
- data/config/locales/en-GB.yml +4 -3
- data/config/locales/en.yml +23 -4
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +3 -1
- data/config/locales/es.yml +26 -6
- data/config/locales/fa.yml +1 -0
- data/config/locales/fi.yml +2 -1
- data/config/locales/fr.yml +6 -5
- 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 +23 -0
- data/config/locales/ja.yml +4 -3
- data/config/locales/ko.yml +2 -1
- data/config/locales/lt.yml +3 -2
- data/config/locales/lv.yml +3 -2
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +16 -5
- data/config/locales/nl.yml +13 -1
- data/config/locales/pl.yml +72 -3
- data/config/locales/pt-BR.yml +1 -0
- data/config/locales/pt-PT.yml +1 -0
- data/config/locales/ro.yml +4 -2
- data/config/locales/ru.yml +3 -0
- data/config/locales/sk.yml +60 -0
- data/config/locales/sv-SE.yml +1 -0
- data/config/locales/tr.yml +10 -0
- data/config/locales/uk.yml +3 -0
- data/config/locales/vi.yml +7 -5
- 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 +29 -5
- data/docs/1-general-configuration.md +36 -1
- data/docs/10-custom-pages.md +14 -0
- data/docs/11-decorators.md +16 -5
- data/docs/12-arbre-components.md +41 -1
- data/docs/13-authorization-adapter.md +41 -22
- data/docs/2-resource-customization.md +19 -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 +18 -1
- data/docs/5-forms.md +25 -5
- data/docs/6-show-pages.md +12 -0
- data/docs/8-custom-actions.md +12 -1
- data/docs/9-batch-actions.md +2 -2
- data/docs/CNAME +1 -1
- data/docs/Gemfile +4 -2
- data/docs/Gemfile.lock +283 -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 +2 -2
- data/docs/images/tidelift.svg +14 -0
- data/docs/index.html +110 -9
- data/docs/stylesheets/main.css +55 -2
- data/lib/active_admin/abstract_view_factory.rb +14 -51
- data/lib/active_admin/application.rb +65 -172
- data/lib/active_admin/application_settings.rb +43 -0
- data/lib/active_admin/asset_registration.rb +1 -8
- data/lib/active_admin/authorization_adapter.rb +4 -3
- data/lib/active_admin/base_controller/authorization.rb +18 -18
- data/lib/active_admin/base_controller/menu.rb +1 -0
- data/lib/active_admin/base_controller.rb +12 -11
- data/lib/active_admin/batch_actions/controller.rb +6 -5
- data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
- data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
- data/lib/active_admin/batch_actions.rb +1 -0
- data/lib/active_admin/callbacks.rb +2 -1
- data/lib/active_admin/cancan_adapter.rb +2 -1
- data/lib/active_admin/collection_decorator.rb +32 -0
- data/lib/active_admin/component.rb +1 -0
- data/lib/active_admin/controller_action.rb +3 -1
- data/lib/active_admin/csv_builder.rb +15 -23
- data/lib/active_admin/dependency.rb +14 -77
- data/lib/active_admin/deprecation.rb +1 -25
- data/lib/active_admin/devise.rb +16 -5
- data/lib/active_admin/dsl.rb +3 -9
- data/lib/active_admin/dynamic_setting.rb +39 -0
- data/lib/active_admin/dynamic_settings_node.rb +29 -0
- data/lib/active_admin/engine.rb +16 -7
- data/lib/active_admin/error.rb +5 -4
- data/lib/active_admin/filters/active.rb +2 -1
- data/lib/active_admin/filters/active_filter.rb +12 -11
- data/lib/active_admin/filters/active_sidebar.rb +8 -30
- data/lib/active_admin/filters/dsl.rb +1 -0
- data/lib/active_admin/filters/forms.rb +13 -9
- data/lib/active_admin/filters/formtastic_addons.rb +3 -7
- data/lib/active_admin/filters/resource_extension.rb +30 -5
- data/lib/active_admin/filters.rb +8 -7
- data/lib/active_admin/form_builder.rb +110 -70
- data/lib/active_admin/generators/boilerplate.rb +13 -4
- data/lib/active_admin/helpers/collection.rb +2 -0
- data/lib/active_admin/helpers/i18n.rb +1 -0
- data/lib/active_admin/helpers/optional_display.rb +3 -2
- data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
- data/lib/active_admin/helpers/scope_chain.rb +2 -0
- data/lib/active_admin/inputs/datepicker_input.rb +10 -2
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
- data/lib/active_admin/inputs/filters/base.rb +2 -1
- data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
- data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
- data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
- data/lib/active_admin/inputs/filters/select_input.rb +3 -2
- data/lib/active_admin/inputs/filters/string_input.rb +1 -0
- data/lib/active_admin/inputs/filters/text_input.rb +1 -0
- data/lib/active_admin/inputs.rb +1 -0
- data/lib/active_admin/localizers/resource_localizer.rb +4 -3
- data/lib/active_admin/localizers.rb +2 -1
- data/lib/active_admin/menu.rb +9 -11
- data/lib/active_admin/menu_collection.rb +1 -0
- data/lib/active_admin/menu_item.rb +11 -38
- data/lib/active_admin/namespace.rb +33 -20
- data/lib/active_admin/namespace_settings.rb +127 -0
- data/lib/active_admin/order_clause.rb +4 -3
- data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +30 -24
- data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
- data/lib/active_admin/orm/active_record/comments.rb +35 -23
- data/lib/active_admin/orm/active_record.rb +2 -1
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/page.rb +2 -1
- data/lib/active_admin/page_controller.rb +1 -0
- data/lib/active_admin/page_dsl.rb +2 -1
- data/lib/active_admin/page_presenter.rb +3 -1
- data/lib/active_admin/pundit_adapter.rb +73 -16
- data/lib/active_admin/resource/action_items.rb +12 -6
- data/lib/active_admin/resource/attributes.rb +9 -5
- data/lib/active_admin/resource/belongs_to.rb +9 -3
- data/lib/active_admin/resource/controllers.rb +2 -1
- data/lib/active_admin/resource/includes.rb +1 -0
- data/lib/active_admin/resource/menu.rb +6 -5
- data/lib/active_admin/resource/model.rb +16 -0
- data/lib/active_admin/resource/naming.rb +6 -5
- data/lib/active_admin/resource/ordering.rb +1 -0
- data/lib/active_admin/resource/page_presenters.rb +1 -0
- data/lib/active_admin/resource/pagination.rb +1 -0
- data/lib/active_admin/resource/routes.rb +26 -14
- data/lib/active_admin/resource/scope_to.rb +8 -7
- data/lib/active_admin/resource/scopes.rb +4 -3
- data/lib/active_admin/resource/sidebars.rb +3 -2
- data/lib/active_admin/resource.rb +37 -22
- data/lib/active_admin/resource_collection.rb +3 -2
- data/lib/active_admin/resource_controller/action_builder.rb +11 -0
- data/lib/active_admin/resource_controller/data_access.rb +31 -5
- data/lib/active_admin/resource_controller/decorators.rb +10 -31
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
- data/lib/active_admin/resource_controller/scoping.rb +2 -1
- data/lib/active_admin/resource_controller/sidebars.rb +1 -0
- data/lib/active_admin/resource_controller/streaming.rb +9 -7
- data/lib/active_admin/resource_controller.rb +14 -10
- data/lib/active_admin/resource_dsl.rb +16 -28
- data/lib/active_admin/router.rb +91 -84
- data/lib/active_admin/scope.rb +20 -11
- data/lib/active_admin/settings_node.rb +20 -0
- data/lib/active_admin/sidebar_section.rb +4 -1
- data/lib/active_admin/version.rb +2 -1
- data/lib/active_admin/view_factory.rb +18 -17
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
- data/lib/active_admin/view_helpers/display_helper.rb +25 -8
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
- data/lib/active_admin/view_helpers/fields_for.rb +3 -2
- data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
- data/lib/active_admin/view_helpers/form_helper.rb +1 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
- data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
- data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
- data/lib/active_admin/view_helpers/title_helper.rb +1 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
- data/lib/active_admin/view_helpers.rb +2 -1
- data/lib/active_admin/views/action_items.rb +1 -0
- data/lib/active_admin/views/components/active_admin_form.rb +14 -8
- data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
- data/lib/active_admin/views/components/attributes_table.rb +9 -8
- data/lib/active_admin/views/components/blank_slate.rb +2 -1
- data/lib/active_admin/views/components/columns.rb +1 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
- data/lib/active_admin/views/components/index_list.rb +4 -3
- data/lib/active_admin/views/components/menu.rb +33 -0
- data/lib/active_admin/views/components/menu_item.rb +59 -0
- data/lib/active_admin/views/components/paginated_collection.rb +22 -20
- data/lib/active_admin/views/components/panel.rb +2 -1
- data/lib/active_admin/views/components/scopes.rb +18 -8
- data/lib/active_admin/views/components/sidebar.rb +14 -0
- data/lib/active_admin/views/components/sidebar_section.rb +1 -3
- data/lib/active_admin/views/components/site_title.rb +7 -7
- data/lib/active_admin/views/components/status_tag.rb +14 -26
- data/lib/active_admin/views/components/table_for.rb +22 -29
- data/lib/active_admin/views/components/tabs.rb +18 -5
- data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
- data/lib/active_admin/views/footer.rb +6 -8
- data/lib/active_admin/views/header.rb +4 -15
- data/lib/active_admin/views/index_as_block.rb +1 -0
- data/lib/active_admin/views/index_as_blog.rb +3 -2
- data/lib/active_admin/views/index_as_grid.rb +27 -26
- data/lib/active_admin/views/index_as_table.rb +34 -25
- data/lib/active_admin/views/pages/base.rb +44 -60
- data/lib/active_admin/views/pages/form.rb +1 -0
- data/lib/active_admin/views/pages/index.rb +16 -13
- data/lib/active_admin/views/pages/layout.rb +1 -0
- data/lib/active_admin/views/pages/page.rb +1 -0
- data/lib/active_admin/views/pages/show.rb +1 -0
- data/lib/active_admin/views/tabbed_navigation.rb +5 -59
- data/lib/active_admin/views/title_bar.rb +2 -1
- data/lib/active_admin/views.rb +2 -1
- data/lib/active_admin.rb +68 -63
- data/lib/activeadmin.rb +2 -1
- data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
- data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
- data/lib/generators/active_admin/install/install_generator.rb +19 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
- data/lib/generators/active_admin/install/templates/dashboard.rb +3 -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 +2 -1
- data/lib/generators/active_admin/page/templates/page.rb +1 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
- data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
- data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
- data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
- data/lib/ransack_ext.rb +10 -9
- 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 +122 -559
- 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 -49
- 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 -250
- 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 -136
- 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 -47
- 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/output_safety_helper.rb +0 -35
- 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 -112
- 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 -153
- 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 -24
- data/spec/unit/abstract_view_factory_spec.rb +0 -78
- data/spec/unit/action_builder_spec.rb +0 -158
- 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 -313
- 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 -189
- data/spec/unit/filters/active_spec.rb +0 -24
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
- 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/output_safety_helper_spec.rb +0 -79
- 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 -234
- 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 -253
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
- 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
@@ -46,13 +46,22 @@ config.site_title_image = ->(context) { context.current_user.company.logo_url }
|
|
46
46
|
|
47
47
|
## Internationalization (I18n)
|
48
48
|
|
49
|
+
Active Admin comes with translations for a lot of
|
50
|
+
[locales](https://github.com/activeadmin/activeadmin/blob/master/config/locales/).
|
51
|
+
Active Admin does not provide the translations for the kaminari gem it uses for pagination,
|
52
|
+
to get these you can use the
|
53
|
+
[kaminari-i18n](https://github.com/tigrish/kaminari-i18n) gem.
|
54
|
+
|
49
55
|
To translate Active Admin to a new language or customize an existing
|
50
56
|
translation, you can copy
|
51
57
|
[config/locales/en.yml](https://github.com/activeadmin/activeadmin/blob/master/config/locales/en.yml)
|
52
58
|
to your application's `config/locales` folder and update it. We welcome
|
53
59
|
new/updated translations, so feel free to
|
54
60
|
[contribute](https://github.com/activeadmin/activeadmin/blob/master/CONTRIBUTING.md)!
|
55
|
-
|
61
|
+
|
62
|
+
When using [devise](https://github.com/plataformatec/devise) for authentication,
|
63
|
+
you can use the [devise-i18n](https://github.com/tigrish/devise-i18n)
|
64
|
+
gem to get the devise translations for other locales.
|
56
65
|
|
57
66
|
## Localize Format For Dates and Times
|
58
67
|
|
@@ -97,6 +106,26 @@ ActiveAdmin.setup do |config|
|
|
97
106
|
end
|
98
107
|
```
|
99
108
|
|
109
|
+
If you are creating a multi-tenant application you may want to have multiple namespaces mounted to the same path. We can do this using the `route_options` settings on the namespace
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
config.namespace :site_1 do |admin|
|
113
|
+
admin.route_options = { path: :admin, constraints: ->(request){ request.domain == "site1.com" } }
|
114
|
+
end
|
115
|
+
|
116
|
+
config.namespace :site_2 do |admin|
|
117
|
+
admin.route_options = { path: :admin, constraints: ->(request){ request.domain == "site2.com" } }
|
118
|
+
end
|
119
|
+
```
|
120
|
+
|
121
|
+
If you would like to mount the namespace to a subdomain instead of path we can use the `route_options` for this as well
|
122
|
+
|
123
|
+
```ruby
|
124
|
+
config.namespace :admin do |admin|
|
125
|
+
admin.route_options = { path: '', subdomain: 'admin' }
|
126
|
+
end
|
127
|
+
```
|
128
|
+
|
100
129
|
Each setting available in the Active Admin setup block is configurable on a per
|
101
130
|
namespace basis.
|
102
131
|
|
@@ -160,6 +189,12 @@ You can customize the comment menu:
|
|
160
189
|
config.comments_menu = { parent: 'Admin', priority: 1 }
|
161
190
|
```
|
162
191
|
|
192
|
+
Remember to indicate where to place the comments and form with:
|
193
|
+
|
194
|
+
```ruby
|
195
|
+
active_admin_comments
|
196
|
+
```
|
197
|
+
|
163
198
|
## Utility Navigation
|
164
199
|
|
165
200
|
The "utility navigation" shown at the top right normally shows the current user
|
data/docs/10-custom-pages.md
CHANGED
@@ -134,3 +134,17 @@ end
|
|
134
134
|
```
|
135
135
|
|
136
136
|
See also the [Custom Actions](8-custom-actions.md#http-verbs) example.
|
137
|
+
|
138
|
+
## Use custom column as id
|
139
|
+
|
140
|
+
You can use custom parameter instead of id
|
141
|
+
|
142
|
+
```ruby
|
143
|
+
ActiveAdmin.register User do
|
144
|
+
controller do
|
145
|
+
defaults :finder => :find_by_name
|
146
|
+
end
|
147
|
+
end
|
148
|
+
```
|
149
|
+
|
150
|
+
This defines the resource route as `/admin/users/john` if user name is john
|
data/docs/11-decorators.md
CHANGED
@@ -8,11 +8,6 @@ Active Admin allows you to use the decorator pattern to provide view-specific
|
|
8
8
|
versions of a resource. [Draper](https://github.com/drapergem/draper) is
|
9
9
|
recommended but not required.
|
10
10
|
|
11
|
-
To use decorator support without Draper, your decorator must support a variety
|
12
|
-
of collection methods to support pagination, filtering, etc. See
|
13
|
-
[this github issue discussion](https://github.com/activeadmin/activeadmin/issues/3600)
|
14
|
-
and [this gem](https://github.com/kiote/activeadmin-poro-decorator) for more details.
|
15
|
-
|
16
11
|
## Example usage
|
17
12
|
|
18
13
|
```ruby
|
@@ -42,6 +37,22 @@ ActiveAdmin.register Post do
|
|
42
37
|
end
|
43
38
|
```
|
44
39
|
|
40
|
+
You can pass any decorator class as an argument to `decorate_with`
|
41
|
+
as long as it accepts the record to be decorated as a parameter in
|
42
|
+
the initializer, and responds to all the necessary methods.
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
# app/decorators/post_decorator.rb
|
46
|
+
class PostDecorator
|
47
|
+
attr_reader :post
|
48
|
+
delegate_missing_to :post
|
49
|
+
|
50
|
+
def initialize(post)
|
51
|
+
@post = post
|
52
|
+
end
|
53
|
+
end
|
54
|
+
```
|
55
|
+
|
45
56
|
## Forms
|
46
57
|
|
47
58
|
By default, ActiveAdmin does *not* decorate the resource used to render forms.
|
data/docs/12-arbre-components.md
CHANGED
@@ -115,6 +115,21 @@ end
|
|
115
115
|
In the above example, the first column will not grow larger than 200px and will
|
116
116
|
not shrink less than 100px.
|
117
117
|
|
118
|
+
### Custom Column Class
|
119
|
+
|
120
|
+
Pass the `:class` option to the column method to set a custom class.
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
columns do
|
124
|
+
column class: "important" do
|
125
|
+
span "Column # 1"
|
126
|
+
end
|
127
|
+
column do
|
128
|
+
span "Column # 2"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
```
|
132
|
+
|
118
133
|
## Table For
|
119
134
|
|
120
135
|
Table For provides the ability to create tables like those present
|
@@ -130,10 +145,22 @@ table_for order.payments do
|
|
130
145
|
end
|
131
146
|
```
|
132
147
|
|
133
|
-
|
148
|
+
The `column` method can take a title as its first argument and data
|
134
149
|
(`:your_method`) as its second (or first if no title provided). Column also
|
135
150
|
takes a block.
|
136
151
|
|
152
|
+
### Internationalization
|
153
|
+
|
154
|
+
To customize the internationalization for the component, specify a resource to
|
155
|
+
use for translations via the `i18n` named parameter. This is only necessary for
|
156
|
+
non-`ActiveRecord::Relation` collections:
|
157
|
+
|
158
|
+
```ruby
|
159
|
+
table_for payments, i18n: Payment do
|
160
|
+
# ...
|
161
|
+
end
|
162
|
+
```
|
163
|
+
|
137
164
|
## Status tag
|
138
165
|
|
139
166
|
Status tags provide convenient syntactic sugar for styling items that have
|
@@ -150,6 +177,19 @@ status_tag 'active', class: 'important', id: 'status_123', label: 'on'
|
|
150
177
|
# => <span class='status_tag active important' id='status_123'>on</span>
|
151
178
|
```
|
152
179
|
|
180
|
+
When providing a `true` or `false` value, the `status_tag` will display "Yes"
|
181
|
+
or "No". This can be configured through the `"en.active_admin.status_tag"`
|
182
|
+
locale.
|
183
|
+
|
184
|
+
```ruby
|
185
|
+
status_tag true
|
186
|
+
# => <span class='status_tag yes'>Yes</span>
|
187
|
+
```
|
188
|
+
|
189
|
+
In the case that a boolean field is `nil`, it will display "No" as a default.
|
190
|
+
But using the `"en.active_admin.status_tag.unset"` locale key, it can be
|
191
|
+
configured to display something else.
|
192
|
+
|
153
193
|
## Tabs
|
154
194
|
|
155
195
|
The Tabs component is helpful for saving page real estate. The first tab will be
|
@@ -10,8 +10,8 @@ taken. By default, '#authorized?' returns true.
|
|
10
10
|
|
11
11
|
## Setting up your own AuthorizationAdapter
|
12
12
|
|
13
|
-
|
14
|
-
|
13
|
+
The following example shows how to set up and tie your authorization
|
14
|
+
adapter class to Active Admin:
|
15
15
|
|
16
16
|
```ruby
|
17
17
|
# app/models/only_authors_authorization.rb
|
@@ -41,6 +41,9 @@ application's `config/initializers/active_admin.rb` and add/modify the line:
|
|
41
41
|
config.authorization_adapter = "OnlyAuthorsAuthorization"
|
42
42
|
```
|
43
43
|
|
44
|
+
Now, whenever a controller action is performed, the `OnlyAuthorsAuthorization`'s
|
45
|
+
`#authorized?` method will be called.
|
46
|
+
|
44
47
|
Authorization adapters can be configured per ActiveAdmin namespace as well, for
|
45
48
|
example:
|
46
49
|
|
@@ -55,9 +58,6 @@ ActiveAdmin.setup do |config|
|
|
55
58
|
end
|
56
59
|
```
|
57
60
|
|
58
|
-
Now, whenever a controller action is performed, the `OnlyAuthorsAuthorization`'s
|
59
|
-
`#authorized?` method will be called.
|
60
|
-
|
61
61
|
## Getting Access to the Current User
|
62
62
|
|
63
63
|
From within your authorization adapter, you can call the `#user` method to
|
@@ -136,7 +136,7 @@ Each of these actions is available as a constant. Eg: `:read` is available as
|
|
136
136
|
Active Admin provides a helper method to check if the current user is
|
137
137
|
authorized to perform an action on a subject.
|
138
138
|
|
139
|
-
|
139
|
+
Use the `#authorized?(action, subject)` method to check.
|
140
140
|
|
141
141
|
```ruby
|
142
142
|
ActiveAdmin.register Post do
|
@@ -180,10 +180,9 @@ end
|
|
180
180
|
|
181
181
|
Sub-classing `ActiveAdmin::AuthorizationAdapter` is fairly low level. Many times
|
182
182
|
it's nicer to have a simpler DSL for managing authorization. Active Admin
|
183
|
-
provides an adapter out of the box for [
|
184
|
-
and [CanCanCan](https://github.com/CanCanCommunity/cancancan).
|
183
|
+
provides an adapter out of the box for [CanCanCan](https://github.com/CanCanCommunity/cancancan).
|
185
184
|
|
186
|
-
To use the CanCan adapter,
|
185
|
+
To use the CanCan adapter, update the configuration in the Active Admin
|
187
186
|
initializer:
|
188
187
|
|
189
188
|
```ruby
|
@@ -221,7 +220,7 @@ changed from the initializer:
|
|
221
220
|
config.cancan_ability_class = "MyCustomAbility"
|
222
221
|
```
|
223
222
|
|
224
|
-
Now you can simply use
|
223
|
+
Now you can simply use CanCanCan the way that you would expect and
|
225
224
|
Active Admin will use it for authorization:
|
226
225
|
|
227
226
|
```ruby
|
@@ -233,34 +232,54 @@ class Ability
|
|
233
232
|
can :manage, Post
|
234
233
|
can :read, User
|
235
234
|
can :manage, User, id: user.id
|
236
|
-
can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name:
|
235
|
+
can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: "admin"
|
237
236
|
end
|
238
237
|
|
239
238
|
end
|
240
239
|
```
|
241
240
|
|
242
241
|
To view more details about the API's, visit project pages of
|
243
|
-
[CanCan](https://github.com/ryanb/cancan) and
|
244
242
|
[CanCanCan](https://github.com/CanCanCommunity/cancancan).
|
245
243
|
|
246
244
|
## Using the Pundit Adapter
|
247
245
|
|
248
|
-
Active Admin provides an adapter out of the box
|
249
|
-
[Pundit](https://github.com/
|
246
|
+
Active Admin also provides an adapter out of the box for
|
247
|
+
[Pundit](https://github.com/varvet/pundit).
|
250
248
|
|
251
|
-
To use the Pundit adapter,
|
249
|
+
To use the Pundit adapter, update the configuration in the Active Admin
|
252
250
|
initializer:
|
253
251
|
|
254
252
|
```ruby
|
255
253
|
config.authorization_adapter = ActiveAdmin::PunditAdapter
|
256
254
|
```
|
257
255
|
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
256
|
+
Once that's done, Active Admin will pick up your Pundit policies, and use
|
257
|
+
them for authorization. For more information about setting up Pundit, see
|
258
|
+
[their documentation](https://github.com/varvet/pundit#installation).
|
259
|
+
|
260
|
+
Pundit also has [verify_authorized and/or verify_policy_scoped
|
261
|
+
methods](https://github.com/varvet/pundit#ensuring-policies-and-scopes-are-used)
|
262
|
+
to enforce usage of `authorized` and `policy_scope`. This conflicts with Active
|
263
|
+
Admin's authorization architecture, so if you're using those features, you'll
|
264
|
+
want to disable them for Active Admin's controllers:
|
265
|
+
|
266
|
+
```ruby
|
267
|
+
class ApplicationController < ActionController::Base
|
268
|
+
include Pundit
|
269
|
+
after_action :verify_authorized, except: :index, unless: :active_admin_controller?
|
270
|
+
after_action :verify_policy_scoped, only: :index, unless: :active_admin_controller?
|
271
|
+
|
272
|
+
def active_admin_controller?
|
273
|
+
is_a?(ActiveAdmin::BaseController)
|
274
|
+
end
|
275
|
+
end
|
276
|
+
```
|
277
|
+
|
278
|
+
If you want to use batch actions, ensure that `destroy_all?` method is defined
|
279
|
+
in your policy class. You can use this [template
|
263
280
|
policy](https://github.com/activeadmin/activeadmin/blob/master/spec/support/templates/policies/application_policy.rb)
|
264
|
-
in your application instead of default one generated by Pundit's
|
265
|
-
pundit:install` command.
|
281
|
+
in your application instead of default one generated by Pundit's
|
282
|
+
`rails g pundit:install` command.
|
266
283
|
|
284
|
+
In addition, there are [example policies](https://github.com/activeadmin/activeadmin/tree/master/spec/support/templates/policies/active_admin)
|
285
|
+
for restricting access to ActiveAdmin's pages and comments.
|
@@ -116,10 +116,15 @@ config/locales/[en].yml:
|
|
116
116
|
en:
|
117
117
|
active_admin:
|
118
118
|
resources:
|
119
|
-
offer:
|
120
|
-
new_model: 'Make an Offer'
|
119
|
+
offer: # Registered resource
|
120
|
+
new_model: 'Make an Offer' # new action item
|
121
|
+
edit_model: 'Change Offer' # edit action item
|
122
|
+
delete_model: 'Cancel Offer' # delete action item
|
121
123
|
```
|
122
124
|
|
125
|
+
See the [default en.yml](/config/locales/en.yml) locale file for
|
126
|
+
existing translations and examples.
|
127
|
+
|
123
128
|
## Rename the Resource
|
124
129
|
|
125
130
|
By default, any references to the resource (menu, routes, buttons, etc) in the
|
@@ -159,7 +164,8 @@ The menu method accepts a hash with the following options:
|
|
159
164
|
|
160
165
|
* `:label` - The string or proc label to display in the menu. If it's a proc, it
|
161
166
|
will be called each time the menu is rendered.
|
162
|
-
* `:parent` - The string id (or label) of the parent used for this menu
|
167
|
+
* `:parent` - The string id (or label) of the parent used for this menu, or an array
|
168
|
+
of string ids (or labels) for a nested menu
|
163
169
|
* `:if` - A block or a symbol of a method to call to decide if the menu item
|
164
170
|
should be displayed
|
165
171
|
* `:priority` - The integer value of the priority, which defaults to `10`
|
@@ -222,6 +228,14 @@ end
|
|
222
228
|
Note that the "Blog" parent menu item doesn't even have to exist yet; it can be
|
223
229
|
dynamically generated for you.
|
224
230
|
|
231
|
+
To further nest an item under a submenu, provide an array of parents.
|
232
|
+
|
233
|
+
```ruby
|
234
|
+
ActiveAdmin.register Post do
|
235
|
+
menu parent: ["Admin", "Blog"]
|
236
|
+
end
|
237
|
+
```
|
238
|
+
|
225
239
|
### Customizing Parent Menu Items
|
226
240
|
|
227
241
|
All of the options given to a standard menu item are also available to
|
@@ -320,7 +334,7 @@ end
|
|
320
334
|
|
321
335
|
## Eager loading
|
322
336
|
|
323
|
-
A common way to increase page performance is to
|
337
|
+
A common way to increase page performance is to eliminate N+1 queries by eager
|
324
338
|
loading associations:
|
325
339
|
|
326
340
|
```ruby
|
@@ -350,7 +364,7 @@ end
|
|
350
364
|
```
|
351
365
|
|
352
366
|
If you need to completely replace the record retrieving code (e.g., you have a
|
353
|
-
custom `to_param` implementation in your models), override the `
|
367
|
+
custom `to_param` implementation in your models), override the `find_resource` method
|
354
368
|
on the controller:
|
355
369
|
|
356
370
|
```ruby
|
@@ -30,6 +30,6 @@ The build method takes a PagePresenter object and collection of whatever you
|
|
30
30
|
choose.
|
31
31
|
|
32
32
|
The `index_name` class method takes no arguments and returns a string that should
|
33
|
-
be representative of the
|
33
|
+
be representative of the class name. If this method is not defined, your
|
34
34
|
index component will not be able take advantage of Active Admin's
|
35
35
|
*multiple index pages* feature.
|
@@ -28,7 +28,7 @@ end
|
|
28
28
|
```
|
29
29
|
|
30
30
|
Second, you can pass a block to the tile option which will then be
|
31
|
-
used as the contents
|
31
|
+
used as the contents of the title. The resource being rendered
|
32
32
|
is passed in to the block. For Example:
|
33
33
|
|
34
34
|
```ruby
|
@@ -111,7 +111,8 @@ index do
|
|
111
111
|
end
|
112
112
|
```
|
113
113
|
|
114
|
-
In addition, you can insert the position of the row in the greater
|
114
|
+
In addition, you can insert the position of the row in the greater
|
115
|
+
collection by using the index_column special command:
|
115
116
|
|
116
117
|
```ruby
|
117
118
|
index do
|
@@ -121,7 +122,8 @@ index do
|
|
121
122
|
end
|
122
123
|
```
|
123
124
|
|
124
|
-
index_column take an optional offset parameter to allow a developer to set
|
125
|
+
index_column take an optional offset parameter to allow a developer to set
|
126
|
+
the starting number for the index (default is 1).
|
125
127
|
|
126
128
|
## Sorting
|
127
129
|
|
@@ -129,9 +131,7 @@ When a column is generated from an Active Record attribute, the table is
|
|
129
131
|
sortable by default. If you are creating a custom column, you may need to give
|
130
132
|
Active Admin a hint for how to sort the table.
|
131
133
|
|
132
|
-
|
133
|
-
is the attribute which gets used to sort objects using Active Record.
|
134
|
-
|
134
|
+
You can pass the key specifying the attribute which gets used to sort objects using Active Record.
|
135
135
|
By default, this is the column on the resource's table that the attribute corresponds to.
|
136
136
|
Otherwise, any attribute that the resource collection responds to can be used.
|
137
137
|
|
@@ -193,6 +193,13 @@ controller do
|
|
193
193
|
end
|
194
194
|
```
|
195
195
|
|
196
|
+
You can also define associated objects to include outside of the
|
197
|
+
`scoped_collection` method:
|
198
|
+
|
199
|
+
```ruby
|
200
|
+
includes :publisher
|
201
|
+
```
|
202
|
+
|
196
203
|
Then it's simple to sort by any Publisher attribute from within the index table:
|
197
204
|
|
198
205
|
```ruby
|
data/docs/3-index-pages.md
CHANGED
@@ -212,7 +212,24 @@ end
|
|
212
212
|
```
|
213
213
|
|
214
214
|
Scopes can be labelled with a translation, e.g.
|
215
|
-
`
|
215
|
+
`active_admin.scopes.scope_method`.
|
216
|
+
|
217
|
+
### Scopes groups
|
218
|
+
|
219
|
+
You can assign group names to scopes to keep related scopes together and separate them from the rest.
|
220
|
+
|
221
|
+
```ruby
|
222
|
+
# a scope in the default group
|
223
|
+
scope :all
|
224
|
+
|
225
|
+
# two scopes used to filter by status
|
226
|
+
scope :active, group: :status
|
227
|
+
scope :inactive, group: :status
|
228
|
+
|
229
|
+
# two scopes used to filter by date
|
230
|
+
scope :today, group: :date
|
231
|
+
scope :tomorrow, group: :date
|
232
|
+
```
|
216
233
|
|
217
234
|
## Index default sort order
|
218
235
|
|
data/docs/5-forms.md
CHANGED
@@ -56,7 +56,7 @@ Which looks for something like this:
|
|
56
56
|
|
57
57
|
```ruby
|
58
58
|
# app/views/admin/posts/_form.html.arb
|
59
|
-
|
59
|
+
active_admin_form_for [:admin, resource] do |f|
|
60
60
|
inputs :title, :body
|
61
61
|
actions
|
62
62
|
end
|
@@ -84,6 +84,12 @@ your model uses `has_one`:
|
|
84
84
|
|
85
85
|
```ruby
|
86
86
|
ActiveAdmin.register Post do
|
87
|
+
permit_params :title,
|
88
|
+
:published_at,
|
89
|
+
:body,
|
90
|
+
categories_attributes: [:id, :title, :_destroy],
|
91
|
+
taggings_attributes: [:id, :tag],
|
92
|
+
comment_attributes: [:id, :body, :_destroy]
|
87
93
|
|
88
94
|
form do |f|
|
89
95
|
f.inputs 'Details' do
|
@@ -104,9 +110,10 @@ ActiveAdmin.register Post do
|
|
104
110
|
end
|
105
111
|
end
|
106
112
|
f.inputs do
|
107
|
-
f.has_many :
|
113
|
+
f.has_many :comments,
|
108
114
|
new_record: 'Leave Comment',
|
109
|
-
|
115
|
+
remove_record: 'Remove Comment',
|
116
|
+
allow_destroy: -> (c) { c.author?(current_admin_user) } do |b|
|
110
117
|
b.input :body
|
111
118
|
end
|
112
119
|
end
|
@@ -116,6 +123,9 @@ ActiveAdmin.register Post do
|
|
116
123
|
end
|
117
124
|
```
|
118
125
|
|
126
|
+
*NOTE*: In addition to using `has_many` as illustrated above, you'll need to add
|
127
|
+
`accepts_nested_attributes` to your parent model and [configure strong parameters](https://activeadmin.info/2-resource-customization.html)
|
128
|
+
|
119
129
|
The `:allow_destroy` option adds a checkbox to the end of the nested form allowing
|
120
130
|
removal of the child object upon submission. Be sure to set `allow_destroy: true`
|
121
131
|
on the association to use this option. It is possible to associate
|
@@ -130,6 +140,10 @@ The `:new_record` option controls the visibility of the new record button (shown
|
|
130
140
|
by default). If you pass a string, it will be used as the text for the new
|
131
141
|
record button.
|
132
142
|
|
143
|
+
The `:remove_record` option controls the text of the remove button (shown after
|
144
|
+
the new record button is pressed). If you pass a string, it will be used as the
|
145
|
+
text for the remove button.
|
146
|
+
|
133
147
|
The `:sortable` option adds a hidden field and will enable drag & drop sorting
|
134
148
|
of the children. It expects the name of the column that will store the index of
|
135
149
|
each child.
|
@@ -159,13 +173,17 @@ form do |f|
|
|
159
173
|
end
|
160
174
|
```
|
161
175
|
|
176
|
+
Datepicker also accepts the `:label` option as a string or proc to display.
|
177
|
+
If it's a proc, it will be called each time the datepicker is rendered.
|
178
|
+
|
162
179
|
## Displaying Errors
|
163
180
|
|
164
181
|
To display a list of all validation errors:
|
165
182
|
|
166
183
|
```ruby
|
167
184
|
form do |f|
|
168
|
-
f.semantic_errors *f.object.errors.
|
185
|
+
f.semantic_errors *f.object.errors.attribute_names
|
186
|
+
|
169
187
|
# ...
|
170
188
|
end
|
171
189
|
```
|
@@ -187,7 +205,7 @@ You can arrange content in tabs as shown below:
|
|
187
205
|
end
|
188
206
|
end
|
189
207
|
|
190
|
-
tab 'Advanced' do
|
208
|
+
tab 'Advanced', html_options: { class: 'specific_css_class' } do
|
191
209
|
f.inputs 'Advanced Details' do
|
192
210
|
f.input :role
|
193
211
|
end
|
@@ -197,6 +215,8 @@ You can arrange content in tabs as shown below:
|
|
197
215
|
end
|
198
216
|
```
|
199
217
|
|
218
|
+
`html_options` allows you set additional html params for tab's menu item.
|
219
|
+
|
200
220
|
# Customize the Create Another checkbox
|
201
221
|
|
202
222
|
In order to simplify creating multiple resources you may enable ActiveAdmin to
|
data/docs/6-show-pages.md
CHANGED
@@ -79,3 +79,15 @@ ActiveAdmin.register Book do
|
|
79
79
|
end
|
80
80
|
end
|
81
81
|
```
|
82
|
+
|
83
|
+
If you want to keep the default show data, but add something extra to it:
|
84
|
+
|
85
|
+
```ruby
|
86
|
+
show do
|
87
|
+
div do
|
88
|
+
h3 'Some custom charts about this object'
|
89
|
+
render partial: 'charts'
|
90
|
+
end
|
91
|
+
default_main_content
|
92
|
+
end
|
93
|
+
```
|
data/docs/8-custom-actions.md
CHANGED
@@ -62,7 +62,7 @@ HTTP verbs. In that case, this is the suggested approach:
|
|
62
62
|
```ruby
|
63
63
|
member_action :foo, method: [:get, :post] do
|
64
64
|
if request.post?
|
65
|
-
resource.
|
65
|
+
resource.update! foo: params[:foo] || {}
|
66
66
|
head :ok
|
67
67
|
else
|
68
68
|
render :foo
|
@@ -146,6 +146,17 @@ action_item :super_action,
|
|
146
146
|
end
|
147
147
|
```
|
148
148
|
|
149
|
+
By default action items are positioned in the same order as they defined (after default actions),
|
150
|
+
but it’s also possible to specify their position manually:
|
151
|
+
|
152
|
+
```ruby
|
153
|
+
action_item :help, priority: 0 do
|
154
|
+
"Display this action to the first position"
|
155
|
+
end
|
156
|
+
```
|
157
|
+
|
158
|
+
Default action item priority is 10.
|
159
|
+
|
149
160
|
# Modifying the Controller
|
150
161
|
|
151
162
|
The generated controller is available to you within the registration block by
|
data/docs/9-batch-actions.md
CHANGED
@@ -154,13 +154,13 @@ batch_action :doit, form: -> { {user: User.pluck(:name, :id)} } do |ids, inputs|
|
|
154
154
|
end
|
155
155
|
```
|
156
156
|
|
157
|
-
Under the covers this is powered by the JS `ActiveAdmin.
|
157
|
+
Under the covers this is powered by the JS `ActiveAdmin.ModalDialog` which you
|
158
158
|
can use yourself:
|
159
159
|
|
160
160
|
```coffee
|
161
161
|
if $('body.admin_users').length
|
162
162
|
$('a[data-prompt]').click ->
|
163
|
-
ActiveAdmin.
|
163
|
+
ActiveAdmin.ModalDialog $(@).data('prompt'), comment: 'textarea',
|
164
164
|
(inputs)=>
|
165
165
|
$.post "/admin/users/#{$(@).data 'id'}/change_state",
|
166
166
|
comment: inputs.comment, state: $(@).data('state'),
|
data/docs/CNAME
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
activeadmin.info
|
data/docs/Gemfile
CHANGED