activeadmin 1.3.1 → 2.9.0
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 +589 -136
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +83 -61
- data/README.md +73 -19
- data/app/assets/javascripts/active_admin/base.js +517 -0
- data/app/assets/stylesheets/active_admin/_base.scss +29 -29
- data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
- data/app/assets/stylesheets/active_admin/_header.scss +40 -8
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
- data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
- data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +8 -0
- data/app/assets/stylesheets/active_admin/print.scss +2 -2
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
- data/app/javascript/active_admin/base.js +28 -0
- data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
- data/app/javascript/active_admin/ext/jquery.js +9 -0
- data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/datepicker.js +16 -0
- data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
- data/app/javascript/active_admin/initializers/filters.js +10 -0
- data/app/javascript/active_admin/initializers/has-many.js +95 -0
- data/app/javascript/active_admin/initializers/per-page.js +13 -0
- data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/tabs.js +6 -0
- data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
- data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
- data/app/javascript/active_admin/lib/filters.js +39 -0
- data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
- data/app/javascript/active_admin/lib/per-page.js +38 -0
- data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
- data/app/javascript/active_admin/lib/utils.js +40 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
- 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 +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 +2 -3
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
- 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 +17 -7
- data/config/locales/ar.yml +9 -8
- data/config/locales/az.yml +138 -0
- data/config/locales/bg.yml +1 -1
- data/config/locales/bs.yml +1 -0
- data/config/locales/ca.yml +1 -1
- data/config/locales/cs.yml +1 -0
- data/config/locales/da.yml +1 -0
- data/config/locales/de-CH.yml +1 -0
- data/config/locales/de.yml +29 -0
- data/config/locales/el.yml +1 -0
- data/config/locales/en-CA.yml +4 -3
- data/config/locales/en-GB.yml +4 -3
- data/config/locales/en.yml +23 -4
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +3 -1
- data/config/locales/es.yml +26 -6
- data/config/locales/fa.yml +1 -0
- data/config/locales/fi.yml +2 -1
- data/config/locales/fr.yml +6 -5
- data/config/locales/he.yml +1 -1
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +5 -0
- data/config/locales/id.yml +1 -0
- data/config/locales/it.yml +23 -0
- data/config/locales/ja.yml +4 -3
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt.yml +3 -2
- data/config/locales/lv.yml +3 -2
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +16 -5
- data/config/locales/nl.yml +12 -0
- data/config/locales/pl.yml +72 -3
- data/config/locales/pt-BR.yml +1 -0
- data/config/locales/pt-PT.yml +1 -0
- data/config/locales/ro.yml +1 -0
- data/config/locales/ru.yml +3 -0
- data/config/locales/sk.yml +60 -0
- data/config/locales/sv-SE.yml +1 -0
- data/config/locales/tr.yml +10 -0
- data/config/locales/uk.yml +3 -0
- data/config/locales/vi.yml +7 -5
- data/config/locales/zh-CN.yml +34 -5
- data/config/locales/zh-TW.yml +1 -0
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +28 -4
- data/docs/1-general-configuration.md +36 -1
- data/docs/10-custom-pages.md +14 -0
- data/docs/11-decorators.md +16 -5
- data/docs/12-arbre-components.md +41 -1
- data/docs/13-authorization-adapter.md +41 -22
- data/docs/2-resource-customization.md +19 -5
- data/docs/3-index-pages/custom-index.md +1 -1
- data/docs/3-index-pages/index-as-blog.md +1 -1
- data/docs/3-index-pages/index-as-table.md +12 -5
- data/docs/3-index-pages.md +18 -1
- data/docs/5-forms.md +22 -3
- data/docs/6-show-pages.md +12 -0
- data/docs/8-custom-actions.md +11 -0
- data/docs/9-batch-actions.md +2 -2
- data/docs/CNAME +1 -1
- data/docs/Gemfile +3 -2
- data/docs/Gemfile.lock +259 -0
- data/docs/_config.yml +3 -1
- data/docs/_includes/toc.html +1 -1
- data/docs/_includes/top-menu.html +9 -1
- data/docs/documentation.md +2 -2
- data/docs/images/tidelift.svg +14 -0
- data/docs/index.html +110 -9
- data/docs/stylesheets/main.css +55 -2
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +59 -166
- data/lib/active_admin/application_settings.rb +42 -0
- data/lib/active_admin/asset_registration.rb +0 -8
- data/lib/active_admin/authorization_adapter.rb +3 -3
- data/lib/active_admin/base_controller/authorization.rb +16 -17
- data/lib/active_admin/base_controller.rb +10 -10
- data/lib/active_admin/batch_actions/controller.rb +5 -5
- data/lib/active_admin/batch_actions/resource_extension.rb +15 -10
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +3 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +6 -6
- data/lib/active_admin/batch_actions/views/selection_cells.rb +3 -3
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/cancan_adapter.rb +1 -1
- data/lib/active_admin/collection_decorator.rb +31 -0
- data/lib/active_admin/controller_action.rb +2 -1
- data/lib/active_admin/csv_builder.rb +14 -9
- data/lib/active_admin/dependency.rb +13 -77
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/devise.rb +5 -5
- data/lib/active_admin/dsl.rb +2 -9
- 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 +14 -7
- data/lib/active_admin/error.rb +4 -4
- data/lib/active_admin/filters/active.rb +1 -1
- data/lib/active_admin/filters/active_filter.rb +11 -11
- data/lib/active_admin/filters/active_sidebar.rb +9 -5
- data/lib/active_admin/filters/forms.rb +12 -9
- data/lib/active_admin/filters/formtastic_addons.rb +2 -7
- data/lib/active_admin/filters/resource_extension.rb +29 -5
- data/lib/active_admin/filters.rb +7 -7
- data/lib/active_admin/form_builder.rb +109 -70
- data/lib/active_admin/generators/boilerplate.rb +12 -4
- data/lib/active_admin/helpers/optional_display.rb +2 -2
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +9 -2
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +6 -6
- data/lib/active_admin/inputs/filters/base.rb +1 -1
- data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
- data/lib/active_admin/inputs/filters/date_range_input.rb +15 -12
- data/lib/active_admin/inputs/filters/select_input.rb +2 -2
- data/lib/active_admin/localizers/resource_localizer.rb +3 -3
- data/lib/active_admin/localizers.rb +1 -1
- data/lib/active_admin/menu.rb +8 -11
- data/lib/active_admin/menu_item.rb +10 -38
- data/lib/active_admin/namespace.rb +30 -18
- data/lib/active_admin/namespace_settings.rb +126 -0
- data/lib/active_admin/order_clause.rb +2 -2
- data/lib/active_admin/orm/active_record/comments/comment.rb +4 -4
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +29 -24
- data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
- data/lib/active_admin/orm/active_record/comments.rb +34 -23
- data/lib/active_admin/orm/active_record.rb +1 -1
- data/lib/active_admin/page.rb +1 -1
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/page_presenter.rb +2 -1
- data/lib/active_admin/pundit_adapter.rb +22 -9
- data/lib/active_admin/resource/action_items.rb +11 -6
- data/lib/active_admin/resource/attributes.rb +8 -5
- data/lib/active_admin/resource/belongs_to.rb +8 -3
- data/lib/active_admin/resource/controllers.rb +1 -1
- data/lib/active_admin/resource/menu.rb +5 -5
- data/lib/active_admin/resource/model.rb +15 -0
- data/lib/active_admin/resource/naming.rb +5 -5
- data/lib/active_admin/resource/routes.rb +25 -14
- data/lib/active_admin/resource/scope_to.rb +7 -7
- data/lib/active_admin/resource/scopes.rb +3 -3
- data/lib/active_admin/resource/sidebars.rb +2 -2
- data/lib/active_admin/resource.rb +34 -20
- 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 +1 -1
- data/lib/active_admin/resource_controller/decorators.rb +9 -31
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -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/streaming.rb +7 -6
- data/lib/active_admin/resource_controller.rb +13 -10
- data/lib/active_admin/resource_dsl.rb +11 -9
- data/lib/active_admin/router.rb +90 -84
- data/lib/active_admin/scope.rb +19 -11
- 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_factory.rb +17 -17
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
- data/lib/active_admin/view_helpers/display_helper.rb +16 -7
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
- data/lib/active_admin/view_helpers/fields_for.rb +2 -2
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
- data/lib/active_admin/view_helpers.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +12 -7
- data/lib/active_admin/views/components/attributes_table.rb +8 -8
- data/lib/active_admin/views/components/blank_slate.rb +1 -1
- data/lib/active_admin/views/components/dropdown_menu.rb +8 -8
- data/lib/active_admin/views/components/index_list.rb +3 -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 +21 -20
- data/lib/active_admin/views/components/panel.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +17 -8
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/sidebar_section.rb +0 -3
- data/lib/active_admin/views/components/site_title.rb +6 -7
- data/lib/active_admin/views/components/status_tag.rb +13 -26
- data/lib/active_admin/views/components/table_for.rb +21 -29
- data/lib/active_admin/views/components/tabs.rb +17 -5
- data/lib/active_admin/views/footer.rb +5 -8
- data/lib/active_admin/views/header.rb +3 -15
- data/lib/active_admin/views/index_as_blog.rb +2 -2
- data/lib/active_admin/views/index_as_grid.rb +26 -26
- data/lib/active_admin/views/index_as_table.rb +33 -25
- data/lib/active_admin/views/pages/base.rb +40 -59
- data/lib/active_admin/views/pages/index.rb +15 -13
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/active_admin/views/title_bar.rb +1 -1
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin.rb +67 -63
- data/lib/activeadmin.rb +1 -1
- 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/assets/templates/active_admin.scss +2 -2
- data/lib/generators/active_admin/devise/devise_generator.rb +5 -5
- data/lib/generators/active_admin/install/install_generator.rb +18 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -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.erb +1 -15
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +3 -3
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
- data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
- data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
- data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
- data/lib/ransack_ext.rb +9 -9
- 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/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
- metadata +120 -553
- data/.github/ISSUE_TEMPLATE.md +0 -20
- data/.gitignore +0 -49
- data/.mdlrc +0 -1
- data/.rubocop.yml +0 -76
- data/.simplecov +0 -13
- data/.travis.yml +0 -51
- data/.yardopts +0 -7
- data/Gemfile +0 -58
- data/Rakefile +0 -54
- data/activeadmin.gemspec +0 -32
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
- 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 -11
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
- 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 -46
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
- data/codecov.yml +0 -25
- data/config/i18n-tasks.yml +0 -26
- data/config/mdl_style.rb +0 -9
- 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 -124
- data/features/breadcrumb.feature +0 -75
- data/features/comments/commenting.feature +0 -178
- data/features/comments/viewing_index.feature +0 -19
- data/features/create_another.feature +0 -55
- data/features/dashboard.feature +0 -16
- data/features/decorators.feature +0 -43
- data/features/development_reloading.feature +0 -28
- data/features/edit_page.feature +0 -116
- data/features/favicon.feature +0 -20
- data/features/first_boot.feature +0 -16
- data/features/footer.feature +0 -28
- data/features/global_navigation.feature +0 -29
- data/features/i18n.feature +0 -55
- data/features/index/batch_actions.feature +0 -218
- data/features/index/filters.feature +0 -250
- data/features/index/format_as_csv.feature +0 -220
- data/features/index/formats.feature +0 -88
- 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 -285
- data/features/index/page_title.feature +0 -41
- data/features/index/pagination.feature +0 -63
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -72
- data/features/meta_tags.feature +0 -21
- data/features/new_page.feature +0 -136
- data/features/registering_assets.feature +0 -38
- data/features/registering_pages.feature +0 -237
- data/features/registering_resources.feature +0 -33
- data/features/renamed_resource.feature +0 -30
- data/features/root_to.feature +0 -17
- data/features/show/attributes_table_title.feature +0 -54
- data/features/show/columns.feature +0 -40
- data/features/show/default_content.feature +0 -44
- data/features/show/page_title.feature +0 -58
- data/features/show/tabs.feature +0 -33
- data/features/sidebar_sections.feature +0 -210
- data/features/site_title.feature +0 -47
- data/features/specifying_actions.feature +0 -118
- data/features/step_definitions/action_item_steps.rb +0 -7
- data/features/step_definitions/action_link_steps.rb +0 -19
- 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/attributes_table_title_steps.rb +0 -11
- 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 -32
- 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 -47
- data/features/step_definitions/flash_steps.rb +0 -11
- data/features/step_definitions/footer_steps.rb +0 -11
- data/features/step_definitions/format_steps.rb +0 -56
- data/features/step_definitions/i18n_steps.rb +0 -11
- data/features/step_definitions/index_scope_steps.rb +0 -29
- 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 -11
- data/features/step_definitions/site_title_steps.rb +0 -17
- data/features/step_definitions/tab_steps.rb +0 -8
- data/features/step_definitions/table_steps.rb +0 -116
- data/features/step_definitions/user_steps.rb +0 -52
- data/features/step_definitions/web_steps.rb +0 -86
- data/features/sti_resource.feature +0 -65
- data/features/strong_parameters.feature +0 -69
- data/features/support/env.rb +0 -122
- data/features/support/paths.rb +0 -73
- data/features/support/regular_env.rb +0 -7
- data/features/support/reload_env.rb +0 -7
- data/features/support/selectors.rb +0 -45
- data/features/users/logging_in.feature +0 -36
- data/features/users/logging_out.feature +0 -13
- data/features/users/resetting_password.feature +0 -34
- data/gemfiles/rails_42.gemfile +0 -10
- data/gemfiles/rails_50.gemfile +0 -10
- data/gemfiles/rails_51.gemfile +0 -10
- data/gemfiles/rails_52.gemfile +0 -11
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
- data/lib/active_admin/helpers/settings.rb +0 -114
- data/lib/active_admin/reloader.rb +0 -25
- data/lib/bug_report_templates/active_admin_master.rb +0 -112
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/spec/bug_report_templates_spec.rb +0 -26
- 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_runner.rb +0 -19
- data/spec/rails_helper.rb +0 -59
- data/spec/requests/default_namespace_spec.rb +0 -81
- data/spec/requests/memory_spec.rb +0 -25
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -1
- data/spec/support/active_admin_integration_spec_helper.rb +0 -73
- data/spec/support/active_admin_request_helpers.rb +0 -39
- data/spec/support/rails_template.rb +0 -153
- data/spec/support/rails_template_with_data.rb +0 -327
- data/spec/support/templates/admin/stores.rb +0 -7
- data/spec/support/templates/en.yml +0 -8
- data/spec/support/templates/manifest.js +0 -3
- 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 -44
- 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 -24
- data/spec/unit/abstract_view_factory_spec.rb +0 -78
- data/spec/unit/action_builder_spec.rb +0 -158
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -184
- data/spec/unit/asset_registration_spec.rb +0 -81
- data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
- data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
- data/spec/unit/authorization/index_overriding_spec.rb +0 -23
- data/spec/unit/auto_link_spec.rb +0 -93
- data/spec/unit/batch_actions/resource_spec.rb +0 -84
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -76
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -176
- 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 -313
- data/spec/unit/dependency_spec.rb +0 -135
- data/spec/unit/devise_spec.rb +0 -110
- data/spec/unit/dsl_spec.rb +0 -120
- data/spec/unit/filters/active_filter_spec.rb +0 -189
- data/spec/unit/filters/active_spec.rb +0 -24
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
- data/spec/unit/filters/resource_spec.rb +0 -128
- data/spec/unit/form_builder_spec.rb +0 -990
- data/spec/unit/generators/install_spec.rb +0 -31
- data/spec/unit/helpers/collection_spec.rb +0 -68
- data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
- data/spec/unit/helpers/scope_chain_spec.rb +0 -35
- data/spec/unit/helpers/settings_spec.rb +0 -30
- data/spec/unit/i18n_spec.rb +0 -29
- data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
- data/spec/unit/menu_collection_spec.rb +0 -62
- data/spec/unit/menu_item_spec.rb +0 -141
- 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 -99
- data/spec/unit/namespace/register_resource_spec.rb +0 -162
- data/spec/unit/namespace_spec.rb +0 -124
- 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 -128
- data/spec/unit/pretty_format_spec.rb +0 -82
- data/spec/unit/pundit_adapter_spec.rb +0 -98
- data/spec/unit/resource/action_items_spec.rb +0 -69
- data/spec/unit/resource/attributes_spec.rb +0 -49
- 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/ordering_spec.rb +0 -35
- 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 -125
- 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 -234
- data/spec/unit/resource_controller/decorators_spec.rb +0 -94
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
- data/spec/unit/resource_controller_spec.rb +0 -273
- data/spec/unit/resource_registration_spec.rb +0 -61
- data/spec/unit/resource_spec.rb +0 -320
- data/spec/unit/routing_spec.rb +0 -211
- data/spec/unit/scope_spec.rb +0 -209
- data/spec/unit/settings_spec.rb +0 -117
- data/spec/unit/view_factory_spec.rb +0 -19
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
- 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 -24
- data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
- data/spec/unit/views/components/attributes_table_spec.rb +0 -271
- 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 -187
- data/spec/unit/views/components/index_list_spec.rb +0 -49
- 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 -76
- data/spec/unit/views/components/status_tag_spec.rb +0 -265
- data/spec/unit/views/components/table_for_spec.rb +0 -436
- data/spec/unit/views/components/tabs_spec.rb +0 -67
- 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 -54
- 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 -32
- data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
- data/tasks/docs.rake +0 -64
- data/tasks/lint.rake +0 -21
- data/tasks/local.rake +0 -25
- data/tasks/parallel_tests.rake +0 -66
- data/tasks/test.rake +0 -29
|
@@ -7,8 +7,8 @@ module ActiveAdmin
|
|
|
7
7
|
def to_html
|
|
8
8
|
input_wrapping do
|
|
9
9
|
[ label_html,
|
|
10
|
-
builder.text_field(gt_input_name,
|
|
11
|
-
builder.text_field(lt_input_name,
|
|
10
|
+
builder.text_field(gt_input_name, input_html_options_for(gt_input_name, gt_input_placeholder)),
|
|
11
|
+
builder.text_field(lt_input_name, input_html_options_for(lt_input_name, lt_input_placeholder)),
|
|
12
12
|
].join("\n").html_safe
|
|
13
13
|
end
|
|
14
14
|
end
|
|
@@ -22,18 +22,21 @@ module ActiveAdmin
|
|
|
22
22
|
column && column.type == :date ? "#{method}_lteq" : "#{method}_lteq_datetime"
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
def input_html_options
|
|
26
|
-
current_value = begin
|
|
27
|
-
#cast value to date object before rendering input
|
|
28
|
-
@object.public_send(input_name).to_s.to_date
|
|
29
|
-
rescue
|
|
30
|
-
nil
|
|
31
|
-
end
|
|
25
|
+
def input_html_options
|
|
32
26
|
{ size: 12,
|
|
33
27
|
class: "datepicker",
|
|
34
|
-
maxlength: 10
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
maxlength: 10 }.merge(options[:input_html] || {})
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def input_html_options_for(input_name, placeholder)
|
|
32
|
+
current_value = begin
|
|
33
|
+
#cast value to date object before rendering input
|
|
34
|
+
@object.public_send(input_name).to_s.to_date
|
|
35
|
+
rescue
|
|
36
|
+
nil
|
|
37
|
+
end
|
|
38
|
+
{ placeholder: placeholder,
|
|
39
|
+
value: current_value ? current_value.strftime("%Y-%m-%d") : "" }.merge(input_html_options)
|
|
37
40
|
end
|
|
38
41
|
|
|
39
42
|
def gt_input_placeholder
|
|
@@ -7,7 +7,7 @@ module ActiveAdmin
|
|
|
7
7
|
def input_name
|
|
8
8
|
return method if seems_searchable?
|
|
9
9
|
|
|
10
|
-
searchable_method_name + (multiple? ?
|
|
10
|
+
searchable_method_name + (multiple? ? "_in" : "_eq")
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def searchable_method_name
|
|
@@ -22,7 +22,7 @@ module ActiveAdmin
|
|
|
22
22
|
|
|
23
23
|
# Provide the AA translation to the blank input field.
|
|
24
24
|
def include_blank
|
|
25
|
-
I18n.t
|
|
25
|
+
I18n.t "active_admin.any" if super
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def input_html_options_name
|
|
@@ -19,16 +19,16 @@ module ActiveAdmin
|
|
|
19
19
|
|
|
20
20
|
def translate(key, options = {})
|
|
21
21
|
scope = options.delete(:scope)
|
|
22
|
-
specific_key = array_to_key(
|
|
22
|
+
specific_key = array_to_key("resources", @model_name, scope, key)
|
|
23
23
|
defaults = [array_to_key(scope, key), key.to_s.titleize]
|
|
24
|
-
::I18n.t specific_key, options.reverse_merge(model: @model, default: defaults, scope:
|
|
24
|
+
::I18n.t specific_key, **options.reverse_merge(model: @model, default: defaults, scope: "active_admin")
|
|
25
25
|
end
|
|
26
26
|
alias_method :t, :translate
|
|
27
27
|
|
|
28
28
|
protected
|
|
29
29
|
|
|
30
30
|
def array_to_key(*arr)
|
|
31
|
-
arr.flatten.compact.join(
|
|
31
|
+
arr.flatten.compact.join(".").to_sym
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
end
|
data/lib/active_admin/menu.rb
CHANGED
|
@@ -47,7 +47,10 @@ module ActiveAdmin
|
|
|
47
47
|
# menu.add parent: 'Dashboard', label: 'My Child Dashboard'
|
|
48
48
|
#
|
|
49
49
|
def add(options)
|
|
50
|
-
|
|
50
|
+
parent_chain = Array.wrap(options.delete(:parent))
|
|
51
|
+
|
|
52
|
+
item = if parent = parent_chain.shift
|
|
53
|
+
options[:parent] = parent_chain if parent_chain.any?
|
|
51
54
|
(self[parent] || add(label: parent)).add options
|
|
52
55
|
else
|
|
53
56
|
_add options.merge parent: self
|
|
@@ -60,7 +63,7 @@ module ActiveAdmin
|
|
|
60
63
|
|
|
61
64
|
# Whether any children match the given item.
|
|
62
65
|
def include?(item)
|
|
63
|
-
@children.values.include? item
|
|
66
|
+
@children.values.include?(item) || @children.values.any? { |child| child.include?(item) }
|
|
64
67
|
end
|
|
65
68
|
|
|
66
69
|
# Used in the UI to visually distinguish which menu item is selected.
|
|
@@ -68,14 +71,8 @@ module ActiveAdmin
|
|
|
68
71
|
self == item || include?(item)
|
|
69
72
|
end
|
|
70
73
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
def items(context = nil)
|
|
74
|
-
@children.values.select{ |i| i.display?(context) }.sort do |a, b|
|
|
75
|
-
result = a.priority <=> b.priority
|
|
76
|
-
result = a.label(context) <=> b.label(context) if result == 0
|
|
77
|
-
result
|
|
78
|
-
end
|
|
74
|
+
def items
|
|
75
|
+
@children.values
|
|
79
76
|
end
|
|
80
77
|
|
|
81
78
|
attr_reader :children
|
|
@@ -93,7 +90,7 @@ module ActiveAdmin
|
|
|
93
90
|
def normalize_id(id)
|
|
94
91
|
case id
|
|
95
92
|
when String, Symbol, ActiveModel::Name
|
|
96
|
-
id.to_s.downcase.tr
|
|
93
|
+
id.to_s.downcase.tr " ", "_"
|
|
97
94
|
when ActiveAdmin::Resource::Name
|
|
98
95
|
id.param_key
|
|
99
96
|
else
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
require 'active_admin/view_helpers/method_or_proc_helper'
|
|
2
|
-
|
|
3
1
|
module ActiveAdmin
|
|
4
2
|
class MenuItem
|
|
5
3
|
include Menu::MenuNode
|
|
6
|
-
include MethodOrProcHelper
|
|
7
4
|
|
|
8
5
|
attr_reader :html_options, :parent, :priority
|
|
9
6
|
|
|
@@ -48,13 +45,13 @@ module ActiveAdmin
|
|
|
48
45
|
#
|
|
49
46
|
def initialize(options = {})
|
|
50
47
|
super() # MenuNode
|
|
51
|
-
@label
|
|
52
|
-
@dirty_id
|
|
53
|
-
@url
|
|
54
|
-
@priority
|
|
55
|
-
@html_options
|
|
56
|
-
@should_display = options[:if]
|
|
57
|
-
@parent
|
|
48
|
+
@label = options[:label]
|
|
49
|
+
@dirty_id = options[:id] || options[:label]
|
|
50
|
+
@url = options[:url] || "#"
|
|
51
|
+
@priority = options[:priority] || 10
|
|
52
|
+
@html_options = options[:html_options] || {}
|
|
53
|
+
@should_display = options[:if] || proc { true }
|
|
54
|
+
@parent = options[:parent]
|
|
58
55
|
|
|
59
56
|
yield(self) if block_given? # Builder style syntax
|
|
60
57
|
end
|
|
@@ -63,35 +60,10 @@ module ActiveAdmin
|
|
|
63
60
|
@id ||= normalize_id @dirty_id
|
|
64
61
|
end
|
|
65
62
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def url(context = nil)
|
|
71
|
-
render_in_context context, @url
|
|
72
|
-
end
|
|
63
|
+
attr_reader :label
|
|
64
|
+
attr_reader :url
|
|
73
65
|
|
|
74
66
|
# Don't display if the :if option passed says so
|
|
75
|
-
|
|
76
|
-
def display?(context = nil)
|
|
77
|
-
return false unless render_in_context(context, @should_display)
|
|
78
|
-
return false if !real_url?(context) && @children.any? && !items(context).any?
|
|
79
|
-
true
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
# Returns an array of the ancestry of this menu item.
|
|
83
|
-
# The first item is the immediate parent of the item.
|
|
84
|
-
def ancestors
|
|
85
|
-
parent ? [parent, parent.ancestors].flatten : []
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
private
|
|
89
|
-
|
|
90
|
-
# URL is not nil, empty, or '#'
|
|
91
|
-
def real_url?(context = nil)
|
|
92
|
-
url = url context
|
|
93
|
-
url.present? && url != '#'
|
|
94
|
-
end
|
|
95
|
-
|
|
67
|
+
attr_reader :should_display
|
|
96
68
|
end
|
|
97
69
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "active_admin/resource_collection"
|
|
2
2
|
|
|
3
3
|
module ActiveAdmin
|
|
4
4
|
|
|
@@ -25,7 +25,13 @@ module ActiveAdmin
|
|
|
25
25
|
# resource will be accessible from "/posts" and the controller will be PostsController.
|
|
26
26
|
#
|
|
27
27
|
class Namespace
|
|
28
|
-
|
|
28
|
+
class << self
|
|
29
|
+
def setting(name, default)
|
|
30
|
+
Deprecation.warn "This method does not do anything and will be removed."
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
RegisterEvent = "active_admin.namespace.register".freeze
|
|
29
35
|
|
|
30
36
|
attr_reader :application, :resources, :menus
|
|
31
37
|
|
|
@@ -41,6 +47,18 @@ module ActiveAdmin
|
|
|
41
47
|
@name.to_sym
|
|
42
48
|
end
|
|
43
49
|
|
|
50
|
+
def settings
|
|
51
|
+
@settings ||= SettingsNode.build(application.namespace_settings)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def respond_to_missing?(method, include_private = false)
|
|
55
|
+
settings.respond_to?(method) || super
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def method_missing(method, *args)
|
|
59
|
+
settings.respond_to?(method) ? settings.send(method, *args) : super
|
|
60
|
+
end
|
|
61
|
+
|
|
44
62
|
# Register a resource into this namespace. The preffered method to access this is to
|
|
45
63
|
# use the global registration ActiveAdmin.register which delegates to the proper
|
|
46
64
|
# namespace instance.
|
|
@@ -100,12 +118,6 @@ module ActiveAdmin
|
|
|
100
118
|
resources[klass]
|
|
101
119
|
end
|
|
102
120
|
|
|
103
|
-
# Override from ActiveAdmin::Settings to inherit default attributes
|
|
104
|
-
# from the application
|
|
105
|
-
def read_default_setting(name)
|
|
106
|
-
application.public_send name
|
|
107
|
-
end
|
|
108
|
-
|
|
109
121
|
def fetch_menu(name)
|
|
110
122
|
@menus.fetch(name)
|
|
111
123
|
end
|
|
@@ -137,10 +149,10 @@ module ActiveAdmin
|
|
|
137
149
|
def add_logout_button_to_menu(menu, priority = 20, html_options = {})
|
|
138
150
|
if logout_link_path
|
|
139
151
|
html_options = html_options.reverse_merge(method: logout_link_method || :get)
|
|
140
|
-
menu.add id:
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
152
|
+
menu.add id: "logout", priority: priority, html_options: html_options,
|
|
153
|
+
label: -> { I18n.t "active_admin.logout" },
|
|
154
|
+
url: -> { render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
|
|
155
|
+
if: :current_active_admin_user?
|
|
144
156
|
end
|
|
145
157
|
end
|
|
146
158
|
|
|
@@ -152,10 +164,10 @@ module ActiveAdmin
|
|
|
152
164
|
#
|
|
153
165
|
def add_current_user_to_menu(menu, priority = 10, html_options = {})
|
|
154
166
|
if current_user_method
|
|
155
|
-
menu.add id:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
167
|
+
menu.add id: "current_user", priority: priority, html_options: html_options,
|
|
168
|
+
label: -> { display_name current_active_admin_user },
|
|
169
|
+
url: -> { auto_url_for(current_active_admin_user) },
|
|
170
|
+
if: :current_active_admin_user?
|
|
159
171
|
end
|
|
160
172
|
end
|
|
161
173
|
|
|
@@ -199,8 +211,8 @@ module ActiveAdmin
|
|
|
199
211
|
|
|
200
212
|
def unload_resources!
|
|
201
213
|
resources.each do |resource|
|
|
202
|
-
parent = (module_name ||
|
|
203
|
-
name
|
|
214
|
+
parent = (module_name || "Object").constantize
|
|
215
|
+
name = resource.controller_name.split("::").last
|
|
204
216
|
parent.send(:remove_const, name) if parent.const_defined?(name, false)
|
|
205
217
|
|
|
206
218
|
# Remove circular references
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
require "active_admin/dynamic_settings_node"
|
|
2
|
+
|
|
3
|
+
module ActiveAdmin
|
|
4
|
+
class NamespaceSettings < DynamicSettingsNode
|
|
5
|
+
# The default number of resources to display on index pages
|
|
6
|
+
register :default_per_page, 30
|
|
7
|
+
|
|
8
|
+
# The max number of resources to display on index pages and batch exports
|
|
9
|
+
register :max_per_page, 10_000
|
|
10
|
+
|
|
11
|
+
# The title which gets displayed in the main layout
|
|
12
|
+
register :site_title, "", :string_symbol_or_proc
|
|
13
|
+
|
|
14
|
+
# Set the site title link href (defaults to AA dashboard)
|
|
15
|
+
register :site_title_link, ""
|
|
16
|
+
|
|
17
|
+
# Set the site title image displayed in the main layout (has precendence over :site_title)
|
|
18
|
+
register :site_title_image, "", :string_symbol_or_proc
|
|
19
|
+
|
|
20
|
+
# Add to the site head
|
|
21
|
+
register :head, "", :string_symbol_or_proc
|
|
22
|
+
|
|
23
|
+
# Set the site footer text (defaults to Powered by ActiveAdmin text with version)
|
|
24
|
+
register :footer, "", :string_symbol_or_proc
|
|
25
|
+
|
|
26
|
+
# Set a favicon
|
|
27
|
+
register :favicon, false
|
|
28
|
+
|
|
29
|
+
# Additional meta tags to place in head of logged in pages
|
|
30
|
+
register :meta_tags, {}
|
|
31
|
+
|
|
32
|
+
# Additional meta tags to place in head of logged out pages
|
|
33
|
+
register :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
|
|
34
|
+
|
|
35
|
+
# The view factory to use to generate all the view classes. Take
|
|
36
|
+
# a look at ActiveAdmin::ViewFactory
|
|
37
|
+
register :view_factory, ActiveAdmin::ViewFactory.new
|
|
38
|
+
|
|
39
|
+
# The method to call in controllers to get the current user
|
|
40
|
+
register :current_user_method, false
|
|
41
|
+
|
|
42
|
+
# The method to call in the controllers to ensure that there
|
|
43
|
+
# is a currently authenticated admin user
|
|
44
|
+
register :authentication_method, false
|
|
45
|
+
|
|
46
|
+
# The path to log user's out with. If set to a symbol, we assume
|
|
47
|
+
# that it's a method to call which returns the path
|
|
48
|
+
register :logout_link_path, :destroy_admin_user_session_path
|
|
49
|
+
|
|
50
|
+
# The method to use when generating the link for user logout
|
|
51
|
+
register :logout_link_method, :get
|
|
52
|
+
|
|
53
|
+
# Whether the batch actions are enabled or not
|
|
54
|
+
register :batch_actions, false
|
|
55
|
+
|
|
56
|
+
# Whether filters are enabled
|
|
57
|
+
register :filters, true
|
|
58
|
+
|
|
59
|
+
# The namespace root
|
|
60
|
+
register :root_to, "dashboard#index"
|
|
61
|
+
|
|
62
|
+
# Options that are passed to root_to
|
|
63
|
+
register :root_to_options, {}
|
|
64
|
+
|
|
65
|
+
# Options passed to the routes, i.e. { path: '/custom' }
|
|
66
|
+
register :route_options, {}
|
|
67
|
+
|
|
68
|
+
# Display breadcrumbs
|
|
69
|
+
register :breadcrumb, true
|
|
70
|
+
|
|
71
|
+
# Display create another checkbox on a new page
|
|
72
|
+
# @return [Boolean] (true)
|
|
73
|
+
register :create_another, false
|
|
74
|
+
|
|
75
|
+
# Default CSV options
|
|
76
|
+
register :csv_options, { col_sep: ",", byte_order_mark: "\xEF\xBB\xBF" }
|
|
77
|
+
|
|
78
|
+
# Default Download Links options
|
|
79
|
+
register :download_links, true
|
|
80
|
+
|
|
81
|
+
# The authorization adapter to use
|
|
82
|
+
register :authorization_adapter, ActiveAdmin::AuthorizationAdapter
|
|
83
|
+
|
|
84
|
+
# A proc to be used when a user is not authorized to view the current resource
|
|
85
|
+
register :on_unauthorized_access, :rescue_active_admin_access_denied
|
|
86
|
+
|
|
87
|
+
# A regex to detect unsupported browser, set to false to disable
|
|
88
|
+
register :unsupported_browser_matcher, /MSIE [1-8]\.0/
|
|
89
|
+
|
|
90
|
+
# Whether to display 'Current Filters' on search screen
|
|
91
|
+
register :current_filters, true
|
|
92
|
+
|
|
93
|
+
# class to handle ordering
|
|
94
|
+
register :order_clause, ActiveAdmin::OrderClause
|
|
95
|
+
|
|
96
|
+
# default show_count for scopes
|
|
97
|
+
register :scopes_show_count, true
|
|
98
|
+
|
|
99
|
+
# Request parameters that are permitted by default
|
|
100
|
+
register :permitted_params, [
|
|
101
|
+
:utf8, :_method, :authenticity_token, :commit, :id
|
|
102
|
+
]
|
|
103
|
+
|
|
104
|
+
# Set flash message keys that shouldn't show in ActiveAdmin
|
|
105
|
+
register :flash_keys_to_except, ["timedout"]
|
|
106
|
+
|
|
107
|
+
# Include association filters by default
|
|
108
|
+
register :include_default_association_filters, true
|
|
109
|
+
|
|
110
|
+
register :maximum_association_filter_arity, :unlimited
|
|
111
|
+
|
|
112
|
+
register :filter_columns_for_large_association, [
|
|
113
|
+
:display_name,
|
|
114
|
+
:full_name,
|
|
115
|
+
:name,
|
|
116
|
+
:username,
|
|
117
|
+
:login,
|
|
118
|
+
:title,
|
|
119
|
+
:email,
|
|
120
|
+
]
|
|
121
|
+
register :filter_method_for_large_association, "_starts_with"
|
|
122
|
+
|
|
123
|
+
# Switch between asset pipeline and webpacker assets
|
|
124
|
+
register :use_webpacker, false
|
|
125
|
+
end
|
|
126
|
+
end
|
|
@@ -3,7 +3,7 @@ module ActiveAdmin
|
|
|
3
3
|
attr_reader :field, :order, :active_admin_config
|
|
4
4
|
|
|
5
5
|
def initialize(active_admin_config, clause)
|
|
6
|
-
clause =~ /^([\w
|
|
6
|
+
clause =~ /^([\w\.]+)(->'\w+')?_(desc|asc)$/
|
|
7
7
|
@column = $1
|
|
8
8
|
@op = $2
|
|
9
9
|
@order = $3
|
|
@@ -20,7 +20,7 @@ module ActiveAdmin
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def to_sql
|
|
23
|
-
[table_column, @op,
|
|
23
|
+
[table_column, @op, " ", @order].compact.join
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def table
|
|
@@ -3,8 +3,8 @@ module ActiveAdmin
|
|
|
3
3
|
|
|
4
4
|
self.table_name = "#{table_name_prefix}active_admin_comments#{table_name_suffix}"
|
|
5
5
|
|
|
6
|
-
belongs_to :resource, polymorphic: true
|
|
7
|
-
belongs_to :author,
|
|
6
|
+
belongs_to :resource, polymorphic: true, optional: true
|
|
7
|
+
belongs_to :author, polymorphic: true
|
|
8
8
|
|
|
9
9
|
validates_presence_of :body, :namespace, :resource
|
|
10
10
|
|
|
@@ -18,8 +18,8 @@ module ActiveAdmin
|
|
|
18
18
|
def self.find_for_resource_in_namespace(resource, namespace)
|
|
19
19
|
where(
|
|
20
20
|
resource_type: resource_type(resource),
|
|
21
|
-
resource_id:
|
|
22
|
-
namespace:
|
|
21
|
+
resource_id: resource.id,
|
|
22
|
+
namespace: namespace.to_s
|
|
23
23
|
).order(ActiveAdmin.application.namespaces[namespace.to_sym].comments_order)
|
|
24
24
|
end
|
|
25
25
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "active_admin/views"
|
|
2
|
+
require "active_admin/views/components/panel"
|
|
3
3
|
|
|
4
4
|
module ActiveAdmin
|
|
5
5
|
module Comments
|
|
@@ -11,82 +11,87 @@ module ActiveAdmin
|
|
|
11
11
|
attr_accessor :resource
|
|
12
12
|
|
|
13
13
|
def build(resource)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
if authorized?(ActiveAdmin::Auth::READ, ActiveAdmin::Comment)
|
|
15
|
+
@resource = resource
|
|
16
|
+
@comments = active_admin_authorization.scope_collection(ActiveAdmin::Comment.find_for_resource_in_namespace(resource, active_admin_namespace.name).includes(:author).page(params[:page]))
|
|
17
|
+
super(title, for: resource)
|
|
18
|
+
build_comments
|
|
19
|
+
end
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
protected
|
|
21
23
|
|
|
22
24
|
def title
|
|
23
|
-
I18n.t
|
|
25
|
+
I18n.t "active_admin.comments.title_content", count: @comments.total_count
|
|
24
26
|
end
|
|
25
27
|
|
|
26
28
|
def build_comments
|
|
27
29
|
if @comments.any?
|
|
28
30
|
@comments.each(&method(:build_comment))
|
|
29
|
-
div page_entries_info(@comments).html_safe, class:
|
|
31
|
+
div page_entries_info(@comments).html_safe, class: "pagination_information"
|
|
30
32
|
else
|
|
31
33
|
build_empty_message
|
|
32
34
|
end
|
|
33
35
|
|
|
34
36
|
text_node paginate @comments
|
|
35
|
-
|
|
37
|
+
|
|
38
|
+
if authorized?(ActiveAdmin::Auth::CREATE, ActiveAdmin::Comment)
|
|
39
|
+
build_comment_form
|
|
40
|
+
end
|
|
36
41
|
end
|
|
37
42
|
|
|
38
43
|
def build_comment(comment)
|
|
39
44
|
div for: comment do
|
|
40
|
-
div class:
|
|
41
|
-
h4 class:
|
|
42
|
-
comment.author ? auto_link(comment.author) : I18n.t(
|
|
45
|
+
div class: "active_admin_comment_meta" do
|
|
46
|
+
h4 class: "active_admin_comment_author" do
|
|
47
|
+
comment.author ? auto_link(comment.author) : I18n.t("active_admin.comments.author_missing")
|
|
43
48
|
end
|
|
44
49
|
span pretty_format comment.created_at
|
|
45
50
|
if authorized?(ActiveAdmin::Auth::DESTROY, comment)
|
|
46
|
-
text_node link_to I18n.t(
|
|
51
|
+
text_node link_to I18n.t("active_admin.comments.delete"), comments_url(comment.id), method: :delete, data: { confirm: I18n.t("active_admin.comments.delete_confirmation") }
|
|
47
52
|
end
|
|
48
53
|
end
|
|
49
|
-
div class:
|
|
54
|
+
div class: "active_admin_comment_body" do
|
|
50
55
|
simple_format comment.body
|
|
51
56
|
end
|
|
52
57
|
end
|
|
53
58
|
end
|
|
54
59
|
|
|
55
60
|
def build_empty_message
|
|
56
|
-
span I18n.t(
|
|
61
|
+
span I18n.t("active_admin.comments.no_comments_yet"), class: "empty"
|
|
57
62
|
end
|
|
58
63
|
|
|
59
64
|
def comments_url(*args)
|
|
60
65
|
parts = []
|
|
61
66
|
parts << active_admin_namespace.name unless active_admin_namespace.root?
|
|
62
67
|
parts << active_admin_namespace.comments_registration_name.underscore
|
|
63
|
-
parts <<
|
|
64
|
-
send parts.join(
|
|
68
|
+
parts << "path"
|
|
69
|
+
send parts.join("_"), *args
|
|
65
70
|
end
|
|
66
71
|
|
|
67
72
|
def comment_form_url
|
|
68
73
|
parts = []
|
|
69
74
|
parts << active_admin_namespace.name unless active_admin_namespace.root?
|
|
70
75
|
parts << active_admin_namespace.comments_registration_name.underscore.pluralize
|
|
71
|
-
parts <<
|
|
72
|
-
send parts.join
|
|
76
|
+
parts << "path"
|
|
77
|
+
send parts.join "_"
|
|
73
78
|
end
|
|
74
79
|
|
|
75
80
|
def build_comment_form
|
|
76
81
|
active_admin_form_for(ActiveAdmin::Comment.new, url: comment_form_url) do |f|
|
|
77
82
|
f.inputs do
|
|
78
|
-
f.input :resource_type, as: :hidden,
|
|
79
|
-
f.input :resource_id,
|
|
80
|
-
f.input :body,
|
|
83
|
+
f.input :resource_type, as: :hidden, input_html: { value: ActiveAdmin::Comment.resource_type(parent.resource) }
|
|
84
|
+
f.input :resource_id, as: :hidden, input_html: { value: parent.resource.id }
|
|
85
|
+
f.input :body, label: false, input_html: { size: "80x8" }
|
|
81
86
|
end
|
|
82
87
|
f.actions do
|
|
83
|
-
f.action :submit, label: I18n.t(
|
|
88
|
+
f.action :submit, label: I18n.t("active_admin.comments.add")
|
|
84
89
|
end
|
|
85
90
|
end
|
|
86
91
|
end
|
|
87
92
|
|
|
88
93
|
def default_id_for_prefix
|
|
89
|
-
|
|
94
|
+
"active_admin_comments_for"
|
|
90
95
|
end
|
|
91
96
|
end
|
|
92
97
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "active_admin/views"
|
|
2
|
+
require "active_admin/orm/active_record/comments/views/active_admin_comments"
|