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,84 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
Active Admin is a Ruby Gem.
|
|
4
|
+
|
|
5
|
+
```ruby
|
|
6
|
+
gem 'activeadmin'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
More accurately, it's a [Rails Engine](http://guides.rubyonrails.org/engines.html)
|
|
10
|
+
that can be injected into your existing Ruby on Rails application.
|
|
11
|
+
|
|
12
|
+
## Setting up Active Admin
|
|
13
|
+
|
|
14
|
+
After installing the gem, you need to run the generator:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
rails g active_admin:install # creates the AdminUser class
|
|
18
|
+
rails g active_admin:install User # uses an existing class
|
|
19
|
+
rails g active_admin:install --skip-users # skips user authentication entirely
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The generator adds these core files, among others:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
app/admin/dashboard.rb
|
|
26
|
+
app/assets/javascripts/active_admin.js.coffee
|
|
27
|
+
app/assets/stylesheets/active_admin.css.scss
|
|
28
|
+
config/initializers/active_admin.rb
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Now, migrate your database and start the server:
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
rake db:migrate
|
|
35
|
+
rails server
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Visit `http://localhost:3000/admin` and log in as the default user:
|
|
39
|
+
|
|
40
|
+
* __User__: admin@example.com
|
|
41
|
+
* __Password__: password
|
|
42
|
+
|
|
43
|
+
Voila! You're on your brand new Active Admin dashboard.
|
|
44
|
+
|
|
45
|
+
To register an existing model with Active Admin:
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
rails generate active_admin:resource MyModel
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
This creates a file at `app/admin/my_model.rb` to set up the UI; refresh your browser to see it.
|
|
52
|
+
|
|
53
|
+
# Upgrading
|
|
54
|
+
|
|
55
|
+
When upgrading to a new version, it's a good idea to check the [CHANGELOG].
|
|
56
|
+
|
|
57
|
+
To update the JS & CSS assets:
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
rails generate active_admin:assets
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
You should also sync these files with their counterparts in the AA source code:
|
|
64
|
+
|
|
65
|
+
* app/admin/dashboard.rb [~>][dashboard.rb]
|
|
66
|
+
* config/initializers/active_admin.rb [~>][active_admin.rb]
|
|
67
|
+
|
|
68
|
+
# Gem compatibility
|
|
69
|
+
|
|
70
|
+
## will_paginate
|
|
71
|
+
|
|
72
|
+
If you use `will_paginate` in your app, you need to configure an initializer for
|
|
73
|
+
Kaminari to avoid conflicts.
|
|
74
|
+
|
|
75
|
+
```ruby
|
|
76
|
+
# config/initializers/kaminari.rb
|
|
77
|
+
Kaminari.configure do |config|
|
|
78
|
+
config.page_method_name = :per_page_kaminari
|
|
79
|
+
end
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
[CHANGELOG]: https://github.com/gregbell/active_admin/blob/master/CHANGELOG.md
|
|
83
|
+
[dashboard.rb]: https://github.com/gregbell/active_admin/blob/master/lib/generators/active_admin/install/templates/dashboard.rb
|
|
84
|
+
[active_admin.rb]: https://github.com/gregbell/active_admin/blob/master/lib/generators/active_admin/install/templates/active_admin.rb.erb
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# General Configuration
|
|
2
|
+
|
|
3
|
+
You can configure Active Admin settings in `config/initializers/active_admin.rb`.
|
|
4
|
+
Here are a few common configurations:
|
|
5
|
+
|
|
6
|
+
## Authentication
|
|
7
|
+
|
|
8
|
+
Active Admin requires two settings to authenticate and use the current user
|
|
9
|
+
within your application.
|
|
10
|
+
|
|
11
|
+
+ the method controllers use to force authentication
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
config.authentication_method = :authenticate_admin_user!
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
+ the method used to access the current user
|
|
18
|
+
|
|
19
|
+
```ruby
|
|
20
|
+
config.current_user_method = :current_admin_user
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Both of these settings can be set to false to turn off authentication.
|
|
24
|
+
|
|
25
|
+
```ruby
|
|
26
|
+
config.authentication_method = false
|
|
27
|
+
config.current_user_method = false
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Site Title Options
|
|
31
|
+
|
|
32
|
+
Every page has what's called the site title on the left side of the menu bar.
|
|
33
|
+
If you want, you can customize it.
|
|
34
|
+
|
|
35
|
+
```ruby
|
|
36
|
+
config.site_title = "My Admin Site"
|
|
37
|
+
config.site_title_link = "/"
|
|
38
|
+
config.site_title_image = "site_image.png"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Internationalization (I18n)
|
|
42
|
+
|
|
43
|
+
To translate Active Admin to a new language or customize an existing translation, you can copy
|
|
44
|
+
[config/locales/en.yml](https://github.com/gregbell/active_admin/blob/master/config/locales/en.yml)
|
|
45
|
+
to your application's `config/locales` folder and update it. We welcome new/updated translations,
|
|
46
|
+
so feel free to [contribute!](https://github.com/gregbell/active_admin/blob/master/CONTRIBUTING.md)
|
|
47
|
+
|
|
48
|
+
## Namespaces
|
|
49
|
+
|
|
50
|
+
When registering resources in Active Admin, they are loaded into a namespace.
|
|
51
|
+
The default namespace is "admin".
|
|
52
|
+
|
|
53
|
+
```ruby
|
|
54
|
+
# app/admin/posts.rb
|
|
55
|
+
ActiveAdmin.register Post do
|
|
56
|
+
# ...
|
|
57
|
+
end
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The Post resource will be loaded into the "admin" namespace and will be
|
|
61
|
+
available at `/admin/posts`. Each namespace holds on to its own settings that
|
|
62
|
+
inherit from the application's configuration.
|
|
63
|
+
|
|
64
|
+
For example, if you have two namespaces (`:admin` and `:super_admin`) and want to
|
|
65
|
+
have different site title's for each, you can use the `config.namespace(name)`
|
|
66
|
+
block within the initializer file to configure them individually.
|
|
67
|
+
|
|
68
|
+
```ruby
|
|
69
|
+
ActiveAdmin.setup do |config|
|
|
70
|
+
config.site_title = "My Default Site Title"
|
|
71
|
+
|
|
72
|
+
config.namespace :admin do |admin|
|
|
73
|
+
admin.site_title = "Admin Site"
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
config.namespace :super_admin do |super_admin|
|
|
77
|
+
super_admin.site_title = "Super Admin Site"
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Each setting available in the Active Admin setup block is configurable on a per
|
|
83
|
+
namespace basis.
|
|
84
|
+
|
|
85
|
+
## Load paths
|
|
86
|
+
|
|
87
|
+
By default Active Admin files go inside `app/admin/`. You can change this
|
|
88
|
+
directory in the initializer file:
|
|
89
|
+
|
|
90
|
+
```ruby
|
|
91
|
+
ActiveAdmin.setup do |config|
|
|
92
|
+
config.load_paths = [File.join(Rails.root, "app", "ui")]
|
|
93
|
+
end
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Comments
|
|
97
|
+
|
|
98
|
+
By default Active Admin includes comments on resources. Sometimes, this is
|
|
99
|
+
undesired. To disable comments:
|
|
100
|
+
|
|
101
|
+
```ruby
|
|
102
|
+
# For the entire application:
|
|
103
|
+
ActiveAdmin.setup do |config|
|
|
104
|
+
config.allow_comments = false
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# For a namespace:
|
|
108
|
+
ActiveAdmin.setup do |config|
|
|
109
|
+
config.namespace :admin do |admin|
|
|
110
|
+
admin.allow_comments = false
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# For a given resource:
|
|
115
|
+
ActiveAdmin.register Post do
|
|
116
|
+
config.comments = false
|
|
117
|
+
end
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Utility Navigation
|
|
121
|
+
|
|
122
|
+
The "utility navigation" shown at the top right normally shows the current user
|
|
123
|
+
and a link to log out. However, the utility navigation is just like any other
|
|
124
|
+
menu in the system; you can provide your own menu to be rendered in its place.
|
|
125
|
+
|
|
126
|
+
```ruby
|
|
127
|
+
ActiveAdmin.setup do |config|
|
|
128
|
+
config.namespace :admin do |admin|
|
|
129
|
+
admin.build_menu :utility_navigation do |menu|
|
|
130
|
+
menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info",
|
|
131
|
+
html_options: { target: :blank }
|
|
132
|
+
admin.add_current_user_to_menu menu
|
|
133
|
+
admin.add_logout_button_to_menu menu
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
```
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Custom Pages
|
|
2
|
+
|
|
3
|
+
When you need a standalone page on your site, Custom Pages will be there with a familiar syntax to resource registration.
|
|
4
|
+
|
|
5
|
+
## Available Features
|
|
6
|
+
* main page content
|
|
7
|
+
* menu item
|
|
8
|
+
* sidebars
|
|
9
|
+
* action_items
|
|
10
|
+
* page_actions
|
|
11
|
+
|
|
12
|
+
## Create a new Page
|
|
13
|
+
|
|
14
|
+
Creating a page is as simple as calling the `register_page` method and saving it
|
|
15
|
+
under `/admin/my_page.rb`:
|
|
16
|
+
|
|
17
|
+
ActiveAdmin.register_page "My Page" do
|
|
18
|
+
content do
|
|
19
|
+
para "Hello World"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
In the above example, a new page with the title "My Page" and the content of
|
|
24
|
+
"Hello World" will be displayed. Anything rendered within `content` will be the
|
|
25
|
+
main content on the page. To use partials, create the folder under `app/views/admin/my_page`
|
|
26
|
+
and save your partials there. Then use `render "partial"` within `content`.
|
|
27
|
+
|
|
28
|
+
## Page Title & I18n
|
|
29
|
+
|
|
30
|
+
Coming soon...
|
|
31
|
+
|
|
32
|
+
## Customize the Menu
|
|
33
|
+
|
|
34
|
+
The menu item is available to customize just like
|
|
35
|
+
[any other resource](2-resource-customization.md#customize-the-menu) in Active Admin.
|
|
36
|
+
|
|
37
|
+
## Add a Sidebar Section
|
|
38
|
+
|
|
39
|
+
You can add sidebar sections to your pages using the same DSL as other resources
|
|
40
|
+
in Active Admin:
|
|
41
|
+
|
|
42
|
+
ActiveAdmin.register_page "My Page" do
|
|
43
|
+
|
|
44
|
+
sidebar :help do
|
|
45
|
+
ul do
|
|
46
|
+
li "First Line of Help"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
content do
|
|
51
|
+
para "Hello World"
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
This creates a sidebar section named "Help" containing an unordered list.
|
|
56
|
+
To view the full customization options, visit [Sidebars](7-sidebars.md).
|
|
57
|
+
|
|
58
|
+
## Add an Action Item
|
|
59
|
+
|
|
60
|
+
Just like other resources, you can add Action Item's to pages:
|
|
61
|
+
|
|
62
|
+
ActiveAdmin.register_page "My Page" do
|
|
63
|
+
|
|
64
|
+
action_item do
|
|
65
|
+
link_to "View Site", "/"
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
content do
|
|
69
|
+
para "Hello World"
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
This adds an action item that links to the root URL of the application.
|
|
74
|
+
|
|
75
|
+
## Add a Page Action
|
|
76
|
+
|
|
77
|
+
`page_action` allows you to define controller actions specific to this page,
|
|
78
|
+
and is the functional equivalent of `collection_action`.
|
|
79
|
+
|
|
80
|
+
ActiveAdmin.register_page "My Page" do
|
|
81
|
+
|
|
82
|
+
page_action :ex, :method => :post do
|
|
83
|
+
# do stuff here
|
|
84
|
+
redirect_to admin_my_page_path, :notice => "You did stuff!"
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
action_item do
|
|
88
|
+
link_to "Do Stuff", admin_my_page_ex_path, :method => :post
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
content do
|
|
92
|
+
para "Hello World"
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
This defines the route `/admin/my_page/ex` which can handle HTTP POST requests.
|
|
97
|
+
|
|
98
|
+
Clicking on the `action_item` will reload page with the message "You did stuff!"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Decorators
|
|
2
|
+
|
|
3
|
+
Active Admin supports the use of decorators for resources. Resources will be
|
|
4
|
+
decorated for the index and show blocks. The
|
|
5
|
+
[draper](https://github.com/drapergem/draper) gem is recommended but not required
|
|
6
|
+
(more on requirements below). Note, that Active Admin works out of the box with
|
|
7
|
+
Draper `>= 1.0.0`.
|
|
8
|
+
|
|
9
|
+
## Configuration
|
|
10
|
+
|
|
11
|
+
ActiveAdmin.register Post do
|
|
12
|
+
decorate_with PostDecorator
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
## Example Usage
|
|
16
|
+
|
|
17
|
+
This example uses [draper](https://github.com/drapergem/draper).
|
|
18
|
+
|
|
19
|
+
# Gemfile
|
|
20
|
+
gem 'draper', '>= 1.0.0'
|
|
21
|
+
|
|
22
|
+
Assuming a post and a post decorator
|
|
23
|
+
|
|
24
|
+
class Post < ActiveRecord::Base; end
|
|
25
|
+
|
|
26
|
+
class PostDecorator < ApplicationDecorator
|
|
27
|
+
decorates :post
|
|
28
|
+
|
|
29
|
+
def image
|
|
30
|
+
h.image_tag model.image_url
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
Then the following is possible
|
|
35
|
+
|
|
36
|
+
ActiveAdmin.register Post do
|
|
37
|
+
decorate_with PostDecorator
|
|
38
|
+
|
|
39
|
+
index do
|
|
40
|
+
column(:title)
|
|
41
|
+
column(:image)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
show do
|
|
45
|
+
attributes_table do
|
|
46
|
+
row(:title)
|
|
47
|
+
row(:image)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
## Forms
|
|
53
|
+
|
|
54
|
+
Note that the resource proveded to form_for also gets decorated.
|
|
55
|
+
|
|
56
|
+
In most cases this will work as expected. However, it is possible to disable
|
|
57
|
+
automatic decoration in the form with the `decorate` option:
|
|
58
|
+
|
|
59
|
+
ActiveAdmin.register Post do
|
|
60
|
+
decorate_with PostDecorator
|
|
61
|
+
|
|
62
|
+
form decorate: false do
|
|
63
|
+
# ...
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Arbre Components
|
|
2
|
+
|
|
3
|
+
Arbre allows the creation of shareable and extendable HTML components and is
|
|
4
|
+
used throughout Active Admin to create view components.
|
|
5
|
+
|
|
6
|
+
## Text Node
|
|
7
|
+
|
|
8
|
+
Sometimes it makes sense to insert something into a registered resource like a
|
|
9
|
+
non-breaking space or some text. The text_node method can be used to insert
|
|
10
|
+
these elements into the page inside of other Arbre components or resource
|
|
11
|
+
controller functions.
|
|
12
|
+
|
|
13
|
+
ActiveAdmin.register Post do
|
|
14
|
+
show do
|
|
15
|
+
panel "Post Details" do
|
|
16
|
+
row("") { post.id }
|
|
17
|
+
row("Tags") do
|
|
18
|
+
text_node link_to "#{tag}",
|
|
19
|
+
admin_post_path( q: { tagged_with_contains: tag } )
|
|
20
|
+
text_node " ".html_safe
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## Panels
|
|
28
|
+
|
|
29
|
+
A panel is a component that takes up all available horizontal space and takes a
|
|
30
|
+
title and a hash of attributes as arguments. If a sidebar is present, a panel
|
|
31
|
+
will take up the remaining space.
|
|
32
|
+
|
|
33
|
+
The following code will create two stacked panels:
|
|
34
|
+
|
|
35
|
+
show do
|
|
36
|
+
|
|
37
|
+
panel "Post Details" do
|
|
38
|
+
render partial: "show_details", locals: {post: post}
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
panel "Post Tags" do
|
|
42
|
+
render partial: "show_enhancements", locals: {post: post}
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
## Columns
|
|
48
|
+
|
|
49
|
+
The Columns component allows you draw content into scalable columns. All you
|
|
50
|
+
need to do is define the number of columns and the component will take care of
|
|
51
|
+
the rest.
|
|
52
|
+
|
|
53
|
+
#### Simple Columns
|
|
54
|
+
|
|
55
|
+
To create simple columnns, use the #columns method. Within the block, call
|
|
56
|
+
the #column method to create a new column.
|
|
57
|
+
|
|
58
|
+
columns do
|
|
59
|
+
|
|
60
|
+
column do
|
|
61
|
+
span "Column #1"
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
column do
|
|
65
|
+
span "Column #2"
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
### Spanning Multiple Columns
|
|
71
|
+
|
|
72
|
+
To create columns that have multiple spans, pass the :span option to the column
|
|
73
|
+
method.
|
|
74
|
+
|
|
75
|
+
columns do
|
|
76
|
+
column :span => 2 do
|
|
77
|
+
span "Column # 1"
|
|
78
|
+
end
|
|
79
|
+
column do
|
|
80
|
+
span "Column # 2"
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
By default, each column spans 1 column. The above layout would have 2 columns,
|
|
85
|
+
the first being twice as large as the second.
|
|
86
|
+
|
|
87
|
+
### Custom Column Widths
|
|
88
|
+
|
|
89
|
+
Active Admin uses a fluid width layout, causing column width to be defined
|
|
90
|
+
using percentages. Due to using this style of layout, columns can shrink or
|
|
91
|
+
expand past points that may not be desirable. To overcome this issue,
|
|
92
|
+
columns provide :max_width and :min_width options.
|
|
93
|
+
|
|
94
|
+
columns do
|
|
95
|
+
column :max_width => "200px", :min_width => "100px" do
|
|
96
|
+
span "Column # 1"
|
|
97
|
+
end
|
|
98
|
+
column do
|
|
99
|
+
span "Column # 2"
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
In the above example, the first column will not grow larger than 200px and will
|
|
104
|
+
not shrink less than 100px.
|
|
105
|
+
|
|
106
|
+
## Table For
|
|
107
|
+
|
|
108
|
+
Table For provides the ability to create tables like those present
|
|
109
|
+
in #index_as_table. table_for takes a collection and a hash of options and then
|
|
110
|
+
uses #column to build the fields to show with the table.
|
|
111
|
+
|
|
112
|
+
table_for order.payments do
|
|
113
|
+
column "Payment Type" { |payment| payment.payment_type.titleize }
|
|
114
|
+
column "Received On", :created_at
|
|
115
|
+
column "Payment Details & Notes", :payment_details
|
|
116
|
+
column "Amount" { |payment| payment.amount_in_dollars }
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
the #column method can take a title as its first argument and data
|
|
120
|
+
(:your_method) as its second (or first if no title provided). Column also
|
|
121
|
+
takes a block.
|
|
122
|
+
|
|
123
|
+
## Status tag
|
|
124
|
+
|
|
125
|
+
Status tags provide convenient syntactic sugar for styling items that have
|
|
126
|
+
status. A common example of where the status tag could be useful is for orders
|
|
127
|
+
that are complete or in progress. status_tag takes a status, like
|
|
128
|
+
"In Progress", a type, which defaults to nil, and a hash of options. The
|
|
129
|
+
status_tag will generate html markup that Active Admin css uses in styling.
|
|
130
|
+
|
|
131
|
+
status_tag('In Progress')
|
|
132
|
+
# => <span class='status_tag in_progress'>In Progress</span>
|
|
133
|
+
|
|
134
|
+
status_tag('active', :ok)
|
|
135
|
+
# => <span class='status_tag active ok'>Active</span>
|
|
136
|
+
|
|
137
|
+
status_tag (
|
|
138
|
+
'active',
|
|
139
|
+
:ok,
|
|
140
|
+
:class => 'important',
|
|
141
|
+
:id => 'status_123',
|
|
142
|
+
:label => 'on'
|
|
143
|
+
)
|
|
144
|
+
# => <span class='status_tag active ok important' id='status_123'>on</span>
|