activeadmin-orac 1.0.0.pre4
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 +15 -0
- data/.gitignore +49 -0
- data/.hound.yml +14 -0
- data/.travis.yml +40 -0
- data/.yardopts +8 -0
- data/CHANGELOG.md +120 -0
- data/CODE_OF_CONDUCT.md +22 -0
- data/CONTRIBUTING.md +144 -0
- data/Gemfile +78 -0
- data/Guardfile +8 -0
- data/LICENSE +20 -0
- data/README.md +102 -0
- data/Rakefile +33 -0
- data/activeadmin.gemspec +31 -0
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +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/base.js.coffee +9 -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/initializers/batch_actions.js.coffee +7 -0
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +10 -0
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +22 -0
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +3 -0
- data/app/assets/javascripts/active_admin/jquery_ui.js.erb +11 -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 +44 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +101 -0
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +45 -0
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +42 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +24 -0
- data/app/assets/stylesheets/active_admin/_base.scss +41 -0
- data/app/assets/stylesheets/active_admin/_forms.scss +333 -0
- data/app/assets/stylesheets/active_admin/_header.scss +156 -0
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -0
- data/app/assets/stylesheets/active_admin/_typography.scss +100 -0
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +30 -0
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_comments.scss +41 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.scss +149 -0
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +152 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -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 +34 -0
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +44 -0
- data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -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.scss +67 -0
- data/app/assets/stylesheets/active_admin/components/_tables.scss +110 -0
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
- data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +10 -0
- data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +65 -0
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
- data/app/assets/stylesheets/active_admin/mixins/_reset.scss +165 -0
- data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
- data/app/assets/stylesheets/active_admin/mixins/_sections.scss +41 -0
- data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +15 -0
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +17 -0
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +34 -0
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
- data/app/assets/stylesheets/active_admin/print.scss +288 -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 +41 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +15 -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 +18 -0
- data/app/views/active_admin/devise/passwords/new.html.erb +15 -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 +15 -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.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 +39 -0
- data/config/locales/ar.yml +136 -0
- data/config/locales/bg.yml +121 -0
- data/config/locales/bs.yml +122 -0
- data/config/locales/ca.yml +107 -0
- data/config/locales/cs.yml +110 -0
- data/config/locales/da.yml +106 -0
- data/config/locales/de-CH.yml +102 -0
- data/config/locales/de.yml +135 -0
- data/config/locales/el.yml +127 -0
- data/config/locales/en-GB.yml +98 -0
- data/config/locales/en.yml +136 -0
- data/config/locales/es-MX.yml +94 -0
- data/config/locales/es.yml +136 -0
- data/config/locales/fa.yml +120 -0
- data/config/locales/fi.yml +113 -0
- data/config/locales/fr.yml +119 -0
- data/config/locales/he.yml +95 -0
- data/config/locales/hr.yml +124 -0
- data/config/locales/hu.yml +99 -0
- data/config/locales/id.yml +136 -0
- data/config/locales/it.yml +136 -0
- data/config/locales/ja.yml +136 -0
- data/config/locales/ko.yml +121 -0
- data/config/locales/lt.yml +121 -0
- data/config/locales/lv.yml +93 -0
- data/config/locales/nb.yml +121 -0
- data/config/locales/nl.yml +134 -0
- data/config/locales/pl.yml +98 -0
- data/config/locales/pt-BR.yml +136 -0
- data/config/locales/pt-PT.yml +93 -0
- data/config/locales/ro.yml +97 -0
- data/config/locales/ru.yml +140 -0
- data/config/locales/sv-SE.yml +134 -0
- data/config/locales/tr.yml +136 -0
- data/config/locales/uk.yml +137 -0
- data/config/locales/vi.yml +94 -0
- data/config/locales/zh-CN.yml +112 -0
- data/config/locales/zh-TW.yml +136 -0
- data/cucumber.yml +3 -0
- data/docs/0-installation.md +112 -0
- data/docs/1-general-configuration.md +171 -0
- data/docs/10-custom-pages.md +106 -0
- data/docs/11-decorators.md +55 -0
- data/docs/12-arbre-components.md +150 -0
- data/docs/13-authorization-adapter.md +248 -0
- data/docs/14-gotchas.md +116 -0
- data/docs/2-resource-customization.md +422 -0
- data/docs/3-index-pages.md +272 -0
- data/docs/3-index-pages/custom-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 +213 -0
- data/docs/4-csv-format.md +58 -0
- data/docs/5-forms.md +172 -0
- data/docs/6-show-pages.md +105 -0
- data/docs/7-sidebars.md +71 -0
- data/docs/8-custom-actions.md +160 -0
- data/docs/9-batch-actions.md +233 -0
- data/docs/README.md +24 -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 +171 -0
- data/features/comments/viewing_index.feature +19 -0
- data/features/dashboard.feature +16 -0
- data/features/decorators.feature +43 -0
- data/features/development_reloading.feature +30 -0
- data/features/edit_page.feature +117 -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 +196 -0
- data/features/index/filters.feature +161 -0
- data/features/index/format_as_csv.feature +203 -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 +291 -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 +42 -0
- data/features/index/pagination.feature +63 -0
- data/features/index/switch_index_view.feature +73 -0
- data/features/menu.feature +53 -0
- data/features/meta_tags.feature +21 -0
- data/features/new_page.feature +109 -0
- data/features/registering_assets.feature +34 -0
- data/features/registering_pages.feature +148 -0
- data/features/registering_resources.feature +33 -0
- data/features/renamed_resource.feature +32 -0
- data/features/root_to.feature +17 -0
- data/features/show/columns.feature +40 -0
- data/features/show/default_content.feature +44 -0
- data/features/show/page_title.feature +59 -0
- data/features/show/tabs.feature +27 -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 +20 -0
- data/features/step_definitions/additional_web_steps.rb +81 -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 +81 -0
- data/features/step_definitions/blog_steps.rb +3 -0
- data/features/step_definitions/breadcrumb_steps.rb +3 -0
- data/features/step_definitions/column_steps.rb +8 -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 +35 -0
- data/features/step_definitions/filter_steps.rb +39 -0
- data/features/step_definitions/flash_steps.rb +11 -0
- data/features/step_definitions/format_steps.rb +52 -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/meta_tag_steps.rb +3 -0
- data/features/step_definitions/pagination_steps.rb +15 -0
- data/features/step_definitions/sidebar_steps.rb +13 -0
- data/features/step_definitions/site_title_steps.rb +17 -0
- data/features/step_definitions/symbol_leak_steps.rb +3 -0
- data/features/step_definitions/tab_steps.rb +8 -0
- data/features/step_definitions/table_steps.rb +116 -0
- data/features/step_definitions/user_steps.rb +52 -0
- data/features/step_definitions/web_steps.rb +85 -0
- data/features/sti_resource.feature +65 -0
- data/features/strong_parameters.feature +73 -0
- data/features/support/env.rb +162 -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 +36 -0
- data/features/users/logging_out.feature +13 -0
- data/features/users/resetting_password.feature +34 -0
- data/lib/active_admin.rb +130 -0
- data/lib/active_admin/abstract_view_factory.rb +85 -0
- data/lib/active_admin/application.rb +324 -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 +87 -0
- data/lib/active_admin/base_controller/authorization.rb +130 -0
- data/lib/active_admin/base_controller/menu.rb +38 -0
- data/lib/active_admin/batch_actions.rb +16 -0
- data/lib/active_admin/batch_actions/controller.rb +40 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +159 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +38 -0
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +58 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
- data/lib/active_admin/callbacks.rb +88 -0
- data/lib/active_admin/cancan_adapter.rb +36 -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 +129 -0
- data/lib/active_admin/dependency.rb +168 -0
- data/lib/active_admin/deprecation.rb +35 -0
- data/lib/active_admin/devise.rb +80 -0
- data/lib/active_admin/dsl.rb +173 -0
- data/lib/active_admin/engine.rb +16 -0
- data/lib/active_admin/error.rb +62 -0
- data/lib/active_admin/event.rb +24 -0
- data/lib/active_admin/filters.rb +9 -0
- data/lib/active_admin/filters/active.rb +30 -0
- data/lib/active_admin/filters/dsl.rb +21 -0
- data/lib/active_admin/filters/forms.rb +83 -0
- data/lib/active_admin/filters/formtastic_addons.rb +79 -0
- data/lib/active_admin/filters/humanized.rb +68 -0
- data/lib/active_admin/filters/resource_extension.rb +194 -0
- data/lib/active_admin/form_builder.rb +145 -0
- data/lib/active_admin/generators/boilerplate.rb +45 -0
- data/lib/active_admin/helpers/collection.rb +17 -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/routes/url_helpers.rb +15 -0
- data/lib/active_admin/helpers/scope_chain.rb +23 -0
- data/lib/active_admin/helpers/settings.rb +115 -0
- data/lib/active_admin/inputs.rb +20 -0
- data/lib/active_admin/inputs/datepicker_input.rb +20 -0
- data/lib/active_admin/inputs/filters/base.rb +44 -0
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
- data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
- data/lib/active_admin/inputs/filters/date_picker_input.rb +13 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
- data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
- data/lib/active_admin/inputs/filters/select_input.rb +55 -0
- data/lib/active_admin/inputs/filters/string_input.rb +26 -0
- data/lib/active_admin/menu.rb +108 -0
- data/lib/active_admin/menu_collection.rb +93 -0
- data/lib/active_admin/menu_item.rb +97 -0
- data/lib/active_admin/namespace.rb +247 -0
- data/lib/active_admin/order_clause.rb +26 -0
- data/lib/active_admin/orm/active_record.rb +5 -0
- data/lib/active_admin/orm/active_record/comments.rb +95 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +45 -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 +88 -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 +92 -0
- data/lib/active_admin/page_controller.rb +33 -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 +68 -0
- data/lib/active_admin/reloader.rb +25 -0
- data/lib/active_admin/resource.rb +168 -0
- data/lib/active_admin/resource/action_items.rb +108 -0
- data/lib/active_admin/resource/belongs_to.rb +44 -0
- data/lib/active_admin/resource/controllers.rb +19 -0
- data/lib/active_admin/resource/includes.rb +12 -0
- data/lib/active_admin/resource/menu.rb +64 -0
- data/lib/active_admin/resource/naming.rb +62 -0
- data/lib/active_admin/resource/page_presenters.rb +82 -0
- data/lib/active_admin/resource/pagination.rb +23 -0
- data/lib/active_admin/resource/routes.rb +115 -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 +72 -0
- data/lib/active_admin/resource_controller.rb +51 -0
- data/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/lib/active_admin/resource_controller/data_access.rb +317 -0
- data/lib/active_admin/resource_controller/decorators.rb +102 -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/streaming.rb +43 -0
- data/lib/active_admin/resource_dsl.rb +190 -0
- data/lib/active_admin/router.rb +106 -0
- data/lib/active_admin/scope.rb +56 -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.rb +19 -0
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +45 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +33 -0
- data/lib/active_admin/view_helpers/display_helper.rb +97 -0
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +46 -0
- data/lib/active_admin/view_helpers/fields_for.rb +51 -0
- data/lib/active_admin/view_helpers/flash_helper.rb +14 -0
- data/lib/active_admin/view_helpers/form_helper.rb +20 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +97 -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/active_admin_form.rb +124 -0
- data/lib/active_admin/views/components/attributes_table.rb +94 -0
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +161 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +71 -0
- data/lib/active_admin/views/components/index_list.rb +68 -0
- data/lib/active_admin/views/components/paginated_collection.rb +163 -0
- data/lib/active_admin/views/components/panel.rb +38 -0
- data/lib/active_admin/views/components/scopes.rb +66 -0
- data/lib/active_admin/views/components/sidebar_section.rb +34 -0
- data/lib/active_admin/views/components/site_title.rb +55 -0
- data/lib/active_admin/views/components/status_tag.rb +80 -0
- data/lib/active_admin/views/components/table_for.rb +218 -0
- data/lib/active_admin/views/components/tabs.rb +28 -0
- data/lib/active_admin/views/components/unsupported_browser.rb +11 -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 +373 -0
- data/lib/active_admin/views/pages/base.rb +147 -0
- data/lib/active_admin/views/pages/form.rb +65 -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 +66 -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 +14 -0
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
- data/lib/generators/active_admin/assets/templates/active_admin.scss +17 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +65 -0
- data/lib/generators/active_admin/install/install_generator.rb +45 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +272 -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/page/USAGE +8 -0
- data/lib/generators/active_admin/page/page_generator.rb +12 -0
- data/lib/generators/active_admin/page/templates/page.rb +5 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +20 -0
- data/lib/generators/active_admin/resource/templates/admin.rb +45 -0
- data/lib/ransack_ext.rb +20 -0
- data/script/local +53 -0
- data/script/travis_cache +107 -0
- data/script/use_rails +53 -0
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
- data/spec/javascripts/fixtures/checkboxes.html +9 -0
- data/spec/javascripts/fixtures/flashes.html +2 -0
- data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
- data/spec/javascripts/helpers/SpecHelper.js +3 -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/rails_helper.rb +161 -0
- data/spec/requests/default_namespace_spec.rb +61 -0
- data/spec/requests/javascript_spec.rb +22 -0
- data/spec/requests/memory_spec.rb +21 -0
- data/spec/requests/stylesheets_spec.rb +18 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/support/active_admin_request_helpers.rb +27 -0
- data/spec/support/deferred_garbage_collection.rb +19 -0
- data/spec/support/detect_rails_version.rb +34 -0
- data/spec/support/jslint.yml +80 -0
- data/spec/support/rails_template.rb +162 -0
- data/spec/support/rails_template_with_data.rb +74 -0
- data/spec/support/templates/admin/stores.rb +9 -0
- data/spec/support/templates/en.yml +8 -0
- data/spec/support/templates/manifest.js +3 -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 +134 -0
- data/spec/unit/active_admin_spec.rb +11 -0
- data/spec/unit/application_spec.rb +165 -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/authorization/index_overriding_spec.rb +23 -0
- data/spec/unit/auto_link_spec.rb +69 -0
- data/spec/unit/batch_actions/resource_spec.rb +97 -0
- data/spec/unit/batch_actions/settings_spec.rb +61 -0
- data/spec/unit/belongs_to_spec.rb +65 -0
- data/spec/unit/cancan_adapter_spec.rb +43 -0
- data/spec/unit/comments_spec.rb +188 -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 +41 -0
- data/spec/unit/csv_builder_spec.rb +303 -0
- data/spec/unit/dependency_spec.rb +135 -0
- data/spec/unit/devise_spec.rb +96 -0
- data/spec/unit/dsl_spec.rb +122 -0
- data/spec/unit/filters/filter_form_builder_spec.rb +434 -0
- data/spec/unit/filters/humanized_spec.rb +64 -0
- data/spec/unit/filters/resource_spec.rb +128 -0
- data/spec/unit/form_builder_spec.rb +932 -0
- data/spec/unit/generators/install_spec.rb +24 -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/i18n_spec.rb +12 -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 +73 -0
- data/spec/unit/namespace/register_resource_spec.rb +160 -0
- data/spec/unit/namespace_spec.rb +103 -0
- data/spec/unit/order_clause_spec.rb +81 -0
- data/spec/unit/page_controller_spec.rb +5 -0
- data/spec/unit/page_spec.rb +78 -0
- data/spec/unit/pretty_format_spec.rb +77 -0
- data/spec/unit/pundit_adapter_spec.rb +98 -0
- data/spec/unit/resource/action_items_spec.rb +65 -0
- data/spec/unit/resource/includes_spec.rb +21 -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 +77 -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 +175 -0
- data/spec/unit/resource_controller/data_access_spec.rb +140 -0
- data/spec/unit/resource_controller/decorators_spec.rb +94 -0
- data/spec/unit/resource_controller/sidebars_spec.rb +38 -0
- data/spec/unit/resource_controller_spec.rb +269 -0
- data/spec/unit/resource_registration_spec.rb +56 -0
- data/spec/unit/resource_spec.rb +337 -0
- data/spec/unit/routing_spec.rb +185 -0
- data/spec/unit/scope_spec.rb +185 -0
- data/spec/unit/settings_spec.rb +118 -0
- data/spec/unit/view_factory_spec.rb +19 -0
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +217 -0
- data/spec/unit/view_helpers/display_helper_spec.rb +165 -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/flash_helper_spec.rb +25 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +43 -0
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +139 -0
- data/spec/unit/views/components/attributes_table_spec.rb +272 -0
- data/spec/unit/views/components/batch_action_selector_spec.rb +43 -0
- data/spec/unit/views/components/blank_slate_spec.rb +27 -0
- data/spec/unit/views/components/columns_spec.rb +189 -0
- data/spec/unit/views/components/index_list_spec.rb +35 -0
- data/spec/unit/views/components/index_table_for_spec.rb +127 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +249 -0
- data/spec/unit/views/components/panel_spec.rb +58 -0
- data/spec/unit/views/components/sidebar_section_spec.rb +68 -0
- data/spec/unit/views/components/site_title_spec.rb +78 -0
- data/spec/unit/views/components/status_tag_spec.rb +249 -0
- data/spec/unit/views/components/table_for_spec.rb +434 -0
- data/spec/unit/views/components/tabs_spec.rb +39 -0
- data/spec/unit/views/components/unsupported_browser_spec.rb +41 -0
- data/spec/unit/views/index_as_blog_spec.rb +76 -0
- data/spec/unit/views/pages/form_spec.rb +51 -0
- data/spec/unit/views/pages/index_spec.rb +60 -0
- data/spec/unit/views/pages/layout_spec.rb +59 -0
- data/spec/unit/views/pages/show_spec.rb +33 -0
- data/spec/unit/views/tabbed_navigation_spec.rb +158 -0
- data/tasks/docs.rake +37 -0
- data/tasks/parallel_tests.rake +66 -0
- data/tasks/test.rake +91 -0
- data/tasks/yard.rake +9 -0
- metadata +974 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
module ActiveAdmin
|
|
2
|
+
module Dependency
|
|
3
|
+
module Requirements
|
|
4
|
+
DEVISE = '>= 3.2', '< 5'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
# Provides a clean interface to check for gem dependencies at runtime.
|
|
8
|
+
#
|
|
9
|
+
# ActiveAdmin::Dependency.draper
|
|
10
|
+
# => #<ActiveAdmin::Dependency::Matcher for draper 1.2.1>
|
|
11
|
+
#
|
|
12
|
+
# ActiveAdmin::Dependency.draper?
|
|
13
|
+
# => true
|
|
14
|
+
#
|
|
15
|
+
# ActiveAdmin::Dependency.draper? '>= 1.5.0'
|
|
16
|
+
# => false
|
|
17
|
+
#
|
|
18
|
+
# ActiveAdmin::Dependency.draper? '= 1.2.1'
|
|
19
|
+
# => true
|
|
20
|
+
#
|
|
21
|
+
# ActiveAdmin::Dependency.draper? '~> 1.2.0'
|
|
22
|
+
# => true
|
|
23
|
+
#
|
|
24
|
+
# ActiveAdmin::Dependency.rails? '>= 4.1.0', '<= 4.1.1'
|
|
25
|
+
# => true
|
|
26
|
+
#
|
|
27
|
+
# ActiveAdmin::Dependency.rails! '2'
|
|
28
|
+
# -> ActiveAdmin::DependencyError: You provided rails 3.2.18 but we need: 2.
|
|
29
|
+
#
|
|
30
|
+
# ActiveAdmin::Dependency.devise!
|
|
31
|
+
# -> ActiveAdmin::DependencyError: To use devise you need to specify it in your Gemfile.
|
|
32
|
+
#
|
|
33
|
+
#
|
|
34
|
+
# All but the pessimistic operator (~>) can also be run using Ruby's comparison syntax.
|
|
35
|
+
#
|
|
36
|
+
# ActiveAdmin::Dependency.rails >= '3.2.18'
|
|
37
|
+
# => true
|
|
38
|
+
#
|
|
39
|
+
# Which is especially useful if you're looking up a gem with dashes in the name.
|
|
40
|
+
#
|
|
41
|
+
# ActiveAdmin::Dependency['jquery-ui-rails'] < 5
|
|
42
|
+
# => false
|
|
43
|
+
#
|
|
44
|
+
def self.method_missing(name, *args)
|
|
45
|
+
if name[-1] == '?'
|
|
46
|
+
Matcher.new(name[0..-2]).match? args
|
|
47
|
+
elsif name[-1] == '!'
|
|
48
|
+
Matcher.new(name[0..-2]).match! args
|
|
49
|
+
else
|
|
50
|
+
Matcher.new name.to_s
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def self.[](name)
|
|
55
|
+
Matcher.new name.to_s
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def self.rails5?
|
|
59
|
+
rails >= '5.x'
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
class Matcher
|
|
63
|
+
attr_reader :name
|
|
64
|
+
|
|
65
|
+
def initialize(name)
|
|
66
|
+
@name = name
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def spec
|
|
70
|
+
@spec ||= Gem.loaded_specs[name]
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def spec!
|
|
74
|
+
spec || raise(DependencyError, "To use #{name} you need to specify it in your Gemfile.")
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def match?(*reqs)
|
|
78
|
+
!!spec && Gem::Requirement.create(reqs).satisfied_by?(spec.version)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def match!(*reqs)
|
|
82
|
+
unless match? reqs
|
|
83
|
+
raise DependencyError, "You provided #{spec!.name} #{spec!.version} but we need: #{reqs.join ', '}."
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
include Comparable
|
|
88
|
+
|
|
89
|
+
def <=>(other)
|
|
90
|
+
spec!.version <=> Gem::Version.create(other)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def inspect
|
|
94
|
+
info = spec ? "#{spec.name} #{spec.version}" : '(missing)'
|
|
95
|
+
"<ActiveAdmin::Dependency::Matcher for #{info}>"
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def adapter
|
|
99
|
+
@adapter ||= Adapter.const_get(@name.camelize).new self
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def method_missing(method, *args, &block)
|
|
103
|
+
if respond_to_missing?(method)
|
|
104
|
+
adapter.send method, *args, &block
|
|
105
|
+
else
|
|
106
|
+
super
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def respond_to_missing?(method, include_private = false)
|
|
111
|
+
adapter.respond_to?(method) || super
|
|
112
|
+
rescue NameError
|
|
113
|
+
# 🐾
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# Dependency adapters provide an easy way to wrap the conditional logic
|
|
118
|
+
# necessary to support multiple versions of a gem.
|
|
119
|
+
#
|
|
120
|
+
# ActiveAdmin::Dependency.rails.adapter.parameterize 'a b'
|
|
121
|
+
# => 'a_b'
|
|
122
|
+
#
|
|
123
|
+
# ActiveAdmin::Dependency.rails.parameterize 'a b'
|
|
124
|
+
# => 'a_b'
|
|
125
|
+
#
|
|
126
|
+
# ActiveAdmin::Dependency.devise.adapter
|
|
127
|
+
# -> NameError: uninitialized constant ActiveAdmin::Dependency::Adapter::Devise
|
|
128
|
+
#
|
|
129
|
+
module Adapter
|
|
130
|
+
class Base
|
|
131
|
+
def initialize(version)
|
|
132
|
+
@version = version
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
class Rails < Base
|
|
137
|
+
def strong_parameters?
|
|
138
|
+
@version >= 4 || defined?(ActionController::StrongParameters)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def parameterize(string)
|
|
142
|
+
if Dependency.rails5?
|
|
143
|
+
string.parameterize separator: '_'
|
|
144
|
+
else
|
|
145
|
+
string.parameterize '_'
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def redirect_back(controller, fallback_location)
|
|
150
|
+
controller.instance_exec do
|
|
151
|
+
if Dependency.rails5?
|
|
152
|
+
redirect_back fallback_location: fallback_location
|
|
153
|
+
elsif controller.request.headers.key? 'HTTP_REFERER'
|
|
154
|
+
redirect_to :back
|
|
155
|
+
else
|
|
156
|
+
redirect_to fallback_location
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def render_key
|
|
162
|
+
Dependency.rails5? ? :body : :text
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
end
|
|
168
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module ActiveAdmin
|
|
2
|
+
module Deprecation
|
|
3
|
+
module_function
|
|
4
|
+
|
|
5
|
+
def warn(message, callstack = caller)
|
|
6
|
+
ActiveSupport::Deprecation.warn "Active Admin: #{message}", callstack
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
# Deprecate a method.
|
|
10
|
+
#
|
|
11
|
+
# @param [Module] klass the Class or Module to deprecate the method on
|
|
12
|
+
# @param [Symbol] method the method to deprecate
|
|
13
|
+
# @param [String] message the message to display to the end user
|
|
14
|
+
#
|
|
15
|
+
# Example:
|
|
16
|
+
#
|
|
17
|
+
# class MyClass
|
|
18
|
+
# def my_method
|
|
19
|
+
# # ...
|
|
20
|
+
# end
|
|
21
|
+
# ActiveAdmin::Deprecation.deprecate self, :my_method,
|
|
22
|
+
# "MyClass#my_method is being removed in the next release"
|
|
23
|
+
# end
|
|
24
|
+
#
|
|
25
|
+
def deprecate(klass, method, message)
|
|
26
|
+
klass.send :define_method, "deprecated_#{method}", klass.instance_method(method)
|
|
27
|
+
|
|
28
|
+
klass.send :define_method, method do |*args|
|
|
29
|
+
ActiveAdmin::Deprecation.warn "#{message}", caller
|
|
30
|
+
send "deprecated_#{method}", *args
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
ActiveAdmin::Dependency.devise! ActiveAdmin::Dependency::Requirements::DEVISE
|
|
2
|
+
|
|
3
|
+
require 'devise'
|
|
4
|
+
|
|
5
|
+
module ActiveAdmin
|
|
6
|
+
module Devise
|
|
7
|
+
|
|
8
|
+
def self.config
|
|
9
|
+
{
|
|
10
|
+
path: ActiveAdmin.application.default_namespace || "/",
|
|
11
|
+
controllers: ActiveAdmin::Devise.controllers,
|
|
12
|
+
path_names: { sign_in: 'login', sign_out: "logout" },
|
|
13
|
+
sign_out_via: [*::Devise.sign_out_via, ActiveAdmin.application.logout_link_method].uniq
|
|
14
|
+
}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.controllers
|
|
18
|
+
{
|
|
19
|
+
sessions: "active_admin/devise/sessions",
|
|
20
|
+
passwords: "active_admin/devise/passwords",
|
|
21
|
+
unlocks: "active_admin/devise/unlocks",
|
|
22
|
+
registrations: "active_admin/devise/registrations",
|
|
23
|
+
confirmations: "active_admin/devise/confirmations"
|
|
24
|
+
}
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
module Controller
|
|
28
|
+
extend ::ActiveSupport::Concern
|
|
29
|
+
included do
|
|
30
|
+
layout 'active_admin_logged_out'
|
|
31
|
+
helper ::ActiveAdmin::ViewHelpers
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Redirect to the default namespace on logout
|
|
35
|
+
def root_path
|
|
36
|
+
namespace = ActiveAdmin.application.default_namespace.presence
|
|
37
|
+
root_path_method = [namespace, :root_path].compact.join('_')
|
|
38
|
+
|
|
39
|
+
path = if Helpers::Routes.respond_to? root_path_method
|
|
40
|
+
Helpers::Routes.send root_path_method
|
|
41
|
+
else
|
|
42
|
+
# Guess a root_path when url_helpers not helpful
|
|
43
|
+
"/#{namespace}"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# NOTE: `relative_url_root` is deprecated by rails.
|
|
47
|
+
# Remove prefix here if it is removed completely.
|
|
48
|
+
prefix = Rails.configuration.action_controller[:relative_url_root] || ''
|
|
49
|
+
prefix + path
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class SessionsController < ::Devise::SessionsController
|
|
54
|
+
include ::ActiveAdmin::Devise::Controller
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
class PasswordsController < ::Devise::PasswordsController
|
|
58
|
+
include ::ActiveAdmin::Devise::Controller
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
class UnlocksController < ::Devise::UnlocksController
|
|
62
|
+
include ::ActiveAdmin::Devise::Controller
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
class RegistrationsController < ::Devise::RegistrationsController
|
|
66
|
+
include ::ActiveAdmin::Devise::Controller
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
class ConfirmationsController < ::Devise::ConfirmationsController
|
|
70
|
+
include ::ActiveAdmin::Devise::Controller
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def self.controllers_for_filters
|
|
74
|
+
[SessionsController, PasswordsController, UnlocksController,
|
|
75
|
+
RegistrationsController, ConfirmationsController
|
|
76
|
+
]
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
module ActiveAdmin
|
|
2
|
+
|
|
3
|
+
# The Active Admin DSL. This class is where all the registration blocks
|
|
4
|
+
# are evaluated. This is the central place for the API given to
|
|
5
|
+
# users of Active Admin.
|
|
6
|
+
#
|
|
7
|
+
class DSL
|
|
8
|
+
|
|
9
|
+
def initialize(config)
|
|
10
|
+
@config = config
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Runs the registration block inside this object
|
|
14
|
+
def run_registration_block(&block)
|
|
15
|
+
instance_exec &block if block_given?
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# The instance of ActiveAdmin::Resource that's being registered
|
|
19
|
+
# currently. You can use this within your registration blocks to
|
|
20
|
+
# modify options:
|
|
21
|
+
#
|
|
22
|
+
# eg:
|
|
23
|
+
#
|
|
24
|
+
# ActiveAdmin.register Post do
|
|
25
|
+
# config.sort_order = "id_desc"
|
|
26
|
+
# end
|
|
27
|
+
#
|
|
28
|
+
def config
|
|
29
|
+
@config
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Include a module with this resource. The modules's `included` method
|
|
33
|
+
# is called with the instance of the `ActiveAdmin::DSL` passed into it.
|
|
34
|
+
#
|
|
35
|
+
# eg:
|
|
36
|
+
#
|
|
37
|
+
# module HelpSidebar
|
|
38
|
+
#
|
|
39
|
+
# def self.included(dsl)
|
|
40
|
+
# dsl.sidebar "Help" do
|
|
41
|
+
# "Call us for Help"
|
|
42
|
+
# end
|
|
43
|
+
# end
|
|
44
|
+
#
|
|
45
|
+
# end
|
|
46
|
+
#
|
|
47
|
+
# ActiveAdmin.register Post do
|
|
48
|
+
# include HelpSidebar
|
|
49
|
+
# end
|
|
50
|
+
#
|
|
51
|
+
# @param [Module] mod A module to include
|
|
52
|
+
#
|
|
53
|
+
# @return [Nil]
|
|
54
|
+
def include(mod)
|
|
55
|
+
mod.included(self)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Returns the controller for this resource. If you pass a
|
|
59
|
+
# block, it will be evaluated in the controller.
|
|
60
|
+
#
|
|
61
|
+
# Example:
|
|
62
|
+
#
|
|
63
|
+
# ActiveAdmin.register Post do
|
|
64
|
+
#
|
|
65
|
+
# controller do
|
|
66
|
+
# def some_method_on_controller
|
|
67
|
+
# # Method gets added to Admin::PostsController
|
|
68
|
+
# end
|
|
69
|
+
# end
|
|
70
|
+
#
|
|
71
|
+
# end
|
|
72
|
+
#
|
|
73
|
+
def controller(&block)
|
|
74
|
+
@config.controller.class_exec(&block) if block_given?
|
|
75
|
+
@config.controller
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Add a new action item to the resource
|
|
79
|
+
#
|
|
80
|
+
# @param [Symbol] name
|
|
81
|
+
# @param [Hash] options valid keys include:
|
|
82
|
+
# :only: A single or array of controller actions to display
|
|
83
|
+
# this action item on.
|
|
84
|
+
# :except: A single or array of controller actions not to
|
|
85
|
+
# display this action item on.
|
|
86
|
+
def action_item(name = nil, options = {}, &block)
|
|
87
|
+
if name.is_a?(Hash)
|
|
88
|
+
options = name
|
|
89
|
+
name = nil
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
Deprecation.warn "using `action_item` without a name is deprecated! Use `action_item(:edit)`." unless name
|
|
93
|
+
|
|
94
|
+
config.add_action_item(name, options, &block)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Add a new batch action item to the resource
|
|
98
|
+
# Provide a symbol/string to register the action, options, & block to execute on request
|
|
99
|
+
#
|
|
100
|
+
# To unregister an existing action, just provide the symbol & pass false as the second param
|
|
101
|
+
#
|
|
102
|
+
# @param [Symbol or String] title
|
|
103
|
+
# @param [Hash] options valid keys include:
|
|
104
|
+
# => :if is a proc that will be called to determine if the BatchAction should be displayed
|
|
105
|
+
# => :sort_order is used to sort the batch actions ascending
|
|
106
|
+
# => :confirm is a string which the user will have to accept in order to process the action
|
|
107
|
+
#
|
|
108
|
+
def batch_action(title, options = {}, &block)
|
|
109
|
+
# Create symbol & title information
|
|
110
|
+
if title.is_a? String
|
|
111
|
+
sym = title.titleize.tr(' ', '').underscore.to_sym
|
|
112
|
+
else
|
|
113
|
+
sym = title
|
|
114
|
+
title = sym.to_s.titleize
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# Either add/remove the batch action
|
|
118
|
+
unless options == false
|
|
119
|
+
config.add_batch_action( sym, title, options, &block )
|
|
120
|
+
else
|
|
121
|
+
config.remove_batch_action sym
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
# Set the options that are available for the item that will be placed in the global
|
|
126
|
+
# navigation of the menu.
|
|
127
|
+
def menu(options = {})
|
|
128
|
+
config.menu_item_options = options
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# Set the name of the navigation menu to display. This is mainly used in conjunction with the
|
|
132
|
+
# `#belongs_to` functionality.
|
|
133
|
+
#
|
|
134
|
+
# @param [Symbol] menu_name The name of the menu to display as the global navigation
|
|
135
|
+
# when viewing this resource. Defaults to a menu named `:default`.
|
|
136
|
+
#
|
|
137
|
+
# Pass a block returning the name of a menu you want rendered for the request, being
|
|
138
|
+
# executed in the context of the controller
|
|
139
|
+
#
|
|
140
|
+
def navigation_menu(menu_name=nil, &block)
|
|
141
|
+
config.navigation_menu_name = menu_name || block
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Rewrite breadcrumb links.
|
|
145
|
+
# Block will be executed inside controller.
|
|
146
|
+
# Block must return an array if you want to rewrite breadcrumb links.
|
|
147
|
+
#
|
|
148
|
+
# Example:
|
|
149
|
+
# ActiveAdmin.register Post do
|
|
150
|
+
#
|
|
151
|
+
# breadcrumb do
|
|
152
|
+
# [
|
|
153
|
+
# link_to('my piece', '/my/link/to/piece')
|
|
154
|
+
# ]
|
|
155
|
+
# end
|
|
156
|
+
# end
|
|
157
|
+
#
|
|
158
|
+
def breadcrumb(&block)
|
|
159
|
+
config.breadcrumb = block
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def sidebar(name, options = {}, &block)
|
|
163
|
+
config.sidebar_sections << ActiveAdmin::SidebarSection.new(name, options, &block)
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
def decorate_with(decorator_class)
|
|
167
|
+
# Force storage as a string. This will help us with reloading issues.
|
|
168
|
+
# Assuming decorator_class.to_s will return the name of the class allows
|
|
169
|
+
# us to handle a string or a class.
|
|
170
|
+
config.decorator_class_name = "::#{ decorator_class }"
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
end
|