activeadmin 3.2.0 → 4.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +2 -22
- data/CONTRIBUTING.md +25 -108
- data/README.md +17 -30
- 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/resource/action_items.rb +15 -20
- 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 +20 -16
- 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 -201
- 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 -316
- 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 -151
- 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 -55
- 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 -67
- data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -65
- 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 -40
- 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 -41
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -48
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
- data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -86
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -80
- data/vendor/assets/javascripts/jquery-ui/form.js +0 -22
- data/vendor/assets/javascripts/jquery-ui/ie.js +0 -17
- data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -47
- data/vendor/assets/javascripts/jquery-ui/labels.js +0 -65
- data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -46
- data/vendor/assets/javascripts/jquery-ui/position.js +0 -500
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -42
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -23
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -47
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -38
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -51
- data/vendor/assets/javascripts/jquery-ui/version.js +0 -17
- data/vendor/assets/javascripts/jquery-ui/widget.js +0 -735
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -391
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -291
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -300
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2123
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -954
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1259
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -230
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1207
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1561
- 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
|