yousty-activeadmin 1.0.4.pre → 1.0.5.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 +4 -4
- data/CHANGELOG.md +261 -211
- data/CONTRIBUTING.md +73 -39
- data/Gemfile +38 -20
- data/Guardfile +1 -0
- data/LICENSE +1 -1
- data/README.md +48 -24
- data/Rakefile +12 -4
- data/activeadmin.gemspec +21 -26
- data/app/assets/javascripts/active_admin/application.js.coffee +34 -5
- data/app/assets/javascripts/active_admin/base.js.coffee +11 -2
- 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 +3 -4
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +51 -55
- 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 +37 -0
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
- data/app/assets/javascripts/active_admin/lib/popover.js.coffee +29 -58
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +2 -3
- data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
- data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +51 -15
- data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
- data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
- data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
- data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -12
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +3 -1
- data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
- data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
- data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +0 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
- data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +1 -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.css.scss → _all.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_gradients.css.scss → _gradients.scss} +1 -1
- data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
- data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_rounded.css.scss → _rounded.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +7 -1
- data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
- data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +10 -7
- data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
- data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
- data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
- data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
- data/app/views/active_admin/devise/sessions/new.html.erb +8 -8
- data/app/views/active_admin/devise/shared/_links.erb +1 -1
- data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
- data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
- data/config/locales/ar.yml +120 -0
- data/config/locales/bg.yml +26 -6
- data/config/locales/bs.yml +122 -0
- data/config/locales/ca.yml +10 -1
- data/config/locales/cs.yml +7 -2
- data/config/locales/da.yml +7 -3
- data/config/locales/de-CH.yml +14 -31
- data/config/locales/de.yml +33 -33
- data/config/locales/el.yml +127 -0
- data/config/locales/en-GB.yml +11 -4
- data/config/locales/en.yml +21 -4
- data/config/locales/{es_MX.yml → es-MX.yml} +14 -24
- data/config/locales/es.yml +32 -25
- data/config/locales/fa.yml +120 -0
- data/config/locales/fi.yml +9 -5
- data/config/locales/fr.yml +28 -12
- data/config/locales/he.yml +7 -3
- data/config/locales/hr.yml +42 -11
- data/config/locales/hu.yml +10 -3
- data/config/locales/it.yml +31 -3
- data/config/locales/ja.yml +17 -4
- data/config/locales/ko.yml +7 -1
- data/config/locales/lt.yml +42 -11
- data/config/locales/lv.yml +7 -3
- data/config/locales/{no-NB.yml → nb.yml} +46 -15
- data/config/locales/nl.yml +36 -5
- data/config/locales/pl.yml +13 -8
- data/config/locales/pt-BR.yml +36 -5
- data/config/locales/pt-PT.yml +8 -4
- data/config/locales/ro.yml +7 -3
- data/config/locales/ru.yml +26 -5
- data/config/locales/sv-SE.yml +9 -5
- data/config/locales/tr.yml +10 -3
- data/config/locales/uk.yml +36 -12
- data/config/locales/vi.yml +7 -3
- data/config/locales/zh-CN.yml +26 -10
- data/config/locales/zh-TW.yml +19 -13
- data/docs/0-installation.md +14 -6
- data/docs/1-general-configuration.md +8 -5
- data/docs/10-custom-pages.md +68 -70
- data/docs/11-decorators.md +48 -59
- data/docs/12-arbre-components.md +79 -73
- data/docs/13-authorization-adapter.md +128 -107
- data/docs/14-gotchas.md +90 -0
- data/docs/2-resource-customization.md +82 -15
- data/docs/3-index-pages.md +71 -12
- data/docs/3-index-pages/custom-index.md +31 -0
- data/docs/3-index-pages/index-as-table.md +45 -2
- data/docs/4-csv-format.md +1 -1
- data/docs/5-forms.md +78 -29
- data/docs/6-show-pages.md +31 -3
- data/docs/7-sidebars.md +46 -25
- data/docs/8-custom-actions.md +98 -77
- data/docs/9-batch-actions.md +211 -133
- data/docs/README.md +24 -0
- data/features/action_item.feature +3 -3
- data/features/authorization_pundit.feature +37 -0
- data/features/belongs_to.feature +3 -0
- data/features/breadcrumb.feature +48 -0
- data/features/comments/commenting.feature +44 -13
- data/features/development_reloading.feature +3 -4
- data/features/edit_page.feature +9 -19
- data/features/favicon.feature +3 -3
- data/features/i18n.feature +5 -0
- data/features/index/batch_actions.feature +41 -0
- data/features/index/filters.feature +23 -0
- data/features/index/format_as_csv.feature +90 -4
- data/features/index/index_as_blog.feature +4 -4
- data/features/index/index_as_table.feature +102 -6
- data/features/index/index_blank_slate.feature +22 -0
- data/features/index/index_scope_to.feature +16 -16
- data/features/index/page_title.feature +11 -0
- data/features/index/pagination.feature +1 -1
- data/features/index/switch_index_view.feature +14 -14
- data/features/new_page.feature +10 -20
- data/features/registering_pages.feature +1 -1
- data/features/renamed_resource.feature +32 -0
- data/features/show/page_title.feature +11 -0
- data/features/show/tabs.feature +27 -0
- data/features/sidebar_sections.feature +12 -0
- data/features/specifying_actions.feature +3 -3
- data/features/step_definitions/action_item_steps.rb +2 -2
- data/features/step_definitions/action_link_steps.rb +14 -1
- data/features/step_definitions/additional_web_steps.rb +17 -18
- data/features/step_definitions/asset_steps.rb +3 -3
- data/features/step_definitions/attribute_steps.rb +8 -3
- data/features/step_definitions/batch_action_steps.rb +26 -9
- data/features/step_definitions/blog_steps.rb +3 -0
- data/features/step_definitions/breadcrumb_steps.rb +1 -1
- data/features/step_definitions/comment_steps.rb +1 -1
- data/features/step_definitions/configuration_steps.rb +1 -1
- data/features/step_definitions/dashboard_steps.rb +2 -2
- data/features/step_definitions/factory_steps.rb +6 -6
- data/features/step_definitions/filter_steps.rb +25 -3
- data/features/step_definitions/flash_steps.rb +3 -3
- data/features/step_definitions/format_steps.rb +17 -10
- data/features/step_definitions/index_scope_steps.rb +5 -5
- data/features/step_definitions/layout_steps.rb +1 -1
- data/features/step_definitions/member_link_steps.rb +2 -2
- data/features/step_definitions/menu_steps.rb +3 -3
- data/features/step_definitions/pagination_steps.rb +2 -3
- data/features/step_definitions/sidebar_steps.rb +8 -3
- data/features/step_definitions/site_title_steps.rb +6 -4
- data/features/step_definitions/symbol_leak_steps.rb +1 -1
- data/features/step_definitions/tab_steps.rb +5 -0
- data/features/step_definitions/table_steps.rb +4 -4
- data/features/step_definitions/user_steps.rb +15 -9
- data/features/step_definitions/web_steps.rb +10 -11
- data/features/sti_resource.feature +2 -10
- data/features/strong_parameters.feature +73 -0
- data/features/support/env.rb +35 -2
- data/features/support/paths.rb +2 -2
- data/features/support/selectors.rb +1 -1
- data/features/users/resetting_password.feature +7 -7
- data/lib/active_admin.rb +18 -13
- data/lib/active_admin/abstract_view_factory.rb +7 -17
- data/lib/active_admin/application.rb +50 -25
- data/lib/active_admin/asset_registration.rb +2 -2
- data/lib/active_admin/authorization_adapter.rb +2 -2
- data/lib/active_admin/base_controller.rb +2 -3
- data/lib/active_admin/base_controller/authorization.rb +13 -31
- data/lib/active_admin/batch_actions.rb +1 -1
- data/lib/active_admin/batch_actions/controller.rb +13 -7
- data/lib/active_admin/batch_actions/resource_extension.rb +43 -17
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
- data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
- data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
- data/lib/active_admin/callbacks.rb +25 -24
- data/lib/active_admin/cancan_adapter.rb +7 -11
- data/lib/active_admin/csv_builder.rb +92 -15
- data/lib/active_admin/dependency.rb +93 -0
- data/lib/active_admin/deprecation.rb +6 -7
- data/lib/active_admin/devise.rb +26 -14
- data/lib/active_admin/dsl.rb +18 -11
- data/lib/active_admin/engine.rb +7 -2
- data/lib/active_admin/error.rb +59 -0
- data/lib/active_admin/filters/dsl.rb +2 -2
- data/lib/active_admin/filters/forms.rb +19 -30
- data/lib/active_admin/filters/formtastic_addons.rb +20 -11
- data/lib/active_admin/filters/resource_extension.rb +16 -9
- data/lib/active_admin/form_builder.rb +94 -105
- data/lib/active_admin/helpers/collection.rb +7 -13
- data/lib/active_admin/helpers/i18n.rb +7 -0
- data/lib/active_admin/helpers/optional_display.rb +5 -5
- data/lib/active_admin/helpers/scope_chain.rb +1 -1
- data/lib/active_admin/helpers/settings.rb +16 -9
- data/lib/active_admin/iconic.rb +17 -15
- data/lib/active_admin/iconic/icons.rb +136 -136
- data/lib/active_admin/inputs.rb +11 -7
- data/lib/active_admin/inputs/datepicker_input.rb +1 -1
- data/lib/active_admin/inputs/filters/base.rb +42 -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_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 +54 -0
- data/lib/active_admin/inputs/filters/string_input.rb +26 -0
- data/lib/active_admin/menu.rb +3 -3
- data/lib/active_admin/menu_collection.rb +1 -4
- data/lib/active_admin/namespace.rb +52 -29
- data/lib/active_admin/order_clause.rb +26 -0
- data/lib/active_admin/orm/active_record.rb +2 -0
- data/lib/active_admin/orm/active_record/comments.rb +48 -51
- data/lib/active_admin/orm/active_record/comments/comment.rb +16 -10
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -1
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -1
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +15 -13
- data/lib/active_admin/page.rb +5 -1
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/page_presenter.rb +2 -2
- data/lib/active_admin/pundit_adapter.rb +68 -0
- data/lib/active_admin/resource.rb +12 -3
- data/lib/active_admin/resource/action_items.rb +15 -8
- data/lib/active_admin/resource/belongs_to.rb +7 -3
- data/lib/active_admin/resource/controllers.rb +1 -0
- data/lib/active_admin/resource/includes.rb +12 -0
- data/lib/active_admin/resource/menu.rb +5 -5
- data/lib/active_admin/resource/naming.rb +25 -47
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/routes.rb +26 -10
- data/lib/active_admin/resource/scope_to.rb +7 -7
- data/lib/active_admin/resource/sidebars.rb +1 -0
- data/lib/active_admin/resource_collection.rb +44 -16
- data/lib/active_admin/resource_controller.rb +6 -5
- data/lib/active_admin/resource_controller/data_access.rb +87 -82
- data/lib/active_admin/resource_controller/decorators.rb +91 -9
- data/lib/active_admin/resource_controller/streaming.rb +37 -0
- data/lib/active_admin/resource_dsl.rb +54 -10
- data/lib/active_admin/router.rb +7 -7
- data/lib/active_admin/scope.rb +6 -6
- data/lib/active_admin/sidebar_section.rb +10 -2
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +17 -16
- data/lib/active_admin/view_helpers.rb +0 -1
- data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +13 -6
- data/lib/active_admin/view_helpers/display_helper.rb +30 -17
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -24
- data/lib/active_admin/view_helpers/fields_for.rb +2 -2
- data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
- data/lib/active_admin/view_helpers/form_helper.rb +5 -9
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
- data/lib/active_admin/views/action_items.rb +2 -2
- data/lib/active_admin/views/components/action_list_popover.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +123 -0
- data/lib/active_admin/views/components/attributes_table.rb +22 -13
- data/lib/active_admin/views/components/blank_slate.rb +1 -1
- data/lib/active_admin/views/components/columns.rb +13 -7
- data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
- data/lib/active_admin/views/components/index_list.rb +7 -7
- data/lib/active_admin/views/components/paginated_collection.rb +33 -17
- data/lib/active_admin/views/components/panel.rb +8 -2
- data/lib/active_admin/views/components/popover.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +1 -1
- data/lib/active_admin/views/components/sidebar_section.rb +3 -2
- data/lib/active_admin/views/components/site_title.rb +2 -2
- data/lib/active_admin/views/components/status_tag.rb +34 -11
- data/lib/active_admin/views/components/table_for.rb +67 -22
- 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 +3 -3
- data/lib/active_admin/views/header.rb +3 -3
- data/lib/active_admin/views/index_as_blog.rb +6 -6
- data/lib/active_admin/views/index_as_grid.rb +2 -2
- data/lib/active_admin/views/index_as_table.rb +127 -40
- data/lib/active_admin/views/pages/base.rb +22 -18
- data/lib/active_admin/views/pages/form.rb +16 -6
- data/lib/active_admin/views/pages/index.rb +36 -20
- data/lib/active_admin/views/pages/layout.rb +1 -1
- data/lib/active_admin/views/pages/show.rb +4 -4
- data/lib/active_admin/views/tabbed_navigation.rb +7 -3
- data/lib/active_admin/views/title_bar.rb +10 -8
- data/lib/generators/active_admin/assets/assets_generator.rb +1 -3
- data/lib/generators/active_admin/devise/devise_generator.rb +20 -28
- data/lib/generators/active_admin/install/install_generator.rb +8 -9
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -22
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -9
- data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
- 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 +2 -4
- data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
- data/lib/ransack_ext.rb +4 -4
- data/script/local +2 -2
- data/script/travis_cache +107 -0
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
- data/spec/javascripts/fixtures/flashes.html +2 -0
- data/spec/rails_helper.rb +154 -0
- data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
- data/spec/{integration → requests}/javascript_spec.rb +5 -5
- data/spec/requests/memory_spec.rb +23 -0
- data/spec/requests/stylesheets_spec.rb +18 -0
- data/spec/spec_helper.rb +12 -170
- data/spec/support/detect_rails_version.rb +31 -39
- data/spec/support/rails_template.rb +61 -34
- data/spec/support/rails_template_with_data.rb +14 -14
- data/spec/support/templates/admin/stores.rb +3 -5
- 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 +4 -46
- data/spec/unit/abstract_view_factory_spec.rb +11 -11
- data/spec/unit/action_builder_spec.rb +24 -18
- data/spec/unit/active_admin_spec.rb +2 -2
- data/spec/unit/application_spec.rb +30 -31
- data/spec/unit/asset_registration_spec.rb +11 -11
- data/spec/unit/authorization/authorization_adapter_spec.rb +7 -7
- data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
- data/spec/unit/authorization/index_overriding_spec.rb +22 -0
- data/spec/unit/auto_link_spec.rb +42 -5
- data/spec/unit/batch_actions/resource_spec.rb +15 -14
- data/spec/unit/batch_actions/settings_spec.rb +18 -18
- data/spec/unit/belongs_to_spec.rb +26 -17
- data/spec/unit/cancan_adapter_spec.rb +4 -4
- data/spec/unit/comments_spec.rb +99 -39
- data/spec/unit/component_spec.rb +3 -3
- data/spec/unit/config_shared_examples.rb +8 -8
- data/spec/unit/controller_filters_spec.rb +26 -14
- data/spec/unit/csv_builder_spec.rb +152 -24
- data/spec/unit/dependency_spec.rb +135 -0
- data/spec/unit/devise_spec.rb +17 -37
- data/spec/unit/dsl_spec.rb +70 -9
- data/spec/unit/event_spec.rb +9 -9
- data/spec/unit/filters/filter_form_builder_spec.rb +167 -157
- data/spec/unit/filters/resource_spec.rb +35 -33
- data/spec/unit/form_builder_spec.rb +383 -145
- data/spec/unit/generators/install_spec.rb +5 -5
- data/spec/unit/helpers/collection_spec.rb +18 -18
- data/spec/unit/helpers/scope_chain_spec.rb +5 -5
- data/spec/unit/helpers/settings_spec.rb +4 -4
- data/spec/unit/i18n_spec.rb +12 -0
- data/spec/unit/menu_collection_spec.rb +14 -14
- data/spec/unit/menu_item_spec.rb +42 -42
- data/spec/unit/menu_spec.rb +20 -20
- data/spec/unit/namespace/authorization_spec.rb +5 -5
- data/spec/unit/namespace/register_page_spec.rb +9 -9
- data/spec/unit/namespace/register_resource_spec.rb +26 -28
- data/spec/unit/namespace_spec.rb +20 -20
- data/spec/unit/order_clause_spec.rb +81 -0
- data/spec/unit/page_controller_spec.rb +1 -1
- data/spec/unit/page_spec.rb +18 -12
- data/spec/unit/pretty_format_spec.rb +42 -14
- data/spec/unit/pundit_adapter_spec.rb +98 -0
- data/spec/unit/resource/action_items_spec.rb +13 -10
- data/spec/unit/resource/includes_spec.rb +21 -0
- data/spec/unit/resource/menu_spec.rb +1 -1
- data/spec/unit/resource/naming_spec.rb +23 -23
- data/spec/unit/resource/page_presenters_spec.rb +8 -8
- data/spec/unit/resource/pagination_spec.rb +6 -6
- data/spec/unit/resource/routes_spec.rb +10 -10
- data/spec/unit/resource/scopes_spec.rb +14 -7
- data/spec/unit/resource/sidebars_spec.rb +6 -6
- data/spec/unit/resource_collection_spec.rb +66 -68
- data/spec/unit/resource_controller/data_access_spec.rb +39 -21
- data/spec/unit/resource_controller/decorators_spec.rb +83 -0
- data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
- data/spec/unit/resource_controller_spec.rb +66 -62
- data/spec/unit/resource_registration_spec.rb +12 -12
- data/spec/unit/resource_spec.rb +75 -40
- data/spec/unit/routing_spec.rb +39 -31
- data/spec/unit/scope_spec.rb +112 -30
- data/spec/unit/settings_spec.rb +51 -21
- data/spec/unit/view_factory_spec.rb +2 -2
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +137 -69
- data/spec/unit/view_helpers/display_name_spec.rb +49 -21
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
- data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
- data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +9 -22
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +59 -21
- data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
- data/spec/unit/views/components/attributes_table_spec.rb +94 -52
- data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
- data/spec/unit/views/components/blank_slate_spec.rb +14 -4
- data/spec/unit/views/components/columns_spec.rb +52 -22
- data/spec/unit/views/components/index_list_spec.rb +11 -8
- data/spec/unit/views/components/index_table_for_spec.rb +46 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +68 -59
- data/spec/unit/views/components/panel_spec.rb +32 -21
- data/spec/unit/views/components/popover_spec.rb +7 -7
- data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
- data/spec/unit/views/components/site_title_spec.rb +8 -8
- data/spec/unit/views/components/status_tag_spec.rb +178 -38
- data/spec/unit/views/components/table_for_spec.rb +227 -44
- data/spec/unit/views/components/tabs_spec.rb +39 -0
- data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
- data/spec/unit/views/pages/form_spec.rb +17 -10
- data/spec/unit/views/pages/index_spec.rb +60 -0
- data/spec/unit/views/pages/layout_spec.rb +17 -21
- data/spec/unit/views/pages/show_spec.rb +16 -3
- data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
- data/tasks/docs.rake +1 -1
- data/tasks/parallel_tests.rake +8 -2
- data/tasks/test.rake +8 -4
- data/tasks/yard.rake +7 -5
- metadata +180 -101
- 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-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 +0 -10
- data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
- data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
- data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
- data/app/assets/images/active_admin/loading.gif +0 -0
- data/app/assets/javascripts/active_admin/components/application.js.coffee +0 -23
- data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/components/has_many.js.coffee +0 -41
- data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -39
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
- data/app/views/active_admin/dashboard/index.html.arb +0 -1
- data/app/views/active_admin/resource/index.csv.erb +0 -17
- data/docs/3-index-pages/create-an-index.md +0 -29
- data/lib/active_admin/inputs/filter_base.rb +0 -33
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
- data/lib/active_admin/inputs/filter_boolean_input.rb +0 -32
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -51
- data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
- data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
- data/lib/active_admin/inputs/filter_select_input.rb +0 -61
- data/lib/active_admin/inputs/filter_string_input.rb +0 -24
- data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
- data/spec/integration/memory_spec.rb +0 -29
- data/spec/integration/stylesheets_spec.rb +0 -41
- data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
- data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
- data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
- data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
- data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
- data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
- data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
- data/spec/javascripts/support/jquery.min.js +0 -4
- data/spec/spec_helper_without_rails.rb +0 -16
- data/tasks/js.rake +0 -32
|
@@ -5,7 +5,7 @@ module ActiveAdmin
|
|
|
5
5
|
class Form < Base
|
|
6
6
|
|
|
7
7
|
def title
|
|
8
|
-
assigns[:page_title] || I18n.t("active_admin.#{
|
|
8
|
+
assigns[:page_title] || I18n.t("active_admin.#{normalized_action}_model",
|
|
9
9
|
model: active_admin_config.resource_label)
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -19,9 +19,7 @@ module ActiveAdmin
|
|
|
19
19
|
if options[:partial]
|
|
20
20
|
render options[:partial]
|
|
21
21
|
else
|
|
22
|
-
active_admin_form_for resource, options
|
|
23
|
-
instance_exec f, &form_presenter.block
|
|
24
|
-
end
|
|
22
|
+
active_admin_form_for resource, options, &form_presenter.block
|
|
25
23
|
end
|
|
26
24
|
end
|
|
27
25
|
|
|
@@ -29,8 +27,8 @@ module ActiveAdmin
|
|
|
29
27
|
|
|
30
28
|
def default_form_options
|
|
31
29
|
{
|
|
32
|
-
:
|
|
33
|
-
:
|
|
30
|
+
url: default_form_path,
|
|
31
|
+
as: active_admin_config.param_key
|
|
34
32
|
}
|
|
35
33
|
end
|
|
36
34
|
|
|
@@ -40,10 +38,22 @@ module ActiveAdmin
|
|
|
40
38
|
|
|
41
39
|
def default_form_config
|
|
42
40
|
ActiveAdmin::PagePresenter.new do |f|
|
|
41
|
+
f.semantic_errors # show errors on :base by default
|
|
43
42
|
f.inputs
|
|
44
43
|
f.actions
|
|
45
44
|
end
|
|
46
45
|
end
|
|
46
|
+
|
|
47
|
+
def normalized_action
|
|
48
|
+
case params[:action]
|
|
49
|
+
when "create"
|
|
50
|
+
"new"
|
|
51
|
+
when "update"
|
|
52
|
+
"edit"
|
|
53
|
+
else
|
|
54
|
+
params[:action]
|
|
55
|
+
end
|
|
56
|
+
end
|
|
47
57
|
end
|
|
48
58
|
|
|
49
59
|
end
|
|
@@ -7,11 +7,10 @@ module ActiveAdmin
|
|
|
7
7
|
class Index < Base
|
|
8
8
|
|
|
9
9
|
def title
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
when String then config[:title]
|
|
10
|
+
if Proc === config[:title]
|
|
11
|
+
controller.instance_exec &config[:title]
|
|
13
12
|
else
|
|
14
|
-
active_admin_config.plural_resource_label
|
|
13
|
+
config[:title] || assigns[:page_title] || active_admin_config.plural_resource_label
|
|
15
14
|
end
|
|
16
15
|
end
|
|
17
16
|
|
|
@@ -61,7 +60,7 @@ module ActiveAdmin
|
|
|
61
60
|
include ::ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
|
|
62
61
|
|
|
63
62
|
def build_table_tools
|
|
64
|
-
div :
|
|
63
|
+
div class: "table_tools" do
|
|
65
64
|
build_batch_actions_selector
|
|
66
65
|
build_scopes
|
|
67
66
|
build_index_list
|
|
@@ -83,7 +82,7 @@ module ActiveAdmin
|
|
|
83
82
|
def build_scopes
|
|
84
83
|
if active_admin_config.scopes.any?
|
|
85
84
|
scope_options = {
|
|
86
|
-
:
|
|
85
|
+
scope_count: config.fetch(:scope_count, true)
|
|
87
86
|
}
|
|
88
87
|
|
|
89
88
|
scopes_renderer active_admin_config.scopes, scope_options
|
|
@@ -111,37 +110,54 @@ module ActiveAdmin
|
|
|
111
110
|
end
|
|
112
111
|
|
|
113
112
|
def render_blank_slate
|
|
114
|
-
blank_slate_content = I18n.t("active_admin.blank_slate.content", :
|
|
113
|
+
blank_slate_content = I18n.t("active_admin.blank_slate.content", resource_name: active_admin_config.plural_resource_label)
|
|
115
114
|
if controller.action_methods.include?('new') && authorized?(ActiveAdmin::Auth::CREATE, active_admin_config.resource_class)
|
|
116
|
-
blank_slate_content
|
|
115
|
+
blank_slate_content = [blank_slate_content, blank_slate_link].compact.join(" ")
|
|
117
116
|
end
|
|
118
117
|
insert_tag(view_factory.blank_slate, blank_slate_content)
|
|
119
118
|
end
|
|
120
119
|
|
|
121
120
|
def render_empty_results
|
|
122
|
-
empty_results_content = I18n.t("active_admin.pagination.empty", :
|
|
121
|
+
empty_results_content = I18n.t("active_admin.pagination.empty", model: active_admin_config.plural_resource_label)
|
|
123
122
|
insert_tag(view_factory.blank_slate, empty_results_content)
|
|
124
123
|
end
|
|
125
124
|
|
|
126
125
|
def render_index
|
|
127
126
|
renderer_class = find_index_renderer_class(config[:as])
|
|
128
|
-
paginator
|
|
129
|
-
download_links
|
|
130
|
-
pagination_total = config
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
:
|
|
135
|
-
:
|
|
136
|
-
:
|
|
137
|
-
|
|
127
|
+
paginator = config.fetch(:paginator, true)
|
|
128
|
+
download_links = config.fetch(:download_links, active_admin_config.namespace.download_links)
|
|
129
|
+
pagination_total = config.fetch(:pagination_total, true)
|
|
130
|
+
per_page = config.fetch(:per_page, active_admin_config.per_page)
|
|
131
|
+
|
|
132
|
+
paginated_collection(collection, entry_name: active_admin_config.resource_label,
|
|
133
|
+
entries_name: active_admin_config.plural_resource_label(count: collection_size),
|
|
134
|
+
download_links: download_links,
|
|
135
|
+
paginator: paginator,
|
|
136
|
+
per_page: per_page,
|
|
137
|
+
pagination_total: pagination_total) do
|
|
138
|
+
div class: 'index_content' do
|
|
138
139
|
insert_tag(renderer_class, config, collection)
|
|
139
140
|
end
|
|
140
141
|
end
|
|
141
142
|
end
|
|
142
143
|
|
|
144
|
+
private
|
|
145
|
+
|
|
146
|
+
def blank_slate_link
|
|
147
|
+
if config.options.has_key?(:blank_slate_link)
|
|
148
|
+
blank_slate_link = config.options[:blank_slate_link]
|
|
149
|
+
if blank_slate_link.is_a?(Proc)
|
|
150
|
+
instance_exec(&blank_slate_link)
|
|
151
|
+
end
|
|
152
|
+
else
|
|
153
|
+
default_blank_slate_link
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
def default_blank_slate_link
|
|
158
|
+
link_to(I18n.t("active_admin.blank_slate.link"), new_resource_path)
|
|
159
|
+
end
|
|
143
160
|
end
|
|
144
161
|
end
|
|
145
162
|
end
|
|
146
163
|
end
|
|
147
|
-
|
|
@@ -7,7 +7,7 @@ module ActiveAdmin
|
|
|
7
7
|
class Layout < Base
|
|
8
8
|
|
|
9
9
|
def title
|
|
10
|
-
assigns[:page_title] || I18n.t("active_admin.#{params[:action]}", :
|
|
10
|
+
assigns[:page_title] || I18n.t("active_admin.#{params[:action]}", default: params[:action].to_s.titleize)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
# Render the content_for(:layout) into the main content area
|
|
@@ -11,7 +11,7 @@ module ActiveAdmin
|
|
|
11
11
|
if config[:title]
|
|
12
12
|
render_or_call_method_or_proc_on(resource, config[:title])
|
|
13
13
|
else
|
|
14
|
-
default_title
|
|
14
|
+
assigns[:page_title] || default_title
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
|
|
@@ -25,7 +25,7 @@ module ActiveAdmin
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def attributes_table(*args, &block)
|
|
28
|
-
panel(I18n.t('active_admin.details', :
|
|
28
|
+
panel(I18n.t('active_admin.details', model: active_admin_config.resource_label)) do
|
|
29
29
|
attributes_table_for resource, *args, &block
|
|
30
30
|
end
|
|
31
31
|
end
|
|
@@ -43,8 +43,8 @@ module ActiveAdmin
|
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
module DefaultMainContent
|
|
46
|
-
def default_main_content
|
|
47
|
-
attributes_table
|
|
46
|
+
def default_main_content(&block)
|
|
47
|
+
attributes_table(*default_attribute_table_rows, &block)
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
def default_attribute_table_rows
|
|
@@ -40,10 +40,14 @@ module ActiveAdmin
|
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def build_menu_item(item)
|
|
43
|
-
li :
|
|
43
|
+
li id: item.id do |li|
|
|
44
44
|
li.add_class "current" if item.current? assigns[:current_tab]
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
if url = item.url(self)
|
|
47
|
+
text_node link_to item.label(self), url, item.html_options
|
|
48
|
+
else
|
|
49
|
+
span item.label(self), item.html_options
|
|
50
|
+
end
|
|
47
51
|
|
|
48
52
|
if children = item.items(self).presence
|
|
49
53
|
li.add_class "has_nested"
|
|
@@ -55,7 +59,7 @@ module ActiveAdmin
|
|
|
55
59
|
end
|
|
56
60
|
|
|
57
61
|
def default_options
|
|
58
|
-
{ :
|
|
62
|
+
{ id: "tabs" }
|
|
59
63
|
end
|
|
60
64
|
end
|
|
61
65
|
end
|
|
@@ -3,7 +3,7 @@ module ActiveAdmin
|
|
|
3
3
|
class TitleBar < Component
|
|
4
4
|
|
|
5
5
|
def build(title, action_items)
|
|
6
|
-
super(:
|
|
6
|
+
super(id: "title_bar")
|
|
7
7
|
@title = title
|
|
8
8
|
@action_items = action_items
|
|
9
9
|
build_titlebar_left
|
|
@@ -13,35 +13,37 @@ module ActiveAdmin
|
|
|
13
13
|
private
|
|
14
14
|
|
|
15
15
|
def build_titlebar_left
|
|
16
|
-
div :
|
|
16
|
+
div id: "titlebar_left" do
|
|
17
17
|
build_breadcrumb
|
|
18
18
|
build_title_tag
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def build_titlebar_right
|
|
23
|
-
div :
|
|
23
|
+
div id: "titlebar_right" do
|
|
24
24
|
build_action_items
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def build_breadcrumb(separator = "/")
|
|
29
|
-
|
|
29
|
+
breadcrumb_config = active_admin_config && active_admin_config.breadcrumb
|
|
30
|
+
|
|
31
|
+
links = if breadcrumb_config.is_a?(Proc)
|
|
30
32
|
instance_exec(controller, &active_admin_config.breadcrumb)
|
|
31
|
-
|
|
33
|
+
elsif breadcrumb_config.present?
|
|
32
34
|
breadcrumb_links
|
|
33
35
|
end
|
|
34
36
|
return unless links.present? && links.is_a?(::Array)
|
|
35
|
-
span :
|
|
37
|
+
span class: "breadcrumb" do
|
|
36
38
|
links.each do |link|
|
|
37
39
|
text_node link
|
|
38
|
-
span(separator, :
|
|
40
|
+
span(separator, class: "breadcrumb_sep")
|
|
39
41
|
end
|
|
40
42
|
end
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
def build_title_tag
|
|
44
|
-
h2(@title, :
|
|
46
|
+
h2(@title, id: 'page_title')
|
|
45
47
|
end
|
|
46
48
|
|
|
47
49
|
def build_action_items
|
|
@@ -2,9 +2,7 @@ module ActiveAdmin
|
|
|
2
2
|
module Generators
|
|
3
3
|
class AssetsGenerator < Rails::Generators::Base
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
@_active_admin_source_root ||= File.expand_path("../templates", __FILE__)
|
|
7
|
-
end
|
|
5
|
+
source_root File.expand_path("../templates", __FILE__)
|
|
8
6
|
|
|
9
7
|
def install_assets
|
|
10
8
|
template 'active_admin.js.coffee', 'app/assets/javascripts/active_admin.js.coffee'
|
|
@@ -5,15 +5,25 @@ module ActiveAdmin
|
|
|
5
5
|
|
|
6
6
|
class DeviseGenerator < Rails::Generators::NamedBase
|
|
7
7
|
desc "Creates an admin user and uses Devise for authentication"
|
|
8
|
-
argument :name, :
|
|
8
|
+
argument :name, type: :string, default: "AdminUser"
|
|
9
9
|
|
|
10
|
-
class_option :registerable, :
|
|
11
|
-
:
|
|
10
|
+
class_option :registerable, type: :boolean, default: false,
|
|
11
|
+
desc: "Should the generated resource be registerable?"
|
|
12
12
|
|
|
13
13
|
RESERVED_NAMES = [:active_admin_user]
|
|
14
14
|
|
|
15
|
+
class_option :default_user, :type => :boolean, :default => true,
|
|
16
|
+
:desc => "Should a default user be created inside the migration?"
|
|
17
|
+
|
|
15
18
|
def install_devise
|
|
19
|
+
begin
|
|
20
|
+
Dependency.devise! Dependency::DEVISE
|
|
21
|
+
rescue DependencyError => e
|
|
22
|
+
raise Error, "#{e.message} If you don't want to use devise, run the generator with --skip-users."
|
|
23
|
+
end
|
|
24
|
+
|
|
16
25
|
require 'devise'
|
|
26
|
+
|
|
17
27
|
if File.exists?(File.join(destination_root, "config", "initializers", "devise.rb"))
|
|
18
28
|
log :generate, "No need to install devise, already done."
|
|
19
29
|
else
|
|
@@ -36,26 +46,6 @@ module ActiveAdmin
|
|
|
36
46
|
end
|
|
37
47
|
end
|
|
38
48
|
|
|
39
|
-
# This fixes a bug in the 3.0.0 release of Devise. For more info:
|
|
40
|
-
# https://github.com/plataformatec/devise/issues/2515
|
|
41
|
-
def add_attr_accessible_if_missing
|
|
42
|
-
require 'devise/version'
|
|
43
|
-
if ::Devise::VERSION == '3.0.0'
|
|
44
|
-
if Rails::VERSION::MAJOR == 3 && !defined?(ActionController::StrongParameters)
|
|
45
|
-
model = File.join(destination_root, "app", "models", "#{file_path}.rb")
|
|
46
|
-
inject_into_file model, "\n attr_accessible :email, :password, :password_confirmation, :remember_me\n",
|
|
47
|
-
:before => /end\s*\z/
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def add_attr_accessible_if_needed
|
|
53
|
-
unless Rails::VERSION::MAJOR > 3 && !defined? ProtectedAttributes
|
|
54
|
-
model_file = File.join(destination_root, "app", "models", "#{file_path}.rb")
|
|
55
|
-
inject_into_file model_file, " attr_accessible :email, :password, :password_confirmation, :remember_me\n", before: /end\n*\z/
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
49
|
def set_namespace_for_path
|
|
60
50
|
routes_file = File.join(destination_root, "config", "routes.rb")
|
|
61
51
|
gsub_file routes_file, /devise_for :#{plural_table_name}$/, "devise_for :#{plural_table_name}, ActiveAdmin::Devise.config"
|
|
@@ -64,18 +54,20 @@ module ActiveAdmin
|
|
|
64
54
|
def add_default_user_to_migration
|
|
65
55
|
# Don't assume that we have a migration!
|
|
66
56
|
devise_migration_file = Dir["db/migrate/*_devise_create_#{table_name}.rb"].first
|
|
67
|
-
return if devise_migration_file.nil?
|
|
57
|
+
return if devise_migration_file.nil? || !options[:default_user]
|
|
68
58
|
|
|
69
59
|
devise_migration_content = File.read(devise_migration_file)
|
|
70
60
|
|
|
61
|
+
create_user_code = "#{class_name}.create!(email: 'admin@example.com', password: 'password', password_confirmation: 'password')"
|
|
62
|
+
|
|
71
63
|
if devise_migration_content["def change"]
|
|
72
64
|
inject_into_file devise_migration_file,
|
|
73
|
-
"def migrate(direction)\n super\n # Create a default user\n #{
|
|
74
|
-
:
|
|
65
|
+
"def migrate(direction)\n super\n # Create a default user\n #{create_user_code} if direction == :up\n end\n\n ",
|
|
66
|
+
before: "def change"
|
|
75
67
|
elsif devise_migration_content[/def (self.)?up/]
|
|
76
68
|
inject_into_file devise_migration_file,
|
|
77
|
-
"# Create a default user\n #{
|
|
78
|
-
:
|
|
69
|
+
"# Create a default user\n #{create_user_code}\n\n ",
|
|
70
|
+
before: "add_index :#{table_name}, :email"
|
|
79
71
|
else
|
|
80
72
|
puts devise_migration_content
|
|
81
73
|
raise "Failed to add default admin user to migration."
|
|
@@ -4,16 +4,15 @@ module ActiveAdmin
|
|
|
4
4
|
module Generators
|
|
5
5
|
class InstallGenerator < ActiveRecord::Generators::Base
|
|
6
6
|
desc "Installs Active Admin and generates the necessary migrations"
|
|
7
|
-
argument :name, :
|
|
7
|
+
argument :name, type: :string, default: "AdminUser"
|
|
8
8
|
|
|
9
|
-
hook_for :users, :
|
|
9
|
+
hook_for :users, default: "devise", desc: "Admin user generator to run. Skip with --skip-users"
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
@_active_admin_source_root ||= File.expand_path("../templates", __FILE__)
|
|
13
|
-
end
|
|
11
|
+
source_root File.expand_path("../templates", __FILE__)
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
def copy_initializer
|
|
16
14
|
@underscored_user_name = name.underscore
|
|
15
|
+
@use_authentication_method = options[:users].present?
|
|
17
16
|
template 'active_admin.rb.erb', 'config/initializers/active_admin.rb'
|
|
18
17
|
end
|
|
19
18
|
|
|
@@ -27,10 +26,10 @@ module ActiveAdmin
|
|
|
27
26
|
end
|
|
28
27
|
|
|
29
28
|
def setup_routes
|
|
30
|
-
if
|
|
29
|
+
if options[:users] # Ensure Active Admin routes occur after Devise routes so that Devise has higher priority
|
|
30
|
+
inject_into_file "config/routes.rb", "\n ActiveAdmin.routes(self)", after: /devise_for .*, ActiveAdmin::Devise\.config/
|
|
31
|
+
else
|
|
31
32
|
route "ActiveAdmin.routes(self)"
|
|
32
|
-
else # Ensure Active Admin routes occur after Devise routes so that Devise has higher priority
|
|
33
|
-
inject_into_file "config/routes.rb", "\n ActiveAdmin.routes(self)", :after => /devise_for.*/
|
|
34
33
|
end
|
|
35
34
|
end
|
|
36
35
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
ActiveAdmin.setup do |config|
|
|
2
|
-
|
|
3
2
|
# == Site Title
|
|
4
3
|
#
|
|
5
4
|
# Set the title that is displayed on the main layout
|
|
@@ -54,8 +53,8 @@ ActiveAdmin.setup do |config|
|
|
|
54
53
|
# ensure that there is a currently logged in admin user.
|
|
55
54
|
#
|
|
56
55
|
# This setting changes the method which Active Admin calls
|
|
57
|
-
# within the controller.
|
|
58
|
-
config.authentication_method = :authenticate_<%= @underscored_user_name %>!
|
|
56
|
+
# within the application controller.
|
|
57
|
+
<% unless @use_authentication_method %># <% end %>config.authentication_method = :authenticate_<%= @underscored_user_name %>!
|
|
59
58
|
|
|
60
59
|
# == User Authorization
|
|
61
60
|
#
|
|
@@ -65,6 +64,11 @@ ActiveAdmin.setup do |config|
|
|
|
65
64
|
# CanCanAdapter or make your own. Please refer to documentation.
|
|
66
65
|
# config.authorization_adapter = ActiveAdmin::CanCanAdapter
|
|
67
66
|
|
|
67
|
+
# In case you prefer Pundit over other solutions you can here pass
|
|
68
|
+
# the name of default policy class. This policy will be used in every
|
|
69
|
+
# case when Pundit is unable to find suitable policy.
|
|
70
|
+
# config.pundit_default_policy = "MyDefaultPunditPolicy"
|
|
71
|
+
|
|
68
72
|
# You can customize your CanCan Ability class name here.
|
|
69
73
|
# config.cancan_ability_class = "Ability"
|
|
70
74
|
|
|
@@ -81,10 +85,9 @@ ActiveAdmin.setup do |config|
|
|
|
81
85
|
# user performing them.
|
|
82
86
|
#
|
|
83
87
|
# This setting changes the method which Active Admin calls
|
|
84
|
-
# to return the currently logged in user.
|
|
88
|
+
# (within the application controller) to return the currently logged in user.
|
|
85
89
|
config.current_user_method = :current_<%= @underscored_user_name %>
|
|
86
90
|
|
|
87
|
-
|
|
88
91
|
# == Logging Out
|
|
89
92
|
#
|
|
90
93
|
# Active Admin displays a logout link on each screen. These
|
|
@@ -103,7 +106,6 @@ ActiveAdmin.setup do |config|
|
|
|
103
106
|
# Default:
|
|
104
107
|
# config.logout_link_method = :get
|
|
105
108
|
|
|
106
|
-
|
|
107
109
|
# == Root
|
|
108
110
|
#
|
|
109
111
|
# Set the action to call for the root path. You can set different
|
|
@@ -112,13 +114,12 @@ ActiveAdmin.setup do |config|
|
|
|
112
114
|
# Default:
|
|
113
115
|
# config.root_to = 'dashboard#index'
|
|
114
116
|
|
|
115
|
-
|
|
116
117
|
# == Admin Comments
|
|
117
118
|
#
|
|
118
119
|
# This allows your users to comment on any resource registered with Active Admin.
|
|
119
120
|
#
|
|
120
121
|
# You can completely disable comments:
|
|
121
|
-
# config.
|
|
122
|
+
# config.comments = false
|
|
122
123
|
#
|
|
123
124
|
# You can disable the menu item for the comments index page:
|
|
124
125
|
# config.show_comments_in_menu = false
|
|
@@ -126,26 +127,29 @@ ActiveAdmin.setup do |config|
|
|
|
126
127
|
# You can change the name under which comments are registered:
|
|
127
128
|
# config.comments_registration_name = 'AdminComment'
|
|
128
129
|
|
|
129
|
-
|
|
130
130
|
# == Batch Actions
|
|
131
131
|
#
|
|
132
132
|
# Enable and disable Batch Actions
|
|
133
133
|
#
|
|
134
134
|
config.batch_actions = true
|
|
135
135
|
|
|
136
|
-
|
|
137
136
|
# == Controller Filters
|
|
138
137
|
#
|
|
139
138
|
# You can add before, after and around filters to all of your
|
|
140
139
|
# Active Admin resources and pages from here.
|
|
141
140
|
#
|
|
142
141
|
# config.before_filter :do_something_awesome
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
|
|
145
143
|
# == Setting a Favicon
|
|
146
144
|
#
|
|
147
145
|
# config.favicon = '/assets/favicon.ico'
|
|
148
146
|
|
|
147
|
+
# == Removing Breadcrumbs
|
|
148
|
+
#
|
|
149
|
+
# Breadcrumbs are enabled by default. You can customize them for individual
|
|
150
|
+
# resources or you can disable them globally from here.
|
|
151
|
+
#
|
|
152
|
+
# config.breadcrumb = false
|
|
149
153
|
|
|
150
154
|
# == Register Stylesheets & Javascripts
|
|
151
155
|
#
|
|
@@ -157,20 +161,18 @@ ActiveAdmin.setup do |config|
|
|
|
157
161
|
# config.register_stylesheet 'my_stylesheet.css'
|
|
158
162
|
#
|
|
159
163
|
# You can provide an options hash for more control, which is passed along to stylesheet_link_tag():
|
|
160
|
-
# config.register_stylesheet 'my_print_stylesheet.css', :
|
|
164
|
+
# config.register_stylesheet 'my_print_stylesheet.css', media: :print
|
|
161
165
|
#
|
|
162
166
|
# To load a javascript file:
|
|
163
167
|
# config.register_javascript 'my_javascript.js'
|
|
164
168
|
|
|
165
|
-
|
|
166
169
|
# == CSV options
|
|
167
170
|
#
|
|
168
171
|
# Set the CSV builder separator
|
|
169
|
-
# config.csv_options = { :
|
|
172
|
+
# config.csv_options = { col_sep: ';' }
|
|
170
173
|
#
|
|
171
174
|
# Force the use of quotes
|
|
172
|
-
# config.csv_options = { :
|
|
173
|
-
|
|
175
|
+
# config.csv_options = { force_quotes: true }
|
|
174
176
|
|
|
175
177
|
# == Menu System
|
|
176
178
|
#
|
|
@@ -193,7 +195,6 @@ ActiveAdmin.setup do |config|
|
|
|
193
195
|
# end
|
|
194
196
|
# end
|
|
195
197
|
|
|
196
|
-
|
|
197
198
|
# == Download Links
|
|
198
199
|
#
|
|
199
200
|
# You can disable download links on resource listing pages,
|
|
@@ -215,7 +216,6 @@ ActiveAdmin.setup do |config|
|
|
|
215
216
|
#
|
|
216
217
|
# end
|
|
217
218
|
|
|
218
|
-
|
|
219
219
|
# == Pagination
|
|
220
220
|
#
|
|
221
221
|
# Pagination is enabled by default for all resources.
|
|
@@ -223,13 +223,11 @@ ActiveAdmin.setup do |config|
|
|
|
223
223
|
#
|
|
224
224
|
# config.default_per_page = 30
|
|
225
225
|
|
|
226
|
-
|
|
227
226
|
# == Filters
|
|
228
227
|
#
|
|
229
|
-
# By default the index screen includes a
|
|
228
|
+
# By default the index screen includes a "Filters" sidebar on the right
|
|
230
229
|
# hand side with a filter for each attribute of the registered model.
|
|
231
230
|
# You can enable or disable them for all resources here.
|
|
232
231
|
#
|
|
233
232
|
# config.filters = true
|
|
234
|
-
|
|
235
233
|
end
|