activeadmin 1.0.0.pre1 → 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 +5 -5
- data/CHANGELOG.md +587 -939
- data/CODE_OF_CONDUCT.md +74 -0
- data/CONTRIBUTING.md +110 -59
- data/LICENSE +0 -5
- data/README.md +80 -61
- data/app/assets/javascripts/active_admin/base.js +517 -0
- data/app/assets/stylesheets/active_admin/_base.scss +31 -34
- data/app/assets/stylesheets/active_admin/_forms.scss +33 -35
- data/app/assets/stylesheets/active_admin/_header.scss +40 -8
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
- data/app/assets/stylesheets/active_admin/_normalize.scss +447 -0
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
- 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 +5 -3
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -11
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -1
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +9 -1
- data/app/assets/stylesheets/active_admin/print.scss +3 -4
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -5
- 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 +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 +21 -7
- data/config/locales/ar.yml +62 -47
- data/config/locales/az.yml +138 -0
- 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 +4 -3
- data/config/locales/de.yml +46 -3
- data/config/locales/el.yml +3 -4
- data/config/locales/en-CA.yml +139 -0
- data/config/locales/en-GB.yml +46 -5
- data/config/locales/en.yml +44 -9
- data/config/locales/eo.yml +145 -0
- data/config/locales/es-MX.yml +9 -6
- data/config/locales/es.yml +63 -14
- data/config/locales/fa.yml +1 -2
- data/config/locales/fi.yml +2 -3
- data/config/locales/fr.yml +36 -8
- data/config/locales/he.yml +53 -7
- data/config/locales/hr.yml +1 -2
- data/config/locales/hu.yml +6 -3
- data/config/locales/id.yml +135 -0
- data/config/locales/it.yml +49 -4
- data/config/locales/ja.yml +31 -7
- data/config/locales/ko.yml +66 -36
- data/config/locales/lt.yml +27 -6
- data/config/locales/lv.yml +3 -4
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +22 -8
- data/config/locales/nl.yml +26 -3
- data/config/locales/pl.yml +75 -5
- data/config/locales/pt-BR.yml +24 -2
- data/config/locales/pt-PT.yml +1 -2
- data/config/locales/ro.yml +1 -2
- data/config/locales/ru.yml +21 -4
- data/config/locales/sk.yml +168 -0
- data/config/locales/sv-SE.yml +50 -8
- data/config/locales/tr.yml +92 -45
- data/config/locales/uk.yml +30 -16
- data/config/locales/vi.yml +53 -12
- data/config/locales/zh-CN.yml +44 -7
- data/config/locales/zh-TW.yml +42 -3
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +68 -18
- data/docs/1-general-configuration.md +88 -4
- data/docs/10-custom-pages.md +56 -2
- data/docs/11-decorators.md +20 -5
- data/docs/12-arbre-components.md +75 -11
- data/docs/13-authorization-adapter.md +73 -36
- data/docs/14-gotchas.md +64 -18
- data/docs/2-resource-customization.md +91 -23
- 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 +46 -9
- data/docs/3-index-pages.md +73 -10
- data/docs/4-csv-format.md +35 -0
- data/docs/5-forms.md +96 -18
- data/docs/6-show-pages.md +13 -25
- data/docs/7-sidebars.md +13 -1
- data/docs/8-custom-actions.md +18 -1
- data/docs/9-batch-actions.md +9 -5
- data/docs/CNAME +1 -0
- data/docs/Gemfile +3 -0
- data/docs/Gemfile.lock +259 -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 +105 -138
- data/lib/active_admin/application_settings.rb +42 -0
- data/lib/active_admin/authorization_adapter.rb +4 -7
- data/lib/active_admin/base_controller/authorization.rb +16 -21
- data/lib/active_admin/base_controller/menu.rb +10 -10
- data/lib/active_admin/base_controller.rb +15 -11
- data/lib/active_admin/batch_actions/controller.rb +6 -7
- data/lib/active_admin/batch_actions/resource_extension.rb +15 -15
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -4
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -7
- data/lib/active_admin/batch_actions/views/selection_cells.rb +7 -6
- data/lib/active_admin/batch_actions.rb +0 -1
- data/lib/active_admin/callbacks.rb +2 -2
- 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 +30 -20
- data/lib/active_admin/dependency.rb +36 -29
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/devise.rb +9 -9
- data/lib/active_admin/dsl.rb +5 -18
- 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 +6 -6
- data/lib/active_admin/filters/active.rb +29 -0
- data/lib/active_admin/filters/active_filter.rb +123 -0
- data/lib/active_admin/filters/active_sidebar.rb +54 -0
- data/lib/active_admin/filters/forms.rb +17 -10
- data/lib/active_admin/filters/formtastic_addons.rb +2 -7
- data/lib/active_admin/filters/resource_extension.rb +50 -14
- data/lib/active_admin/filters.rb +7 -5
- data/lib/active_admin/form_builder.rb +112 -67
- data/lib/active_admin/generators/boilerplate.rb +53 -0
- data/lib/active_admin/helpers/collection.rb +2 -0
- data/lib/active_admin/helpers/optional_display.rb +2 -2
- data/lib/active_admin/helpers/routes/url_helpers.rb +1 -1
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +13 -6
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +9 -9
- data/lib/active_admin/inputs/filters/base.rb +3 -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_picker_input.rb +13 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +25 -9
- data/lib/active_admin/inputs/filters/select_input.rb +8 -4
- data/lib/active_admin/inputs/filters/text_input.rb +25 -0
- data/lib/active_admin/inputs.rb +2 -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 +13 -15
- data/lib/active_admin/menu_collection.rb +0 -2
- data/lib/active_admin/menu_item.rb +10 -38
- data/lib/active_admin/namespace.rb +51 -32
- data/lib/active_admin/namespace_settings.rb +126 -0
- data/lib/active_admin/order_clause.rb +30 -8
- data/lib/active_admin/orm/active_record/comments/comment.rb +6 -20
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +44 -21
- data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
- data/lib/active_admin/orm/active_record/comments.rb +49 -29
- data/lib/active_admin/orm/active_record.rb +1 -1
- data/lib/active_admin/page.rb +24 -5
- data/lib/active_admin/page_controller.rb +2 -2
- 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 +22 -9
- data/lib/active_admin/resource/action_items.rb +34 -12
- data/lib/active_admin/resource/attributes.rb +47 -0
- data/lib/active_admin/resource/belongs_to.rb +17 -4
- data/lib/active_admin/resource/controllers.rb +1 -1
- data/lib/active_admin/resource/menu.rb +9 -6
- data/lib/active_admin/resource/model.rb +15 -0
- data/lib/active_admin/resource/naming.rb +5 -5
- data/lib/active_admin/resource/ordering.rb +11 -0
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/pagination.rb +4 -0
- data/lib/active_admin/resource/routes.rb +56 -26
- data/lib/active_admin/resource/scope_to.rb +7 -7
- data/lib/active_admin/resource/scopes.rb +5 -3
- data/lib/active_admin/resource/sidebars.rb +2 -2
- data/lib/active_admin/resource.rb +80 -22
- data/lib/active_admin/resource_collection.rb +5 -3
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/data_access.rb +56 -43
- 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 +12 -5
- data/lib/active_admin/resource_controller.rb +26 -10
- data/lib/active_admin/resource_dsl.rb +67 -21
- data/lib/active_admin/router.rb +90 -82
- data/lib/active_admin/scope.rb +21 -14
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/sidebar_section.rb +6 -12
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +17 -18
- data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
- data/lib/active_admin/view_helpers/display_helper.rb +51 -9
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +14 -1
- data/lib/active_admin/view_helpers/fields_for.rb +4 -4
- data/lib/active_admin/view_helpers/form_helper.rb +2 -2
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +11 -4
- data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
- data/lib/active_admin/view_helpers.rb +2 -2
- data/lib/active_admin/views/action_items.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +45 -13
- data/lib/active_admin/views/components/attributes_table.rb +11 -29
- data/lib/active_admin/views/components/blank_slate.rb +1 -1
- data/lib/active_admin/views/components/columns.rb +12 -7
- data/lib/active_admin/views/components/dropdown_menu.rb +11 -13
- data/lib/active_admin/views/components/index_list.rb +6 -5
- 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 +52 -33
- data/lib/active_admin/views/components/panel.rb +2 -4
- data/lib/active_admin/views/components/scopes.rb +20 -12
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/sidebar_section.rb +6 -1
- data/lib/active_admin/views/components/site_title.rb +6 -7
- data/lib/active_admin/views/components/status_tag.rb +19 -23
- data/lib/active_admin/views/components/table_for.rb +31 -57
- data/lib/active_admin/views/components/tabs.rb +17 -5
- data/lib/active_admin/views/footer.rb +15 -4
- data/lib/active_admin/views/header.rb +3 -16
- data/lib/active_admin/views/index_as_blog.rb +3 -4
- data/lib/active_admin/views/index_as_grid.rb +28 -28
- data/lib/active_admin/views/index_as_table.rb +76 -28
- data/lib/active_admin/views/pages/base.rb +45 -58
- data/lib/active_admin/views/pages/form.rb +5 -2
- data/lib/active_admin/views/pages/index.rb +15 -13
- data/lib/active_admin/views/pages/layout.rb +1 -1
- data/lib/active_admin/views/pages/show.rb +9 -3
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/active_admin/views/title_bar.rb +6 -6
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin.rb +69 -67
- data/lib/activeadmin.rb +1 -1
- data/lib/generators/active_admin/assets/assets_generator.rb +3 -3
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/assets/templates/{active_admin.css.scss → active_admin.scss} +3 -3
- data/lib/generators/active_admin/devise/devise_generator.rb +17 -26
- data/lib/generators/active_admin/install/install_generator.rb +18 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +107 -5
- 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/page/templates/page.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +8 -2
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
- 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 +11 -3
- 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
- metadata +182 -553
- data/.gitignore +0 -49
- data/.hound.yml +0 -11
- data/.travis.yml +0 -42
- data/.yardopts +0 -8
- data/Gemfile +0 -54
- data/Guardfile +0 -8
- data/Rakefile +0 -33
- data/activeadmin.gemspec +0 -28
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/application.js.coffee +0 -32
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -14
- 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/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 -37
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -27
- data/app/assets/javascripts/active_admin/lib/popover.js.coffee +0 -68
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
- data/app/assets/stylesheets/active_admin/components/_popovers.scss +0 -122
- data/app/assets/stylesheets/active_admin/mixins/_icons.scss +0 -20
- 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 -41
- 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 -164
- 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 -41
- data/features/index/pagination.feature +0 -59
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -53
- data/features/new_page.feature +0 -109
- data/features/registering_assets.feature +0 -35
- 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/default_content.feature +0 -43
- data/features/show/page_title.feature +0 -58
- 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 -72
- data/features/step_definitions/blog_steps.rb +0 -3
- data/features/step_definitions/breadcrumb_steps.rb +0 -3
- 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 -34
- 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/pagination_steps.rb +0 -7
- 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 -119
- 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 -145
- 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/batch_actions/views/batch_action_popover.rb +0 -28
- data/lib/active_admin/event.rb +0 -33
- data/lib/active_admin/helpers/settings.rb +0 -115
- data/lib/active_admin/iconic/icons.rb +0 -142
- data/lib/active_admin/iconic.rb +0 -53
- data/lib/active_admin/view_helpers/icon_helper.rb +0 -12
- data/lib/active_admin/views/components/action_list_popover.rb +0 -29
- data/lib/active_admin/views/components/popover.rb +0 -27
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/lib/generators/active_admin/resource/templates/admin.rb +0 -18
- data/script/local +0 -44
- 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.popover-spec.js.coffee +0 -82
- 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 -154
- data/spec/requests/default_namespace_spec.rb +0 -61
- data/spec/requests/javascript_spec.rb +0 -20
- data/spec/requests/memory_spec.rb +0 -23
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -17
- data/spec/support/deferred_garbage_collection.rb +0 -19
- data/spec/support/detect_rails_version.rb +0 -34
- data/spec/support/integration_example_group.rb +0 -31
- data/spec/support/jslint.yml +0 -80
- data/spec/support/rails_template.rb +0 -138
- data/spec/support/rails_template_with_data.rb +0 -59
- data/spec/support/templates/admin/stores.rb +0 -9
- data/spec/support/templates/cucumber.rb +0 -24
- data/spec/support/templates/cucumber_with_reloading.rb +0 -5
- 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 -132
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -140
- 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 -22
- data/spec/unit/auto_link_spec.rb +0 -69
- data/spec/unit/batch_actions/resource_spec.rb +0 -92
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -51
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -166
- 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 -44
- data/spec/unit/csv_builder_spec.rb +0 -244
- 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/event_spec.rb +0 -47
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -433
- data/spec/unit/filters/resource_spec.rb +0 -121
- data/spec/unit/form_builder_spec.rb +0 -752
- data/spec/unit/generators/install_spec.rb +0 -23
- 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 -74
- data/spec/unit/namespace/register_resource_spec.rb +0 -161
- 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 -63
- 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 -73
- 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 -158
- data/spec/unit/resource_controller/data_access_spec.rb +0 -140
- data/spec/unit/resource_controller/decorators_spec.rb +0 -83
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -45
- 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 -278
- data/spec/unit/routing_spec.rb +0 -180
- data/spec/unit/scope_spec.rb +0 -190
- data/spec/unit/settings_spec.rb +0 -118
- data/spec/unit/view_factory_spec.rb +0 -21
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
- data/spec/unit/view_helpers/display_name_spec.rb +0 -69
- 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/action_list_popover_spec.rb +0 -40
- data/spec/unit/views/components/attributes_table_spec.rb +0 -272
- data/spec/unit/views/components/batch_action_popover_spec.rb +0 -47
- data/spec/unit/views/components/blank_slate_spec.rb +0 -27
- data/spec/unit/views/components/columns_spec.rb +0 -172
- data/spec/unit/views/components/index_list_spec.rb +0 -35
- data/spec/unit/views/components/index_table_for_spec.rb +0 -46
- data/spec/unit/views/components/paginated_collection_spec.rb +0 -236
- data/spec/unit/views/components/panel_spec.rb +0 -62
- data/spec/unit/views/components/popover_spec.rb +0 -33
- data/spec/unit/views/components/sidebar_section_spec.rb +0 -47
- data/spec/unit/views/components/site_title_spec.rb +0 -78
- data/spec/unit/views/components/status_tag_spec.rb +0 -235
- data/spec/unit/views/components/table_for_spec.rb +0 -384
- data/spec/unit/views/components/tabs_spec.rb +0 -39
- data/spec/unit/views/components/unsupported_browser_spec.rb +0 -47
- data/spec/unit/views/pages/form_spec.rb +0 -42
- 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 -83
- data/tasks/yard.rake +0 -9
|
@@ -4,16 +4,18 @@ module ActiveAdmin
|
|
|
4
4
|
builder_method :table_for
|
|
5
5
|
|
|
6
6
|
def tag_name
|
|
7
|
-
|
|
7
|
+
"table"
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def build(obj, *attrs)
|
|
11
|
-
options
|
|
12
|
-
@sortable
|
|
11
|
+
options = attrs.extract_options!
|
|
12
|
+
@sortable = options.delete(:sortable)
|
|
13
|
+
@collection = obj.respond_to?(:each) && !obj.is_a?(Hash) ? obj : [obj]
|
|
13
14
|
@resource_class = options.delete(:i18n)
|
|
14
|
-
@collection
|
|
15
|
-
|
|
16
|
-
@
|
|
15
|
+
@resource_class ||= @collection.klass if @collection.respond_to? :klass
|
|
16
|
+
|
|
17
|
+
@columns = []
|
|
18
|
+
@row_class = options.delete(:row_class)
|
|
17
19
|
|
|
18
20
|
build_table
|
|
19
21
|
super(options)
|
|
@@ -21,13 +23,13 @@ module ActiveAdmin
|
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
def columns(*attrs)
|
|
24
|
-
attrs.each {|attr| column(attr) }
|
|
26
|
+
attrs.each { |attr| column(attr) }
|
|
25
27
|
end
|
|
26
28
|
|
|
27
29
|
def column(*args, &block)
|
|
28
30
|
options = default_options.merge(args.extract_options!)
|
|
29
31
|
title = args[0]
|
|
30
|
-
data
|
|
32
|
+
data = args[1] || args[0]
|
|
31
33
|
|
|
32
34
|
col = Column.new(title, data, @resource_class, options, &block)
|
|
33
35
|
@columns << col
|
|
@@ -38,9 +40,9 @@ module ActiveAdmin
|
|
|
38
40
|
end
|
|
39
41
|
|
|
40
42
|
# Add a table cell for each item
|
|
41
|
-
@collection.each_with_index do |
|
|
42
|
-
within @tbody.children[
|
|
43
|
-
build_table_cell col,
|
|
43
|
+
@collection.each_with_index do |resource, index|
|
|
44
|
+
within @tbody.children[index] do
|
|
45
|
+
build_table_cell col, resource
|
|
44
46
|
end
|
|
45
47
|
end
|
|
46
48
|
end
|
|
@@ -63,12 +65,12 @@ module ActiveAdmin
|
|
|
63
65
|
end
|
|
64
66
|
|
|
65
67
|
def build_table_header(col)
|
|
66
|
-
classes
|
|
68
|
+
classes = Arbre::HTML::ClassList.new
|
|
67
69
|
sort_key = sortable? && col.sortable? && col.sort_key
|
|
68
|
-
params
|
|
70
|
+
params = request.query_parameters.except :page, :order, :commit, :format
|
|
69
71
|
|
|
70
|
-
classes <<
|
|
71
|
-
classes << "sorted-#{current_sort[1]}"
|
|
72
|
+
classes << "sortable" if sort_key
|
|
73
|
+
classes << "sorted-#{current_sort[1]}" if sort_key && current_sort[0] == sort_key
|
|
72
74
|
classes << col.html_class
|
|
73
75
|
|
|
74
76
|
if sort_key
|
|
@@ -84,41 +86,22 @@ module ActiveAdmin
|
|
|
84
86
|
@tbody = tbody do
|
|
85
87
|
# Build enough rows for our collection
|
|
86
88
|
@collection.each do |elem|
|
|
87
|
-
classes = [cycle(
|
|
89
|
+
classes = [helpers.cycle("odd", "even")]
|
|
88
90
|
|
|
89
91
|
if @row_class
|
|
90
92
|
classes << @row_class.call(elem)
|
|
91
93
|
end
|
|
92
94
|
|
|
93
|
-
tr(class: classes.flatten.join(
|
|
95
|
+
tr(class: classes.flatten.join(" "), id: dom_id_for(elem))
|
|
94
96
|
end
|
|
95
97
|
end
|
|
96
98
|
end
|
|
97
99
|
|
|
98
|
-
def build_table_cell(col,
|
|
100
|
+
def build_table_cell(col, resource)
|
|
99
101
|
td class: col.html_class do
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
def render_data(data, item)
|
|
105
|
-
value = if data.is_a? Proc
|
|
106
|
-
data.call item
|
|
107
|
-
elsif item.respond_to? data
|
|
108
|
-
item.public_send data
|
|
109
|
-
elsif item.respond_to? :[]
|
|
110
|
-
item[data]
|
|
111
|
-
end
|
|
112
|
-
value = pretty_format(value) if data.is_a?(Symbol)
|
|
113
|
-
value = status_tag value if is_boolean? data, item
|
|
114
|
-
value
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def is_boolean?(data, item)
|
|
118
|
-
if item.respond_to? :has_attribute?
|
|
119
|
-
item.has_attribute?(data) &&
|
|
120
|
-
item.column_for_attribute(data) &&
|
|
121
|
-
item.column_for_attribute(data).type == :boolean
|
|
102
|
+
html = helpers.format_attribute(resource, col.data)
|
|
103
|
+
# Don't add the same Arbre twice, while still allowing format_attribute to call status_tag
|
|
104
|
+
current_arbre_element << html unless current_arbre_element.children.include? html
|
|
122
105
|
end
|
|
123
106
|
end
|
|
124
107
|
|
|
@@ -127,7 +110,7 @@ module ActiveAdmin
|
|
|
127
110
|
# current_sort[1] #=> asc | desc
|
|
128
111
|
def current_sort
|
|
129
112
|
@current_sort ||= begin
|
|
130
|
-
order_clause =
|
|
113
|
+
order_clause = active_admin_config.order_clause.new(active_admin_config, params[:order])
|
|
131
114
|
|
|
132
115
|
if order_clause.valid?
|
|
133
116
|
[order_clause.field, order_clause.order]
|
|
@@ -143,8 +126,8 @@ module ActiveAdmin
|
|
|
143
126
|
# 'desc' it will return 'asc'
|
|
144
127
|
def order_for_sort_key(sort_key)
|
|
145
128
|
current_key, current_order = current_sort
|
|
146
|
-
return
|
|
147
|
-
current_order ==
|
|
129
|
+
return "desc" unless current_key == sort_key
|
|
130
|
+
current_order == "desc" ? "asc" : "desc"
|
|
148
131
|
end
|
|
149
132
|
|
|
150
133
|
def default_options
|
|
@@ -155,9 +138,9 @@ module ActiveAdmin
|
|
|
155
138
|
|
|
156
139
|
class Column
|
|
157
140
|
|
|
158
|
-
attr_accessor :title, :data
|
|
141
|
+
attr_accessor :title, :data, :html_class
|
|
159
142
|
|
|
160
|
-
def initialize(*args, &block)
|
|
143
|
+
def initialize(*args, &block)
|
|
161
144
|
@options = args.extract_options!
|
|
162
145
|
|
|
163
146
|
@title = args[0]
|
|
@@ -165,9 +148,9 @@ module ActiveAdmin
|
|
|
165
148
|
if @options.has_key?(:class)
|
|
166
149
|
html_classes << @options.delete(:class)
|
|
167
150
|
elsif @title.present?
|
|
168
|
-
html_classes << "col-#{@title.to_s.parameterize(
|
|
151
|
+
html_classes << "col-#{@title.to_s.parameterize(separator: "_")}"
|
|
169
152
|
end
|
|
170
|
-
@html_class = html_classes.join(
|
|
153
|
+
@html_class = html_classes.join(" ")
|
|
171
154
|
@data = args[1] || args[0]
|
|
172
155
|
@data = block if block
|
|
173
156
|
@resource_class = args[2]
|
|
@@ -194,18 +177,9 @@ module ActiveAdmin
|
|
|
194
177
|
# to the sortable option:
|
|
195
178
|
# column :username, sortable: 'other_column_to_sort_on'
|
|
196
179
|
#
|
|
197
|
-
# If you pass a block to be rendered for this column, the column
|
|
198
|
-
# will not be sortable unless you pass a string to sortable to
|
|
199
|
-
# sort the column on:
|
|
200
|
-
#
|
|
201
|
-
# column('Username', sortable: 'login'){ @user.pretty_name }
|
|
202
|
-
# # => Sort key will be 'login'
|
|
203
|
-
#
|
|
204
180
|
def sort_key
|
|
205
181
|
# If boolean or nil, use the default sort key.
|
|
206
|
-
if @options[:sortable] == true || @options[:sortable] == false
|
|
207
|
-
@data.to_s
|
|
208
|
-
elsif @options[:sortable].nil?
|
|
182
|
+
if @options[:sortable].nil? || @options[:sortable] == true || @options[:sortable] == false
|
|
209
183
|
sort_column_name
|
|
210
184
|
else
|
|
211
185
|
@options[:sortable].to_s
|
|
@@ -10,19 +10,31 @@ module ActiveAdmin
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def build(&block)
|
|
13
|
-
@menu = ul(class:
|
|
14
|
-
@tabs_content = div(class:
|
|
13
|
+
@menu = ul(class: "nav nav-tabs", role: "tablist")
|
|
14
|
+
@tabs_content = div(class: "tab-content")
|
|
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 = CGI.escape(string) if result.blank?
|
|
36
|
+
result
|
|
37
|
+
end
|
|
26
38
|
end
|
|
27
39
|
end
|
|
28
40
|
end
|
|
@@ -2,16 +2,27 @@ 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
|
|
23
|
+
I18n.t(
|
|
24
|
+
"active_admin.powered_by",
|
|
25
|
+
active_admin: link_to("Active Admin", "https://activeadmin.info"),
|
|
15
26
|
version: ActiveAdmin::VERSION).html_safe
|
|
16
27
|
end
|
|
17
28
|
|
|
@@ -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
|
|
@@ -136,7 +135,7 @@ module ActiveAdmin
|
|
|
136
135
|
|
|
137
136
|
def build_body(post)
|
|
138
137
|
if @body
|
|
139
|
-
div class:
|
|
138
|
+
div class: "content" do
|
|
140
139
|
render_method_on_post_or_call_proc post, @body
|
|
141
140
|
end
|
|
142
141
|
end
|
|
@@ -1,35 +1,35 @@
|
|
|
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
|
|
32
|
-
@collection = collection
|
|
32
|
+
@collection = collection.to_a
|
|
33
33
|
add_class "index"
|
|
34
34
|
build_table
|
|
35
35
|
end
|
|
@@ -47,7 +47,7 @@ module ActiveAdmin
|
|
|
47
47
|
def build_table
|
|
48
48
|
resource_selection_toggle_panel if active_admin_config.batch_actions.any?
|
|
49
49
|
table class: "index_grid" do
|
|
50
|
-
collection.in_groups_of(number_of_columns).each do |group|
|
|
50
|
+
@collection.in_groups_of(number_of_columns).each do |group|
|
|
51
51
|
build_row(group)
|
|
52
52
|
end
|
|
53
53
|
end
|
|
@@ -68,7 +68,7 @@ module ActiveAdmin
|
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
def build_empty_cell
|
|
71
|
-
td
|
|
71
|
+
td " ".html_safe
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def default_number_of_columns
|
|
@@ -52,6 +52,8 @@ module ActiveAdmin
|
|
|
52
52
|
# end
|
|
53
53
|
# ```
|
|
54
54
|
#
|
|
55
|
+
# ## Defining Actions
|
|
56
|
+
#
|
|
55
57
|
# To setup links to View, Edit and Delete a resource, use the `actions` method:
|
|
56
58
|
#
|
|
57
59
|
# ```ruby
|
|
@@ -91,7 +93,7 @@ module ActiveAdmin
|
|
|
91
93
|
# index do
|
|
92
94
|
# column :title
|
|
93
95
|
# actions do |post|
|
|
94
|
-
# a
|
|
96
|
+
# a "View", href: admin_post_path(post)
|
|
95
97
|
# end
|
|
96
98
|
# end
|
|
97
99
|
# ```
|
|
@@ -108,15 +110,27 @@ module ActiveAdmin
|
|
|
108
110
|
# end
|
|
109
111
|
# ```
|
|
110
112
|
#
|
|
113
|
+
# In addition, you can insert the position of the row in the greater
|
|
114
|
+
# collection by using the index_column special command:
|
|
115
|
+
#
|
|
116
|
+
# ```ruby
|
|
117
|
+
# index do
|
|
118
|
+
# selectable_column
|
|
119
|
+
# index_column
|
|
120
|
+
# column :title
|
|
121
|
+
# end
|
|
122
|
+
# ```
|
|
123
|
+
#
|
|
124
|
+
# index_column take an optional offset parameter to allow a developer to set
|
|
125
|
+
# the starting number for the index (default is 1).
|
|
126
|
+
#
|
|
111
127
|
# ## Sorting
|
|
112
128
|
#
|
|
113
129
|
# When a column is generated from an Active Record attribute, the table is
|
|
114
130
|
# sortable by default. If you are creating a custom column, you may need to give
|
|
115
131
|
# Active Admin a hint for how to sort the table.
|
|
116
132
|
#
|
|
117
|
-
#
|
|
118
|
-
# is the attribute which gets used to sort objects using Active Record.
|
|
119
|
-
#
|
|
133
|
+
# You can pass the key specifying the attribute which gets used to sort objects using Active Record.
|
|
120
134
|
# By default, this is the column on the resource's table that the attribute corresponds to.
|
|
121
135
|
# Otherwise, any attribute that the resource collection responds to can be used.
|
|
122
136
|
#
|
|
@@ -145,6 +159,24 @@ module ActiveAdmin
|
|
|
145
159
|
# end
|
|
146
160
|
# ```
|
|
147
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
|
+
#
|
|
148
180
|
# ## Associated Sorting
|
|
149
181
|
#
|
|
150
182
|
# You're normally able to sort columns alphabetically, but by default you
|
|
@@ -160,6 +192,13 @@ module ActiveAdmin
|
|
|
160
192
|
# end
|
|
161
193
|
# ```
|
|
162
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
|
+
#
|
|
163
202
|
# Then it's simple to sort by any Publisher attribute from within the index table:
|
|
164
203
|
#
|
|
165
204
|
# ```ruby
|
|
@@ -218,9 +257,9 @@ module ActiveAdmin
|
|
|
218
257
|
def default_table
|
|
219
258
|
proc do
|
|
220
259
|
selectable_column
|
|
221
|
-
id_column if resource_class.primary_key
|
|
222
|
-
|
|
223
|
-
column
|
|
260
|
+
id_column if resource_class.primary_key
|
|
261
|
+
active_admin_config.resource_columns.each do |attribute|
|
|
262
|
+
column attribute
|
|
224
263
|
end
|
|
225
264
|
actions
|
|
226
265
|
end
|
|
@@ -239,17 +278,25 @@ module ActiveAdmin
|
|
|
239
278
|
# Display a column for checkbox
|
|
240
279
|
def selectable_column
|
|
241
280
|
return unless active_admin_config.batch_actions.any?
|
|
242
|
-
column resource_selection_toggle_cell, class:
|
|
281
|
+
column resource_selection_toggle_cell, class: "col-selectable", sortable: false do |resource|
|
|
243
282
|
resource_selection_cell resource
|
|
244
283
|
end
|
|
245
284
|
end
|
|
246
285
|
|
|
286
|
+
def index_column(start_value = 1)
|
|
287
|
+
column "#", class: "col-index", sortable: false do |resource|
|
|
288
|
+
@collection.offset_value + @collection.index(resource) + start_value
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
|
|
247
292
|
# Display a column for the id
|
|
248
293
|
def id_column
|
|
249
|
-
raise "#{resource_class.name}
|
|
294
|
+
raise "#{resource_class.name} has no primary_key!" unless resource_class.primary_key
|
|
250
295
|
column(resource_class.human_attribute_name(resource_class.primary_key), sortable: resource_class.primary_key) do |resource|
|
|
251
|
-
if controller.action_methods.include?(
|
|
296
|
+
if controller.action_methods.include?("show")
|
|
252
297
|
link_to resource.id, resource_path(resource), class: "resource_id_link"
|
|
298
|
+
elsif controller.action_methods.include?("edit")
|
|
299
|
+
link_to resource.id, edit_resource_path(resource), class: "resource_id_link"
|
|
253
300
|
else
|
|
254
301
|
resource.id
|
|
255
302
|
end
|
|
@@ -257,7 +304,7 @@ module ActiveAdmin
|
|
|
257
304
|
end
|
|
258
305
|
|
|
259
306
|
def default_actions
|
|
260
|
-
raise
|
|
307
|
+
raise "`default_actions` is no longer provided in ActiveAdmin 1.x. Use `actions` instead."
|
|
261
308
|
end
|
|
262
309
|
|
|
263
310
|
# Add links to perform actions.
|
|
@@ -277,7 +324,7 @@ module ActiveAdmin
|
|
|
277
324
|
#
|
|
278
325
|
# # Append some actions onto the end of the default actions using arbre dsl.
|
|
279
326
|
# actions do |admin_user|
|
|
280
|
-
# a
|
|
327
|
+
# a 'Grant Admin', href: grant_admin_admin_user_path(admin_user)
|
|
281
328
|
# end
|
|
282
329
|
#
|
|
283
330
|
# # Custom actions without the defaults.
|
|
@@ -297,12 +344,12 @@ module ActiveAdmin
|
|
|
297
344
|
#
|
|
298
345
|
# ```
|
|
299
346
|
def actions(options = {}, &block)
|
|
300
|
-
name
|
|
301
|
-
defaults
|
|
302
|
-
dropdown
|
|
303
|
-
dropdown_name = options.delete(:dropdown_name) { I18n.t
|
|
347
|
+
name = options.delete(:name) { "" }
|
|
348
|
+
defaults = options.delete(:defaults) { true }
|
|
349
|
+
dropdown = options.delete(:dropdown) { false }
|
|
350
|
+
dropdown_name = options.delete(:dropdown_name) { I18n.t "active_admin.dropdown_actions.button_label", default: "Actions" }
|
|
304
351
|
|
|
305
|
-
options[:class] ||=
|
|
352
|
+
options[:class] ||= "col-actions"
|
|
306
353
|
|
|
307
354
|
column name, options do |resource|
|
|
308
355
|
if dropdown
|
|
@@ -322,30 +369,31 @@ module ActiveAdmin
|
|
|
322
369
|
end
|
|
323
370
|
end
|
|
324
371
|
|
|
325
|
-
|
|
372
|
+
private
|
|
326
373
|
|
|
327
374
|
def defaults(resource, options = {})
|
|
328
|
-
|
|
329
|
-
|
|
375
|
+
localizer = ActiveAdmin::Localizers.resource(active_admin_config)
|
|
376
|
+
if controller.action_methods.include?("show") && authorized?(ActiveAdmin::Auth::READ, resource)
|
|
377
|
+
item localizer.t(:view), resource_path(resource), class: "view_link #{options[:css_class]}", title: localizer.t(:view)
|
|
330
378
|
end
|
|
331
|
-
if controller.action_methods.include?(
|
|
332
|
-
item
|
|
379
|
+
if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::UPDATE, resource)
|
|
380
|
+
item localizer.t(:edit), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: localizer.t(:edit)
|
|
333
381
|
end
|
|
334
|
-
if controller.action_methods.include?(
|
|
335
|
-
item
|
|
336
|
-
|
|
382
|
+
if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
|
|
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) }
|
|
337
385
|
end
|
|
338
386
|
end
|
|
339
387
|
|
|
340
388
|
class TableActions < ActiveAdmin::Component
|
|
341
389
|
builder_method :table_actions
|
|
342
390
|
|
|
343
|
-
def item *args
|
|
344
|
-
text_node link_to
|
|
391
|
+
def item *args, **kwargs
|
|
392
|
+
text_node link_to(*args, **kwargs)
|
|
345
393
|
end
|
|
346
394
|
end
|
|
347
395
|
end # IndexTableFor
|
|
348
396
|
|
|
349
|
-
end
|
|
397
|
+
end
|
|
350
398
|
end
|
|
351
399
|
end
|