activeadmin 3.2.4 → 4.0.0.beta1
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 +4 -4
- data/CHANGELOG.md +2 -69
- data/CONTRIBUTING.md +25 -108
- data/README.md +19 -32
- data/app/assets/config/active_admin_manifest.js +2 -0
- data/app/controllers/active_admin/base_controller/menu.rb +39 -0
- data/{lib → app/controllers}/active_admin/base_controller.rb +46 -18
- data/{lib → app/controllers}/active_admin/page_controller.rb +0 -4
- data/{lib → app/controllers}/active_admin/resource_controller/action_builder.rb +1 -1
- data/{lib → app/controllers}/active_admin/resource_controller/data_access.rb +2 -2
- data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
- data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +2 -2
- data/app/controllers/active_admin/resource_controller.rb +102 -0
- data/app/helpers/active_admin/auto_link_helper.rb +66 -0
- data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
- data/app/helpers/active_admin/display_helper.rb +117 -0
- data/app/helpers/active_admin/form_helper.rb +95 -0
- data/app/helpers/active_admin/index_helper.rb +40 -0
- data/app/helpers/active_admin/layout_helper.rb +63 -0
- data/app/javascript/active_admin/features/batch_actions.js +89 -0
- data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
- data/app/javascript/active_admin/features/filters.js +34 -0
- data/app/javascript/active_admin/features/has_many.js +28 -0
- data/app/javascript/active_admin/features/main_menu.js +12 -0
- data/app/javascript/active_admin/features/per_page.js +9 -0
- data/app/javascript/active_admin/utils/dom.js +17 -0
- data/app/javascript/active_admin.js +10 -0
- data/app/views/active_admin/_flash_messages.html.erb +22 -0
- data/app/views/active_admin/_html_head.html.erb +13 -0
- data/app/views/active_admin/_main_navigation.html.erb +28 -0
- data/app/views/active_admin/_page_header.html.erb +27 -0
- data/app/views/active_admin/_sidebar.html.erb +5 -0
- data/app/views/active_admin/_site_footer.html.erb +7 -0
- data/app/views/active_admin/_site_header.html.erb +30 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
- data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
- data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
- data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
- data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
- data/app/views/active_admin/devise/shared/_links.erb +3 -1
- data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
- data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
- data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
- data/app/views/active_admin/kaminari/_page.html.erb +14 -0
- data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
- data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
- data/app/views/active_admin/page/index.html.arb +5 -1
- data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
- data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
- data/app/views/active_admin/resource/_form.html.arb +16 -0
- data/app/views/active_admin/resource/_form_default.html.arb +12 -0
- data/app/views/active_admin/resource/_index_as_table_default.html.arb +9 -0
- data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
- data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
- data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
- data/app/views/active_admin/resource/_show_default.html.arb +3 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -1
- data/app/views/active_admin/resource/index.html.arb +94 -1
- data/app/views/active_admin/resource/new.html.arb +1 -1
- data/app/views/active_admin/resource/show.html.arb +12 -1
- data/app/views/active_admin/shared/_action_items.html.erb +3 -0
- data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
- data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
- data/app/views/active_admin/shared/_sidebar_section.html.arb +7 -0
- data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
- data/app/views/layouts/active_admin.html.erb +20 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
- data/config/locales/ar.yml +0 -16
- data/config/locales/az.yml +0 -16
- data/config/locales/bg.yml +0 -9
- data/config/locales/bs.yml +0 -7
- data/config/locales/ca.yml +0 -9
- data/config/locales/cs.yml +0 -9
- data/config/locales/da.yml +0 -16
- data/config/locales/de-CH.yml +0 -10
- data/config/locales/de.yml +0 -16
- data/config/locales/el.yml +0 -13
- data/config/locales/en-CA.yml +0 -16
- data/config/locales/en-GB.yml +0 -16
- data/config/locales/en.yml +18 -28
- data/config/locales/eo.yml +0 -17
- data/config/locales/es-MX.yml +0 -9
- data/config/locales/es.yml +0 -16
- data/config/locales/fa.yml +0 -9
- data/config/locales/fi.yml +0 -9
- data/config/locales/fr.yml +32 -26
- data/config/locales/he.yml +0 -16
- data/config/locales/hr.yml +0 -9
- data/config/locales/hu.yml +0 -6
- data/config/locales/id.yml +0 -16
- data/config/locales/it.yml +0 -16
- data/config/locales/ja.yml +0 -16
- data/config/locales/ko.yml +0 -9
- data/config/locales/lt.yml +0 -16
- data/config/locales/lv.yml +0 -6
- data/config/locales/mk.yml +0 -15
- data/config/locales/nb.yml +0 -12
- data/config/locales/nl.yml +21 -29
- data/config/locales/pl.yml +0 -16
- data/config/locales/pt-BR.yml +0 -16
- data/config/locales/pt-PT.yml +0 -6
- data/config/locales/ro.yml +0 -6
- data/config/locales/ru.yml +0 -16
- data/config/locales/sk.yml +0 -16
- data/config/locales/sv-SE.yml +0 -16
- data/config/locales/tr.yml +0 -16
- data/config/locales/uk.yml +0 -16
- data/config/locales/vi.yml +0 -16
- data/config/locales/zh-CN.yml +0 -16
- data/config/locales/zh-TW.yml +0 -16
- data/lib/active_admin/application.rb +1 -9
- data/lib/active_admin/batch_actions/controller.rb +1 -4
- data/lib/active_admin/batch_actions/resource_extension.rb +6 -13
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +0 -6
- data/lib/active_admin/batch_actions/views/selection_cells.rb +2 -2
- data/lib/active_admin/batch_actions.rb +0 -5
- data/lib/active_admin/callbacks.rb +6 -4
- data/lib/active_admin/component.rb +0 -1
- data/lib/active_admin/csv_builder.rb +1 -1
- data/lib/active_admin/devise.rb +3 -3
- data/lib/active_admin/dsl.rb +2 -2
- data/lib/active_admin/dynamic_settings_node.rb +4 -4
- data/lib/active_admin/engine.rb +19 -6
- data/lib/active_admin/filters/active.rb +6 -4
- data/lib/active_admin/filters/active_filter.rb +1 -3
- data/lib/active_admin/filters/forms.rb +1 -42
- data/lib/active_admin/filters/resource_extension.rb +17 -9
- data/lib/active_admin/filters.rb +0 -2
- data/lib/active_admin/form_builder.rb +15 -14
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +8 -10
- data/lib/active_admin/inputs/filters/base.rb +1 -1
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
- data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
- data/lib/active_admin/inputs.rb +0 -3
- data/lib/active_admin/menu.rb +10 -7
- data/lib/active_admin/menu_collection.rb +1 -1
- data/lib/active_admin/menu_item.rb +24 -3
- data/lib/active_admin/namespace.rb +2 -44
- data/lib/active_admin/namespace_settings.rb +2 -35
- data/lib/active_admin/order_clause.rb +4 -1
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -75
- data/lib/active_admin/orm/active_record/comments.rb +10 -5
- data/lib/active_admin/pundit_adapter.rb +1 -1
- data/lib/active_admin/resource/action_items.rb +15 -20
- data/lib/active_admin/resource/attributes.rb +1 -8
- data/lib/active_admin/resource/naming.rb +1 -2
- data/lib/active_admin/resource.rb +1 -0
- data/lib/active_admin/resource_dsl.rb +1 -1
- data/lib/active_admin/scope.rb +1 -1
- data/lib/active_admin/settings_node.rb +1 -1
- data/lib/active_admin/sidebar_section.rb +0 -5
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers.rb +0 -12
- data/lib/active_admin/views/components/active_admin_form.rb +21 -29
- data/lib/active_admin/views/components/attributes_table.rb +4 -12
- data/lib/active_admin/views/components/index_list.rb +10 -23
- data/lib/active_admin/views/components/paginated_collection.rb +34 -39
- data/lib/active_admin/views/components/panel.rb +2 -10
- data/lib/active_admin/views/components/scopes.rb +12 -21
- data/lib/active_admin/views/components/status_tag.rb +22 -19
- data/lib/active_admin/views/components/table_for.rb +19 -24
- data/lib/active_admin/views/components/tabs.rb +10 -11
- data/lib/active_admin/views/index_as_table.rb +24 -97
- data/lib/active_admin.rb +7 -11
- data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
- data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
- data/lib/generators/active_admin/assets/templates/tailwind.config.js +18 -0
- data/lib/generators/active_admin/install/install_generator.rb +2 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
- data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
- data/lib/generators/active_admin/page/page_generator.rb +0 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +46 -7
- data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
- data/lib/generators/active_admin/views_generator.rb +18 -0
- metadata +67 -214
- data/app/assets/javascripts/active_admin/base.js +0 -521
- data/app/assets/stylesheets/active_admin/_base.scss +0 -57
- data/app/assets/stylesheets/active_admin/_forms.scss +0 -315
- data/app/assets/stylesheets/active_admin/_header.scss +0 -188
- data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
- data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
- data/app/assets/stylesheets/active_admin/_print.scss +0 -287
- data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
- data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
- data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
- data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -154
- data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
- data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
- data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
- data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -58
- data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
- data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -70
- data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -68
- data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
- data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
- data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
- data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
- data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -43
- data/app/javascript/active_admin/base.js +0 -28
- data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
- data/app/javascript/active_admin/ext/jquery.js +0 -9
- data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
- data/app/javascript/active_admin/initializers/datepicker.js +0 -16
- data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
- data/app/javascript/active_admin/initializers/filters.js +0 -10
- data/app/javascript/active_admin/initializers/has-many.js +0 -98
- data/app/javascript/active_admin/initializers/per-page.js +0 -13
- data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
- data/app/javascript/active_admin/initializers/tabs.js +0 -6
- data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
- data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
- data/app/javascript/active_admin/lib/filters.js +0 -39
- data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
- data/app/javascript/active_admin/lib/per-page.js +0 -38
- data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
- data/app/javascript/active_admin/lib/utils.js +0 -40
- data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
- data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
- data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
- data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
- data/app/views/kaminari/active_admin/_page.html.erb +0 -12
- data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
- data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
- data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
- data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
- data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
- data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
- data/app/views/layouts/active_admin.html.arb +0 -2
- data/lib/active_admin/abstract_view_factory.rb +0 -48
- data/lib/active_admin/asset_registration.rb +0 -30
- data/lib/active_admin/base_controller/menu.rb +0 -35
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
- data/lib/active_admin/filters/active_sidebar.rb +0 -28
- data/lib/active_admin/generators/boilerplate.rb +0 -54
- data/lib/active_admin/helpers/collection.rb +0 -21
- data/lib/active_admin/helpers/i18n.rb +0 -8
- data/lib/active_admin/inputs/datepicker_input.rb +0 -28
- data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
- data/lib/active_admin/orm/mongoid.rb +0 -2
- data/lib/active_admin/resource_controller/sidebars.rb +0 -19
- data/lib/active_admin/resource_controller.rb +0 -68
- data/lib/active_admin/view_factory.rb +0 -28
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
- data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
- data/lib/active_admin/view_helpers/display_helper.rb +0 -119
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
- data/lib/active_admin/view_helpers/fields_for.rb +0 -51
- data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
- data/lib/active_admin/view_helpers/form_helper.rb +0 -21
- data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
- data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
- data/lib/active_admin/view_helpers/title_helper.rb +0 -12
- data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
- data/lib/active_admin/views/action_items.rb +0 -18
- data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
- data/lib/active_admin/views/components/blank_slate.rb +0 -18
- data/lib/active_admin/views/components/columns.rb +0 -162
- data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
- data/lib/active_admin/views/components/menu.rb +0 -33
- data/lib/active_admin/views/components/menu_item.rb +0 -59
- data/lib/active_admin/views/components/sidebar.rb +0 -14
- data/lib/active_admin/views/components/sidebar_section.rb +0 -35
- data/lib/active_admin/views/components/site_title.rb +0 -55
- data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
- data/lib/active_admin/views/footer.rb +0 -32
- data/lib/active_admin/views/header.rb +0 -20
- data/lib/active_admin/views/index_as_block.rb +0 -37
- data/lib/active_admin/views/index_as_blog.rb +0 -156
- data/lib/active_admin/views/index_as_grid.rb +0 -81
- data/lib/active_admin/views/pages/base.rb +0 -134
- data/lib/active_admin/views/pages/form.rb +0 -65
- data/lib/active_admin/views/pages/index.rb +0 -166
- data/lib/active_admin/views/pages/layout.rb +0 -27
- data/lib/active_admin/views/pages/page.rb +0 -31
- data/lib/active_admin/views/pages/show.rb +0 -60
- data/lib/active_admin/views/tabbed_navigation.rb +0 -12
- data/lib/active_admin/views/title_bar.rb +0 -56
- data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
- data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
- data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
- data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
- data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
- data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
- data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
- data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -51
- data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -89
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -83
- data/vendor/assets/javascripts/jquery-ui/form.js +0 -25
- data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
- data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
- data/vendor/assets/javascripts/jquery-ui/labels.js +0 -71
- data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
- data/vendor/assets/javascripts/jquery-ui/position.js +0 -513
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -41
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
- data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
- data/vendor/assets/javascripts/jquery-ui/widget.js +0 -758
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -454
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -294
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -304
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2243
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -971
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1228
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1622
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
- /data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +0 -0
- /data/{lib → app/controllers}/active_admin/resource_controller/decorators.rb +0 -0
- /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
- /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
- /data/lib/{active_admin/orm/mongoid/.gitkeep → generators/active_admin/assets/templates/builds/.keep} +0 -0
@@ -1,25 +0,0 @@
|
|
1
|
-
<%# The container tag
|
2
|
-
- available local variables
|
3
|
-
current_page: a page object for the currently displayed page
|
4
|
-
total_pages: total number of pages
|
5
|
-
per_page: number of items to fetch per page
|
6
|
-
remote: data-remote
|
7
|
-
paginator: the paginator that renders the pagination tags inside
|
8
|
-
-%>
|
9
|
-
<%= paginator.render do -%>
|
10
|
-
<nav class="pagination">
|
11
|
-
<%= first_page_tag unless current_page.first? %>
|
12
|
-
<%= prev_page_tag unless current_page.first? %>
|
13
|
-
<% each_page do |page| -%>
|
14
|
-
<% if page.display_tag? -%>
|
15
|
-
<%= page_tag page %>
|
16
|
-
<% elsif !page.was_truncated? -%>
|
17
|
-
<%= gap_tag %>
|
18
|
-
<% end -%>
|
19
|
-
<% end -%>
|
20
|
-
<% unless current_page.out_of_range? %>
|
21
|
-
<%= next_page_tag unless current_page.last? %>
|
22
|
-
<%= last_page_tag unless current_page.last? %>
|
23
|
-
<% end %>
|
24
|
-
</nav>
|
25
|
-
<% end -%>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<%# Link to the "Previous" page
|
2
|
-
- available local variables
|
3
|
-
url: url to the previous page
|
4
|
-
current_page: a page object for the currently displayed page
|
5
|
-
total_pages: total number of pages
|
6
|
-
per_page: number of items to fetch per page
|
7
|
-
remote: data-remote
|
8
|
-
-%>
|
9
|
-
<span class="prev">
|
10
|
-
<%= link_to_unless current_page.first?, t('views.pagination.previous').html_safe, url, rel: 'prev', remote: remote %>
|
11
|
-
</span>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<%# Link to the "First" page
|
2
|
-
- available local variables
|
3
|
-
url: url to the first page
|
4
|
-
current_page: a page object for the currently displayed page
|
5
|
-
total_pages: total number of pages
|
6
|
-
per_page: number of items to fetch per page
|
7
|
-
remote: data-remote
|
8
|
-
-%>
|
9
|
-
<span class="first">
|
10
|
-
<%= link_to_unless current_page.first?, t('views.pagination.first').html_safe, url, remote: remote %>
|
11
|
-
</span>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<%# Link to the "Next" page
|
2
|
-
- available local variables
|
3
|
-
url: url to the next page
|
4
|
-
current_page: a page object for the currently displayed page
|
5
|
-
total_pages: total number of pages
|
6
|
-
per_page: number of items to fetch per page
|
7
|
-
remote: data-remote
|
8
|
-
-%>
|
9
|
-
<span class="next">
|
10
|
-
<%= link_to_unless current_page.last?, t('views.pagination.next').html_safe, url, rel: 'next', remote: remote %>
|
11
|
-
</span>
|
@@ -1,12 +0,0 @@
|
|
1
|
-
<%# Link showing page number
|
2
|
-
- available local variables
|
3
|
-
page: a page object for "this" page
|
4
|
-
url: url to this page
|
5
|
-
current_page: a page object for the currently displayed page
|
6
|
-
total_pages: total number of pages
|
7
|
-
per_page: number of items to fetch per page
|
8
|
-
remote: data-remote
|
9
|
-
-%>
|
10
|
-
<span class="page<%= ' current' if page.current? %>">
|
11
|
-
<%= link_to_unless page.current?, page, url, {remote: remote, rel: page.rel} %>
|
12
|
-
</span>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<%# Link to the "Previous" page
|
2
|
-
- available local variables
|
3
|
-
url: url to the previous page
|
4
|
-
current_page: a page object for the currently displayed page
|
5
|
-
total_pages: total number of pages
|
6
|
-
per_page: number of items to fetch per page
|
7
|
-
remote: data-remote
|
8
|
-
-%>
|
9
|
-
<span class="prev">
|
10
|
-
<%= link_to_unless current_page.first?, t('views.pagination.previous').html_safe, url, rel: 'prev', remote: remote %>
|
11
|
-
</span>
|
@@ -1,48 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
class AbstractViewFactory < SettingsNode
|
4
|
-
|
5
|
-
def self.register(view_hash)
|
6
|
-
view_hash.each do |view_key, view_class|
|
7
|
-
super view_key, view_class
|
8
|
-
add_writer(view_key)
|
9
|
-
send "#{view_key}=", view_class
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.add_writer(name)
|
14
|
-
define_singleton_method("#{name}=") do |value|
|
15
|
-
value.builder_method name
|
16
|
-
instance_variable_set :"@#{name}", value
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
# Register a new view key with the view factory
|
21
|
-
#
|
22
|
-
# eg:
|
23
|
-
#
|
24
|
-
# factory = AbstractViewFactory.new
|
25
|
-
# factory.register my_view: SomeViewClass
|
26
|
-
#
|
27
|
-
# You can setup many at the same time:
|
28
|
-
#
|
29
|
-
# factory.register my_view: SomeClass,
|
30
|
-
# another_view: OtherViewClass
|
31
|
-
#
|
32
|
-
def register(view_hash)
|
33
|
-
self.class.register view_hash
|
34
|
-
end
|
35
|
-
|
36
|
-
def default_for(key)
|
37
|
-
self.class.send key
|
38
|
-
end
|
39
|
-
|
40
|
-
def [](key)
|
41
|
-
send key
|
42
|
-
end
|
43
|
-
|
44
|
-
def []=(key, value)
|
45
|
-
send "#{key}=", value
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module AssetRegistration
|
4
|
-
|
5
|
-
def register_stylesheet(path, options = {})
|
6
|
-
stylesheets[path] = options
|
7
|
-
end
|
8
|
-
|
9
|
-
def stylesheets
|
10
|
-
@stylesheets ||= {}
|
11
|
-
end
|
12
|
-
|
13
|
-
def clear_stylesheets!
|
14
|
-
stylesheets.clear
|
15
|
-
end
|
16
|
-
|
17
|
-
def register_javascript(path, options = {})
|
18
|
-
javascripts[path] = options
|
19
|
-
end
|
20
|
-
|
21
|
-
def javascripts
|
22
|
-
@javascripts ||= {}
|
23
|
-
end
|
24
|
-
|
25
|
-
def clear_javascripts!
|
26
|
-
javascripts.clear
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
class BaseController < ::InheritedResources::Base
|
4
|
-
module Menu
|
5
|
-
extend ActiveSupport::Concern
|
6
|
-
|
7
|
-
included do
|
8
|
-
before_action :set_current_tab
|
9
|
-
helper_method :current_menu
|
10
|
-
end
|
11
|
-
|
12
|
-
protected
|
13
|
-
|
14
|
-
def current_menu
|
15
|
-
active_admin_config.navigation_menu
|
16
|
-
end
|
17
|
-
|
18
|
-
# Set's @current_tab to be name of the tab to mark as current
|
19
|
-
# Get's called through a before filter
|
20
|
-
def set_current_tab
|
21
|
-
@current_tab = if current_menu && active_admin_config.belongs_to? && parent?
|
22
|
-
parent_item = active_admin_config.belongs_to_config.target.menu_item
|
23
|
-
if current_menu.include? parent_item
|
24
|
-
parent_item
|
25
|
-
else
|
26
|
-
active_admin_config.menu_item
|
27
|
-
end
|
28
|
-
else
|
29
|
-
active_admin_config.menu_item
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require "active_admin/component"
|
3
|
-
|
4
|
-
module ActiveAdmin
|
5
|
-
module BatchActions
|
6
|
-
|
7
|
-
class BatchActionSelector < ActiveAdmin::Component
|
8
|
-
builder_method :batch_action_selector
|
9
|
-
|
10
|
-
# Build a new batch actions selector
|
11
|
-
#
|
12
|
-
# @param [Array] batch_actions An array of batch actions
|
13
|
-
def build(batch_actions)
|
14
|
-
@batch_actions = Array(batch_actions)
|
15
|
-
@drop_down = build_drop_down
|
16
|
-
end
|
17
|
-
|
18
|
-
# We don't want to wrap the action list (or any other children) in
|
19
|
-
# an unnecessary div, so instead we just return the children
|
20
|
-
def to_s
|
21
|
-
children.to_s
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def build_drop_down
|
27
|
-
return if batch_actions_to_display.empty?
|
28
|
-
dropdown_menu I18n.t("active_admin.batch_actions.button_label"),
|
29
|
-
class: "batch_actions_selector dropdown_menu",
|
30
|
-
button: { class: "disabled" } do
|
31
|
-
batch_actions_to_display.each do |batch_action|
|
32
|
-
confirmation_text = render_or_call_method_or_proc_on(self, batch_action.confirm)
|
33
|
-
|
34
|
-
options = {
|
35
|
-
class: "batch_action",
|
36
|
-
"data-action": batch_action.sym,
|
37
|
-
"data-confirm": confirmation_text,
|
38
|
-
"data-inputs": render_in_context(self, batch_action.inputs).to_json
|
39
|
-
}
|
40
|
-
|
41
|
-
default_title = render_or_call_method_or_proc_on(self, batch_action.title)
|
42
|
-
title = I18n.t("active_admin.batch_actions.labels.#{batch_action.sym}", default: default_title)
|
43
|
-
label = I18n.t("active_admin.batch_actions.action_label", title: title)
|
44
|
-
|
45
|
-
item label, "#", **options
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
# Return the set of batch actions that should be displayed
|
51
|
-
def batch_actions_to_display
|
52
|
-
@batch_actions.select do |batch_action|
|
53
|
-
call_method_or_proc_on(self, batch_action.display_if_block)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require "active_admin/filters/active"
|
3
|
-
|
4
|
-
module ActiveAdmin
|
5
|
-
module Filters
|
6
|
-
class ActiveSidebar < ActiveAdmin::SidebarSection
|
7
|
-
|
8
|
-
def initialize
|
9
|
-
super "search_status", sidebar_options
|
10
|
-
end
|
11
|
-
|
12
|
-
def block
|
13
|
-
-> { active_filters_sidebar_content }
|
14
|
-
end
|
15
|
-
|
16
|
-
def title
|
17
|
-
I18n.t("active_admin.search_status.headline")
|
18
|
-
end
|
19
|
-
|
20
|
-
protected
|
21
|
-
|
22
|
-
def sidebar_options
|
23
|
-
{ only: :index, if: -> { active_admin_config.current_filters_enabled? && (params[:q] || params[:scope]) } }
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module Generators
|
4
|
-
class Boilerplate
|
5
|
-
def initialize(class_name)
|
6
|
-
@class_name = class_name
|
7
|
-
end
|
8
|
-
|
9
|
-
def attributes
|
10
|
-
@class_name.constantize.new.attributes.keys
|
11
|
-
end
|
12
|
-
|
13
|
-
def assignable_attributes
|
14
|
-
attributes - %w(id created_at updated_at)
|
15
|
-
end
|
16
|
-
|
17
|
-
def permit_params
|
18
|
-
assignable_attributes.map { |a| a.to_sym.inspect }.join(", ")
|
19
|
-
end
|
20
|
-
|
21
|
-
def rows
|
22
|
-
attributes.map { |a| row(a) }.join("\n ")
|
23
|
-
end
|
24
|
-
|
25
|
-
def row(name)
|
26
|
-
"# row :#{name.gsub(/_id$/, '')}"
|
27
|
-
end
|
28
|
-
|
29
|
-
def columns
|
30
|
-
attributes.map { |a| column(a) }.join("\n ")
|
31
|
-
end
|
32
|
-
|
33
|
-
def column(name)
|
34
|
-
"# column :#{name.gsub(/_id$/, '')}"
|
35
|
-
end
|
36
|
-
|
37
|
-
def filters
|
38
|
-
attributes.map { |a| filter(a) }.join("\n ")
|
39
|
-
end
|
40
|
-
|
41
|
-
def filter(name)
|
42
|
-
"# filter :#{name.gsub(/_id$/, '')}"
|
43
|
-
end
|
44
|
-
|
45
|
-
def form_inputs
|
46
|
-
assignable_attributes.map { |a| form_input(a) }.join("\n ")
|
47
|
-
end
|
48
|
-
|
49
|
-
def form_input(name)
|
50
|
-
"# f.input :#{name.gsub(/_id$/, '')}"
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module Helpers
|
4
|
-
module Collection
|
5
|
-
# 1. removes `select` and `order` to prevent invalid SQL
|
6
|
-
# 2. correctly handles the Hash returned when `group by` is used
|
7
|
-
def collection_size(c = collection)
|
8
|
-
return c.count if c.is_a?(Array)
|
9
|
-
return c.length if c.limit_value
|
10
|
-
|
11
|
-
c = c.except :select, :order
|
12
|
-
|
13
|
-
c.group_values.present? ? c.count.count : c.count
|
14
|
-
end
|
15
|
-
|
16
|
-
def collection_is_empty?(c = collection)
|
17
|
-
collection_size(c) == 0
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module Inputs
|
4
|
-
class DatepickerInput < ::Formtastic::Inputs::StringInput
|
5
|
-
def input_html_options
|
6
|
-
super.tap do |options|
|
7
|
-
options[:class] = [options[:class], "datepicker"].compact.join(" ")
|
8
|
-
options[:data] ||= {}
|
9
|
-
options[:data].merge! datepicker_options
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
# Can pass proc to filter label option
|
14
|
-
def label_from_options
|
15
|
-
res = super
|
16
|
-
res = res.call if res.is_a? Proc
|
17
|
-
res
|
18
|
-
end
|
19
|
-
|
20
|
-
private
|
21
|
-
def datepicker_options
|
22
|
-
options = self.options.fetch(:datepicker_options, {})
|
23
|
-
options = Hash[options.map { |k, v| [k.to_s.camelcase(:lower), v] }]
|
24
|
-
{ datepicker_options: options }
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module Inputs
|
4
|
-
module Filters
|
5
|
-
class DatePickerInput < ::Formtastic::Inputs::DatePickerInput
|
6
|
-
include Base
|
7
|
-
|
8
|
-
def input_html_options
|
9
|
-
super.merge(class: "datepicker")
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module Comments
|
4
|
-
|
5
|
-
# Adds #active_admin_comments to the show page for use
|
6
|
-
# and sets it up on the default main content
|
7
|
-
module ShowPageHelper
|
8
|
-
|
9
|
-
# Add admin comments to the main content if they are
|
10
|
-
# turned on for the current resource
|
11
|
-
def default_main_content
|
12
|
-
super
|
13
|
-
active_admin_comments if active_admin_config.comments?
|
14
|
-
end
|
15
|
-
|
16
|
-
# Display the comments for the resource. Same as calling
|
17
|
-
# #active_admin_comments_for with the current resource
|
18
|
-
def active_admin_comments(*args, &block)
|
19
|
-
active_admin_comments_for(resource, *args, &block)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
class ResourceController < BaseController
|
4
|
-
|
5
|
-
module Sidebars
|
6
|
-
|
7
|
-
protected
|
8
|
-
|
9
|
-
def skip_sidebar!
|
10
|
-
@skip_sidebar = true
|
11
|
-
end
|
12
|
-
|
13
|
-
def skip_sidebar?
|
14
|
-
@skip_sidebar == true
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require "active_admin/collection_decorator"
|
3
|
-
require "active_admin/resource_controller/action_builder"
|
4
|
-
require "active_admin/resource_controller/data_access"
|
5
|
-
require "active_admin/resource_controller/decorators"
|
6
|
-
require "active_admin/resource_controller/polymorphic_routes"
|
7
|
-
require "active_admin/resource_controller/scoping"
|
8
|
-
require "active_admin/resource_controller/streaming"
|
9
|
-
require "active_admin/resource_controller/sidebars"
|
10
|
-
require "active_admin/resource_controller/resource_class_methods"
|
11
|
-
|
12
|
-
module ActiveAdmin
|
13
|
-
# All Resources Controller inherits from this controller.
|
14
|
-
# It implements actions and helpers for resources.
|
15
|
-
class ResourceController < BaseController
|
16
|
-
layout :determine_active_admin_layout
|
17
|
-
|
18
|
-
respond_to :html, :xml, :json
|
19
|
-
respond_to :csv, only: :index
|
20
|
-
|
21
|
-
include ActionBuilder
|
22
|
-
include Decorators
|
23
|
-
include DataAccess
|
24
|
-
include PolymorphicRoutes
|
25
|
-
include Scoping
|
26
|
-
include Streaming
|
27
|
-
include Sidebars
|
28
|
-
include ViewHelpers::DownloadFormatLinksHelper
|
29
|
-
extend ResourceClassMethods
|
30
|
-
|
31
|
-
def self.active_admin_config=(config)
|
32
|
-
if @active_admin_config = config
|
33
|
-
defaults resource_class: config.resource_class,
|
34
|
-
route_prefix: config.route_prefix,
|
35
|
-
instance_name: config.resource_name.singular
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
# Inherited Resources uses the `self.inherited(base)` hook to add
|
40
|
-
# in `self.resource_class`. To override it, we need to install
|
41
|
-
# our resource_class method each time we're inherited from.
|
42
|
-
def self.inherited(base)
|
43
|
-
super(base)
|
44
|
-
base.override_resource_class_methods!
|
45
|
-
end
|
46
|
-
|
47
|
-
private
|
48
|
-
|
49
|
-
# Returns the renderer class to use for the given action.
|
50
|
-
def renderer_for(action)
|
51
|
-
active_admin_namespace.view_factory["#{action}_page"]
|
52
|
-
end
|
53
|
-
|
54
|
-
helper_method :renderer_for
|
55
|
-
|
56
|
-
def restrict_format_access!
|
57
|
-
unless request.format.html?
|
58
|
-
presenter = active_admin_config.get_page_presenter(:index)
|
59
|
-
download_formats = (presenter || {}).fetch(:download_links, active_admin_config.namespace.download_links)
|
60
|
-
unless build_download_formats(download_formats).include?(request.format.symbol)
|
61
|
-
raise ActiveAdmin::AccessDenied.new(current_active_admin_user, :index)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
before_action :restrict_format_access!, only: [:index, :show]
|
67
|
-
end
|
68
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require "active_admin/abstract_view_factory"
|
3
|
-
|
4
|
-
module ActiveAdmin
|
5
|
-
class ViewFactory < AbstractViewFactory
|
6
|
-
|
7
|
-
# Register Helper Renderers
|
8
|
-
register global_navigation: ActiveAdmin::Views::TabbedNavigation,
|
9
|
-
utility_navigation: ActiveAdmin::Views::TabbedNavigation,
|
10
|
-
site_title: ActiveAdmin::Views::SiteTitle,
|
11
|
-
unsupported_browser: ActiveAdmin::Views::UnsupportedBrowser,
|
12
|
-
action_items: ActiveAdmin::Views::ActionItems,
|
13
|
-
title_bar: ActiveAdmin::Views::TitleBar,
|
14
|
-
header: ActiveAdmin::Views::Header,
|
15
|
-
footer: ActiveAdmin::Views::Footer,
|
16
|
-
index_scopes: ActiveAdmin::Views::Scopes,
|
17
|
-
blank_slate: ActiveAdmin::Views::BlankSlate
|
18
|
-
|
19
|
-
# Register All The Pages
|
20
|
-
register index_page: ActiveAdmin::Views::Pages::Index,
|
21
|
-
show_page: ActiveAdmin::Views::Pages::Show,
|
22
|
-
new_page: ActiveAdmin::Views::Pages::Form,
|
23
|
-
edit_page: ActiveAdmin::Views::Pages::Form,
|
24
|
-
layout: ActiveAdmin::Views::Pages::Layout,
|
25
|
-
page: ActiveAdmin::Views::Pages::Page
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module ViewHelpers
|
4
|
-
module ActiveAdminApplicationHelper
|
5
|
-
|
6
|
-
# Returns the current Active Admin application instance
|
7
|
-
def active_admin_application
|
8
|
-
ActiveAdmin.application
|
9
|
-
end
|
10
|
-
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module ViewHelpers
|
4
|
-
module AutoLinkHelper
|
5
|
-
|
6
|
-
# Automatically links objects to their resource controllers. If
|
7
|
-
# the resource has not been registered, a string representation of
|
8
|
-
# the object is returned.
|
9
|
-
#
|
10
|
-
# The default content in the link is returned from ActiveAdmin::ViewHelpers::DisplayHelper#display_name
|
11
|
-
#
|
12
|
-
# You can pass in the content to display
|
13
|
-
# eg: auto_link(@post, "My Link")
|
14
|
-
#
|
15
|
-
def auto_link(resource, content = display_name(resource))
|
16
|
-
if url = auto_url_for(resource)
|
17
|
-
link_to content, url
|
18
|
-
else
|
19
|
-
content
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
# Like `auto_link`, except that it only returns a URL instead of a full <a> tag
|
24
|
-
def auto_url_for(resource)
|
25
|
-
config = active_admin_resource_for(resource.class)
|
26
|
-
return unless config
|
27
|
-
|
28
|
-
if config.controller.action_methods.include?("show") &&
|
29
|
-
authorized?(ActiveAdmin::Auth::READ, resource)
|
30
|
-
url_for config.route_instance_path resource, url_options
|
31
|
-
elsif config.controller.action_methods.include?("edit") &&
|
32
|
-
authorized?(ActiveAdmin::Auth::EDIT, resource)
|
33
|
-
url_for config.route_edit_instance_path resource, url_options
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
# Returns the ActiveAdmin::Resource instance for a class
|
38
|
-
def active_admin_resource_for(klass)
|
39
|
-
if respond_to? :active_admin_namespace
|
40
|
-
active_admin_namespace.resource_for klass
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module ViewHelpers
|
4
|
-
module BreadcrumbHelper
|
5
|
-
|
6
|
-
# Returns an array of links to use in a breadcrumb
|
7
|
-
def breadcrumb_links(path = request.path)
|
8
|
-
# remove leading "/" and split up the URL
|
9
|
-
# and remove last since it's used as the page title
|
10
|
-
parts = path.split("/").select(&:present?)[0..-2]
|
11
|
-
|
12
|
-
parts.each_with_index.map do |part, index|
|
13
|
-
# 1. try using `display_name` if we can locate a DB object
|
14
|
-
# 2. try using the model name translation
|
15
|
-
# 3. default to calling `titlecase` on the URL fragment
|
16
|
-
if part =~ /\A(\d+|[a-f0-9]{24}|(?:[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}))\z/ && parts[index - 1]
|
17
|
-
parent = active_admin_config.belongs_to_config.try :target
|
18
|
-
config = parent && parent.resource_name.route_key == parts[index - 1] ? parent : active_admin_config
|
19
|
-
name = display_name config.find_resource part
|
20
|
-
end
|
21
|
-
name ||= I18n.t "activerecord.models.#{part.singularize}", count: ::ActiveAdmin::Helpers::I18n::PLURAL_MANY_COUNT, default: part.titlecase
|
22
|
-
|
23
|
-
# Don't create a link if the resource's show action is disabled
|
24
|
-
if !config || config.defined_actions.include?(:show)
|
25
|
-
link_to name, "/" + parts[0..index].join("/")
|
26
|
-
else
|
27
|
-
name
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|