activeadministration 0.0.1
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 +47 -0
- data/.travis.yml +19 -0
- data/.yardopts +9 -0
- data/CHANGELOG.md +1074 -0
- data/CONTRIBUTING.md +139 -0
- data/Gemfile +52 -0
- data/Guardfile +7 -0
- data/LICENSE +25 -0
- data/README.md +8 -0
- data/Rakefile +33 -0
- data/activeadministration.gemspec +34 -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 +30 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +14 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +36 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +85 -0
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +75 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +36 -0
- data/app/assets/javascripts/active_admin/lib/popover.js.coffee +68 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +24 -0
- data/app/assets/stylesheets/active_admin/_base.css.scss +42 -0
- data/app/assets/stylesheets/active_admin/_forms.css.scss +329 -0
- data/app/assets/stylesheets/active_admin/_header.css.scss +156 -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 +127 -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/_modal_dialog.scss +31 -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 +16 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +65 -0
- data/app/assets/stylesheets/active_admin/components/_tables.css.scss +111 -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 +20 -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 +34 -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 +46 -0
- data/app/views/active_admin/dashboard/index.html.arb +1 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +14 -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/registrations/new.html.erb +22 -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/kaminari/active_admin/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin/_paginator.html.erb +23 -0
- data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
- data/app/views/layouts/active_admin.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +37 -0
- data/config/locales/bg.yml +102 -0
- data/config/locales/bs.yml +121 -0
- data/config/locales/ca.yml +102 -0
- data/config/locales/cs.yml +106 -0
- data/config/locales/da.yml +103 -0
- data/config/locales/de-CH.yml +118 -0
- data/config/locales/de.yml +143 -0
- data/config/locales/el.yml +111 -0
- data/config/locales/en-GB.yml +95 -0
- data/config/locales/en.yml +117 -0
- data/config/locales/es.yml +127 -0
- data/config/locales/es_MX.yml +110 -0
- data/config/locales/fi.yml +110 -0
- data/config/locales/fr.yml +109 -0
- data/config/locales/he.yml +92 -0
- data/config/locales/hr.yml +121 -0
- data/config/locales/hu.yml +96 -0
- data/config/locales/it.yml +114 -0
- data/config/locales/ja.yml +114 -0
- data/config/locales/ko.yml +85 -0
- data/config/locales/lt.yml +118 -0
- data/config/locales/lv.yml +90 -0
- data/config/locales/nl.yml +94 -0
- data/config/locales/no-NB.yml +111 -0
- data/config/locales/pl.yml +100 -0
- data/config/locales/pt-BR.yml +117 -0
- data/config/locales/pt-PT.yml +90 -0
- data/config/locales/ro.yml +94 -0
- data/config/locales/ru.yml +121 -0
- data/config/locales/sv-SE.yml +90 -0
- data/config/locales/tr.yml +94 -0
- data/config/locales/uk.yml +121 -0
- data/config/locales/vi.yml +91 -0
- data/config/locales/zh-CN.yml +112 -0
- data/config/locales/zh-TW.yml +94 -0
- data/cucumber.yml +3 -0
- data/docs/0-installation.md +84 -0
- data/docs/1-general-configuration.md +138 -0
- data/docs/10-custom-pages.md +84 -0
- data/docs/11-decorators.md +50 -0
- data/docs/12-arbre-components.md +150 -0
- data/docs/13-authorization-adapter.md +239 -0
- data/docs/2-resource-customization.md +359 -0
- data/docs/3-index-pages.md +245 -0
- data/docs/3-index-pages/create-an-index.md +31 -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 +163 -0
- data/docs/4-csv-format.md +39 -0
- data/docs/5-forms.md +118 -0
- data/docs/6-show-pages.md +77 -0
- data/docs/7-sidebars.md +63 -0
- data/docs/8-custom-actions.md +159 -0
- data/docs/9-batch-actions.md +233 -0
- data/features/action_item.feature +73 -0
- data/features/authorization.feature +64 -0
- data/features/authorization_cancan.feature +52 -0
- data/features/authorization_pundit.feature +37 -0
- data/features/belongs_to.feature +66 -0
- data/features/breadcrumb.feature +75 -0
- data/features/comments/commenting.feature +159 -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 +114 -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 +43 -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 +208 -0
- data/features/index/index_blank_slate.feature +83 -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 +41 -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 +106 -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 +58 -0
- data/features/sidebar_sections.feature +210 -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 +18 -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 +12 -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 +41 -0
- data/features/step_definitions/web_steps.rb +86 -0
- data/features/sti_resource.feature +65 -0
- data/features/strong_parameters.feature +72 -0
- data/features/support/env.rb +119 -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.rb +135 -0
- data/lib/active_admin/abstract_view_factory.rb +86 -0
- data/lib/active_admin/application.rb +250 -0
- data/lib/active_admin/asset_registration.rb +29 -0
- data/lib/active_admin/authorization_adapter.rb +132 -0
- data/lib/active_admin/base_controller.rb +78 -0
- data/lib/active_admin/base_controller/authorization.rb +151 -0
- data/lib/active_admin/base_controller/menu.rb +34 -0
- data/lib/active_admin/batch_actions.rb +17 -0
- data/lib/active_admin/batch_actions/controller.rb +29 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +154 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +38 -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 +57 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
- data/lib/active_admin/callbacks.rb +84 -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 +70 -0
- data/lib/active_admin/dependencies.rb +38 -0
- data/lib/active_admin/deprecation.rb +35 -0
- data/lib/active_admin/devise.rb +80 -0
- data/lib/active_admin/dsl.rb +165 -0
- data/lib/active_admin/engine.rb +7 -0
- data/lib/active_admin/error.rb +22 -0
- data/lib/active_admin/event.rb +33 -0
- data/lib/active_admin/filters.rb +9 -0
- data/lib/active_admin/filters/dsl.rb +21 -0
- data/lib/active_admin/filters/forms.rb +87 -0
- data/lib/active_admin/filters/formtastic_addons.rb +73 -0
- data/lib/active_admin/filters/resource_extension.rb +135 -0
- data/lib/active_admin/form_builder.rb +185 -0
- data/lib/active_admin/helpers/collection.rb +23 -0
- data/lib/active_admin/helpers/i18n.rb +7 -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 +106 -0
- data/lib/active_admin/iconic.rb +54 -0
- data/lib/active_admin/iconic/icons.rb +142 -0
- data/lib/active_admin/inputs.rb +15 -0
- data/lib/active_admin/inputs/datepicker_input.rb +20 -0
- data/lib/active_admin/inputs/filter_base.rb +40 -0
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
- data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +48 -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 +53 -0
- data/lib/active_admin/inputs/filter_string_input.rb +24 -0
- data/lib/active_admin/menu.rb +107 -0
- data/lib/active_admin/menu_collection.rb +96 -0
- data/lib/active_admin/menu_item.rb +97 -0
- data/lib/active_admin/namespace.rb +231 -0
- data/lib/active_admin/order_clause.rb +26 -0
- data/lib/active_admin/orm/active_record.rb +3 -0
- data/lib/active_admin/orm/active_record/comments.rb +84 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +49 -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.rb +2 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +75 -0
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/orm/mongoid/.gitkeep +0 -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/pundit_adapter.rb +42 -0
- data/lib/active_admin/resource.rb +156 -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 +28 -0
- data/lib/active_admin/resource_collection.rb +70 -0
- data/lib/active_admin/resource_controller.rb +50 -0
- data/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/lib/active_admin/resource_controller/data_access.rb +284 -0
- data/lib/active_admin/resource_controller/decorators.rb +100 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
- data/lib/active_admin/resource_controller/scoping.rb +31 -0
- data/lib/active_admin/resource_controller/sidebars.rb +18 -0
- data/lib/active_admin/resource_dsl.rb +171 -0
- data/lib/active_admin/router.rb +106 -0
- data/lib/active_admin/scope.rb +57 -0
- data/lib/active_admin/sidebar_section.rb +45 -0
- data/lib/active_admin/version.rb +3 -0
- data/lib/active_admin/view_factory.rb +27 -0
- data/lib/active_admin/view_helpers.rb +21 -0
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +7 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +37 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +27 -0
- data/lib/active_admin/view_helpers/display_helper.rb +64 -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 +21 -0
- data/lib/active_admin/view_helpers/icon_helper.rb +12 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +93 -0
- data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
- data/lib/active_admin/view_helpers/title_helper.rb +11 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
- data/lib/active_admin/views.rb +8 -0
- data/lib/active_admin/views/action_items.rb +17 -0
- data/lib/active_admin/views/components/action_list_popover.rb +29 -0
- data/lib/active_admin/views/components/attributes_table.rb +105 -0
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +157 -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 +126 -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 +29 -0
- data/lib/active_admin/views/components/site_title.rb +55 -0
- data/lib/active_admin/views/components/status_tag.rb +67 -0
- data/lib/active_admin/views/components/table_for.rb +212 -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 +277 -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 +163 -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 +55 -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 +66 -0
- data/lib/generators/active_admin/install/install_generator.rb +46 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +243 -0
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +30 -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 +17 -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 +18 -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 +182 -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 +117 -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/policies/active_admin/comment_policy.rb +9 -0
- data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
- data/spec/support/templates/policies/admin_user_policy.rb +11 -0
- data/spec/support/templates/policies/application_policy.rb +45 -0
- data/spec/support/templates/policies/category_policy.rb +7 -0
- data/spec/support/templates/policies/post_policy.rb +15 -0
- data/spec/support/templates/policies/store_policy.rb +11 -0
- data/spec/support/templates/policies/user_policy.rb +11 -0
- data/spec/support/templates/post_decorator.rb +11 -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 +140 -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 +34 -0
- data/spec/unit/batch_actions/resource_spec.rb +92 -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 +144 -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 +37 -0
- data/spec/unit/csv_builder_spec.rb +134 -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 +418 -0
- data/spec/unit/filters/resource_spec.rb +121 -0
- data/spec/unit/form_builder_spec.rb +576 -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/order_clause_spec.rb +57 -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 +63 -0
- data/spec/unit/pundit_adapter_spec.rb +36 -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 +50 -0
- data/spec/unit/resource/sidebars_spec.rb +43 -0
- data/spec/unit/resource_collection_spec.rb +158 -0
- data/spec/unit/resource_controller/data_access_spec.rb +73 -0
- data/spec/unit/resource_controller/decorators_spec.rb +86 -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 +263 -0
- data/spec/unit/routing_spec.rb +172 -0
- data/spec/unit/scope_spec.rb +114 -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 +180 -0
- data/spec/unit/view_helpers/display_name_spec.rb +68 -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 +42 -0
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +97 -0
- data/spec/unit/views/components/action_list_popover_spec.rb +29 -0
- data/spec/unit/views/components/attributes_table_spec.rb +259 -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 +172 -0
- data/spec/unit/views/components/index_list_spec.rb +32 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +229 -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 +47 -0
- data/spec/unit/views/components/site_title_spec.rb +78 -0
- data/spec/unit/views/components/status_tag_spec.rb +102 -0
- data/spec/unit/views/components/table_for_spec.rb +242 -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 +741 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"zh-TW":
|
|
2
|
+
active_admin:
|
|
3
|
+
dashboard: 儀表板
|
|
4
|
+
dashboard_welcome:
|
|
5
|
+
welcome: "歡迎來到 Active Admin 這是預設的儀表板頁面。"
|
|
6
|
+
call_to_action: "要新增儀表板內容,請查看 'app/admin/dashboard.rb'"
|
|
7
|
+
view: "檢視"
|
|
8
|
+
edit: "編輯"
|
|
9
|
+
delete: "刪除"
|
|
10
|
+
delete_confirmation: "你確定要刪除嗎?"
|
|
11
|
+
new_model: "新增 %{model}"
|
|
12
|
+
create_model: "新增 %{model}"
|
|
13
|
+
edit_model: "編輯 %{model}"
|
|
14
|
+
update_model: "編輯 %{model}"
|
|
15
|
+
delete_model: "刪除 %{model}"
|
|
16
|
+
details: "%{model} 明細"
|
|
17
|
+
cancel: "取消"
|
|
18
|
+
empty: "空的"
|
|
19
|
+
previous: "前一個"
|
|
20
|
+
next: "下一個"
|
|
21
|
+
download: "下載:"
|
|
22
|
+
has_many_new: "增加新的 %{model}"
|
|
23
|
+
has_many_delete: "刪除"
|
|
24
|
+
has_many_remove: "清除"
|
|
25
|
+
filters:
|
|
26
|
+
buttons:
|
|
27
|
+
filter: "篩選"
|
|
28
|
+
clear: "清除篩選條件"
|
|
29
|
+
predicates:
|
|
30
|
+
contains: "包含"
|
|
31
|
+
equals: "等於"
|
|
32
|
+
starts_with: "开头"
|
|
33
|
+
ends_with: "完与"
|
|
34
|
+
greater_than: "大於"
|
|
35
|
+
less_than: "小於"
|
|
36
|
+
main_content: "請編寫 %{model}#main_content 以顯示內容。"
|
|
37
|
+
logout: "登出"
|
|
38
|
+
powered_by: "Powered by %{active_admin} %{version}"
|
|
39
|
+
sidebars:
|
|
40
|
+
filters: "篩選條件"
|
|
41
|
+
pagination:
|
|
42
|
+
empty: "找不到 %{model} "
|
|
43
|
+
one: "顯示 <b>1</b> %{model}"
|
|
44
|
+
one_page: "顯示 <b>全部 %{n}</b> %{model}"
|
|
45
|
+
multiple: "總計 <b>%{total}</b> 顯示 %{model} 中<b>%{from} - %{to}</b> 筆"
|
|
46
|
+
multiple_without_total: "顯示 %{model} 中<b>%{from} - %{to}</b> 筆"
|
|
47
|
+
entry:
|
|
48
|
+
one: "筆"
|
|
49
|
+
other: "筆"
|
|
50
|
+
any: "任何"
|
|
51
|
+
blank_slate:
|
|
52
|
+
content: "尚無 %{resource_name}"
|
|
53
|
+
link: "建立一筆"
|
|
54
|
+
batch_actions:
|
|
55
|
+
button_label: "批次作業"
|
|
56
|
+
default_confirmation: "你確定你要這樣做?"
|
|
57
|
+
delete_confirmation: "您確定要刪除這些 %{plural_model} 嗎?"
|
|
58
|
+
succesfully_destroyed:
|
|
59
|
+
one: "成功刪除 1 %{model}"
|
|
60
|
+
other: "成功刪除 %{count} %{plural_model}"
|
|
61
|
+
selection_toggle_explanation: "(切換選取)"
|
|
62
|
+
link: "建立一個"
|
|
63
|
+
action_label: "%{title} 已選取"
|
|
64
|
+
labels:
|
|
65
|
+
destroy: "刪除"
|
|
66
|
+
comments:
|
|
67
|
+
body: "內文"
|
|
68
|
+
author: "作者"
|
|
69
|
+
title: "評論"
|
|
70
|
+
add: "新增評論"
|
|
71
|
+
resource: "資源"
|
|
72
|
+
no_comments_yet: "尚無評論"
|
|
73
|
+
title_content: "(%{count}) 則評論"
|
|
74
|
+
errors:
|
|
75
|
+
empty_text: "評論儲存失敗,不允許空白的內容。"
|
|
76
|
+
devise:
|
|
77
|
+
login:
|
|
78
|
+
title: "登錄"
|
|
79
|
+
remember_me: "記住我"
|
|
80
|
+
submit: "登錄"
|
|
81
|
+
reset_password:
|
|
82
|
+
title: "忘記密碼?"
|
|
83
|
+
submit: "重置密碼"
|
|
84
|
+
change_password:
|
|
85
|
+
title: "更改您的密碼"
|
|
86
|
+
submit: "更改我的密碼"
|
|
87
|
+
resend_confirmation_instructions:
|
|
88
|
+
title: '重新發送確認信'
|
|
89
|
+
submit: '重新發送確認信'
|
|
90
|
+
links:
|
|
91
|
+
sign_in: "登錄"
|
|
92
|
+
forgot_your_password: "忘記密碼?"
|
|
93
|
+
sign_in_with_omniauth_provider: "登入%{provider}"
|
|
94
|
+
|
data/cucumber.yml
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
default: --format 'progress' --require features/support/env.rb --require features/step_definitions features --tags ~@requires-reloading --tags ~@wip
|
|
2
|
+
wip: --format 'progress' --require features/support/env.rb --require features/step_definitions features --tags @wip:3 --wip features
|
|
3
|
+
class-reloading: RAILS_ENV=cucumber_with_reloading --format 'progress' --require features/support/env.rb --require features/step_definitions features --tags @requires-reloading
|
|
@@ -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 (one of the following):
|
|
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,138 @@
|
|
|
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
|
+
config.site_title_image = "http://www.google.com/images/logos/google_logo_41.png"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Internationalization (I18n)
|
|
43
|
+
|
|
44
|
+
To translate Active Admin to a new language or customize an existing translation, you can copy
|
|
45
|
+
[config/locales/en.yml](https://github.com/gregbell/active_admin/blob/master/config/locales/en.yml)
|
|
46
|
+
to your application's `config/locales` folder and update it. We welcome new/updated translations,
|
|
47
|
+
so feel free to [contribute!](https://github.com/gregbell/active_admin/blob/master/CONTRIBUTING.md)
|
|
48
|
+
|
|
49
|
+
## Namespaces
|
|
50
|
+
|
|
51
|
+
When registering resources in Active Admin, they are loaded into a namespace.
|
|
52
|
+
The default namespace is "admin".
|
|
53
|
+
|
|
54
|
+
```ruby
|
|
55
|
+
# app/admin/posts.rb
|
|
56
|
+
ActiveAdmin.register Post do
|
|
57
|
+
# ...
|
|
58
|
+
end
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The Post resource will be loaded into the "admin" namespace and will be
|
|
62
|
+
available at `/admin/posts`. Each namespace holds on to its own settings that
|
|
63
|
+
inherit from the application's configuration.
|
|
64
|
+
|
|
65
|
+
For example, if you have two namespaces (`:admin` and `:super_admin`) and want to
|
|
66
|
+
have different site title's for each, you can use the `config.namespace(name)`
|
|
67
|
+
block within the initializer file to configure them individually.
|
|
68
|
+
|
|
69
|
+
```ruby
|
|
70
|
+
ActiveAdmin.setup do |config|
|
|
71
|
+
config.site_title = "My Default Site Title"
|
|
72
|
+
|
|
73
|
+
config.namespace :admin do |admin|
|
|
74
|
+
admin.site_title = "Admin Site"
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
config.namespace :super_admin do |super_admin|
|
|
78
|
+
super_admin.site_title = "Super Admin Site"
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Each setting available in the Active Admin setup block is configurable on a per
|
|
84
|
+
namespace basis.
|
|
85
|
+
|
|
86
|
+
## Load paths
|
|
87
|
+
|
|
88
|
+
By default Active Admin files go inside `app/admin/`. You can change this
|
|
89
|
+
directory in the initializer file:
|
|
90
|
+
|
|
91
|
+
```ruby
|
|
92
|
+
ActiveAdmin.setup do |config|
|
|
93
|
+
config.load_paths = [File.join(Rails.root, "app", "ui")]
|
|
94
|
+
end
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Comments
|
|
98
|
+
|
|
99
|
+
By default Active Admin includes comments on resources. Sometimes, this is
|
|
100
|
+
undesired. To disable comments:
|
|
101
|
+
|
|
102
|
+
```ruby
|
|
103
|
+
# For the entire application:
|
|
104
|
+
ActiveAdmin.setup do |config|
|
|
105
|
+
config.allow_comments = false
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# For a namespace:
|
|
109
|
+
ActiveAdmin.setup do |config|
|
|
110
|
+
config.namespace :admin do |admin|
|
|
111
|
+
admin.allow_comments = false
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# For a given resource:
|
|
116
|
+
ActiveAdmin.register Post do
|
|
117
|
+
config.comments = false
|
|
118
|
+
end
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Utility Navigation
|
|
122
|
+
|
|
123
|
+
The "utility navigation" shown at the top right normally shows the current user
|
|
124
|
+
and a link to log out. However, the utility navigation is just like any other
|
|
125
|
+
menu in the system; you can provide your own menu to be rendered in its place.
|
|
126
|
+
|
|
127
|
+
```ruby
|
|
128
|
+
ActiveAdmin.setup do |config|
|
|
129
|
+
config.namespace :admin do |admin|
|
|
130
|
+
admin.build_menu :utility_navigation do |menu|
|
|
131
|
+
menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info",
|
|
132
|
+
html_options: { target: :blank }
|
|
133
|
+
admin.add_current_user_to_menu menu
|
|
134
|
+
admin.add_logout_button_to_menu menu
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
```
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Custom Pages
|
|
2
|
+
|
|
3
|
+
If you have data you want on a standalone page that isn't tied to a resource,
|
|
4
|
+
custom pages provide you with a familiar syntax and feature set:
|
|
5
|
+
|
|
6
|
+
* a menu item
|
|
7
|
+
* sidebars
|
|
8
|
+
* action items
|
|
9
|
+
* page actions
|
|
10
|
+
|
|
11
|
+
## Create a new Page
|
|
12
|
+
|
|
13
|
+
Creating a page is as simple as calling `register_page`:
|
|
14
|
+
|
|
15
|
+
```ruby
|
|
16
|
+
# app/admin/calendar.rb
|
|
17
|
+
ActiveAdmin.register_page "Calendar" do
|
|
18
|
+
content do
|
|
19
|
+
para "Hello World"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Anything rendered within `content` will be the main content on the page.
|
|
25
|
+
Partials behave exactly the same way as they do for resources:
|
|
26
|
+
|
|
27
|
+
```ruby
|
|
28
|
+
# app/admin/calendar.rb
|
|
29
|
+
ActiveAdmin.register_page "Calendar" do
|
|
30
|
+
content do
|
|
31
|
+
render partial: 'calendar'
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# app/views/admin/calendar/_calendar.html.arb
|
|
36
|
+
table do
|
|
37
|
+
thead do
|
|
38
|
+
tr do
|
|
39
|
+
%w[Sunday Monday Tuesday Wednesday Thursday Friday Saturday].each &method(:th)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
tbody do
|
|
43
|
+
# ...
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Customize the Menu
|
|
49
|
+
|
|
50
|
+
See the [Menu](2-resource-customization.md#customize-the-menu) documentation.
|
|
51
|
+
|
|
52
|
+
## Add a Sidebar
|
|
53
|
+
|
|
54
|
+
See the [Sidebars](7-sidebars.md) documentation.
|
|
55
|
+
|
|
56
|
+
## Add an Action Item
|
|
57
|
+
|
|
58
|
+
Just like other resources, you can add action items. The difference here being that
|
|
59
|
+
`:only` and `:except` don't apply because there's only one page it could apply to.
|
|
60
|
+
|
|
61
|
+
```ruby
|
|
62
|
+
action_item do
|
|
63
|
+
link_to "View Site", "/"
|
|
64
|
+
end
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Add a Page Action
|
|
68
|
+
|
|
69
|
+
Page actions are custom controller actions (which mirror the resource DSL for the same feature).
|
|
70
|
+
|
|
71
|
+
```ruby
|
|
72
|
+
page_action :add_event, method: :post do
|
|
73
|
+
# ...
|
|
74
|
+
redirect_to admin_calendar_path, notice: "Your event was added"
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
action_item do
|
|
78
|
+
link_to "Add Event", admin_calendar_add_event_path, method: :post
|
|
79
|
+
end
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
This defines the route `/admin/calendar/add_event` which can handle HTTP POST requests.
|
|
83
|
+
|
|
84
|
+
Clicking on the action item will reload page and display the message "Your event was added"
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Decorators
|
|
2
|
+
|
|
3
|
+
Active Admin allows you to use the decorator pattern to provide view-specific
|
|
4
|
+
versions of a resource. [Draper](https://github.com/drapergem/draper) is
|
|
5
|
+
recommended but not required.
|
|
6
|
+
|
|
7
|
+
## Example usage
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
# app/models/post.rb
|
|
11
|
+
class Post < ActiveRecord::Base
|
|
12
|
+
# has title, content, and image_url
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# app/decorators/post_decorator.rb
|
|
16
|
+
class PostDecorator < ApplicationDecorator
|
|
17
|
+
delegate_all
|
|
18
|
+
|
|
19
|
+
def image
|
|
20
|
+
h.image_tag model.image_url
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# app/admin/post.rb
|
|
25
|
+
ActiveAdmin.register Post do
|
|
26
|
+
decorate_with PostDecorator
|
|
27
|
+
|
|
28
|
+
index do
|
|
29
|
+
column :title
|
|
30
|
+
column :image
|
|
31
|
+
actions
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Forms
|
|
37
|
+
|
|
38
|
+
By default, ActiveAdmin does *not* decorate the resource used to render forms.
|
|
39
|
+
If you need ActiveAdmin to decorate the forms, you can pass `decorate: true` to the
|
|
40
|
+
form block.
|
|
41
|
+
|
|
42
|
+
```ruby
|
|
43
|
+
ActiveAdmin.register Post do
|
|
44
|
+
decorate_with PostDecorator
|
|
45
|
+
|
|
46
|
+
form decorate: true do |f|
|
|
47
|
+
# ...
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
```
|