aa-rails4 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -0,0 +1,191 @@
|
|
1
|
+
# Customizing the Index Page
|
2
|
+
|
3
|
+
Filtering and listing resources is one of the most important tasks for
|
4
|
+
administering a web application. Active Admin provides many different tools for
|
5
|
+
you to build a compelling interface into your data for the admin staff.
|
6
|
+
|
7
|
+
Built in, Active Admin has the following index renderers:
|
8
|
+
|
9
|
+
* *Table*: A table drawn with each row being a resource ([View Table Docs](3-index-pages/index-as-table.md))
|
10
|
+
* *Grid*: A set of rows and columns each cell being a resource ([View Grid Docs](3-index-pages/index-as-grid.md))
|
11
|
+
* *Blocks*: A set of rows (not tabular) each row being a resource ([View Blocks Docs](3-index-pages/index-as-block.md))
|
12
|
+
* *Blog*: A title and body content, similar to a blog index ([View Blog Docs](3-index-pages/index-as-blog.md))
|
13
|
+
|
14
|
+
All index pages also support scopes, filters, pagination, action items, and
|
15
|
+
sidebar sections.
|
16
|
+
|
17
|
+
## Multiple Index Pages
|
18
|
+
|
19
|
+
Sometime you may want more than one index page for a resource to represent
|
20
|
+
different views to the user. If multiple index pages exist, Active Admin will
|
21
|
+
automatically build links at the top of the default index page. Including
|
22
|
+
multiple views is simple and requires creating multiple index components in
|
23
|
+
your resource.
|
24
|
+
|
25
|
+
index do
|
26
|
+
column :image_title
|
27
|
+
default_actions
|
28
|
+
end
|
29
|
+
|
30
|
+
index :as => :grid do |product|
|
31
|
+
link_to(image_tag(product.image_path), admin_product_path(product))
|
32
|
+
end
|
33
|
+
|
34
|
+
The first index component will be the default index page unless you indicate
|
35
|
+
otherwise by setting :default to true.
|
36
|
+
|
37
|
+
index do
|
38
|
+
column :image_title
|
39
|
+
default_actions
|
40
|
+
end
|
41
|
+
|
42
|
+
index :as => :grid, :default => true do |product|
|
43
|
+
link_to(image_tag(product.image_path), admin_product_path(product))
|
44
|
+
end
|
45
|
+
|
46
|
+
Active Admin does not limit the index page to be a table, block, blog or grid.
|
47
|
+
If you've [created your own index page](3-index-pages/create-an-index.md) it can be included by setting :as to the
|
48
|
+
class of the index component you created.
|
49
|
+
|
50
|
+
index :as => ActiveAdmin::Views::IndexAsTable do
|
51
|
+
column :image_title
|
52
|
+
default_actions
|
53
|
+
end
|
54
|
+
|
55
|
+
## Index Filters
|
56
|
+
|
57
|
+
By default the index screen includes a "Filters" sidebar on the right hand side
|
58
|
+
with a filter for each attribute of the registered model. You can customize the
|
59
|
+
filters that are displayed as well as the type of widgets they use.
|
60
|
+
|
61
|
+
To display a filter for an attribute, use the filter method
|
62
|
+
|
63
|
+
ActiveAdmin.register Post do
|
64
|
+
filter :title
|
65
|
+
end
|
66
|
+
|
67
|
+
Out of the box, Active Admin supports the following filter types:
|
68
|
+
|
69
|
+
* *:string* - A search field
|
70
|
+
* *:date_range* - A start and end date field with calendar inputs
|
71
|
+
* *:numeric* - A drop down for selecting "Equal To", "Greater Than" or "Less
|
72
|
+
Than" and an input for a value.
|
73
|
+
* *:select* - A drop down which filters based on a selected item in a collection
|
74
|
+
or all.
|
75
|
+
* *:check_boxes* - A list of check boxes users can turn on and off to filter
|
76
|
+
|
77
|
+
By default, Active Admin will pick the most relevant filter based on the
|
78
|
+
attribute type. You can force the type by passing the :as option.
|
79
|
+
|
80
|
+
filter :author, :as => :check_boxes
|
81
|
+
|
82
|
+
The :check_boxes and :select types accept options for the collection. By default
|
83
|
+
it attempts to create a collection based on an association. But you can pass in
|
84
|
+
the collection as a proc to be called at render time.
|
85
|
+
|
86
|
+
# Will call available
|
87
|
+
filter :author, :as => :check_boxes, :collection => proc { Author.all }
|
88
|
+
|
89
|
+
You can change the filter label by passing a label option:
|
90
|
+
|
91
|
+
filter :author, :label => 'Author'
|
92
|
+
|
93
|
+
By default, Active Admin will try to use ActiveModel I18n to determine the label.
|
94
|
+
|
95
|
+
Filters can also be disabled for a resource, a namespace or the entire
|
96
|
+
application.
|
97
|
+
|
98
|
+
To disable for a specific resource:
|
99
|
+
|
100
|
+
ActiveAdmin.register Post do
|
101
|
+
config.filters = false
|
102
|
+
end
|
103
|
+
|
104
|
+
To disable for a namespace, in the initializer:
|
105
|
+
|
106
|
+
ActiveAdmin.setup do |config|
|
107
|
+
config.namespace :my_namespace do |my_namespace|
|
108
|
+
my_namespace.filters = false
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
Or to disable for the entire application:
|
113
|
+
|
114
|
+
ActiveAdmin.setup do |config|
|
115
|
+
config.filters = false
|
116
|
+
end
|
117
|
+
|
118
|
+
You can also add a filter and still preserve the default filters:
|
119
|
+
|
120
|
+
preserve_default_filters!
|
121
|
+
filter :author
|
122
|
+
|
123
|
+
## Index default sort order
|
124
|
+
|
125
|
+
You can define the default sort order for index pages:
|
126
|
+
|
127
|
+
ActiveAdmin.register Post do
|
128
|
+
config.sort_order = "name_asc"
|
129
|
+
end
|
130
|
+
|
131
|
+
## Index pagination
|
132
|
+
|
133
|
+
|
134
|
+
You can set the number of records per page per resources:
|
135
|
+
|
136
|
+
ActiveAdmin.register Post do
|
137
|
+
config.per_page = 10
|
138
|
+
end
|
139
|
+
|
140
|
+
You can also disable pagination:
|
141
|
+
|
142
|
+
ActiveAdmin.register Post do
|
143
|
+
config.paginate = false
|
144
|
+
end
|
145
|
+
|
146
|
+
If you have a very large database, you might want to disable SELECT COUNT(*) queries caused by the pagination info at the bottom of the page:
|
147
|
+
|
148
|
+
ActiveAdmin.register Post do
|
149
|
+
|
150
|
+
# disable pagination total
|
151
|
+
index :pagination_total => false do
|
152
|
+
#...
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
156
|
+
|
157
|
+
## Disable CSV, XML and JSON export
|
158
|
+
|
159
|
+
You can remove links to download CSV, XML and JSON exports:
|
160
|
+
|
161
|
+
index :download_links => false do
|
162
|
+
end
|
163
|
+
|
164
|
+
## Customizing Download Links
|
165
|
+
|
166
|
+
There are multiple ways to either remove the download links per resource listing, or customize the formats that are shown. Customize the formats by passing an array of symbols, or pass false to hide entirely.
|
167
|
+
|
168
|
+
Customizing the download links per resource:
|
169
|
+
|
170
|
+
ActiveAdmin.register Post do
|
171
|
+
|
172
|
+
# hide the links entirely
|
173
|
+
index :download_links => false
|
174
|
+
|
175
|
+
# only show a PDF export
|
176
|
+
index :download_links => [:pdf]
|
177
|
+
|
178
|
+
end
|
179
|
+
|
180
|
+
If you want to customize download links for every resource throughout the application, configure that in the `active_admin` initializer.
|
181
|
+
|
182
|
+
ActiveAdmin.setup do |config|
|
183
|
+
|
184
|
+
# Disable entirely
|
185
|
+
config.download_links = false
|
186
|
+
|
187
|
+
# Want PDF added to default download links
|
188
|
+
config.download_links = [:csv, :xml, :json, :pdf]
|
189
|
+
|
190
|
+
end
|
191
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Create an Index
|
2
|
+
|
3
|
+
If the supplied Active Admin index components are insufficient for your project
|
4
|
+
feel free to define your own. Index classes extend ActiveAdmin::Component and
|
5
|
+
require a build method and an index_name class method.
|
6
|
+
|
7
|
+
module ActiveAdmin
|
8
|
+
module Views
|
9
|
+
class IndexAsMyIdea < ActiveAdmin::Component
|
10
|
+
|
11
|
+
def build(page_presenter, collection)
|
12
|
+
...
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.index_name
|
16
|
+
"my_idea"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
The build method takes a PagePresenter object and collection of whatever you
|
24
|
+
choose.
|
25
|
+
|
26
|
+
The index_name class method takes no arguments and returns a string that should
|
27
|
+
be representative of the the class name. If this method is not defined, your
|
28
|
+
index component will not be able take advantage of Active Admin's
|
29
|
+
*multiple index pages* feature.
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<!-- Please don't edit this file. It will be clobbered. -->
|
2
|
+
|
3
|
+
# Index as a Block
|
4
|
+
|
5
|
+
If you want to fully customize the display of your resources on the index
|
6
|
+
screen, Index as a Block allows you to render a block of content for each
|
7
|
+
resource.
|
8
|
+
|
9
|
+
index :as => :block do |product|
|
10
|
+
div :for => product do
|
11
|
+
h2 auto_link(product.title)
|
12
|
+
div do
|
13
|
+
simple_format product.description
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
<!-- Please don't edit this file. It will be clobbered. -->
|
2
|
+
|
3
|
+
# Index as Blog
|
4
|
+
|
5
|
+
Render your index page as a set of posts. The post has two main options:
|
6
|
+
title and body.
|
7
|
+
|
8
|
+
index :as => :blog do
|
9
|
+
title :my_title # Calls #my_title on each resource
|
10
|
+
body :my_body # Calls #my_body on each resource
|
11
|
+
end
|
12
|
+
|
13
|
+
## Post Title
|
14
|
+
|
15
|
+
The title is the content that will be rendered within a link to the
|
16
|
+
resource. There are two main ways to set the content for the title
|
17
|
+
|
18
|
+
First, you can pass in a method to be called on your
|
19
|
+
resource. For example:
|
20
|
+
|
21
|
+
index :as => :blog do
|
22
|
+
title :a_method_to_call
|
23
|
+
end
|
24
|
+
|
25
|
+
This will result in the title of the post being the return value of
|
26
|
+
Resource#a_method_to_call
|
27
|
+
|
28
|
+
Second, you can pass a block to the tile option which will then be
|
29
|
+
used as the contents fo the title. The resource being rendered
|
30
|
+
is passed in to the block. For Example:
|
31
|
+
|
32
|
+
index :as => :blog do
|
33
|
+
title do |post|
|
34
|
+
span post.title, :class => 'title'
|
35
|
+
span post.created_at, :class => 'created_at'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
## Post Body
|
40
|
+
|
41
|
+
The body is rendered underneath the title of each post. The same two
|
42
|
+
style of options work as the Post Title above.
|
43
|
+
|
44
|
+
Call a method on the resource as the body:
|
45
|
+
|
46
|
+
index :as => :blog do
|
47
|
+
title :my_title
|
48
|
+
body :my_body # Return value of #my_body will be the body
|
49
|
+
end
|
50
|
+
|
51
|
+
Or, render a block as the body:
|
52
|
+
|
53
|
+
index :as => :blog do
|
54
|
+
title :my_title
|
55
|
+
body do |post|
|
56
|
+
div truncate(post.title)
|
57
|
+
div :class => 'meta' do
|
58
|
+
span "Post in #{post.categories.join(', ')}"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<!-- Please don't edit this file. It will be clobbered. -->
|
2
|
+
|
3
|
+
# Index as a Grid
|
4
|
+
|
5
|
+
Sometimes you want to display the index screen for a set of resources as a grid
|
6
|
+
(possibly a grid of thumbnail images). To do so, use the :grid option for the
|
7
|
+
index block.
|
8
|
+
|
9
|
+
index :as => :grid do |product|
|
10
|
+
link_to(image_tag(product.image_path), admin_product_path(product))
|
11
|
+
end
|
12
|
+
|
13
|
+
The block is rendered within a cell in the grid once for each resource in the
|
14
|
+
collection. The resource is passed into the block for you to use in the view.
|
15
|
+
|
16
|
+
You can customize the number of colums that are rendered using the columns
|
17
|
+
option:
|
18
|
+
|
19
|
+
index :as => :grid, :columns => 5 do |product|
|
20
|
+
link_to(image_tag(product.image_path), admin_product_path(product))
|
21
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
<!-- Please don't edit this file. It will be clobbered. -->
|
2
|
+
|
3
|
+
# Index as a Table
|
4
|
+
|
5
|
+
By default, the index page is a table with each of the models content columns and links to
|
6
|
+
show, edit and delete the object. There are many ways to customize what gets
|
7
|
+
displayed.
|
8
|
+
|
9
|
+
## Defining Columns
|
10
|
+
|
11
|
+
To display an attribute or a method on a resource, simply pass a symbol into the
|
12
|
+
column method:
|
13
|
+
|
14
|
+
index do
|
15
|
+
column :title
|
16
|
+
end
|
17
|
+
|
18
|
+
For association columns we make an educated guess on what to display by
|
19
|
+
calling the following methods in the following order:
|
20
|
+
|
21
|
+
:display_name, :full_name, :name, :username, :login, :title, :email, :to_s
|
22
|
+
|
23
|
+
This can be customized in config/initializers/active_admin.rb.
|
24
|
+
|
25
|
+
If the default title does not work for you, pass it as the first argument:
|
26
|
+
|
27
|
+
index do
|
28
|
+
column "My Custom Title", :title
|
29
|
+
end
|
30
|
+
|
31
|
+
Sometimes that just isn't enough and you need to write some view-specific code.
|
32
|
+
For example, say we wanted a "Title" column that links to the posts admin screen.
|
33
|
+
|
34
|
+
`column` accepts a block that will be rendered for each of the objects in the collection.
|
35
|
+
The block is called once for each resource, which is passed as an argument to the block.
|
36
|
+
|
37
|
+
index do
|
38
|
+
column "Title" do |post|
|
39
|
+
link_to post.title, admin_post_path(post)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
To setup links to View, Edit and Delete a resource, use the `actions` method:
|
44
|
+
|
45
|
+
index do
|
46
|
+
column :title
|
47
|
+
actions
|
48
|
+
end
|
49
|
+
|
50
|
+
You can also append custom links to the default links:
|
51
|
+
|
52
|
+
index do
|
53
|
+
column :title
|
54
|
+
actions do |post|
|
55
|
+
link_to "Preview", admin_preview_post_path(post), :class => "member_link"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
Or forego the default links entirely:
|
60
|
+
|
61
|
+
index do
|
62
|
+
column :title
|
63
|
+
actions :defaults => false do |post|
|
64
|
+
link_to "View", admin_post_path(post)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
## Sorting
|
69
|
+
|
70
|
+
When a column is generated from an Active Record attribute, the table is
|
71
|
+
sortable by default. If you are creating a custom column, you may need to give
|
72
|
+
Active Admin a hint for how to sort the table.
|
73
|
+
|
74
|
+
If a column is defined using a block, you must pass the key to turn on sorting. The key
|
75
|
+
is the attribute which gets used to sort objects using Active Record.
|
76
|
+
|
77
|
+
index do
|
78
|
+
column "Title", :sortable => :title do |post|
|
79
|
+
link_to post.title, admin_post_path(post)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
You can turn off sorting on any column by passing false:
|
84
|
+
|
85
|
+
index do
|
86
|
+
column :title, :sortable => false
|
87
|
+
end
|
88
|
+
|
89
|
+
## Associated Sorting
|
90
|
+
|
91
|
+
You're normally able to sort columns alphabetically, but by default you
|
92
|
+
can't sort by associated objects. Though with a few simple changes, you can.
|
93
|
+
|
94
|
+
Assuming you're on the Books index page, and Book has_one Publisher:
|
95
|
+
|
96
|
+
controller do
|
97
|
+
def scoped_collection
|
98
|
+
resource_class.includes(:publisher) # prevents N+1 queries to your database
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
Then it's simple to sort by any Publisher attribute from within the index table:
|
103
|
+
|
104
|
+
index do
|
105
|
+
column :publisher, sortable: 'publishers.name'
|
106
|
+
end
|
107
|
+
|
108
|
+
## Showing and Hiding Columns
|
109
|
+
|
110
|
+
The entire index block is rendered within the context of the view, so you can
|
111
|
+
easily do things that show or hide columns based on the current context.
|
112
|
+
|
113
|
+
For example, if you were using CanCan:
|
114
|
+
|
115
|
+
index do
|
116
|
+
column :title, :sortable => false
|
117
|
+
if can? :manage, Post
|
118
|
+
column :some_secret_data
|
119
|
+
end
|
120
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Customizing the CSV format
|
2
|
+
|
3
|
+
Active Admin provides CSV file downloads on the index screen for each Resource.
|
4
|
+
By default it will render a CSV file with all the content columns of your
|
5
|
+
registered model.
|
6
|
+
|
7
|
+
Customizing the CSV format is as simple as customizing the index page.
|
8
|
+
|
9
|
+
ActiveAdmin.register Post do
|
10
|
+
csv do
|
11
|
+
column :title
|
12
|
+
column("Author") { |post| post.author.full_name }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
You can set custom csv options:
|
17
|
+
|
18
|
+
ActiveAdmin.register Post do
|
19
|
+
csv :force_quotes => true do
|
20
|
+
column :title
|
21
|
+
column("Author") { |post| post.author.full_name }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
You can set options for the CSV format system-wide:
|
26
|
+
|
27
|
+
# config/initializers/active_admin.rb
|
28
|
+
# Set the CSV builder separator
|
29
|
+
config.csv_options = { :col_sep => ';' }
|
30
|
+
|
31
|
+
# Force the use of quotes
|
32
|
+
config.csv_options = { :force_quotes => true }
|