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
@@ -12,18 +12,21 @@ module ActiveAdmin
|
|
12
12
|
include ActiveAdmin::ScopeChain
|
13
13
|
include ::ActiveAdmin::Helpers::Collection
|
14
14
|
|
15
|
-
|
16
15
|
def default_class_name
|
17
|
-
"scopes
|
16
|
+
"scopes"
|
18
17
|
end
|
19
18
|
|
20
19
|
def tag_name
|
21
|
-
'
|
20
|
+
'div'
|
22
21
|
end
|
23
22
|
|
24
23
|
def build(scopes, options = {})
|
25
|
-
scopes.each do |
|
26
|
-
|
24
|
+
scopes.group_by(&:group).each do |group, group_scopes|
|
25
|
+
ul class: "table_tools_segmented_control #{group_class(group)}" do
|
26
|
+
group_scopes.each do |scope|
|
27
|
+
build_scope(scope, options) if call_method_or_exec_proc(scope.display_if_block)
|
28
|
+
end
|
29
|
+
end
|
27
30
|
end
|
28
31
|
end
|
29
32
|
|
@@ -31,11 +34,10 @@ module ActiveAdmin
|
|
31
34
|
|
32
35
|
def build_scope(scope, options)
|
33
36
|
li class: classes_for_scope(scope) do
|
34
|
-
|
35
|
-
params = request.query_parameters.except :page, :scope, :commit, :format
|
37
|
+
params = request.query_parameters.except :page, :scope, :commit, :format
|
36
38
|
|
37
39
|
a href: url_for(scope: scope.id, params: params), class: 'table_tools_button' do
|
38
|
-
text_node scope_name
|
40
|
+
text_node scope_name(scope)
|
39
41
|
span class: 'count' do
|
40
42
|
"(#{get_scope_count(scope)})"
|
41
43
|
end if options[:scope_count] && scope.show_count
|
@@ -61,6 +63,10 @@ module ActiveAdmin
|
|
61
63
|
def get_scope_count(scope)
|
62
64
|
collection_size(scope_chain(scope, collection_before_scope))
|
63
65
|
end
|
66
|
+
|
67
|
+
def group_class(group)
|
68
|
+
group.present? ? "scope-group-#{group}" : "scope-default-group"
|
69
|
+
end
|
64
70
|
end
|
65
71
|
end
|
66
72
|
end
|
@@ -22,8 +22,8 @@ module ActiveAdmin
|
|
22
22
|
@namespace.site_title_link.present?
|
23
23
|
end
|
24
24
|
|
25
|
-
def site_title_image
|
26
|
-
@namespace.site_title_image
|
25
|
+
def site_title_image
|
26
|
+
@site_title_image ||= @namespace.site_title_image(helpers)
|
27
27
|
end
|
28
28
|
|
29
29
|
private
|
@@ -33,7 +33,7 @@ module ActiveAdmin
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def site_title_content
|
36
|
-
if site_title_image?
|
36
|
+
if site_title_image.present?
|
37
37
|
title_image
|
38
38
|
else
|
39
39
|
title_text
|
@@ -41,12 +41,11 @@ module ActiveAdmin
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def title_text
|
44
|
-
|
44
|
+
@title_text ||= @namespace.site_title(helpers)
|
45
45
|
end
|
46
46
|
|
47
47
|
def title_image
|
48
|
-
|
49
|
-
helpers.image_tag(path, id: "site_title_image", alt: title_text)
|
48
|
+
helpers.image_tag(site_title_image, id: "site_title_image", alt: title_text)
|
50
49
|
end
|
51
50
|
|
52
51
|
end
|
@@ -12,9 +12,8 @@ module ActiveAdmin
|
|
12
12
|
'status_tag'
|
13
13
|
end
|
14
14
|
|
15
|
-
# @overload status_tag(status,
|
15
|
+
# @overload status_tag(status, options = {})
|
16
16
|
# @param [String] status the status to display. One of the span classes will be an underscored version of the status.
|
17
|
-
# @param [Symbol] type type of status. Will become a class of the span. ActiveAdmin provide style for :ok, :warning and :error.
|
18
17
|
# @param [Hash] options
|
19
18
|
# @option options [String] :class to override the default class
|
20
19
|
# @option options [String] :id to override the default id
|
@@ -26,31 +25,23 @@ module ActiveAdmin
|
|
26
25
|
# # => <span class='status_tag in_progress'>In Progress</span>
|
27
26
|
#
|
28
27
|
# @example
|
29
|
-
# status_tag('active', :
|
30
|
-
# # => <span class='status_tag active
|
28
|
+
# status_tag('active', class: 'important', id: 'status_123', label: 'on')
|
29
|
+
# # => <span class='status_tag active important' id='status_123'>on</span>
|
31
30
|
#
|
32
|
-
|
33
|
-
# status_tag('active', :ok, class: 'important', id: 'status_123', label: 'on')
|
34
|
-
# # => <span class='status_tag active ok important' id='status_123'>on</span>
|
35
|
-
#
|
36
|
-
def build(*args)
|
37
|
-
options = args.extract_options!
|
38
|
-
status = args[0]
|
39
|
-
type = args[1]
|
31
|
+
def build(status, options = {})
|
40
32
|
label = options.delete(:label)
|
41
33
|
classes = options.delete(:class)
|
42
34
|
status = convert_to_boolean_status(status)
|
43
35
|
|
44
36
|
if status
|
45
37
|
content = label || if s = status.to_s and s.present?
|
46
|
-
|
47
|
-
|
38
|
+
I18n.t "active_admin.status_tag.#{s.downcase}", default: s.titleize
|
39
|
+
end
|
48
40
|
end
|
49
41
|
|
50
42
|
super(content, options)
|
51
43
|
|
52
44
|
add_class(status_to_class(status)) if status
|
53
|
-
add_class(type.to_s) if type
|
54
45
|
add_class(classes) if classes
|
55
46
|
end
|
56
47
|
|
@@ -60,8 +51,10 @@ module ActiveAdmin
|
|
60
51
|
case status
|
61
52
|
when true, 'true'
|
62
53
|
'Yes'
|
63
|
-
when false, 'false'
|
54
|
+
when false, 'false'
|
64
55
|
'No'
|
56
|
+
when nil
|
57
|
+
'Unset'
|
65
58
|
else
|
66
59
|
status
|
67
60
|
end
|
@@ -69,6 +62,8 @@ module ActiveAdmin
|
|
69
62
|
|
70
63
|
def status_to_class(status)
|
71
64
|
case status
|
65
|
+
when 'Unset'
|
66
|
+
'unset no'
|
72
67
|
when String, Symbol
|
73
68
|
status.to_s.titleize.gsub(/\s/, '').underscore
|
74
69
|
else
|
@@ -22,7 +22,7 @@ module ActiveAdmin
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def columns(*attrs)
|
25
|
-
attrs.each {|attr| column(attr) }
|
25
|
+
attrs.each { |attr| column(attr) }
|
26
26
|
end
|
27
27
|
|
28
28
|
def column(*args, &block)
|
@@ -85,7 +85,7 @@ module ActiveAdmin
|
|
85
85
|
@tbody = tbody do
|
86
86
|
# Build enough rows for our collection
|
87
87
|
@collection.each do |elem|
|
88
|
-
classes = [cycle('odd', 'even')]
|
88
|
+
classes = [helpers.cycle('odd', 'even')]
|
89
89
|
|
90
90
|
if @row_class
|
91
91
|
classes << @row_class.call(elem)
|
@@ -98,7 +98,7 @@ module ActiveAdmin
|
|
98
98
|
|
99
99
|
def build_table_cell(col, resource)
|
100
100
|
td class: col.html_class do
|
101
|
-
html = format_attribute(resource, col.data)
|
101
|
+
html = helpers.format_attribute(resource, col.data)
|
102
102
|
# Don't add the same Arbre twice, while still allowing format_attribute to call status_tag
|
103
103
|
current_arbre_element << html unless current_arbre_element.children.include? html
|
104
104
|
end
|
@@ -109,7 +109,7 @@ module ActiveAdmin
|
|
109
109
|
# current_sort[1] #=> asc | desc
|
110
110
|
def current_sort
|
111
111
|
@current_sort ||= begin
|
112
|
-
order_clause =
|
112
|
+
order_clause = active_admin_config.order_clause.new(active_admin_config, params[:order])
|
113
113
|
|
114
114
|
if order_clause.valid?
|
115
115
|
[order_clause.field, order_clause.order]
|
@@ -139,7 +139,7 @@ module ActiveAdmin
|
|
139
139
|
|
140
140
|
attr_accessor :title, :data , :html_class
|
141
141
|
|
142
|
-
def initialize(*args, &block)
|
142
|
+
def initialize(*args, &block)
|
143
143
|
@options = args.extract_options!
|
144
144
|
|
145
145
|
@title = args[0]
|
@@ -147,7 +147,7 @@ module ActiveAdmin
|
|
147
147
|
if @options.has_key?(:class)
|
148
148
|
html_classes << @options.delete(:class)
|
149
149
|
elsif @title.present?
|
150
|
-
html_classes << "col-#{
|
150
|
+
html_classes << "col-#{@title.to_s.parameterize(separator: "_")}"
|
151
151
|
end
|
152
152
|
@html_class = html_classes.join(' ')
|
153
153
|
@data = args[1] || args[0]
|
@@ -176,18 +176,9 @@ module ActiveAdmin
|
|
176
176
|
# to the sortable option:
|
177
177
|
# column :username, sortable: 'other_column_to_sort_on'
|
178
178
|
#
|
179
|
-
# If you pass a block to be rendered for this column, the column
|
180
|
-
# will not be sortable unless you pass a string to sortable to
|
181
|
-
# sort the column on:
|
182
|
-
#
|
183
|
-
# column('Username', sortable: 'login'){ @user.pretty_name }
|
184
|
-
# # => Sort key will be 'login'
|
185
|
-
#
|
186
179
|
def sort_key
|
187
180
|
# If boolean or nil, use the default sort key.
|
188
|
-
if @options[:sortable] == true || @options[:sortable] == false
|
189
|
-
@data.to_s
|
190
|
-
elsif @options[:sortable].nil?
|
181
|
+
if @options[:sortable].nil? || @options[:sortable] == true || @options[:sortable] == false
|
191
182
|
sort_column_name
|
192
183
|
else
|
193
184
|
@options[:sortable].to_s
|
@@ -15,14 +15,26 @@ module ActiveAdmin
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def build_menu_item(title, options, &block)
|
18
|
-
|
19
|
-
|
18
|
+
fragment = options.fetch(:id, fragmentize(title))
|
19
|
+
|
20
|
+
html_options = options.fetch(:html_options, {})
|
21
|
+
li html_options do
|
22
|
+
link_to title, "##{fragment}"
|
23
|
+
end
|
20
24
|
end
|
21
25
|
|
22
26
|
def build_content_item(title, options, &block)
|
23
|
-
options = options.reverse_merge(id: title
|
27
|
+
options = options.reverse_merge(id: fragmentize(title))
|
24
28
|
div(options, &block)
|
25
29
|
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def fragmentize(string)
|
34
|
+
result = string.parameterize
|
35
|
+
result = URI.encode(string) if result.blank?
|
36
|
+
result
|
37
|
+
end
|
26
38
|
end
|
27
39
|
end
|
28
40
|
end
|
@@ -2,16 +2,26 @@ module ActiveAdmin
|
|
2
2
|
module Views
|
3
3
|
class Footer < Component
|
4
4
|
|
5
|
-
def build
|
5
|
+
def build(namespace)
|
6
6
|
super id: "footer"
|
7
|
-
|
7
|
+
@namespace = namespace
|
8
|
+
|
9
|
+
if footer_text.present?
|
10
|
+
para footer_text
|
11
|
+
else
|
12
|
+
para powered_by_message
|
13
|
+
end
|
8
14
|
end
|
9
15
|
|
10
16
|
private
|
11
17
|
|
18
|
+
def footer_text
|
19
|
+
@footer_text ||= @namespace.footer(self)
|
20
|
+
end
|
21
|
+
|
12
22
|
def powered_by_message
|
13
|
-
|
14
|
-
active_admin: link_to("Active Admin", "
|
23
|
+
I18n.t('active_admin.powered_by',
|
24
|
+
active_admin: link_to("Active Admin", "https://activeadmin.info"),
|
15
25
|
version: ActiveAdmin::VERSION).html_safe
|
16
26
|
end
|
17
27
|
|
@@ -9,22 +9,9 @@ module ActiveAdmin
|
|
9
9
|
@menu = menu
|
10
10
|
@utility_menu = @namespace.fetch_menu(:utility_navigation)
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
|
18
|
-
def build_site_title
|
19
|
-
insert_tag view_factory.site_title, @namespace
|
20
|
-
end
|
21
|
-
|
22
|
-
def build_global_navigation
|
23
|
-
insert_tag view_factory.global_navigation, @menu, class: 'header-item tabs'
|
24
|
-
end
|
25
|
-
|
26
|
-
def build_utility_navigation
|
27
|
-
insert_tag view_factory.utility_navigation, @utility_menu, id: "utility_nav", class: 'header-item tabs'
|
12
|
+
site_title @namespace
|
13
|
+
global_navigation @menu, class: 'header-item tabs'
|
14
|
+
utility_navigation @utility_menu, id: "utility_nav", class: 'header-item tabs'
|
28
15
|
end
|
29
16
|
|
30
17
|
end
|
@@ -27,7 +27,7 @@ module ActiveAdmin
|
|
27
27
|
# ```
|
28
28
|
#
|
29
29
|
# Second, you can pass a block to the tile option which will then be
|
30
|
-
# used as the contents
|
30
|
+
# used as the contents of the title. The resource being rendered
|
31
31
|
# is passed in to the block. For Example:
|
32
32
|
#
|
33
33
|
# ```ruby
|
@@ -89,7 +89,6 @@ module ActiveAdmin
|
|
89
89
|
@title
|
90
90
|
end
|
91
91
|
|
92
|
-
|
93
92
|
# Setter method for the configuration of the body
|
94
93
|
#
|
95
94
|
def body(method = nil, &block)
|
@@ -124,7 +123,7 @@ module ActiveAdmin
|
|
124
123
|
if @title
|
125
124
|
h3 do
|
126
125
|
a(href: resource_path(post)) do
|
127
|
-
|
126
|
+
render_method_on_post_or_call_proc post, @title
|
128
127
|
end
|
129
128
|
end
|
130
129
|
else
|
@@ -1,31 +1,31 @@
|
|
1
1
|
module ActiveAdmin
|
2
2
|
module Views
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
4
|
+
# # Index as a Grid
|
5
|
+
#
|
6
|
+
# Sometimes you want to display the index screen for a set of resources as a grid
|
7
|
+
# (possibly a grid of thumbnail images). To do so, use the :grid option for the
|
8
|
+
# index block.
|
9
|
+
#
|
10
|
+
# ```ruby
|
11
|
+
# index as: :grid do |product|
|
12
|
+
# link_to image_tag(product.image_path), admin_product_path(product)
|
13
|
+
# end
|
14
|
+
# ```
|
15
|
+
#
|
16
|
+
# The block is rendered within a cell in the grid once for each resource in the
|
17
|
+
# collection. The resource is passed into the block for you to use in the view.
|
18
|
+
#
|
19
|
+
# You can customize the number of columns that are rendered using the columns
|
20
|
+
# option:
|
21
|
+
#
|
22
|
+
# ```ruby
|
23
|
+
# index as: :grid, columns: 5 do |product|
|
24
|
+
# link_to image_tag(product.image_path), admin_product_path(product)
|
25
|
+
# end
|
26
|
+
# ```
|
27
|
+
#
|
28
|
+
class IndexAsGrid < ActiveAdmin::Component
|
29
29
|
|
30
30
|
def build(page_presenter, collection)
|
31
31
|
@page_presenter = page_presenter
|
@@ -110,7 +110,8 @@ module ActiveAdmin
|
|
110
110
|
# end
|
111
111
|
# ```
|
112
112
|
#
|
113
|
-
# In addition, you can insert the position of the row in the greater
|
113
|
+
# In addition, you can insert the position of the row in the greater
|
114
|
+
# collection by using the index_column special command:
|
114
115
|
#
|
115
116
|
# ```ruby
|
116
117
|
# index do
|
@@ -120,7 +121,8 @@ module ActiveAdmin
|
|
120
121
|
# end
|
121
122
|
# ```
|
122
123
|
#
|
123
|
-
# index_column take an optional offset parameter to allow a developer to set
|
124
|
+
# index_column take an optional offset parameter to allow a developer to set
|
125
|
+
# the starting number for the index (default is 1).
|
124
126
|
#
|
125
127
|
# ## Sorting
|
126
128
|
#
|
@@ -128,9 +130,7 @@ module ActiveAdmin
|
|
128
130
|
# sortable by default. If you are creating a custom column, you may need to give
|
129
131
|
# Active Admin a hint for how to sort the table.
|
130
132
|
#
|
131
|
-
#
|
132
|
-
# is the attribute which gets used to sort objects using Active Record.
|
133
|
-
#
|
133
|
+
# You can pass the key specifying the attribute which gets used to sort objects using Active Record.
|
134
134
|
# By default, this is the column on the resource's table that the attribute corresponds to.
|
135
135
|
# Otherwise, any attribute that the resource collection responds to can be used.
|
136
136
|
#
|
@@ -159,6 +159,24 @@ module ActiveAdmin
|
|
159
159
|
# end
|
160
160
|
# ```
|
161
161
|
#
|
162
|
+
# ## Custom sorting
|
163
|
+
#
|
164
|
+
# It is also possible to use database specific expressions and options for sorting by column
|
165
|
+
#
|
166
|
+
# ```ruby
|
167
|
+
# order_by(:title) do |order_clause|
|
168
|
+
# if order_clause.order == 'desc'
|
169
|
+
# [order_clause.to_sql, 'NULLS LAST'].join(' ')
|
170
|
+
# else
|
171
|
+
# [order_clause.to_sql, 'NULLS FIRST'].join(' ')
|
172
|
+
# end
|
173
|
+
# end
|
174
|
+
#
|
175
|
+
# index do
|
176
|
+
# column :title
|
177
|
+
# end
|
178
|
+
# ```
|
179
|
+
#
|
162
180
|
# ## Associated Sorting
|
163
181
|
#
|
164
182
|
# You're normally able to sort columns alphabetically, but by default you
|
@@ -174,6 +192,13 @@ module ActiveAdmin
|
|
174
192
|
# end
|
175
193
|
# ```
|
176
194
|
#
|
195
|
+
# You can also define associated objects to include outside of the
|
196
|
+
# `scoped_collection` method:
|
197
|
+
#
|
198
|
+
# ```ruby
|
199
|
+
# includes :publisher
|
200
|
+
# ```
|
201
|
+
#
|
177
202
|
# Then it's simple to sort by any Publisher attribute from within the index table:
|
178
203
|
#
|
179
204
|
# ```ruby
|
@@ -233,8 +258,8 @@ module ActiveAdmin
|
|
233
258
|
proc do
|
234
259
|
selectable_column
|
235
260
|
id_column if resource_class.primary_key
|
236
|
-
|
237
|
-
column
|
261
|
+
active_admin_config.resource_columns.each do |attribute|
|
262
|
+
column attribute
|
238
263
|
end
|
239
264
|
actions
|
240
265
|
end
|
@@ -344,18 +369,19 @@ module ActiveAdmin
|
|
344
369
|
end
|
345
370
|
end
|
346
371
|
|
347
|
-
|
372
|
+
private
|
348
373
|
|
349
374
|
def defaults(resource, options = {})
|
375
|
+
localizer = ActiveAdmin::Localizers.resource(active_admin_config)
|
350
376
|
if controller.action_methods.include?('show') && authorized?(ActiveAdmin::Auth::READ, resource)
|
351
|
-
item
|
377
|
+
item localizer.t(:view), resource_path(resource), class: "view_link #{options[:css_class]}", title: localizer.t(:view)
|
352
378
|
end
|
353
379
|
if controller.action_methods.include?('edit') && authorized?(ActiveAdmin::Auth::UPDATE, resource)
|
354
|
-
item
|
380
|
+
item localizer.t(:edit), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: localizer.t(:edit)
|
355
381
|
end
|
356
382
|
if controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, resource)
|
357
|
-
item
|
358
|
-
method: :delete, data: {confirm:
|
383
|
+
item localizer.t(:delete), resource_path(resource), class: "delete_link #{options[:css_class]}", title: localizer.t(:delete),
|
384
|
+
method: :delete, data: { confirm: localizer.t(:delete_confirmation) }
|
359
385
|
end
|
360
386
|
end
|
361
387
|
|
@@ -368,6 +394,6 @@ module ActiveAdmin
|
|
368
394
|
end
|
369
395
|
end # IndexTableFor
|
370
396
|
|
371
|
-
end
|
397
|
+
end
|
372
398
|
end
|
373
399
|
end
|