yousty-activeadmin 1.0.0.pre
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/.gitignore +43 -0
- data/.travis.yml +8 -0
- data/.yardopts +9 -0
- data/CHANGELOG.md +1056 -0
- data/CONTRIBUTING.md +110 -0
- data/Gemfile +41 -0
- data/Guardfile +7 -0
- data/LICENSE +25 -0
- data/README.md +67 -0
- data/Rakefile +25 -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.coffee +6 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +5 -0
- data/app/assets/javascripts/active_admin/components/application.js.coffee +23 -0
- data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +26 -0
- data/app/assets/javascripts/active_admin/components/has_many.js.coffee +41 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +37 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +105 -0
- data/app/assets/javascripts/active_admin/lib/popover.js.coffee +97 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +25 -0
- data/app/assets/stylesheets/active_admin/_base.css.scss +41 -0
- data/app/assets/stylesheets/active_admin/_forms.css.scss +293 -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 +110 -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 +32 -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 +29 -0
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +43 -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 +20 -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 +105 -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 +91 -0
- data/config/locales/en.yml +110 -0
- data/config/locales/es.yml +106 -0
- data/config/locales/es_MX.yml +104 -0
- data/config/locales/fi.yml +109 -0
- data/config/locales/fr.yml +97 -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 +104 -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 +90 -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 +84 -0
- data/docs/1-general-configuration.md +137 -0
- data/docs/10-custom-pages.md +98 -0
- data/docs/11-decorators.md +66 -0
- data/docs/12-arbre-components.md +144 -0
- data/docs/13-authorization-adapter.md +227 -0
- data/docs/2-resource-customization.md +340 -0
- data/docs/3-index-pages/create-an-index.md +29 -0
- data/docs/3-index-pages/index-as-block.md +21 -0
- data/docs/3-index-pages/index-as-blog.md +71 -0
- data/docs/3-index-pages/index-as-grid.md +29 -0
- data/docs/3-index-pages/index-as-table.md +154 -0
- data/docs/3-index-pages.md +206 -0
- data/docs/4-csv-format.md +39 -0
- data/docs/5-forms.md +110 -0
- data/docs/6-show-pages.md +77 -0
- data/docs/7-sidebars.md +42 -0
- data/docs/8-custom-actions.md +139 -0
- data/docs/9-batch-actions.md +155 -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 +140 -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 +138 -0
- data/features/index/format_as_csv.feature +117 -0
- data/features/index/formats.feature +66 -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 +100 -0
- data/features/step_definitions/dashboard_steps.rb +15 -0
- data/features/step_definitions/factory_steps.rb +34 -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 +45 -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/symbol_leak_steps.rb +3 -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 +86 -0
- data/features/sti_resource.feature +73 -0
- data/features/support/env.rb +112 -0
- data/features/support/paths.rb +71 -0
- data/features/support/selectors.rb +45 -0
- data/features/symbol_leak.feature +35 -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/abstract_view_factory.rb +95 -0
- data/lib/active_admin/application.rb +242 -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/authorization.rb +151 -0
- data/lib/active_admin/base_controller/menu.rb +34 -0
- data/lib/active_admin/base_controller.rb +78 -0
- data/lib/active_admin/batch_actions/controller.rb +24 -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/batch_actions.rb +17 -0
- data/lib/active_admin/callbacks.rb +87 -0
- data/lib/active_admin/cancan_adapter.rb +40 -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/dsl.rb +21 -0
- data/lib/active_admin/filters/forms.rb +89 -0
- data/lib/active_admin/filters/formtastic_addons.rb +70 -0
- data/lib/active_admin/filters/resource_extension.rb +136 -0
- data/lib/active_admin/filters.rb +9 -0
- data/lib/active_admin/form_builder.rb +152 -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/icons.rb +142 -0
- data/lib/active_admin/iconic.rb +51 -0
- data/lib/active_admin/inputs/datepicker_input.rb +20 -0
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
- data/lib/active_admin/inputs/filter_base.rb +33 -0
- data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +51 -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 +61 -0
- data/lib/active_admin/inputs/filter_string_input.rb +24 -0
- data/lib/active_admin/inputs.rb +15 -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 +224 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +39 -0
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +14 -0
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +17 -0
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +23 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +75 -0
- data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
- data/lib/active_admin/orm/active_record/comments.rb +84 -0
- data/lib/active_admin/orm/active_record.rb +3 -0
- data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
- data/lib/active_admin/orm/mongoid.rb +1 -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/action_items.rb +91 -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 +84 -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.rb +153 -0
- data/lib/active_admin/resource_collection.rb +42 -0
- data/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/lib/active_admin/resource_controller/data_access.rb +298 -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_controller.rb +50 -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 +27 -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 +49 -0
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +49 -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/view_helpers.rb +21 -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 +103 -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 +125 -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 +66 -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/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 +156 -0
- data/lib/active_admin/views/index_as_grid.rb +80 -0
- data/lib/active_admin/views/index_as_table.rb +264 -0
- data/lib/active_admin/views/pages/base.rb +139 -0
- data/lib/active_admin/views/pages/form.rb +51 -0
- data/lib/active_admin/views/pages/index.rb +147 -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/active_admin/views.rb +8 -0
- data/lib/active_admin.rb +125 -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 +86 -0
- data/lib/generators/active_admin/install/install_generator.rb +46 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +235 -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 +16 -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 +111 -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 +52 -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 +32 -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 +32 -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 +423 -0
- data/spec/unit/filters/resource_spec.rb +119 -0
- data/spec/unit/form_builder_spec.rb +514 -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 +122 -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 +160 -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 +21 -0
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +149 -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 +101 -0
- data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
- data/spec/unit/views/components/attributes_table_spec.rb +230 -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 +227 -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 +201 -0
- data/spec/unit/views/pages/form_spec.rb +35 -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 +37 -0
- data/tasks/js.rake +32 -0
- data/tasks/parallel_tests.rake +60 -0
- data/tasks/test.rake +79 -0
- data/tasks/yard.rake +7 -0
- metadata +896 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
WARNING: Please DO NOT edit this file! Update
|
|
3
|
+
source documentation in lib/active_admin/views
|
|
4
|
+
and execute rake yard to regenerate it.
|
|
5
|
+
-->
|
|
6
|
+
|
|
7
|
+
# Index as a Grid
|
|
8
|
+
|
|
9
|
+
Sometimes you want to display the index screen for a set of resources as a grid
|
|
10
|
+
(possibly a grid of thumbnail images). To do so, use the :grid option for the
|
|
11
|
+
index block.
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
index as: :grid do |product|
|
|
15
|
+
link_to image_tag(product.image_path), admin_product_path(product)
|
|
16
|
+
end
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The block is rendered within a cell in the grid once for each resource in the
|
|
20
|
+
collection. The resource is passed into the block for you to use in the view.
|
|
21
|
+
|
|
22
|
+
You can customize the number of columns that are rendered using the columns
|
|
23
|
+
option:
|
|
24
|
+
|
|
25
|
+
```ruby
|
|
26
|
+
index as: :grid, columns: 5 do |product|
|
|
27
|
+
link_to image_tag(product.image_path), admin_product_path(product)
|
|
28
|
+
end
|
|
29
|
+
```
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
WARNING: Please DO NOT edit this file! Update
|
|
3
|
+
source documentation in lib/active_admin/views
|
|
4
|
+
and execute rake yard to regenerate it.
|
|
5
|
+
-->
|
|
6
|
+
|
|
7
|
+
# Index as a Table
|
|
8
|
+
|
|
9
|
+
By default, the index page is a table with each of the models content columns and links to
|
|
10
|
+
show, edit and delete the object. There are many ways to customize what gets
|
|
11
|
+
displayed.
|
|
12
|
+
|
|
13
|
+
## Defining Columns
|
|
14
|
+
|
|
15
|
+
To display an attribute or a method on a resource, simply pass a symbol into the
|
|
16
|
+
column method:
|
|
17
|
+
|
|
18
|
+
```ruby
|
|
19
|
+
index do
|
|
20
|
+
selectable_column
|
|
21
|
+
column :title
|
|
22
|
+
end
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
For association columns we make an educated guess on what to display by
|
|
26
|
+
calling the following methods in the following order:
|
|
27
|
+
|
|
28
|
+
```ruby
|
|
29
|
+
:display_name, :full_name, :name, :username, :login, :title, :email, :to_s
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
This can be customized in `config/initializers/active_admin.rb`.
|
|
33
|
+
|
|
34
|
+
If the default title does not work for you, pass it as the first argument:
|
|
35
|
+
|
|
36
|
+
```ruby
|
|
37
|
+
index do
|
|
38
|
+
selectable_column
|
|
39
|
+
column "My Custom Title", :title
|
|
40
|
+
end
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Sometimes that just isn't enough and you need to write some view-specific code.
|
|
44
|
+
For example, say we wanted a "Title" column that links to the posts admin screen.
|
|
45
|
+
|
|
46
|
+
`column` accepts a block that will be rendered for each of the objects in the collection.
|
|
47
|
+
The block is called once for each resource, which is passed as an argument to the block.
|
|
48
|
+
|
|
49
|
+
```ruby
|
|
50
|
+
index do
|
|
51
|
+
selectable_column
|
|
52
|
+
column "Title" do |post|
|
|
53
|
+
link_to post.title, admin_post_path(post)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
To setup links to View, Edit and Delete a resource, use the `actions` method:
|
|
59
|
+
|
|
60
|
+
```ruby
|
|
61
|
+
index do
|
|
62
|
+
selectable_column
|
|
63
|
+
column :title
|
|
64
|
+
actions
|
|
65
|
+
end
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
You can also append custom links to the default links:
|
|
69
|
+
|
|
70
|
+
```ruby
|
|
71
|
+
index do
|
|
72
|
+
selectable_column
|
|
73
|
+
column :title
|
|
74
|
+
actions do |post|
|
|
75
|
+
link_to "Preview", admin_preview_post_path(post), class: "member_link"
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Or forego the default links entirely:
|
|
81
|
+
|
|
82
|
+
```ruby
|
|
83
|
+
index do
|
|
84
|
+
column :title
|
|
85
|
+
actions defaults: false do |post|
|
|
86
|
+
link_to "View", admin_post_path(post)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Sorting
|
|
92
|
+
|
|
93
|
+
When a column is generated from an Active Record attribute, the table is
|
|
94
|
+
sortable by default. If you are creating a custom column, you may need to give
|
|
95
|
+
Active Admin a hint for how to sort the table.
|
|
96
|
+
|
|
97
|
+
If a column is defined using a block, you must pass the key to turn on sorting. The key
|
|
98
|
+
is the attribute which gets used to sort objects using Active Record.
|
|
99
|
+
|
|
100
|
+
By default, this is the column on the resource's table that the attribute corresponds to.
|
|
101
|
+
Otherwise, any attribute that the resource collection responds to can be used.
|
|
102
|
+
|
|
103
|
+
```ruby
|
|
104
|
+
index do
|
|
105
|
+
column :title, sortable: :title do |post|
|
|
106
|
+
link_to post.title, admin_post_path(post)
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
You can turn off sorting on any column by passing false:
|
|
112
|
+
|
|
113
|
+
```ruby
|
|
114
|
+
index do
|
|
115
|
+
column :title, sortable: false
|
|
116
|
+
end
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Associated Sorting
|
|
120
|
+
|
|
121
|
+
You're normally able to sort columns alphabetically, but by default you
|
|
122
|
+
can't sort by associated objects. Though with a few simple changes, you can.
|
|
123
|
+
|
|
124
|
+
Assuming you're on the Books index page, and Book has_one Publisher:
|
|
125
|
+
|
|
126
|
+
```ruby
|
|
127
|
+
controller do
|
|
128
|
+
def scoped_collection
|
|
129
|
+
super.includes :publisher # prevents N+1 queries to your database
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Then it's simple to sort by any Publisher attribute from within the index table:
|
|
135
|
+
|
|
136
|
+
```ruby
|
|
137
|
+
index do
|
|
138
|
+
column :publisher, sortable: 'publishers.name'
|
|
139
|
+
end
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Showing and Hiding Columns
|
|
143
|
+
|
|
144
|
+
The entire index block is rendered within the context of the view, so you can
|
|
145
|
+
easily do things that show or hide columns based on the current context.
|
|
146
|
+
|
|
147
|
+
For example, if you were using CanCan:
|
|
148
|
+
|
|
149
|
+
```ruby
|
|
150
|
+
index do
|
|
151
|
+
column :title, sortable: false
|
|
152
|
+
column :secret_data if can? :manage, Post
|
|
153
|
+
end
|
|
154
|
+
```
|
|
@@ -0,0 +1,206 @@
|
|
|
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
|
+
```ruby
|
|
26
|
+
index do
|
|
27
|
+
id_column
|
|
28
|
+
column :image_title
|
|
29
|
+
default_actions
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
index as: :grid do |product|
|
|
33
|
+
link_to image_tag(product.image_path), admin_product_path(product)
|
|
34
|
+
end
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The first index component will be the default index page unless you indicate
|
|
38
|
+
otherwise by setting :default to true.
|
|
39
|
+
|
|
40
|
+
```ruby
|
|
41
|
+
index do
|
|
42
|
+
column :image_title
|
|
43
|
+
default_actions
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
index as: :grid, default: true do |product|
|
|
47
|
+
link_to image_tag(product.image_path), admin_product_path(product)
|
|
48
|
+
end
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Active Admin does not limit the index page to be a table, block, blog or grid.
|
|
52
|
+
If you've [created your own index page](3-index-pages/create-an-index.md) it
|
|
53
|
+
can be included by setting :as to the class of the index component you created.
|
|
54
|
+
|
|
55
|
+
```ruby
|
|
56
|
+
index as: ActiveAdmin::Views::IndexAsTable do
|
|
57
|
+
column :image_title
|
|
58
|
+
default_actions
|
|
59
|
+
end
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Index Filters
|
|
63
|
+
|
|
64
|
+
By default the index screen includes a "Filters" sidebar on the right hand side
|
|
65
|
+
with a filter for each attribute of the registered model. You can customize the
|
|
66
|
+
filters that are displayed as well as the type of widgets they use.
|
|
67
|
+
|
|
68
|
+
To display a filter for an attribute, use the filter method
|
|
69
|
+
|
|
70
|
+
```ruby
|
|
71
|
+
ActiveAdmin.register Post do
|
|
72
|
+
filter :title
|
|
73
|
+
end
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Out of the box, Active Admin supports the following filter types:
|
|
77
|
+
|
|
78
|
+
* *:string* - A search field
|
|
79
|
+
* *:date_range* - A start and end date field with calendar inputs
|
|
80
|
+
* *:numeric* - A drop down for selecting "Equal To", "Greater Than" or "Less
|
|
81
|
+
Than" and an input for a value.
|
|
82
|
+
* *:select* - A drop down which filters based on a selected item in a collection
|
|
83
|
+
or all.
|
|
84
|
+
* *:check_boxes* - A list of check boxes users can turn on and off to filter
|
|
85
|
+
|
|
86
|
+
By default, Active Admin will pick the most relevant filter based on the
|
|
87
|
+
attribute type. You can force the type by passing the :as option.
|
|
88
|
+
|
|
89
|
+
```ruby
|
|
90
|
+
filter :author, as: :check_boxes
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The :check_boxes and :select types accept options for the collection. By default
|
|
94
|
+
it attempts to create a collection based on an association. But you can pass in
|
|
95
|
+
the collection as a proc to be called at render time.
|
|
96
|
+
|
|
97
|
+
```ruby
|
|
98
|
+
filter :author, as: :check_boxes, collection: proc { Author.all }
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
You can change the filter label by passing a label option:
|
|
102
|
+
|
|
103
|
+
```ruby
|
|
104
|
+
filter :author, label: 'Something else'
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
By default, Active Admin will try to use ActiveModel I18n to determine the label.
|
|
108
|
+
|
|
109
|
+
Filters can also be disabled for a resource, a namespace or the entire
|
|
110
|
+
application.
|
|
111
|
+
|
|
112
|
+
To disable for a specific resource:
|
|
113
|
+
|
|
114
|
+
```ruby
|
|
115
|
+
ActiveAdmin.register Post do
|
|
116
|
+
config.filters = false
|
|
117
|
+
end
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
To disable for a namespace, in the initializer:
|
|
121
|
+
|
|
122
|
+
```ruby
|
|
123
|
+
ActiveAdmin.setup do |config|
|
|
124
|
+
config.namespace :my_namespace do |my_namespace|
|
|
125
|
+
my_namespace.filters = false
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Or to disable for the entire application:
|
|
131
|
+
|
|
132
|
+
```ruby
|
|
133
|
+
ActiveAdmin.setup do |config|
|
|
134
|
+
config.filters = false
|
|
135
|
+
end
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
You can also add a filter and still preserve the default filters:
|
|
139
|
+
|
|
140
|
+
```ruby
|
|
141
|
+
preserve_default_filters!
|
|
142
|
+
filter :author
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Index default sort order
|
|
146
|
+
|
|
147
|
+
You can define the default sort order for index pages:
|
|
148
|
+
|
|
149
|
+
```ruby
|
|
150
|
+
ActiveAdmin.register Post do
|
|
151
|
+
config.sort_order = 'name asc'
|
|
152
|
+
end
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Index pagination
|
|
156
|
+
|
|
157
|
+
You can set the number of records per page per resources:
|
|
158
|
+
|
|
159
|
+
```ruby
|
|
160
|
+
ActiveAdmin.register Post do
|
|
161
|
+
config.per_page = 10
|
|
162
|
+
end
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
You can also disable pagination:
|
|
166
|
+
|
|
167
|
+
```ruby
|
|
168
|
+
ActiveAdmin.register Post do
|
|
169
|
+
config.paginate = false
|
|
170
|
+
end
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
If you have a very large database, you might want to disable SELECT COUNT(*)
|
|
174
|
+
queries caused by the pagination info at the bottom of the page:
|
|
175
|
+
|
|
176
|
+
```ruby
|
|
177
|
+
ActiveAdmin.register Post do
|
|
178
|
+
index pagination_total: false do
|
|
179
|
+
# ...
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Customizing Download Links
|
|
185
|
+
|
|
186
|
+
You can easily remove or customize the download links you want displayed:
|
|
187
|
+
|
|
188
|
+
```ruby
|
|
189
|
+
# Per resource:
|
|
190
|
+
ActiveAdmin.register Post do
|
|
191
|
+
|
|
192
|
+
index download_links: false
|
|
193
|
+
index download_links: [:pdf]
|
|
194
|
+
index download_links: proc{ current_user.can_view_download_links? }
|
|
195
|
+
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
# For the entire application:
|
|
199
|
+
ActiveAdmin.setup do |config|
|
|
200
|
+
|
|
201
|
+
config.download_links = false
|
|
202
|
+
config.download_links = [:csv, :xml, :json, :pdf]
|
|
203
|
+
config.download_links = proc { current_user.can_view_download_links? }
|
|
204
|
+
|
|
205
|
+
end
|
|
206
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
```ruby
|
|
10
|
+
ActiveAdmin.register Post do
|
|
11
|
+
csv do
|
|
12
|
+
column :title
|
|
13
|
+
column(:author) { |post| post.author.full_name }
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
You can also set custom CSV settings for an individual resource:
|
|
19
|
+
|
|
20
|
+
```ruby
|
|
21
|
+
ActiveAdmin.register Post do
|
|
22
|
+
csv force_quotes: true, col_sep: ';' do
|
|
23
|
+
column :title
|
|
24
|
+
column(:author) { |post| post.author.full_name }
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Or system-wide:
|
|
30
|
+
|
|
31
|
+
```ruby
|
|
32
|
+
# config/initializers/active_admin.rb
|
|
33
|
+
|
|
34
|
+
# Set the CSV builder separator
|
|
35
|
+
config.csv_options = { col_sep: ';' }
|
|
36
|
+
|
|
37
|
+
# Force the use of quotes
|
|
38
|
+
config.csv_options = { force_quotes: true }
|
|
39
|
+
```
|
data/docs/5-forms.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Customizing the Form
|
|
2
|
+
|
|
3
|
+
Active Admin gives you complete control over the output of the form by creating
|
|
4
|
+
a thin DSL on top of [Formtastic](https://github.com/justinfrench/formtastic):
|
|
5
|
+
|
|
6
|
+
```ruby
|
|
7
|
+
ActiveAdmin.register Post do
|
|
8
|
+
|
|
9
|
+
form do |f|
|
|
10
|
+
f.inputs 'Details' do
|
|
11
|
+
f.input :title
|
|
12
|
+
f.input :published_at, label: "Publish Post At"
|
|
13
|
+
f.input :category
|
|
14
|
+
end
|
|
15
|
+
f.inputs 'Content', :body
|
|
16
|
+
f.actions
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Please view [the documentation](http://github.com/justinfrench/formtastic)
|
|
23
|
+
for Formtastic to see all the wonderful things you can do.
|
|
24
|
+
|
|
25
|
+
If you require a more custom form than can be provided through the DSL, you can
|
|
26
|
+
user a partial instead:
|
|
27
|
+
|
|
28
|
+
```ruby
|
|
29
|
+
ActiveAdmin.register Post do
|
|
30
|
+
form partial: 'form'
|
|
31
|
+
end
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Which looks for something like this:
|
|
35
|
+
|
|
36
|
+
```erb
|
|
37
|
+
<%# app/views/admin/posts/_form.html.erb %>
|
|
38
|
+
<%= semantic_form_for [:admin, @post] do |f| %>
|
|
39
|
+
<%= f.inputs :title, :body %>
|
|
40
|
+
<%= f.actions do %>
|
|
41
|
+
<%= f.action :submit %>
|
|
42
|
+
<li class="cancel"><%= link_to 'Cancel', collection_path %></li>
|
|
43
|
+
<% end %>
|
|
44
|
+
<% end %>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Nested Resources
|
|
48
|
+
|
|
49
|
+
You can create forms with nested models using the `has_many` method:
|
|
50
|
+
|
|
51
|
+
```ruby
|
|
52
|
+
ActiveAdmin.register Post do
|
|
53
|
+
|
|
54
|
+
form do |f|
|
|
55
|
+
f.inputs 'Details' do
|
|
56
|
+
f.input :title
|
|
57
|
+
f.input :published_at, label: 'Publish Post At'
|
|
58
|
+
end
|
|
59
|
+
f.inputs 'Content', :body
|
|
60
|
+
f.inputs do
|
|
61
|
+
f.has_many :categories, heading: 'Themes', allow_destroy: true, new_record: false do |a|
|
|
62
|
+
a.input :title
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
f.inputs do
|
|
66
|
+
f.has_many :comment, new_record: 'Leave Comment' do |b|
|
|
67
|
+
b.input :body
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
f.actions
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
end
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
The `:allow_destroy` option adds a checkbox to the end of the nested form allowing
|
|
77
|
+
removal of the child object upon submission. Be sure to set `allow_destroy: true`
|
|
78
|
+
on the association to use this option.
|
|
79
|
+
|
|
80
|
+
The `:heading` option adds a custom heading. You can hide it entirely by passing `false`.
|
|
81
|
+
|
|
82
|
+
The `:new_record` option controls the visibility of the new record button (shown by default).
|
|
83
|
+
If you pass a string, it will be used as the text for the new record button.
|
|
84
|
+
|
|
85
|
+
## DatePicker
|
|
86
|
+
|
|
87
|
+
ActiveAdmin offers the `datepicker` input, which uses the [jQueryUI Datepicker](http://jqueryui.com/datepicker/).
|
|
88
|
+
The datepicker input accepts any of the options available to the standard
|
|
89
|
+
jQueryUI Datepicker, e.g.
|
|
90
|
+
|
|
91
|
+
```ruby
|
|
92
|
+
form do |f|
|
|
93
|
+
f.input :starts_at, as: :datepicker, datepicker_options: { min_date: "2013-10-8", max_date: 3.days.from_now.to_date }
|
|
94
|
+
f.input :ends_at, as: :datepicker, datepicker_options: { min_date: 3.days.ago.to_date, max_date: "+1W +5D" }
|
|
95
|
+
end
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Displaying Errors
|
|
99
|
+
|
|
100
|
+
To display a list of all validation errors:
|
|
101
|
+
|
|
102
|
+
```ruby
|
|
103
|
+
form do |f|
|
|
104
|
+
f.semantic_errors *f.object.errors.keys
|
|
105
|
+
f.inputs
|
|
106
|
+
f.actions
|
|
107
|
+
end
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
This is particularly useful to display errors on virtual or hidden attributes.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Customize the Show Page
|
|
2
|
+
|
|
3
|
+
The show block is rendered within the context of the view and uses [Arbre](https://github.com/gregbell/arbre) syntax.
|
|
4
|
+
|
|
5
|
+
With the `show` block, you can render anything you want.
|
|
6
|
+
|
|
7
|
+
```ruby
|
|
8
|
+
ActiveAdmin.register Post do
|
|
9
|
+
show do
|
|
10
|
+
h3 post.title
|
|
11
|
+
div do
|
|
12
|
+
simple_format post.body
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
You can render a partial at any point:
|
|
19
|
+
|
|
20
|
+
```ruby
|
|
21
|
+
ActiveAdmin.register Post do
|
|
22
|
+
show do
|
|
23
|
+
# renders app/views/admin/posts/_some_partial.html.erb
|
|
24
|
+
render 'some_partial'
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
If you'd like to keep the default AA look, you can use `attributes_table`:
|
|
30
|
+
|
|
31
|
+
```ruby
|
|
32
|
+
ActiveAdmin.register Ad do
|
|
33
|
+
show do
|
|
34
|
+
attributes_table do
|
|
35
|
+
row :title
|
|
36
|
+
row :image do
|
|
37
|
+
image_tag ad.image.url
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
active_admin_comments
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
You can also customize the title of the object in the show screen:
|
|
46
|
+
|
|
47
|
+
```ruby
|
|
48
|
+
show title: :name do
|
|
49
|
+
# ...
|
|
50
|
+
end
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
If you want a more data-dense page, you can combine a sidebar:
|
|
54
|
+
|
|
55
|
+
```ruby
|
|
56
|
+
ActiveAdmin.register Book do
|
|
57
|
+
show do
|
|
58
|
+
panel "Table of Contents" do
|
|
59
|
+
table_for book.chapters do
|
|
60
|
+
column :number
|
|
61
|
+
column :title
|
|
62
|
+
column :page
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
active_admin_comments
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
sidebar "Details", only: :show do
|
|
69
|
+
attributes_table_for book do
|
|
70
|
+
row :title
|
|
71
|
+
row :author
|
|
72
|
+
row :publisher
|
|
73
|
+
row('Published?') { |b| status_tag b.published? ? 'Yes' : 'No' }
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
```
|
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 on every page for that resource. The first
|
|
10
|
+
argument is used as the title, and can be a symbol, string, or lambda.
|
|
11
|
+
|
|
12
|
+
You can also use [Arbre](https://github.com/gregbell/arbre) to define HTML 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? } do
|
|
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"
|