activeadmin 1.0.0.pre4 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/CHANGELOG.md +529 -52
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +129 -58
- data/README.md +80 -79
- data/app/assets/javascripts/active_admin/base.es6 +23 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
- data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
- data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
- data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
- data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
- data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
- data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
- data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
- data/app/assets/stylesheets/active_admin/_base.scss +2 -2
- data/app/assets/stylesheets/active_admin/_forms.scss +19 -26
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
- data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/assets/stylesheets/active_admin/print.scss +2 -3
- data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
- data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
- data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/shared/_links.erb +12 -6
- data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
- data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
- data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
- data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
- data/config/locales/ar.yml +4 -5
- data/config/locales/bg.yml +1 -3
- data/config/locales/bs.yml +1 -2
- data/config/locales/ca.yml +2 -4
- data/config/locales/cs.yml +1 -2
- data/config/locales/da.yml +45 -14
- data/config/locales/de-CH.yml +2 -3
- data/config/locales/de.yml +30 -3
- data/config/locales/el.yml +3 -4
- data/config/locales/en-CA.yml +139 -0
- data/config/locales/en-GB.yml +44 -3
- data/config/locales/en.yml +31 -5
- data/config/locales/eo.yml +145 -0
- data/config/locales/es-MX.yml +5 -3
- data/config/locales/es.yml +32 -6
- data/config/locales/fa.yml +1 -2
- data/config/locales/fi.yml +2 -3
- data/config/locales/fr.yml +27 -5
- data/config/locales/he.yml +53 -7
- data/config/locales/hr.yml +1 -2
- data/config/locales/hu.yml +5 -2
- data/config/locales/id.yml +2 -3
- data/config/locales/it.yml +15 -7
- data/config/locales/ja.yml +8 -3
- data/config/locales/ko.yml +1 -2
- data/config/locales/lt.yml +27 -6
- data/config/locales/lv.yml +1 -2
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +16 -7
- data/config/locales/nl.yml +13 -3
- data/config/locales/pl.yml +75 -5
- data/config/locales/pt-BR.yml +10 -3
- data/config/locales/pt-PT.yml +1 -2
- data/config/locales/ro.yml +1 -2
- data/config/locales/ru.yml +5 -3
- data/config/locales/sk.yml +168 -0
- data/config/locales/sv-SE.yml +4 -3
- data/config/locales/tr.yml +10 -2
- data/config/locales/uk.yml +4 -3
- data/config/locales/vi.yml +48 -8
- data/config/locales/zh-CN.yml +38 -7
- data/config/locales/zh-TW.yml +2 -3
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +19 -13
- data/docs/1-general-configuration.md +37 -4
- data/docs/10-custom-pages.md +47 -3
- data/docs/11-decorators.md +4 -0
- data/docs/12-arbre-components.md +73 -9
- data/docs/13-authorization-adapter.md +72 -35
- data/docs/14-gotchas.md +57 -19
- data/docs/2-resource-customization.md +64 -20
- data/docs/3-index-pages/custom-index.md +5 -1
- data/docs/3-index-pages/index-as-block.md +3 -5
- data/docs/3-index-pages/index-as-blog.md +4 -6
- data/docs/3-index-pages/index-as-grid.md +3 -5
- data/docs/3-index-pages/index-as-table.md +33 -12
- data/docs/3-index-pages.md +65 -9
- data/docs/4-csv-format.md +16 -0
- data/docs/5-forms.md +78 -17
- data/docs/6-show-pages.md +5 -29
- data/docs/7-sidebars.md +5 -1
- data/docs/8-custom-actions.md +18 -1
- data/docs/9-batch-actions.md +8 -4
- data/docs/CNAME +1 -0
- data/docs/Gemfile +3 -0
- data/docs/Gemfile.lock +248 -0
- data/docs/_config.yml +4 -0
- data/docs/_includes/footer.html +8 -0
- data/docs/_includes/google-analytics.html +16 -0
- data/docs/_includes/head.html +7 -0
- data/docs/_includes/toc.html +98 -0
- data/docs/_includes/top-menu.html +17 -0
- data/docs/_layouts/default.html +21 -0
- data/docs/documentation.md +60 -0
- data/docs/images/activeadmin.png +0 -0
- data/docs/images/code-header.png +0 -0
- data/docs/images/divider.png +0 -0
- data/docs/images/features.png +0 -0
- data/docs/images/tidelift.svg +14 -0
- data/docs/index.html +226 -0
- data/docs/stylesheets/main.css +1205 -0
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +50 -140
- data/lib/active_admin/application_settings.rb +42 -0
- data/lib/active_admin/authorization_adapter.rb +0 -3
- data/lib/active_admin/base_controller/authorization.rb +4 -7
- data/lib/active_admin/base_controller/menu.rb +10 -14
- data/lib/active_admin/base_controller.rb +8 -14
- data/lib/active_admin/batch_actions/controller.rb +3 -3
- data/lib/active_admin/batch_actions/resource_extension.rb +9 -13
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
- data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/controller_action.rb +2 -1
- data/lib/active_admin/csv_builder.rb +15 -12
- data/lib/active_admin/dependency.rb +8 -76
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/devise.rb +3 -3
- data/lib/active_admin/dsl.rb +3 -16
- data/lib/active_admin/dynamic_setting.rb +38 -0
- data/lib/active_admin/dynamic_settings_node.rb +28 -0
- data/lib/active_admin/engine.rb +5 -0
- data/lib/active_admin/error.rb +5 -3
- data/lib/active_admin/filters/active.rb +13 -14
- data/lib/active_admin/filters/active_filter.rb +124 -0
- data/lib/active_admin/filters/active_sidebar.rb +54 -0
- data/lib/active_admin/filters/forms.rb +6 -4
- data/lib/active_admin/filters/formtastic_addons.rb +2 -2
- data/lib/active_admin/filters/resource_extension.rb +28 -43
- data/lib/active_admin/filters.rb +2 -0
- data/lib/active_admin/form_builder.rb +100 -59
- data/lib/active_admin/generators/boilerplate.rb +12 -4
- data/lib/active_admin/helpers/collection.rb +2 -0
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +12 -5
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
- data/lib/active_admin/inputs/filters/date_range_input.rb +21 -8
- data/lib/active_admin/inputs/filters/select_input.rb +6 -3
- data/lib/active_admin/inputs/filters/text_input.rb +25 -0
- data/lib/active_admin/inputs.rb +1 -0
- data/lib/active_admin/localizers/resource_localizer.rb +35 -0
- data/lib/active_admin/localizers.rb +11 -0
- data/lib/active_admin/menu.rb +6 -12
- data/lib/active_admin/menu_collection.rb +0 -2
- data/lib/active_admin/menu_item.rb +4 -32
- data/lib/active_admin/namespace.rb +36 -17
- data/lib/active_admin/namespace_settings.rb +123 -0
- data/lib/active_admin/order_clause.rb +30 -8
- data/lib/active_admin/orm/active_record/comments/comment.rb +3 -17
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +19 -7
- data/lib/active_admin/orm/active_record/comments.rb +17 -11
- data/lib/active_admin/page.rb +23 -4
- data/lib/active_admin/page_controller.rb +2 -6
- data/lib/active_admin/page_dsl.rb +5 -1
- data/lib/active_admin/page_presenter.rb +2 -1
- data/lib/active_admin/pundit_adapter.rb +18 -5
- data/lib/active_admin/resource/action_items.rb +17 -5
- data/lib/active_admin/resource/attributes.rb +47 -0
- data/lib/active_admin/resource/belongs_to.rb +10 -1
- data/lib/active_admin/resource/menu.rb +7 -4
- data/lib/active_admin/resource/model.rb +15 -0
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/ordering.rb +11 -0
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/routes.rb +52 -20
- data/lib/active_admin/resource/scopes.rb +5 -3
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource.rb +59 -7
- data/lib/active_admin/resource_collection.rb +2 -2
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/data_access.rb +32 -27
- data/lib/active_admin/resource_controller/decorators.rb +5 -5
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/resource_controller.rb +15 -0
- data/lib/active_admin/resource_dsl.rb +58 -24
- data/lib/active_admin/router.rb +90 -82
- data/lib/active_admin/scope.rb +20 -12
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/sidebar_section.rb +3 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
- data/lib/active_admin/view_helpers/display_helper.rb +28 -16
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +13 -0
- data/lib/active_admin/view_helpers/fields_for.rb +1 -2
- data/lib/active_admin/view_helpers/form_helper.rb +2 -2
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +8 -1
- data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
- data/lib/active_admin/view_helpers.rb +2 -1
- data/lib/active_admin/views/action_items.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +43 -11
- data/lib/active_admin/views/components/attributes_table.rb +4 -4
- data/lib/active_admin/views/components/columns.rb +3 -3
- data/lib/active_admin/views/components/dropdown_menu.rb +4 -4
- data/lib/active_admin/views/components/index_list.rb +4 -3
- data/lib/active_admin/views/components/menu.rb +32 -0
- data/lib/active_admin/views/components/menu_item.rb +58 -0
- data/lib/active_admin/views/components/paginated_collection.rb +7 -11
- data/lib/active_admin/views/components/scopes.rb +14 -8
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/site_title.rb +5 -6
- data/lib/active_admin/views/components/status_tag.rb +11 -16
- data/lib/active_admin/views/components/table_for.rb +7 -16
- data/lib/active_admin/views/components/tabs.rb +15 -3
- data/lib/active_admin/views/footer.rb +14 -4
- data/lib/active_admin/views/header.rb +3 -16
- data/lib/active_admin/views/index_as_blog.rb +2 -3
- data/lib/active_admin/views/index_as_grid.rb +25 -25
- data/lib/active_admin/views/index_as_table.rb +39 -13
- data/lib/active_admin/views/pages/base.rb +36 -57
- data/lib/active_admin/views/pages/form.rb +2 -3
- data/lib/active_admin/views/pages/layout.rb +1 -1
- data/lib/active_admin/views/pages/show.rb +8 -2
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/active_admin/views/title_bar.rb +4 -4
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin.rb +11 -7
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +8 -5
- data/lib/generators/active_admin/install/install_generator.rb +7 -3
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +60 -4
- data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
- data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
- data/lib/ransack_ext.rb +5 -5
- data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
- data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
- data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
- data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
- metadata +190 -539
- data/.gitignore +0 -49
- data/.hound.yml +0 -14
- data/.travis.yml +0 -46
- data/.yardopts +0 -8
- data/Gemfile +0 -75
- data/Guardfile +0 -8
- data/Rakefile +0 -33
- data/activeadmin.gemspec +0 -31
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -15
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
- data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -11
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -31
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
- data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
- data/cucumber.yml +0 -3
- data/features/action_item.feature +0 -73
- data/features/authorization.feature +0 -64
- data/features/authorization_cancan.feature +0 -52
- data/features/authorization_pundit.feature +0 -37
- data/features/belongs_to.feature +0 -66
- data/features/breadcrumb.feature +0 -75
- data/features/comments/commenting.feature +0 -171
- data/features/comments/viewing_index.feature +0 -19
- data/features/dashboard.feature +0 -16
- data/features/decorators.feature +0 -43
- data/features/development_reloading.feature +0 -30
- data/features/edit_page.feature +0 -117
- data/features/favicon.feature +0 -20
- data/features/first_boot.feature +0 -16
- data/features/global_navigation.feature +0 -29
- data/features/i18n.feature +0 -43
- data/features/index/batch_actions.feature +0 -196
- data/features/index/filters.feature +0 -161
- data/features/index/format_as_csv.feature +0 -203
- data/features/index/formats.feature +0 -66
- data/features/index/index_as_block.feature +0 -15
- data/features/index/index_as_blog.feature +0 -69
- data/features/index/index_as_grid.feature +0 -45
- data/features/index/index_as_table.feature +0 -291
- data/features/index/index_blank_slate.feature +0 -83
- data/features/index/index_parameters.feature +0 -75
- data/features/index/index_scope_to.feature +0 -56
- data/features/index/index_scopes.feature +0 -251
- data/features/index/page_title.feature +0 -42
- data/features/index/pagination.feature +0 -63
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -53
- data/features/meta_tags.feature +0 -21
- data/features/new_page.feature +0 -109
- data/features/registering_assets.feature +0 -34
- data/features/registering_pages.feature +0 -148
- data/features/registering_resources.feature +0 -33
- data/features/renamed_resource.feature +0 -32
- data/features/root_to.feature +0 -17
- data/features/show/columns.feature +0 -40
- data/features/show/default_content.feature +0 -44
- data/features/show/page_title.feature +0 -59
- data/features/show/tabs.feature +0 -27
- data/features/sidebar_sections.feature +0 -210
- data/features/site_title.feature +0 -47
- data/features/specifying_actions.feature +0 -93
- data/features/step_definitions/action_item_steps.rb +0 -7
- data/features/step_definitions/action_link_steps.rb +0 -20
- data/features/step_definitions/additional_web_steps.rb +0 -81
- data/features/step_definitions/asset_steps.rb +0 -15
- data/features/step_definitions/attribute_steps.rb +0 -18
- data/features/step_definitions/batch_action_steps.rb +0 -81
- data/features/step_definitions/blog_steps.rb +0 -3
- data/features/step_definitions/breadcrumb_steps.rb +0 -3
- data/features/step_definitions/column_steps.rb +0 -8
- data/features/step_definitions/comment_steps.rb +0 -12
- data/features/step_definitions/configuration_steps.rb +0 -100
- data/features/step_definitions/dashboard_steps.rb +0 -15
- data/features/step_definitions/factory_steps.rb +0 -35
- data/features/step_definitions/filter_steps.rb +0 -39
- data/features/step_definitions/flash_steps.rb +0 -11
- data/features/step_definitions/format_steps.rb +0 -52
- data/features/step_definitions/i18n_steps.rb +0 -3
- data/features/step_definitions/index_scope_steps.rb +0 -21
- data/features/step_definitions/index_views_steps.rb +0 -3
- data/features/step_definitions/layout_steps.rb +0 -3
- data/features/step_definitions/member_link_steps.rb +0 -7
- data/features/step_definitions/menu_steps.rb +0 -11
- data/features/step_definitions/meta_tag_steps.rb +0 -3
- data/features/step_definitions/pagination_steps.rb +0 -15
- data/features/step_definitions/sidebar_steps.rb +0 -13
- data/features/step_definitions/site_title_steps.rb +0 -17
- data/features/step_definitions/symbol_leak_steps.rb +0 -3
- data/features/step_definitions/tab_steps.rb +0 -8
- data/features/step_definitions/table_steps.rb +0 -120
- data/features/step_definitions/user_steps.rb +0 -45
- data/features/step_definitions/web_steps.rb +0 -85
- data/features/sti_resource.feature +0 -65
- data/features/strong_parameters.feature +0 -73
- data/features/support/env.rb +0 -162
- data/features/support/paths.rb +0 -71
- data/features/support/selectors.rb +0 -45
- data/features/symbol_leak.feature +0 -35
- data/features/users/logging_in.feature +0 -34
- data/features/users/logging_out.feature +0 -13
- data/features/users/resetting_password.feature +0 -34
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/filters/humanized.rb +0 -68
- data/lib/active_admin/helpers/settings.rb +0 -115
- data/lib/active_admin/reloader.rb +0 -25
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/lib/generators/active_admin/resource/templates/admin.rb +0 -45
- data/script/local +0 -53
- data/script/travis_cache +0 -107
- data/script/use_rails +0 -53
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
- data/spec/javascripts/fixtures/checkboxes.html +0 -9
- data/spec/javascripts/fixtures/flashes.html +0 -2
- data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
- data/spec/javascripts/helpers/SpecHelper.js +0 -3
- data/spec/javascripts/support/jasmine.yml +0 -74
- data/spec/javascripts/support/jasmine_config.rb +0 -23
- data/spec/javascripts/support/jasmine_runner.rb +0 -32
- data/spec/rails_helper.rb +0 -169
- data/spec/requests/default_namespace_spec.rb +0 -61
- data/spec/requests/javascript_spec.rb +0 -22
- data/spec/requests/memory_spec.rb +0 -21
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -17
- data/spec/support/active_admin_request_helpers.rb +0 -27
- data/spec/support/deferred_garbage_collection.rb +0 -19
- data/spec/support/detect_rails_version.rb +0 -34
- data/spec/support/jslint.yml +0 -80
- data/spec/support/rails_template.rb +0 -158
- data/spec/support/rails_template_with_data.rb +0 -55
- data/spec/support/templates/admin/stores.rb +0 -9
- data/spec/support/templates/en.yml +0 -8
- data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
- data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
- data/spec/support/templates/policies/admin_user_policy.rb +0 -11
- data/spec/support/templates/policies/application_policy.rb +0 -45
- data/spec/support/templates/policies/category_policy.rb +0 -7
- data/spec/support/templates/policies/post_policy.rb +0 -15
- data/spec/support/templates/policies/store_policy.rb +0 -11
- data/spec/support/templates/policies/user_policy.rb +0 -11
- data/spec/support/templates/post_decorator.rb +0 -11
- data/spec/unit/abstract_view_factory_spec.rb +0 -79
- data/spec/unit/action_builder_spec.rb +0 -134
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -165
- data/spec/unit/asset_registration_spec.rb +0 -52
- data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
- data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
- data/spec/unit/authorization/index_overriding_spec.rb +0 -23
- data/spec/unit/auto_link_spec.rb +0 -69
- data/spec/unit/batch_actions/resource_spec.rb +0 -97
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -65
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -188
- data/spec/unit/component_spec.rb +0 -18
- data/spec/unit/config_shared_examples.rb +0 -59
- data/spec/unit/controller_filters_spec.rb +0 -41
- data/spec/unit/csv_builder_spec.rb +0 -303
- data/spec/unit/dependency_spec.rb +0 -135
- data/spec/unit/devise_spec.rb +0 -96
- data/spec/unit/dsl_spec.rb +0 -122
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -434
- data/spec/unit/filters/humanized_spec.rb +0 -56
- data/spec/unit/filters/resource_spec.rb +0 -128
- data/spec/unit/form_builder_spec.rb +0 -815
- data/spec/unit/generators/install_spec.rb +0 -24
- data/spec/unit/helpers/collection_spec.rb +0 -65
- data/spec/unit/helpers/scope_chain_spec.rb +0 -36
- data/spec/unit/helpers/settings_spec.rb +0 -30
- data/spec/unit/i18n_spec.rb +0 -12
- data/spec/unit/menu_collection_spec.rb +0 -62
- data/spec/unit/menu_item_spec.rb +0 -143
- data/spec/unit/menu_spec.rb +0 -71
- data/spec/unit/namespace/authorization_spec.rb +0 -27
- data/spec/unit/namespace/register_page_spec.rb +0 -73
- data/spec/unit/namespace/register_resource_spec.rb +0 -160
- data/spec/unit/namespace_spec.rb +0 -103
- data/spec/unit/order_clause_spec.rb +0 -81
- data/spec/unit/page_controller_spec.rb +0 -5
- data/spec/unit/page_spec.rb +0 -78
- data/spec/unit/pretty_format_spec.rb +0 -77
- data/spec/unit/pundit_adapter_spec.rb +0 -98
- data/spec/unit/resource/action_items_spec.rb +0 -65
- data/spec/unit/resource/includes_spec.rb +0 -21
- data/spec/unit/resource/menu_spec.rb +0 -18
- data/spec/unit/resource/naming_spec.rb +0 -122
- data/spec/unit/resource/page_presenters_spec.rb +0 -44
- data/spec/unit/resource/pagination_spec.rb +0 -38
- data/spec/unit/resource/routes_spec.rb +0 -77
- data/spec/unit/resource/scopes_spec.rb +0 -50
- data/spec/unit/resource/sidebars_spec.rb +0 -43
- data/spec/unit/resource_collection_spec.rb +0 -175
- data/spec/unit/resource_controller/data_access_spec.rb +0 -140
- data/spec/unit/resource_controller/decorators_spec.rb +0 -94
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -38
- data/spec/unit/resource_controller_spec.rb +0 -269
- data/spec/unit/resource_registration_spec.rb +0 -56
- data/spec/unit/resource_spec.rb +0 -331
- data/spec/unit/routing_spec.rb +0 -185
- data/spec/unit/scope_spec.rb +0 -185
- data/spec/unit/settings_spec.rb +0 -118
- data/spec/unit/view_factory_spec.rb +0 -19
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -165
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
- data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
- data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
- data/spec/unit/views/components/attributes_table_spec.rb +0 -272
- data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
- data/spec/unit/views/components/blank_slate_spec.rb +0 -27
- data/spec/unit/views/components/columns_spec.rb +0 -189
- data/spec/unit/views/components/index_list_spec.rb +0 -35
- data/spec/unit/views/components/index_table_for_spec.rb +0 -127
- data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
- data/spec/unit/views/components/panel_spec.rb +0 -58
- data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
- data/spec/unit/views/components/site_title_spec.rb +0 -78
- data/spec/unit/views/components/status_tag_spec.rb +0 -249
- data/spec/unit/views/components/table_for_spec.rb +0 -434
- data/spec/unit/views/components/tabs_spec.rb +0 -39
- data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
- data/spec/unit/views/index_as_blog_spec.rb +0 -76
- data/spec/unit/views/pages/form_spec.rb +0 -51
- data/spec/unit/views/pages/index_spec.rb +0 -60
- data/spec/unit/views/pages/layout_spec.rb +0 -59
- data/spec/unit/views/pages/show_spec.rb +0 -33
- data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
- data/tasks/docs.rake +0 -37
- data/tasks/parallel_tests.rake +0 -66
- data/tasks/test.rake +0 -91
- data/tasks/yard.rake +0 -9
@@ -4,29 +4,38 @@ module ActiveAdmin
|
|
4
4
|
class Base < Arbre::HTML::Document
|
5
5
|
|
6
6
|
def build(*args)
|
7
|
-
|
8
|
-
add_classes_to_body
|
7
|
+
set_attribute :lang, I18n.locale
|
9
8
|
build_active_admin_head
|
10
9
|
build_page
|
11
10
|
end
|
12
11
|
|
13
|
-
|
12
|
+
alias_method :html_title, :title # Arbre::HTML::Title
|
13
|
+
def title
|
14
|
+
self.class.name
|
15
|
+
end
|
14
16
|
|
15
|
-
def
|
16
|
-
|
17
|
-
@body.add_class(params[:controller].tr('/', '_'))
|
18
|
-
@body.add_class("active_admin")
|
19
|
-
@body.add_class("logged_in")
|
20
|
-
@body.add_class(active_admin_namespace.name.to_s + "_namespace")
|
17
|
+
def main_content
|
18
|
+
I18n.t('active_admin.main_content', model: title).html_safe
|
21
19
|
end
|
22
20
|
|
21
|
+
private
|
22
|
+
|
23
|
+
delegate :active_admin_config, :controller, :params, to: :helpers
|
24
|
+
|
23
25
|
def build_active_admin_head
|
24
|
-
within
|
25
|
-
|
26
|
+
within head do
|
27
|
+
html_title [title, helpers.active_admin_namespace.site_title(self)].compact.join(" | ")
|
28
|
+
|
29
|
+
text_node(active_admin_namespace.head)
|
30
|
+
|
26
31
|
active_admin_application.stylesheets.each do |style, options|
|
27
32
|
text_node stylesheet_link_tag(style, options).html_safe
|
28
33
|
end
|
29
34
|
|
35
|
+
active_admin_namespace.meta_tags.each do |name, content|
|
36
|
+
text_node(tag(:meta, name: name, content: content))
|
37
|
+
end
|
38
|
+
|
30
39
|
active_admin_application.javascripts.each do |path|
|
31
40
|
text_node(javascript_include_tag(path))
|
32
41
|
end
|
@@ -35,45 +44,42 @@ module ActiveAdmin
|
|
35
44
|
text_node(favicon_link_tag(active_admin_namespace.favicon))
|
36
45
|
end
|
37
46
|
|
38
|
-
active_admin_namespace.meta_tags.each do |name, content|
|
39
|
-
text_node(tag(:meta, name: name, content: content))
|
40
|
-
end
|
41
|
-
|
42
47
|
text_node csrf_meta_tag
|
43
48
|
end
|
44
49
|
end
|
45
50
|
|
46
51
|
def build_page
|
47
|
-
within
|
52
|
+
within body(class: body_classes) do
|
48
53
|
div id: "wrapper" do
|
49
54
|
build_unsupported_browser
|
50
|
-
|
51
|
-
|
55
|
+
header active_admin_namespace, current_menu
|
56
|
+
title_bar title, action_items_for_action
|
52
57
|
build_page_content
|
53
|
-
|
58
|
+
footer active_admin_namespace
|
54
59
|
end
|
55
60
|
end
|
56
61
|
end
|
57
62
|
|
58
|
-
def
|
59
|
-
|
60
|
-
|
61
|
-
|
63
|
+
def body_classes
|
64
|
+
Arbre::HTML::ClassList.new [
|
65
|
+
params[:action],
|
66
|
+
params[:controller].tr('/', '_'),
|
67
|
+
'active_admin', 'logged_in',
|
68
|
+
active_admin_namespace.name.to_s + '_namespace'
|
69
|
+
]
|
62
70
|
end
|
63
71
|
|
64
|
-
def
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
def build_title_bar
|
69
|
-
insert_tag view_factory.title_bar, title, action_items_for_action
|
72
|
+
def build_unsupported_browser
|
73
|
+
if active_admin_namespace.unsupported_browser_matcher =~ controller.request.user_agent
|
74
|
+
unsupported_browser
|
75
|
+
end
|
70
76
|
end
|
71
77
|
|
72
78
|
def build_page_content
|
73
79
|
build_flash_messages
|
74
80
|
div id: "active_admin_content", class: (skip_sidebar? ? "without_sidebar" : "with_sidebar") do
|
75
81
|
build_main_content_wrapper
|
76
|
-
|
82
|
+
sidebar sidebar_sections_for_action, id: 'sidebar' unless skip_sidebar?
|
77
83
|
end
|
78
84
|
end
|
79
85
|
|
@@ -93,19 +99,6 @@ module ActiveAdmin
|
|
93
99
|
end
|
94
100
|
end
|
95
101
|
|
96
|
-
def main_content
|
97
|
-
I18n.t('active_admin.main_content', model: title).html_safe
|
98
|
-
end
|
99
|
-
|
100
|
-
def title
|
101
|
-
self.class.name
|
102
|
-
end
|
103
|
-
|
104
|
-
# Set's the page title for the layout to render
|
105
|
-
def set_page_title
|
106
|
-
set_ivar_on_view "@page_title", title
|
107
|
-
end
|
108
|
-
|
109
102
|
# Returns the sidebar sections to render for the current action
|
110
103
|
def sidebar_sections_for_action
|
111
104
|
if active_admin_config && active_admin_config.sidebar_sections?
|
@@ -123,24 +116,10 @@ module ActiveAdmin
|
|
123
116
|
end
|
124
117
|
end
|
125
118
|
|
126
|
-
# Renders the sidebar
|
127
|
-
def build_sidebar
|
128
|
-
div id: "sidebar" do
|
129
|
-
sidebar_sections_for_action.collect do |section|
|
130
|
-
sidebar_section(section)
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
119
|
def skip_sidebar?
|
136
120
|
sidebar_sections_for_action.empty? || assigns[:skip_sidebar] == true
|
137
121
|
end
|
138
122
|
|
139
|
-
# Renders the content for the footer
|
140
|
-
def build_footer
|
141
|
-
insert_tag view_factory.footer
|
142
|
-
end
|
143
|
-
|
144
123
|
end
|
145
124
|
end
|
146
125
|
end
|
@@ -6,10 +6,9 @@ module ActiveAdmin
|
|
6
6
|
|
7
7
|
def title
|
8
8
|
if form_presenter[:title]
|
9
|
-
render_or_call_method_or_proc_on(resource, form_presenter[:title])
|
9
|
+
helpers.render_or_call_method_or_proc_on(resource, form_presenter[:title])
|
10
10
|
else
|
11
|
-
assigns[:page_title] ||
|
12
|
-
model: active_admin_config.resource_label)
|
11
|
+
assigns[:page_title] || ActiveAdmin::Localizers.resource(active_admin_config).t("#{normalized_action}_model")
|
13
12
|
end
|
14
13
|
end
|
15
14
|
|
@@ -25,7 +25,13 @@ module ActiveAdmin
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def attributes_table(*args, &block)
|
28
|
-
|
28
|
+
opts = args.extract_options!
|
29
|
+
table_title = if opts.has_key?(:title)
|
30
|
+
render_or_call_method_or_proc_on(resource, opts[:title])
|
31
|
+
else
|
32
|
+
ActiveAdmin::Localizers.resource(active_admin_config).t(:details)
|
33
|
+
end
|
34
|
+
panel(table_title) do
|
29
35
|
attributes_table_for resource, *args, &block
|
30
36
|
end
|
31
37
|
end
|
@@ -48,7 +54,7 @@ module ActiveAdmin
|
|
48
54
|
end
|
49
55
|
|
50
56
|
def default_attribute_table_rows
|
51
|
-
|
57
|
+
active_admin_config.resource_columns
|
52
58
|
end
|
53
59
|
end
|
54
60
|
|
@@ -1,65 +1,10 @@
|
|
1
|
+
require_relative 'components/menu'
|
2
|
+
|
1
3
|
module ActiveAdmin
|
2
4
|
module Views
|
3
|
-
|
4
|
-
# Renders an ActiveAdmin::Menu as a set of unordered list items.
|
5
|
-
#
|
6
|
-
# This component takes cares of deciding which items should be
|
7
|
-
# displayed given the current context and renders them appropriately.
|
8
|
-
#
|
9
|
-
# The entire component is rendered within one ul element.
|
10
|
-
class TabbedNavigation < Component
|
11
|
-
|
12
|
-
attr_reader :menu
|
13
|
-
|
14
|
-
# Build a new tabbed navigation component.
|
15
|
-
#
|
16
|
-
# @param [ActiveAdmin::Menu] menu the Menu to render
|
17
|
-
# @param [Hash] options the options as passed to the underlying ul element.
|
18
|
-
#
|
5
|
+
class TabbedNavigation < Menu
|
19
6
|
def build(menu, options = {})
|
20
|
-
|
21
|
-
super(default_options.merge(options))
|
22
|
-
build_menu
|
23
|
-
end
|
24
|
-
|
25
|
-
# The top-level menu items that should be displayed.
|
26
|
-
def menu_items
|
27
|
-
menu.items(self)
|
28
|
-
end
|
29
|
-
|
30
|
-
def tag_name
|
31
|
-
'ul'
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def build_menu
|
37
|
-
menu_items.each do |item|
|
38
|
-
build_menu_item(item)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def build_menu_item(item)
|
43
|
-
li id: item.id do |li|
|
44
|
-
li.add_class "current" if item.current? assigns[:current_tab]
|
45
|
-
|
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
|
51
|
-
|
52
|
-
if children = item.items(self).presence
|
53
|
-
li.add_class "has_nested"
|
54
|
-
ul do
|
55
|
-
children.each{ |child| build_menu_item child }
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def default_options
|
62
|
-
{ id: "tabs" }
|
7
|
+
super(menu, options.reverse_merge(id: 'tabs'))
|
63
8
|
end
|
64
9
|
end
|
65
10
|
end
|
@@ -29,10 +29,10 @@ module ActiveAdmin
|
|
29
29
|
breadcrumb_config = active_admin_config && active_admin_config.breadcrumb
|
30
30
|
|
31
31
|
links = if breadcrumb_config.is_a?(Proc)
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
instance_exec(controller, &active_admin_config.breadcrumb)
|
33
|
+
elsif breadcrumb_config.present?
|
34
|
+
breadcrumb_links
|
35
|
+
end
|
36
36
|
return unless links.present? && links.is_a?(::Array)
|
37
37
|
span class: "breadcrumb" do
|
38
38
|
links.each do |link|
|
data/lib/active_admin/views.rb
CHANGED
data/lib/active_admin.rb
CHANGED
@@ -3,16 +3,14 @@ require 'set'
|
|
3
3
|
|
4
4
|
require 'ransack'
|
5
5
|
require 'ransack_ext'
|
6
|
-
require 'bourbon'
|
7
6
|
require 'kaminari'
|
8
7
|
require 'formtastic'
|
9
8
|
require 'formtastic_i18n'
|
10
|
-
require 'sass-rails'
|
11
9
|
require 'inherited_resources'
|
12
10
|
require 'jquery-rails'
|
13
|
-
require '
|
14
|
-
require 'coffee-rails'
|
11
|
+
require 'sassc-rails'
|
15
12
|
require 'arbre'
|
13
|
+
require 'sprockets/es6'
|
16
14
|
|
17
15
|
require 'active_admin/helpers/i18n'
|
18
16
|
|
@@ -33,9 +31,9 @@ module ActiveAdmin
|
|
33
31
|
autoload :Deprecation, 'active_admin/deprecation'
|
34
32
|
autoload :Devise, 'active_admin/devise'
|
35
33
|
autoload :DSL, 'active_admin/dsl'
|
36
|
-
autoload :Event, 'active_admin/event'
|
37
34
|
autoload :FormBuilder, 'active_admin/form_builder'
|
38
35
|
autoload :Inputs, 'active_admin/inputs'
|
36
|
+
autoload :Localizers, 'active_admin/localizers'
|
39
37
|
autoload :Menu, 'active_admin/menu'
|
40
38
|
autoload :MenuCollection, 'active_admin/menu_collection'
|
41
39
|
autoload :MenuItem, 'active_admin/menu_item'
|
@@ -92,7 +90,7 @@ module ActiveAdmin
|
|
92
90
|
#
|
93
91
|
# @param [Block] block A block to call each time (before) AA loads resources
|
94
92
|
def before_load(&block)
|
95
|
-
ActiveSupport::Notifications.subscribe ActiveAdmin::Application::BeforeLoadEvent, &
|
93
|
+
ActiveSupport::Notifications.subscribe ActiveAdmin::Application::BeforeLoadEvent, &wrap_block_for_active_support_notifications(block)
|
96
94
|
end
|
97
95
|
|
98
96
|
# A callback is triggered each time (after) Active Admin loads the configuration files. This
|
@@ -110,7 +108,13 @@ module ActiveAdmin
|
|
110
108
|
#
|
111
109
|
# @param [Block] block A block to call each time (after) AA loads resources
|
112
110
|
def after_load(&block)
|
113
|
-
ActiveSupport::Notifications.subscribe ActiveAdmin::Application::AfterLoadEvent, &
|
111
|
+
ActiveSupport::Notifications.subscribe ActiveAdmin::Application::AfterLoadEvent, &wrap_block_for_active_support_notifications(block)
|
112
|
+
end
|
113
|
+
|
114
|
+
private
|
115
|
+
|
116
|
+
def wrap_block_for_active_support_notifications block
|
117
|
+
proc { |event, *args| block.call *args }
|
114
118
|
end
|
115
119
|
|
116
120
|
end
|
@@ -2,10 +2,10 @@ module ActiveAdmin
|
|
2
2
|
module Generators
|
3
3
|
class AssetsGenerator < Rails::Generators::Base
|
4
4
|
|
5
|
-
source_root File.expand_path(
|
5
|
+
source_root File.expand_path('templates', __dir__)
|
6
6
|
|
7
7
|
def install_assets
|
8
|
-
template 'active_admin.js
|
8
|
+
template 'active_admin.js', 'app/assets/javascripts/active_admin.js'
|
9
9
|
template "active_admin.scss", "app/assets/stylesheets/active_admin.scss"
|
10
10
|
end
|
11
11
|
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require active_admin/base
|
@@ -12,8 +12,8 @@ module ActiveAdmin
|
|
12
12
|
|
13
13
|
RESERVED_NAMES = [:active_admin_user]
|
14
14
|
|
15
|
-
class_option :default_user, :
|
16
|
-
:
|
15
|
+
class_option :default_user, type: :boolean, default: true,
|
16
|
+
desc: "Should a default user be created inside the migration?"
|
17
17
|
|
18
18
|
def install_devise
|
19
19
|
begin
|
@@ -24,7 +24,10 @@ module ActiveAdmin
|
|
24
24
|
|
25
25
|
require 'devise'
|
26
26
|
|
27
|
-
|
27
|
+
initializer_file =
|
28
|
+
File.join(destination_root, "config", "initializers", "devise.rb")
|
29
|
+
|
30
|
+
if File.exist?(initializer_file)
|
28
31
|
log :generate, "No need to install devise, already done."
|
29
32
|
else
|
30
33
|
log :generate, "devise:install"
|
@@ -52,11 +55,11 @@ module ActiveAdmin
|
|
52
55
|
end
|
53
56
|
|
54
57
|
def add_default_user_to_seed
|
55
|
-
seeds_paths = Rails.application.paths["db/seeds.rb"]
|
58
|
+
seeds_paths = Rails.application.paths["db/seeds.rb"]
|
56
59
|
seeds_file = seeds_paths.existent.first
|
57
60
|
return if seeds_file.nil? || !options[:default_user]
|
58
61
|
|
59
|
-
create_user_code = "#{class_name}.create!(email: 'admin@example.com', password: 'password', password_confirmation: 'password')"
|
62
|
+
create_user_code = "#{class_name}.create!(email: 'admin@example.com', password: 'password', password_confirmation: 'password') if Rails.env.development?"
|
60
63
|
|
61
64
|
append_to_file seeds_file, create_user_code
|
62
65
|
end
|
@@ -7,12 +7,14 @@ module ActiveAdmin
|
|
7
7
|
argument :name, type: :string, default: "AdminUser"
|
8
8
|
|
9
9
|
hook_for :users, default: "devise", desc: "Admin user generator to run. Skip with --skip-users"
|
10
|
+
class_option :skip_comments, type: :boolean, default: false, desc: "Skip installation of comments"
|
10
11
|
|
11
|
-
source_root File.expand_path(
|
12
|
+
source_root File.expand_path('templates', __dir__)
|
12
13
|
|
13
14
|
def copy_initializer
|
14
15
|
@underscored_user_name = name.underscore.gsub('/', '_')
|
15
16
|
@use_authentication_method = options[:users].present?
|
17
|
+
@skip_comments = options[:skip_comments]
|
16
18
|
template 'active_admin.rb.erb', 'config/initializers/active_admin.rb'
|
17
19
|
end
|
18
20
|
|
@@ -21,7 +23,7 @@ module ActiveAdmin
|
|
21
23
|
template 'dashboard.rb', 'app/admin/dashboard.rb'
|
22
24
|
if options[:users].present?
|
23
25
|
@user_class = name
|
24
|
-
template '
|
26
|
+
template 'admin_users.rb.erb', "app/admin/#{name.underscore.pluralize}.rb"
|
25
27
|
end
|
26
28
|
end
|
27
29
|
|
@@ -38,7 +40,9 @@ module ActiveAdmin
|
|
38
40
|
end
|
39
41
|
|
40
42
|
def create_migrations
|
41
|
-
|
43
|
+
unless options[:skip_comments]
|
44
|
+
migration_template 'migrations/create_active_admin_comments.rb.erb', 'db/migrate/create_active_admin_comments.rb'
|
45
|
+
end
|
42
46
|
end
|
43
47
|
end
|
44
48
|
end
|
@@ -69,6 +69,11 @@ ActiveAdmin.setup do |config|
|
|
69
69
|
# case when Pundit is unable to find suitable policy.
|
70
70
|
# config.pundit_default_policy = "MyDefaultPunditPolicy"
|
71
71
|
|
72
|
+
# If you wish to maintain a separate set of Pundit policies for admin
|
73
|
+
# resources, you may set a namespace here that Pundit will search
|
74
|
+
# within when looking for a resource's policy.
|
75
|
+
# config.pundit_policy_namespace = :admin
|
76
|
+
|
72
77
|
# You can customize your CanCan Ability class name here.
|
73
78
|
# config.cancan_ability_class = "Ability"
|
74
79
|
|
@@ -119,7 +124,7 @@ ActiveAdmin.setup do |config|
|
|
119
124
|
# This allows your users to comment on any resource registered with Active Admin.
|
120
125
|
#
|
121
126
|
# You can completely disable comments:
|
122
|
-
|
127
|
+
<% unless @skip_comments %># <% end %>config.comments = false
|
123
128
|
#
|
124
129
|
# You can change the name under which comments are registered:
|
125
130
|
# config.comments_registration_name = 'AdminComment'
|
@@ -145,13 +150,23 @@ ActiveAdmin.setup do |config|
|
|
145
150
|
# You can add before, after and around filters to all of your
|
146
151
|
# Active Admin resources and pages from here.
|
147
152
|
#
|
148
|
-
# config.
|
153
|
+
# config.before_action :do_something_awesome
|
154
|
+
|
155
|
+
# == Attribute Filters
|
156
|
+
#
|
157
|
+
# You can exclude possibly sensitive model attributes from being displayed,
|
158
|
+
# added to forms, or exported by default by ActiveAdmin
|
159
|
+
#
|
160
|
+
config.filter_attributes = [:encrypted_password, :password, :password_confirmation]
|
149
161
|
|
150
162
|
# == Localize Date/Time Format
|
151
163
|
#
|
152
164
|
# Set the localize format to display dates and times.
|
153
165
|
# To understand how to localize your app with I18n, read more at
|
154
|
-
# https://
|
166
|
+
# https://guides.rubyonrails.org/i18n.html
|
167
|
+
#
|
168
|
+
# You can run `bin/rails runner 'puts I18n.t("date.formats")'` to see the
|
169
|
+
# available formats in your application.
|
155
170
|
#
|
156
171
|
config.localize_format = :long
|
157
172
|
|
@@ -179,6 +194,13 @@ ActiveAdmin.setup do |config|
|
|
179
194
|
#
|
180
195
|
# config.breadcrumb = false
|
181
196
|
|
197
|
+
# == Create Another Checkbox
|
198
|
+
#
|
199
|
+
# Create another checkbox is disabled by default. You can customize it for individual
|
200
|
+
# resources or you can enable them globally from here.
|
201
|
+
#
|
202
|
+
# config.create_another = true
|
203
|
+
|
182
204
|
# == Register Stylesheets & Javascripts
|
183
205
|
#
|
184
206
|
# We recommend using the built in Active Admin layout and loading
|
@@ -264,9 +286,43 @@ ActiveAdmin.setup do |config|
|
|
264
286
|
# config.filters = true
|
265
287
|
#
|
266
288
|
# By default the filters include associations in a select, which means
|
267
|
-
# that every record will be loaded for each association
|
289
|
+
# that every record will be loaded for each association (up
|
290
|
+
# to the value of config.maximum_association_filter_arity).
|
268
291
|
# You can enabled or disable the inclusion
|
269
292
|
# of those filters by default here.
|
270
293
|
#
|
271
294
|
# config.include_default_association_filters = true
|
295
|
+
|
296
|
+
# config.maximum_association_filter_arity = 256 # default value of :unlimited will change to 256 in a future version
|
297
|
+
# config.filter_columns_for_large_association, [
|
298
|
+
# :display_name,
|
299
|
+
# :full_name,
|
300
|
+
# :name,
|
301
|
+
# :username,
|
302
|
+
# :login,
|
303
|
+
# :title,
|
304
|
+
# :email,
|
305
|
+
# ]
|
306
|
+
# config.filter_method_for_large_association, '_starts_with'
|
307
|
+
|
308
|
+
# == Head
|
309
|
+
#
|
310
|
+
# You can add your own content to the site head like analytics. Make sure
|
311
|
+
# you only pass content you trust.
|
312
|
+
#
|
313
|
+
# config.head = ''.html_safe
|
314
|
+
|
315
|
+
# == Footer
|
316
|
+
#
|
317
|
+
# By default, the footer shows the current Active Admin version. You can
|
318
|
+
# override the content of the footer here.
|
319
|
+
#
|
320
|
+
# config.footer = 'my custom footer text'
|
321
|
+
|
322
|
+
# == Sorting
|
323
|
+
#
|
324
|
+
# By default ActiveAdmin::OrderClause is used for sorting logic
|
325
|
+
# You can inherit it with own class and inject it for all resources
|
326
|
+
#
|
327
|
+
# config.order_clause = MyOrderClause
|
272
328
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
ActiveAdmin.register <%= @user_class %> do
|
2
|
-
<% unless Rails::VERSION::MAJOR < 4 -%>
|
3
2
|
permit_params :email, :password, :password_confirmation
|
4
3
|
|
5
|
-
<% end -%>
|
6
4
|
index do
|
7
5
|
selectable_column
|
8
6
|
id_column
|
@@ -19,7 +17,7 @@ ActiveAdmin.register <%= @user_class %> do
|
|
19
17
|
filter :created_at
|
20
18
|
|
21
19
|
form do |f|
|
22
|
-
f.inputs
|
20
|
+
f.inputs do
|
23
21
|
f.input :email
|
24
22
|
f.input :password
|
25
23
|
f.input :password_confirmation
|
@@ -1,8 +1,7 @@
|
|
1
1
|
ActiveAdmin.register_page "Dashboard" do
|
2
|
+
menu priority: 1, label: proc { I18n.t("active_admin.dashboard") }
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
content title: proc{ I18n.t("active_admin.dashboard") } do
|
4
|
+
content title: proc { I18n.t("active_admin.dashboard") } do
|
6
5
|
div class: "blank_slate_container", id: "dashboard_default_message" do
|
7
6
|
span class: "blank_slate" do
|
8
7
|
span I18n.t("active_admin.dashboard_welcome.welcome")
|
@@ -1,16 +1,13 @@
|
|
1
|
-
class CreateActiveAdminComments < ActiveRecord::Migration
|
1
|
+
class CreateActiveAdminComments < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version.to_s %>]
|
2
2
|
def self.up
|
3
3
|
create_table :active_admin_comments do |t|
|
4
4
|
t.string :namespace
|
5
5
|
t.text :body
|
6
|
-
t.
|
7
|
-
t.string :resource_type, null: false
|
6
|
+
t.references :resource, polymorphic: true
|
8
7
|
t.references :author, polymorphic: true
|
9
8
|
t.timestamps
|
10
9
|
end
|
11
10
|
add_index :active_admin_comments, [:namespace]
|
12
|
-
add_index :active_admin_comments, [:author_type, :author_id]
|
13
|
-
add_index :active_admin_comments, [:resource_type, :resource_id]
|
14
11
|
end
|
15
12
|
|
16
13
|
def self.down
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module ActiveAdmin
|
2
2
|
module Generators
|
3
3
|
class PageGenerator < Rails::Generators::NamedBase
|
4
|
-
source_root File.expand_path('
|
4
|
+
source_root File.expand_path('templates', __dir__)
|
5
5
|
|
6
6
|
def generate_config_file
|
7
7
|
template "page.rb", "app/admin/#{file_path.tr('/', '_')}.rb"
|
@@ -8,11 +8,11 @@ module ActiveAdmin
|
|
8
8
|
class_option :include_boilerplate, type: :boolean, default: false,
|
9
9
|
desc: "Generate boilerplate code for your resource."
|
10
10
|
|
11
|
-
source_root File.expand_path(
|
11
|
+
source_root File.expand_path('templates', __dir__)
|
12
12
|
|
13
13
|
def generate_config_file
|
14
14
|
@boilerplate = ActiveAdmin::Generators::Boilerplate.new(class_name)
|
15
|
-
template "admin.rb", "app/admin/#{file_path.tr('/', '_')}.rb"
|
15
|
+
template "admin.rb.erb", "app/admin/#{file_path.tr('/', '_').pluralize}.rb"
|
16
16
|
end
|
17
17
|
|
18
18
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
ActiveAdmin.register <%= class_name %> do
|
2
|
+
|
3
|
+
# See permitted parameters documentation:
|
4
|
+
# https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters
|
5
|
+
#
|
6
|
+
# Uncomment all parameters which should be permitted for assignment
|
7
|
+
#
|
8
|
+
# permit_params <%= @boilerplate.permit_params %>
|
9
|
+
#
|
10
|
+
# or
|
11
|
+
#
|
12
|
+
# permit_params do
|
13
|
+
# permitted = [<%= @boilerplate.permit_params %>]
|
14
|
+
# permitted << :other if params[:action] == 'create' && current_user.admin?
|
15
|
+
# permitted
|
16
|
+
# end
|
17
|
+
<% if options.include_boilerplate? %>
|
18
|
+
# Limit actions available to your users by adding them to the 'except' array
|
19
|
+
# actions :all, except: []
|
20
|
+
|
21
|
+
# Add or remove filters (you can use any ActiveRecord scope) to toggle their
|
22
|
+
# visibility in the sidebar
|
23
|
+
<%= @boilerplate.filters %>
|
24
|
+
|
25
|
+
# Add or remove columns to toggle their visiblity in the index action
|
26
|
+
# index do
|
27
|
+
# selectable_column
|
28
|
+
# id_column
|
29
|
+
<%= @boilerplate.columns %>
|
30
|
+
# actions
|
31
|
+
# end
|
32
|
+
|
33
|
+
# Add or remove rows to toggle their visiblity in the show action
|
34
|
+
# show do |<%= class_name.downcase %>|
|
35
|
+
<%= @boilerplate.rows %>
|
36
|
+
# end
|
37
|
+
|
38
|
+
# Add or remove fields to toggle their visibility in the form
|
39
|
+
# form do |f|
|
40
|
+
# f.inputs do
|
41
|
+
<%= @boilerplate.form_inputs %>
|
42
|
+
# end
|
43
|
+
# f.actions
|
44
|
+
# end
|
45
|
+
<% end %>
|
46
|
+
end
|