aa-rails4 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.gitignore +43 -0
- data/.travis.yml +8 -0
- data/.yardopts +7 -0
- data/CHANGELOG.md +894 -0
- data/CONTRIBUTING.md +121 -0
- data/Gemfile +40 -0
- data/Guardfile +7 -0
- data/LICENSE +25 -0
- data/README.rdoc +118 -0
- data/Rakefile +26 -0
- data/activeadmin.gemspec +33 -0
- data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
- data/app/assets/images/active_admin/index_list_icons/block_icon.svg +10 -0
- data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +4 -0
- data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +13 -0
- data/app/assets/images/active_admin/index_list_icons/table_icon.svg +3 -0
- data/app/assets/images/active_admin/loading.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/application.js +3 -0
- data/app/assets/javascripts/active_admin/base.js +5 -0
- data/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +37 -0
- data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +105 -0
- data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +97 -0
- data/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +25 -0
- data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +3 -0
- data/app/assets/javascripts/active_admin/pages/application.js.coffee +21 -0
- data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +26 -0
- data/app/assets/stylesheets/active_admin/_base.css.scss +41 -0
- data/app/assets/stylesheets/active_admin/_forms.css.scss +281 -0
- data/app/assets/stylesheets/active_admin/_header.css.scss +152 -0
- data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
- data/app/assets/stylesheets/active_admin/_typography.css.scss +100 -0
- data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +31 -0
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_comments.css.scss +41 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +39 -0
- data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
- data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
- data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +34 -0
- data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +95 -0
- data/app/assets/stylesheets/active_admin/components/_tables.css.scss +108 -0
- data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +11 -0
- data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +66 -0
- data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +38 -0
- data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +21 -0
- data/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +165 -0
- data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +43 -0
- data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +36 -0
- data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +22 -0
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +26 -0
- data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +24 -0
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
- data/app/assets/stylesheets/active_admin/print.css.scss +284 -0
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +26 -0
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +44 -0
- data/app/views/active_admin/dashboard/index.html.arb +1 -0
- data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/active_admin/devise/passwords/edit.html.erb +19 -0
- data/app/views/active_admin/devise/passwords/new.html.erb +14 -0
- data/app/views/active_admin/devise/sessions/new.html.erb +18 -0
- data/app/views/active_admin/devise/shared/_links.erb +27 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +14 -0
- data/app/views/active_admin/page/index.html.arb +1 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -0
- data/app/views/active_admin/resource/index.csv.erb +17 -0
- data/app/views/active_admin/resource/index.html.arb +1 -0
- data/app/views/active_admin/resource/new.html.arb +1 -0
- data/app/views/active_admin/resource/show.html.arb +1 -0
- data/app/views/layouts/active_admin.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +37 -0
- data/config/locales/bg.yml +101 -0
- data/config/locales/ca.yml +98 -0
- data/config/locales/cs.yml +92 -0
- data/config/locales/da.yml +102 -0
- data/config/locales/de-CH.yml +117 -0
- data/config/locales/de.yml +119 -0
- data/config/locales/en-GB.yml +90 -0
- data/config/locales/en.yml +101 -0
- data/config/locales/es.yml +106 -0
- data/config/locales/es_MX.yml +104 -0
- data/config/locales/fr.yml +89 -0
- data/config/locales/he.yml +91 -0
- data/config/locales/hr.yml +93 -0
- data/config/locales/hu.yml +92 -0
- data/config/locales/it.yml +89 -0
- data/config/locales/ja.yml +87 -0
- data/config/locales/ko.yml +84 -0
- data/config/locales/lt.yml +90 -0
- data/config/locales/lv.yml +89 -0
- data/config/locales/nl.yml +90 -0
- data/config/locales/no-NB.yml +85 -0
- data/config/locales/pl.yml +93 -0
- data/config/locales/pt-BR.yml +89 -0
- data/config/locales/pt-PT.yml +89 -0
- data/config/locales/ro.yml +93 -0
- data/config/locales/ru.yml +103 -0
- data/config/locales/sv-SE.yml +89 -0
- data/config/locales/tr.yml +90 -0
- data/config/locales/uk.yml +100 -0
- data/config/locales/vi.yml +90 -0
- data/config/locales/zh-CN.yml +90 -0
- data/config/locales/zh-TW.yml +90 -0
- data/cucumber.yml +3 -0
- data/docs/0-installation.md +56 -0
- data/docs/1-general-configuration.md +129 -0
- data/docs/10-custom-pages.md +96 -0
- data/docs/11-decorators.md +66 -0
- data/docs/12-arbre-components.md +144 -0
- data/docs/13-authorization-adapter.md +206 -0
- data/docs/2-resource-customization.md +292 -0
- data/docs/3-index-pages.md +191 -0
- data/docs/3-index-pages/create-an-index.md +29 -0
- data/docs/3-index-pages/index-as-block.md +16 -0
- data/docs/3-index-pages/index-as-blog.md +61 -0
- data/docs/3-index-pages/index-as-grid.md +21 -0
- data/docs/3-index-pages/index-as-table.md +120 -0
- data/docs/4-csv-format.md +32 -0
- data/docs/5-forms.md +72 -0
- data/docs/6-show-pages.md +43 -0
- data/docs/7-sidebars.md +42 -0
- data/docs/8-custom-actions.md +139 -0
- data/docs/9-batch-actions.md +161 -0
- data/features/action_item.feature +73 -0
- data/features/authorization.feature +64 -0
- data/features/authorization_cancan.feature +52 -0
- data/features/belongs_to.feature +63 -0
- data/features/breadcrumb.feature +27 -0
- data/features/comments/commenting.feature +128 -0
- data/features/comments/viewing_index.feature +19 -0
- data/features/dashboard.feature +16 -0
- data/features/decorators.feature +41 -0
- data/features/development_reloading.feature +31 -0
- data/features/edit_page.feature +127 -0
- data/features/favicon.feature +20 -0
- data/features/first_boot.feature +16 -0
- data/features/global_navigation.feature +29 -0
- data/features/i18n.feature +38 -0
- data/features/index/batch_actions.feature +123 -0
- data/features/index/filters.feature +94 -0
- data/features/index/format_as_csv.feature +117 -0
- data/features/index/formats.feature +39 -0
- data/features/index/index_as_block.feature +15 -0
- data/features/index/index_as_blog.feature +69 -0
- data/features/index/index_as_grid.feature +45 -0
- data/features/index/index_as_table.feature +195 -0
- data/features/index/index_blank_slate.feature +61 -0
- data/features/index/index_parameters.feature +75 -0
- data/features/index/index_scope_to.feature +56 -0
- data/features/index/index_scopes.feature +251 -0
- data/features/index/page_title.feature +30 -0
- data/features/index/pagination.feature +59 -0
- data/features/index/switch_index_view.feature +73 -0
- data/features/menu.feature +53 -0
- data/features/new_page.feature +119 -0
- data/features/registering_assets.feature +35 -0
- data/features/registering_pages.feature +148 -0
- data/features/registering_resources.feature +33 -0
- data/features/root_to.feature +17 -0
- data/features/show/default_content.feature +43 -0
- data/features/show/page_title.feature +47 -0
- data/features/sidebar_sections.feature +198 -0
- data/features/site_title.feature +47 -0
- data/features/specifying_actions.feature +93 -0
- data/features/step_definitions/action_item_steps.rb +7 -0
- data/features/step_definitions/action_link_steps.rb +7 -0
- data/features/step_definitions/additional_web_steps.rb +82 -0
- data/features/step_definitions/asset_steps.rb +15 -0
- data/features/step_definitions/attribute_steps.rb +13 -0
- data/features/step_definitions/batch_action_steps.rb +55 -0
- data/features/step_definitions/breadcrumb_steps.rb +3 -0
- data/features/step_definitions/comment_steps.rb +12 -0
- data/features/step_definitions/configuration_steps.rb +93 -0
- data/features/step_definitions/dashboard_steps.rb +15 -0
- data/features/step_definitions/factory_steps.rb +33 -0
- data/features/step_definitions/filter_steps.rb +17 -0
- data/features/step_definitions/flash_steps.rb +11 -0
- data/features/step_definitions/format_steps.rb +46 -0
- data/features/step_definitions/i18n_steps.rb +3 -0
- data/features/step_definitions/index_scope_steps.rb +21 -0
- data/features/step_definitions/index_views_steps.rb +3 -0
- data/features/step_definitions/layout_steps.rb +3 -0
- data/features/step_definitions/member_link_steps.rb +7 -0
- data/features/step_definitions/menu_steps.rb +11 -0
- data/features/step_definitions/pagination_steps.rb +8 -0
- data/features/step_definitions/sidebar_steps.rb +8 -0
- data/features/step_definitions/site_title_steps.rb +15 -0
- data/features/step_definitions/tab_steps.rb +3 -0
- data/features/step_definitions/table_steps.rb +119 -0
- data/features/step_definitions/user_steps.rb +39 -0
- data/features/step_definitions/web_steps.rb +82 -0
- data/features/sti_resource.feature +73 -0
- data/features/support/env.rb +118 -0
- data/features/support/paths.rb +63 -0
- data/features/support/selectors.rb +45 -0
- data/features/users/logging_in.feature +34 -0
- data/features/users/logging_out.feature +13 -0
- data/features/users/resetting_password.feature +34 -0
- data/lib/active_admin.rb +120 -0
- data/lib/active_admin/abstract_view_factory.rb +95 -0
- data/lib/active_admin/application.rb +245 -0
- data/lib/active_admin/asset_registration.rb +29 -0
- data/lib/active_admin/authorization_adapter.rb +132 -0
- data/lib/active_admin/base_controller.rb +78 -0
- data/lib/active_admin/base_controller/authorization.rb +153 -0
- data/lib/active_admin/base_controller/menu.rb +34 -0
- data/lib/active_admin/batch_actions.rb +17 -0
- data/lib/active_admin/batch_actions/controller.rb +25 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +127 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
- data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +66 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
- data/lib/active_admin/callbacks.rb +87 -0
- data/lib/active_admin/cancan_adapter.rb +40 -0
- data/lib/active_admin/comments.rb +83 -0
- data/lib/active_admin/comments/comment.rb +49 -0
- data/lib/active_admin/comments/namespace_helper.rb +14 -0
- data/lib/active_admin/comments/resource_helper.rb +17 -0
- data/lib/active_admin/comments/show_page_helper.rb +23 -0
- data/lib/active_admin/comments/views.rb +2 -0
- data/lib/active_admin/comments/views/active_admin_comments.rb +75 -0
- data/lib/active_admin/component.rb +5 -0
- data/lib/active_admin/controller_action.rb +12 -0
- data/lib/active_admin/csv_builder.rb +49 -0
- data/lib/active_admin/deprecation.rb +36 -0
- data/lib/active_admin/devise.rb +70 -0
- data/lib/active_admin/dsl.rb +166 -0
- data/lib/active_admin/engine.rb +7 -0
- data/lib/active_admin/event.rb +33 -0
- data/lib/active_admin/filters.rb +9 -0
- data/lib/active_admin/filters/dsl.rb +21 -0
- data/lib/active_admin/filters/forms.rb +89 -0
- data/lib/active_admin/filters/formtastic_addons.rb +50 -0
- data/lib/active_admin/filters/resource_extension.rb +129 -0
- data/lib/active_admin/form_builder.rb +189 -0
- data/lib/active_admin/helpers/collection.rb +23 -0
- data/lib/active_admin/helpers/optional_display.rb +38 -0
- data/lib/active_admin/helpers/scope_chain.rb +23 -0
- data/lib/active_admin/helpers/settings.rb +108 -0
- data/lib/active_admin/iconic.rb +51 -0
- data/lib/active_admin/iconic/icons.rb +142 -0
- data/lib/active_admin/inputs.rb +15 -0
- data/lib/active_admin/inputs/datepicker_input.rb +11 -0
- data/lib/active_admin/inputs/filter_base.rb +33 -0
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
- data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +40 -0
- data/lib/active_admin/inputs/filter_date_range_input.rb +34 -0
- data/lib/active_admin/inputs/filter_numeric_input.rb +10 -0
- data/lib/active_admin/inputs/filter_select_input.rb +45 -0
- data/lib/active_admin/inputs/filter_string_input.rb +24 -0
- data/lib/active_admin/menu.rb +107 -0
- data/lib/active_admin/menu_collection.rb +96 -0
- data/lib/active_admin/menu_item.rb +97 -0
- data/lib/active_admin/namespace.rb +221 -0
- data/lib/active_admin/page.rb +88 -0
- data/lib/active_admin/page_controller.rb +29 -0
- data/lib/active_admin/page_dsl.rb +28 -0
- data/lib/active_admin/page_presenter.rb +32 -0
- data/lib/active_admin/resource.rb +160 -0
- data/lib/active_admin/resource/action_items.rb +93 -0
- data/lib/active_admin/resource/belongs_to.rb +36 -0
- data/lib/active_admin/resource/controllers.rb +18 -0
- data/lib/active_admin/resource/menu.rb +64 -0
- data/lib/active_admin/resource/naming.rb +78 -0
- data/lib/active_admin/resource/page_presenters.rb +82 -0
- data/lib/active_admin/resource/pagination.rb +19 -0
- data/lib/active_admin/resource/routes.rb +99 -0
- data/lib/active_admin/resource/scope_to.rb +74 -0
- data/lib/active_admin/resource/scopes.rb +50 -0
- data/lib/active_admin/resource/sidebars.rb +27 -0
- data/lib/active_admin/resource_collection.rb +42 -0
- data/lib/active_admin/resource_controller.rb +51 -0
- data/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/lib/active_admin/resource_controller/actions.rb +81 -0
- data/lib/active_admin/resource_controller/data_access.rb +303 -0
- data/lib/active_admin/resource_controller/decorators.rb +20 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
- data/lib/active_admin/resource_controller/scoping.rb +31 -0
- data/lib/active_admin/resource_controller/sidebars.rb +18 -0
- data/lib/active_admin/resource_dsl.rb +134 -0
- data/lib/active_admin/router.rb +106 -0
- data/lib/active_admin/scope.rb +57 -0
- data/lib/active_admin/sidebar_section.rb +37 -0
- data/lib/active_admin/version.rb +3 -0
- data/lib/active_admin/view_factory.rb +28 -0
- data/lib/active_admin/view_helpers.rb +21 -0
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +7 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +34 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +26 -0
- data/lib/active_admin/view_helpers/display_helper.rb +47 -0
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +50 -0
- data/lib/active_admin/view_helpers/fields_for.rb +50 -0
- data/lib/active_admin/view_helpers/flash_helper.rb +13 -0
- data/lib/active_admin/view_helpers/form_helper.rb +24 -0
- data/lib/active_admin/view_helpers/icon_helper.rb +12 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +93 -0
- data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
- data/lib/active_admin/view_helpers/title_helper.rb +11 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
- data/lib/active_admin/views.rb +8 -0
- data/lib/active_admin/views/action_items.rb +17 -0
- data/lib/active_admin/views/components/action_list_popover.rb +29 -0
- data/lib/active_admin/views/components/attributes_table.rb +70 -0
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +150 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
- data/lib/active_admin/views/components/index_list.rb +68 -0
- data/lib/active_admin/views/components/paginated_collection.rb +123 -0
- data/lib/active_admin/views/components/panel.rb +34 -0
- data/lib/active_admin/views/components/popover.rb +27 -0
- data/lib/active_admin/views/components/scopes.rb +65 -0
- data/lib/active_admin/views/components/sidebar_section.rb +28 -0
- data/lib/active_admin/views/components/site_title.rb +55 -0
- data/lib/active_admin/views/components/status_tag.rb +56 -0
- data/lib/active_admin/views/components/table_for.rb +191 -0
- data/lib/active_admin/views/dashboard_section_renderer.rb +19 -0
- data/lib/active_admin/views/footer.rb +20 -0
- data/lib/active_admin/views/header.rb +32 -0
- data/lib/active_admin/views/index_as_block.rb +36 -0
- data/lib/active_admin/views/index_as_blog.rb +150 -0
- data/lib/active_admin/views/index_as_grid.rb +76 -0
- data/lib/active_admin/views/index_as_table.rb +238 -0
- data/lib/active_admin/views/pages/base.rb +139 -0
- data/lib/active_admin/views/pages/dashboard.rb +62 -0
- data/lib/active_admin/views/pages/form.rb +51 -0
- data/lib/active_admin/views/pages/index.rb +158 -0
- data/lib/active_admin/views/pages/layout.rb +26 -0
- data/lib/active_admin/views/pages/page.rb +30 -0
- data/lib/active_admin/views/pages/show.rb +59 -0
- data/lib/active_admin/views/tabbed_navigation.rb +62 -0
- data/lib/active_admin/views/title_bar.rb +53 -0
- data/lib/activeadmin.rb +1 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +16 -0
- data/lib/generators/active_admin/assets/templates/active_admin.css.scss +17 -0
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +78 -0
- data/lib/generators/active_admin/install/install_generator.rb +46 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +214 -0
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +27 -0
- data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +16 -0
- data/lib/generators/active_admin/resource/templates/admin.rb +3 -0
- data/lib/ransack_ext.rb +12 -0
- data/script/local +44 -0
- data/script/use_rails +53 -0
- data/spec/integration/default_namespace_spec.rb +61 -0
- data/spec/integration/javascript_spec.rb +20 -0
- data/spec/integration/memory_spec.rb +29 -0
- data/spec/integration/stylesheets_spec.rb +41 -0
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
- data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
- data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
- data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
- data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
- data/spec/javascripts/fixtures/checkboxes.html +9 -0
- data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
- data/spec/javascripts/helpers/SpecHelper.js +3 -0
- data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
- data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
- data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
- data/spec/javascripts/support/jasmine.yml +74 -0
- data/spec/javascripts/support/jasmine_config.rb +23 -0
- data/spec/javascripts/support/jasmine_runner.rb +32 -0
- data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
- data/spec/javascripts/support/jquery.min.js +4 -0
- data/spec/spec_helper.rb +175 -0
- data/spec/spec_helper_without_rails.rb +11 -0
- data/spec/support/deferred_garbage_collection.rb +19 -0
- data/spec/support/detect_rails_version.rb +42 -0
- data/spec/support/integration_example_group.rb +31 -0
- data/spec/support/jslint.yml +80 -0
- data/spec/support/rails_template.rb +104 -0
- data/spec/support/rails_template_with_data.rb +59 -0
- data/spec/support/templates/admin/stores.rb +11 -0
- data/spec/support/templates/cucumber.rb +24 -0
- data/spec/support/templates/cucumber_with_reloading.rb +5 -0
- data/spec/support/templates/en.yml +8 -0
- data/spec/support/templates/post_decorator.rb +53 -0
- data/spec/unit/abstract_view_factory_spec.rb +79 -0
- data/spec/unit/action_builder_spec.rb +126 -0
- data/spec/unit/active_admin_spec.rb +11 -0
- data/spec/unit/application_spec.rb +141 -0
- data/spec/unit/asset_registration_spec.rb +56 -0
- data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
- data/spec/unit/authorization/controller_authorization_spec.rb +39 -0
- data/spec/unit/auto_link_spec.rb +39 -0
- data/spec/unit/batch_actions/resource_spec.rb +91 -0
- data/spec/unit/batch_actions/settings_spec.rb +61 -0
- data/spec/unit/belongs_to_spec.rb +42 -0
- data/spec/unit/cancan_adapter_spec.rb +43 -0
- data/spec/unit/comments_spec.rb +106 -0
- data/spec/unit/component_spec.rb +18 -0
- data/spec/unit/config_shared_examples.rb +59 -0
- data/spec/unit/controller_filters_spec.rb +27 -0
- data/spec/unit/csv_builder_spec.rb +103 -0
- data/spec/unit/devise_spec.rb +116 -0
- data/spec/unit/dsl_spec.rb +61 -0
- data/spec/unit/event_spec.rb +47 -0
- data/spec/unit/filters/filter_form_builder_spec.rb +338 -0
- data/spec/unit/filters/resource_spec.rb +87 -0
- data/spec/unit/form_builder_spec.rb +478 -0
- data/spec/unit/generators/install_spec.rb +23 -0
- data/spec/unit/helpers/collection_spec.rb +65 -0
- data/spec/unit/helpers/scope_chain_spec.rb +36 -0
- data/spec/unit/helpers/settings_spec.rb +30 -0
- data/spec/unit/menu_collection_spec.rb +62 -0
- data/spec/unit/menu_item_spec.rb +143 -0
- data/spec/unit/menu_spec.rb +71 -0
- data/spec/unit/namespace/authorization_spec.rb +27 -0
- data/spec/unit/namespace/register_page_spec.rb +74 -0
- data/spec/unit/namespace/register_resource_spec.rb +163 -0
- data/spec/unit/namespace_spec.rb +103 -0
- data/spec/unit/page_controller_spec.rb +5 -0
- data/spec/unit/page_spec.rb +72 -0
- data/spec/unit/pretty_format_spec.rb +35 -0
- data/spec/unit/resource/action_items_spec.rb +62 -0
- data/spec/unit/resource/menu_spec.rb +18 -0
- data/spec/unit/resource/naming_spec.rb +108 -0
- data/spec/unit/resource/page_presenters_spec.rb +44 -0
- data/spec/unit/resource/pagination_spec.rb +38 -0
- data/spec/unit/resource/routes_spec.rb +73 -0
- data/spec/unit/resource/scopes_spec.rb +43 -0
- data/spec/unit/resource/sidebars_spec.rb +43 -0
- data/spec/unit/resource_collection_spec.rb +79 -0
- data/spec/unit/resource_controller/data_access_spec.rb +73 -0
- data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
- data/spec/unit/resource_controller_spec.rb +265 -0
- data/spec/unit/resource_registration_spec.rb +56 -0
- data/spec/unit/resource_spec.rb +243 -0
- data/spec/unit/routing_spec.rb +172 -0
- data/spec/unit/scope_spec.rb +108 -0
- data/spec/unit/settings_spec.rb +88 -0
- data/spec/unit/view_factory_spec.rb +22 -0
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +152 -0
- data/spec/unit/view_helpers/display_name_spec.rb +41 -0
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
- data/spec/unit/view_helpers/fields_for_spec.rb +50 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +56 -0
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +97 -0
- data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
- data/spec/unit/views/components/attributes_table_spec.rb +131 -0
- data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
- data/spec/unit/views/components/blank_slate_spec.rb +17 -0
- data/spec/unit/views/components/columns_spec.rb +142 -0
- data/spec/unit/views/components/index_list_spec.rb +32 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +247 -0
- data/spec/unit/views/components/panel_spec.rb +51 -0
- data/spec/unit/views/components/popover_spec.rb +33 -0
- data/spec/unit/views/components/sidebar_section_spec.rb +37 -0
- data/spec/unit/views/components/site_title_spec.rb +78 -0
- data/spec/unit/views/components/status_tag_spec.rb +95 -0
- data/spec/unit/views/components/table_for_spec.rb +182 -0
- data/spec/unit/views/pages/layout_spec.rb +63 -0
- data/spec/unit/views/pages/show_spec.rb +20 -0
- data/spec/unit/views/tabbed_navigation_spec.rb +149 -0
- data/tasks/docs.rake +39 -0
- data/tasks/js.rake +32 -0
- data/tasks/parallel_tests.rake +60 -0
- data/tasks/test.rake +79 -0
- data/tasks/yard.rake +6 -0
- metadata +883 -0
data/docs/5-forms.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Customizing the Form
|
|
2
|
+
|
|
3
|
+
Active Admin gives complete control over the output of the form by creating a thin DSL on top of
|
|
4
|
+
the fabulous DSL created by Formtastic (http://github.com/justinfrench/formtastic).
|
|
5
|
+
|
|
6
|
+
ActiveAdmin.register Post do
|
|
7
|
+
|
|
8
|
+
form do |f|
|
|
9
|
+
f.inputs "Details" do
|
|
10
|
+
f.input :title
|
|
11
|
+
f.input :published_at, :label => "Publish Post At"
|
|
12
|
+
f.input :category
|
|
13
|
+
end
|
|
14
|
+
f.inputs "Content" do
|
|
15
|
+
f.input :body
|
|
16
|
+
end
|
|
17
|
+
f.actions
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Please view the documentation for Formtastic to see all the wonderful things you can do:
|
|
23
|
+
http://github.com/justinfrench/formtastic
|
|
24
|
+
|
|
25
|
+
If you require a more custom form than can be provided through the DSL, you can pass
|
|
26
|
+
a partial in to render the form yourself.
|
|
27
|
+
|
|
28
|
+
For example:
|
|
29
|
+
|
|
30
|
+
ActiveAdmin.register Post do
|
|
31
|
+
form :partial => "form"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
Then implement app/views/admin/posts/_form.html.erb:
|
|
35
|
+
|
|
36
|
+
<%= semantic_form_for [:admin, @post] do |f| %>
|
|
37
|
+
<%= f.inputs :title, :body %>
|
|
38
|
+
<%= f.actions :commit %>
|
|
39
|
+
<% end %>
|
|
40
|
+
|
|
41
|
+
## Nested Resources
|
|
42
|
+
|
|
43
|
+
You can create forms with nested models using the `has_many` method:
|
|
44
|
+
|
|
45
|
+
ActiveAdmin.register Post do
|
|
46
|
+
|
|
47
|
+
form do |f|
|
|
48
|
+
f.inputs "Details" do
|
|
49
|
+
f.input :title
|
|
50
|
+
f.input :published_at, :label => "Publish Post At"
|
|
51
|
+
end
|
|
52
|
+
f.inputs "Content" do
|
|
53
|
+
f.input :body
|
|
54
|
+
end
|
|
55
|
+
f.inputs do
|
|
56
|
+
f.has_many :categories, :allow_destroy => true, :heading => 'Themes', :new_record => false do |cf|
|
|
57
|
+
cf.input :title
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
f.actions
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
The `:allow_destroy` option will add a checkbox to the end of the nested form allowing
|
|
66
|
+
removal of the child object upon submission. Be sure to set `:allow_destroy => true`
|
|
67
|
+
on the association to use this option.
|
|
68
|
+
|
|
69
|
+
The `:heading` option will add a custom heading to has_many form. You can hide a heading by setting `:heading => false`.
|
|
70
|
+
|
|
71
|
+
The `:new_record` option will show or hide new record link at the bottom of has_many form. It is set as true by default.
|
|
72
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Customize the Show Page
|
|
2
|
+
|
|
3
|
+
Customize the show page is as simple as implementing the show block:
|
|
4
|
+
|
|
5
|
+
ActiveAdmin.register Post do
|
|
6
|
+
show do
|
|
7
|
+
h3 post.title
|
|
8
|
+
div do
|
|
9
|
+
simple_format post.body
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
The show block is rendered within the context of the view and uses the Arbre HTML DSL. You
|
|
15
|
+
can also render a partial at any point.
|
|
16
|
+
|
|
17
|
+
ActiveAdmin.register Post do
|
|
18
|
+
show do
|
|
19
|
+
# renders app/views/admin/posts/_some_partial.html.erb
|
|
20
|
+
render "some_partial"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
If you'd like to keep the default active_admin look, you can also use "attributes_table":
|
|
25
|
+
|
|
26
|
+
ActiveAdmin.register Ad do
|
|
27
|
+
show do |ad|
|
|
28
|
+
attributes_table do
|
|
29
|
+
row :title
|
|
30
|
+
row :image do
|
|
31
|
+
image_tag(ad.image.url)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
active_admin_comments
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
You can customize the title of the object in the show screen. The default is the resource name and the ID. You can customize as follows:
|
|
39
|
+
|
|
40
|
+
show :title => :name do
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
|
data/docs/7-sidebars.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Sidebar Sections
|
|
2
|
+
|
|
3
|
+
To add a sidebar section to all the screen within a section, use the sidebar method:
|
|
4
|
+
|
|
5
|
+
sidebar :help do
|
|
6
|
+
"Need help? Email us at help@example.com"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
This will generate a sidebar section on each screen of the resource. With the block as
|
|
10
|
+
the contents of the section. The first argument is the section title.
|
|
11
|
+
|
|
12
|
+
You can also use Arbre syntax to define the content.
|
|
13
|
+
|
|
14
|
+
sidebar :help do
|
|
15
|
+
ul do
|
|
16
|
+
li "Second List First Item"
|
|
17
|
+
li "Second List Second Item"
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
Sidebar sections can be rendered on a specific action by using the :only or :except
|
|
22
|
+
options.
|
|
23
|
+
|
|
24
|
+
sidebar :help, :only => :index do
|
|
25
|
+
"Need help? Email us at help@example.com"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
If you want to conditionally display a sidebar section, use the :if option and
|
|
29
|
+
pass it a proc which will be rendered within the context of the view.
|
|
30
|
+
|
|
31
|
+
sidebar :help, :if => proc{ current_admin_user.super_admin? }
|
|
32
|
+
"Only for super admins!"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
If you only pass a symbol, Active Admin will attempt to locate a partial to render.
|
|
36
|
+
|
|
37
|
+
# Will render app/views/admin/posts/_help_sidebar.html.erb
|
|
38
|
+
sidebar :help
|
|
39
|
+
|
|
40
|
+
Or you can pass your own custom partial to render.
|
|
41
|
+
|
|
42
|
+
sidebar :help, :partial => "custom_help_partial"
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Custom Controller Actions
|
|
2
|
+
|
|
3
|
+
Active Admin allows you to override and modify the underlying controller which
|
|
4
|
+
is generated for you. There are helpers to add collection and member actions, or
|
|
5
|
+
you can drop right in to the controller and modify its behavior.
|
|
6
|
+
|
|
7
|
+
## Collection Actions
|
|
8
|
+
|
|
9
|
+
A collection action is a controller action which operates on the collection of
|
|
10
|
+
resources. This method adds both the action to the controller as well as
|
|
11
|
+
generating a route for you.
|
|
12
|
+
|
|
13
|
+
To add a collection action, use the collection_action method:
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
ActiveAdmin.register Post do
|
|
17
|
+
|
|
18
|
+
collection_action :import_csv, :method => :post do
|
|
19
|
+
# Do some CSV importing work here...
|
|
20
|
+
redirect_to {:action => :index}, {:notice => "CSV imported successfully!"}
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
This collection action will generate a route at "/admin/posts/import_csv"
|
|
26
|
+
pointing to the Admin::PostsController#import_csv controller action.
|
|
27
|
+
|
|
28
|
+
## Member Actions
|
|
29
|
+
|
|
30
|
+
A member action is a controller action which operates on a single resource.
|
|
31
|
+
|
|
32
|
+
For example, to add a lock action to a user resource, you would do the
|
|
33
|
+
following:
|
|
34
|
+
|
|
35
|
+
ActiveAdmin.register User do
|
|
36
|
+
|
|
37
|
+
member_action :lock, :method => :put do
|
|
38
|
+
user = User.find(params[:id])
|
|
39
|
+
user.lock!
|
|
40
|
+
redirect_to {:action => :show}, {:notice => "Locked!"}
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
This will generate a route at "/admin/users/:id/lock" pointing to the
|
|
46
|
+
Admin::UserController#lock controller action.
|
|
47
|
+
|
|
48
|
+
## Controller Action HTTP Verb
|
|
49
|
+
|
|
50
|
+
The collection_action and member_actions methods both accept the "method"
|
|
51
|
+
argument to set the HTTP verb for the controller action and route.
|
|
52
|
+
|
|
53
|
+
The generated routes will be scoped to the given method you pass in. By default
|
|
54
|
+
your action will use the :get verb.
|
|
55
|
+
|
|
56
|
+
## Rendering in Custom Actions
|
|
57
|
+
|
|
58
|
+
Custom controller actions support rendering within the standard Active Admin
|
|
59
|
+
layout.
|
|
60
|
+
|
|
61
|
+
ActiveAdmin.register Post do
|
|
62
|
+
|
|
63
|
+
# /admin/posts/:id/comments
|
|
64
|
+
member_action :comments do
|
|
65
|
+
@post = Post.find(params[:id])
|
|
66
|
+
|
|
67
|
+
# This will render app/views/admin/posts/comments.html.erb
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
If you would like to use the same view syntax as the rest of Active Admin, you
|
|
73
|
+
can use the Arbre file extension: .arb.
|
|
74
|
+
|
|
75
|
+
For example, create app/views/admin/posts/comments.html.arb with:
|
|
76
|
+
|
|
77
|
+
table_for assigns[:post].comments do
|
|
78
|
+
column :id
|
|
79
|
+
column :author
|
|
80
|
+
column :body do |comment|
|
|
81
|
+
simple_format comment.body
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
### Custom Action Items
|
|
86
|
+
|
|
87
|
+
To include your own action items (like the New, Edit and Delete buttons), add an
|
|
88
|
+
`action_item` block. For example, to add a "View on site" button to view a blog
|
|
89
|
+
post:
|
|
90
|
+
|
|
91
|
+
action_item :only => :show do
|
|
92
|
+
link_to('View on site', post_path(post)) if post.published?
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
Actions items also accept the :if option to conditionally display them:
|
|
96
|
+
|
|
97
|
+
action_item :only => :show, :if => proc{ current_admin_user.super_admin? } do
|
|
98
|
+
"Only display this to super admins on the show screen"
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
### Page Titles
|
|
102
|
+
|
|
103
|
+
The page title for the custom action will be the internationalized version of
|
|
104
|
+
the controller action name. For example, a member_action named "upload_csv" will
|
|
105
|
+
look up a translation key of "active_admin.upload_csv". If none are found, it
|
|
106
|
+
just title cases the controller action's name.
|
|
107
|
+
|
|
108
|
+
If this method doesn't work for your requirements, you can always set the
|
|
109
|
+
@page_title instance variable in your controller action to customize the page
|
|
110
|
+
title.
|
|
111
|
+
|
|
112
|
+
ActiveAdmin.register Post do
|
|
113
|
+
|
|
114
|
+
# /admin/posts/:id/comments
|
|
115
|
+
member_action :comments do
|
|
116
|
+
@post = Post.find(params[:id])
|
|
117
|
+
@page_title = "#{@post.title}: Comments" # Set the page title
|
|
118
|
+
|
|
119
|
+
# This will render app/views/admin/posts/comments.html.erb
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
## Modify the Controller
|
|
125
|
+
|
|
126
|
+
The generated controller is available to you within the registration block by
|
|
127
|
+
using the #controller method.
|
|
128
|
+
|
|
129
|
+
ActiveAdmin.register Post do
|
|
130
|
+
|
|
131
|
+
controller do
|
|
132
|
+
# This code is evaluated within the controller class
|
|
133
|
+
|
|
134
|
+
def define_a_method
|
|
135
|
+
# Instance method
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
end
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Index Batch Actions
|
|
2
|
+
|
|
3
|
+
By default, the index view includes a way to quickly delete records from the listing,
|
|
4
|
+
as well as an API for you to easily create your own "Batch Action" for handling a request to operate
|
|
5
|
+
on multiple records at once.
|
|
6
|
+
|
|
7
|
+
## Provided Batch Action
|
|
8
|
+
|
|
9
|
+
The `batch_action` API provides one default batch action for use in your application immediately, for deleting
|
|
10
|
+
multiple records at once. You are able to disable this action if you desire (see below).
|
|
11
|
+
|
|
12
|
+
## Creating Your Own Batch Actions
|
|
13
|
+
|
|
14
|
+
To create your own batch action, use the `batch_action` method. You are provided an array of record IDs
|
|
15
|
+
to operate on. The array should contain at least one ID.
|
|
16
|
+
|
|
17
|
+
ActiveAdmin.register Post do
|
|
18
|
+
batch_action :flag do |selection|
|
|
19
|
+
Post.find(selection).each do |post|
|
|
20
|
+
post.flag! :hot
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
### Disabling Batch Actions
|
|
26
|
+
|
|
27
|
+
You can disable batch actions at the application or namespace level in
|
|
28
|
+
`config/initializers/active_admin.rb`:
|
|
29
|
+
|
|
30
|
+
ActiveAdmin.setup do |config|
|
|
31
|
+
|
|
32
|
+
# Disable all batch actions
|
|
33
|
+
config.batch_actions = false
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# Or disable for a given namespace
|
|
37
|
+
config.namespace :admin do |admin|
|
|
38
|
+
admin.batch_actions = false
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
You can disable batch actions on any given resource using:
|
|
43
|
+
|
|
44
|
+
ActiveAdmin.register Post do
|
|
45
|
+
config.batch_actions = false
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
### Modifying a Previously Registered Batch Action
|
|
50
|
+
|
|
51
|
+
If you wanted to modify the behavior of the provided "Delete" batch action, you can override by:
|
|
52
|
+
|
|
53
|
+
ActiveAdmin.register Post do
|
|
54
|
+
batch_action :destroy, :if => proc { can?( :destroy, Post ) } do |selection|
|
|
55
|
+
redirect_to collection_path, :alert => "Didn't really delete these!"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
### Removing a Batch Action
|
|
60
|
+
|
|
61
|
+
You can also remove batch actions by simply passing false as the second parameter:
|
|
62
|
+
|
|
63
|
+
ActiveAdmin.register Post do
|
|
64
|
+
batch_action :destroy, false
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
### Conditional Display of Batch Action
|
|
68
|
+
|
|
69
|
+
You can control whether or not the batch action is available via the `:if` option. Provide a boolean or a proc, which is executed in context of the view.
|
|
70
|
+
|
|
71
|
+
ActiveAdmin.register Post do
|
|
72
|
+
batch_action :flag, :if => proc { false } do |selection|
|
|
73
|
+
# This action won't ever be displayed
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
### Batch Action Priority in Menu
|
|
78
|
+
|
|
79
|
+
You can also change the order of batch actions, by providing a value for the :priority param:
|
|
80
|
+
|
|
81
|
+
ActiveAdmin.register Post do
|
|
82
|
+
batch_action :destroy, :priority => 1 do |selection|
|
|
83
|
+
# Do some deleting in here...
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
### Batch Action I18n of Labels
|
|
88
|
+
|
|
89
|
+
By default, the name of the batch action will be used to lookup a label for the
|
|
90
|
+
menu. It will lookup in `active_admin.batch_actions.labels.#{your_batch_action_name}`. For
|
|
91
|
+
example:
|
|
92
|
+
|
|
93
|
+
ActiveAdmin.register Post do
|
|
94
|
+
batch_action :publish do |selection|
|
|
95
|
+
# do some publishing...
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
Can be translated with:
|
|
100
|
+
|
|
101
|
+
# config/locales/en.yml
|
|
102
|
+
en:
|
|
103
|
+
active_admin:
|
|
104
|
+
batch_actions:
|
|
105
|
+
labels:
|
|
106
|
+
publish: "Publish"
|
|
107
|
+
|
|
108
|
+
### Batch Action Confirmation
|
|
109
|
+
|
|
110
|
+
You can also request that the user confirm the action, before the action is performed:
|
|
111
|
+
|
|
112
|
+
ActiveAdmin.register Post do
|
|
113
|
+
batch_action :destroy, :confirm => "Are you sure you want to delete all of these?" do |selection|
|
|
114
|
+
# Do some deleting...
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
### Customizing Table Columns
|
|
119
|
+
|
|
120
|
+
To include the column with checkboxes in after overriding the list of columns for the `index` block in the *Table* listing, use the following helper as seen below:
|
|
121
|
+
|
|
122
|
+
ActiveAdmin.register Post do
|
|
123
|
+
|
|
124
|
+
batch_action :flag do |selection|
|
|
125
|
+
Post.find(selection).each { |p| p.flag! }
|
|
126
|
+
redirect_to collection_path, :notice => "Posts flagged!"
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
index do
|
|
130
|
+
selectable_column
|
|
131
|
+
column :title
|
|
132
|
+
default_actions
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
### Support for Other Index Types
|
|
139
|
+
|
|
140
|
+
You can easily use `batch_action` in the other index views, *Grid*, *Block*, and *Blog*; however, these views will require more custom styling to fit your application needs.
|
|
141
|
+
|
|
142
|
+
ActiveAdmin.register Post do
|
|
143
|
+
|
|
144
|
+
# By default, the "Delete" batch action is provided
|
|
145
|
+
|
|
146
|
+
# Index as Grid
|
|
147
|
+
index as: :grid do |post|
|
|
148
|
+
resource_selection_cell post
|
|
149
|
+
h2 auto_link( post )
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# Index as Blog requires nothing special
|
|
153
|
+
|
|
154
|
+
# Index as Block
|
|
155
|
+
index as: :block do |post|
|
|
156
|
+
div for: post do
|
|
157
|
+
resource_selection_cell post
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
end
|