activeadmin 3.2.0 → 4.0.0.beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +2 -22
- data/CONTRIBUTING.md +28 -109
- 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
- data/vendor/javascript/flowbite.js +2 -0
- metadata +68 -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
|
@@ -8,8 +8,8 @@ module ActiveAdmin
|
|
|
8
8
|
def build(title, attributes = {})
|
|
9
9
|
super(attributes)
|
|
10
10
|
add_class "panel"
|
|
11
|
-
@title = h3(title.to_s)
|
|
12
|
-
@contents = div(class: "
|
|
11
|
+
@title = h3(title.to_s, class: "panel-title")
|
|
12
|
+
@contents = div(class: "panel-body")
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def add_child(child)
|
|
@@ -26,14 +26,6 @@ module ActiveAdmin
|
|
|
26
26
|
def children?
|
|
27
27
|
@contents.children?
|
|
28
28
|
end
|
|
29
|
-
|
|
30
|
-
def header_action(*args)
|
|
31
|
-
action = args[0]
|
|
32
|
-
|
|
33
|
-
@title << div(class: "header_action") do
|
|
34
|
-
action
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
29
|
end
|
|
38
30
|
end
|
|
39
31
|
end
|
|
@@ -1,29 +1,22 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
require "active_admin/helpers/collection"
|
|
3
2
|
require "active_admin/view_helpers/method_or_proc_helper"
|
|
4
3
|
|
|
5
4
|
module ActiveAdmin
|
|
6
5
|
module Views
|
|
7
|
-
|
|
8
6
|
# Renders a collection of ActiveAdmin::Scope objects as a
|
|
9
7
|
# simple list with a seperator
|
|
10
8
|
class Scopes < ActiveAdmin::Component
|
|
11
|
-
builder_method :scopes_renderer
|
|
12
|
-
|
|
13
9
|
include ActiveAdmin::ScopeChain
|
|
14
|
-
include ::ActiveAdmin::Helpers::Collection
|
|
15
|
-
|
|
16
|
-
def default_class_name
|
|
17
|
-
"scopes"
|
|
18
|
-
end
|
|
19
10
|
|
|
20
11
|
def tag_name
|
|
21
12
|
"div"
|
|
22
13
|
end
|
|
23
14
|
|
|
24
15
|
def build(scopes, options = {})
|
|
16
|
+
super({ role: "toolbar" })
|
|
17
|
+
add_class "scopes"
|
|
25
18
|
scopes.group_by(&:group).each do |group, group_scopes|
|
|
26
|
-
|
|
19
|
+
div class: "index-button-group", role: "group", data: { "group": group_name(group) } do
|
|
27
20
|
group_scopes.each do |scope|
|
|
28
21
|
build_scope(scope, options) if call_method_or_exec_proc(scope.display_if_block)
|
|
29
22
|
end
|
|
@@ -36,21 +29,19 @@ module ActiveAdmin
|
|
|
36
29
|
protected
|
|
37
30
|
|
|
38
31
|
def build_scope(scope, options)
|
|
39
|
-
|
|
40
|
-
params = request.query_parameters.except :page, :scope, :commit, :format
|
|
32
|
+
params = request.query_parameters.except :page, :scope, :commit, :format
|
|
41
33
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
end if options[:scope_count] && scope.show_count
|
|
34
|
+
a href: url_for(scope: scope.id, params: params), class: classes_for_scope(scope) do
|
|
35
|
+
text_node scope_name(scope)
|
|
36
|
+
if options[:scope_count] && scope.show_count
|
|
37
|
+
span get_scope_count(scope), class: "scopes-count"
|
|
47
38
|
end
|
|
48
39
|
end
|
|
49
40
|
end
|
|
50
41
|
|
|
51
42
|
def classes_for_scope(scope)
|
|
52
|
-
classes = ["
|
|
53
|
-
classes << "selected" if current_scope?(scope)
|
|
43
|
+
classes = ["index-button"]
|
|
44
|
+
classes << "index-button-selected" if current_scope?(scope)
|
|
54
45
|
classes.join(" ")
|
|
55
46
|
end
|
|
56
47
|
|
|
@@ -67,8 +58,8 @@ module ActiveAdmin
|
|
|
67
58
|
collection_size(scope_chain(scope, collection_before_scope))
|
|
68
59
|
end
|
|
69
60
|
|
|
70
|
-
def
|
|
71
|
-
group.present? ?
|
|
61
|
+
def group_name(group)
|
|
62
|
+
group.present? ? group : "default"
|
|
72
63
|
end
|
|
73
64
|
end
|
|
74
65
|
end
|
|
@@ -9,12 +9,8 @@ module ActiveAdmin
|
|
|
9
9
|
"span"
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
def default_class_name
|
|
13
|
-
"status_tag"
|
|
14
|
-
end
|
|
15
|
-
|
|
16
12
|
# @overload status_tag(status, options = {})
|
|
17
|
-
# @param [String] status the status to display.
|
|
13
|
+
# @param [String] status the status to display.
|
|
18
14
|
# @param [Hash] options
|
|
19
15
|
# @option options [String] :class to override the default class
|
|
20
16
|
# @option options [String] :id to override the default id
|
|
@@ -22,17 +18,30 @@ module ActiveAdmin
|
|
|
22
18
|
# @return [ActiveAdmin::Views::StatusTag]
|
|
23
19
|
#
|
|
24
20
|
# @example
|
|
21
|
+
# status_tag(true)
|
|
22
|
+
# # => <span class="status-tag" data-status="yes">Yes</span>
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# status_tag(false)
|
|
26
|
+
# # => <span class="status-tag" data-status="no">No</span>
|
|
27
|
+
#
|
|
28
|
+
# @example
|
|
29
|
+
# status_tag(nil)
|
|
30
|
+
# # => <span class="status-tag" data-status="unset">Unknown</span>
|
|
31
|
+
#
|
|
32
|
+
# @example
|
|
25
33
|
# status_tag('In Progress')
|
|
26
|
-
# # => <span class=
|
|
34
|
+
# # => <span class="status-tag" data-status="in_progress">In Progress</span>
|
|
27
35
|
#
|
|
28
36
|
# @example
|
|
29
|
-
# status_tag('
|
|
30
|
-
# # => <span class=
|
|
37
|
+
# status_tag('Active', class: 'important', id: 'status_123', label: 'on')
|
|
38
|
+
# # => <span class="status-tag important" id="status_123" data-status="active">on</span>
|
|
31
39
|
#
|
|
32
40
|
def build(status, options = {})
|
|
33
41
|
label = options.delete(:label)
|
|
34
42
|
classes = options.delete(:class)
|
|
35
|
-
|
|
43
|
+
boolean_status = convert_to_boolean_status(status)
|
|
44
|
+
status = boolean_status || status
|
|
36
45
|
|
|
37
46
|
if status
|
|
38
47
|
content = label || if s = status.to_s and s.present?
|
|
@@ -41,8 +50,8 @@ module ActiveAdmin
|
|
|
41
50
|
end
|
|
42
51
|
|
|
43
52
|
super(content, options)
|
|
44
|
-
|
|
45
|
-
|
|
53
|
+
add_class "status-tag"
|
|
54
|
+
set_attribute("data-status", convert_status(status)) if status
|
|
46
55
|
add_class(classes) if classes
|
|
47
56
|
end
|
|
48
57
|
|
|
@@ -56,19 +65,13 @@ module ActiveAdmin
|
|
|
56
65
|
"No"
|
|
57
66
|
when nil
|
|
58
67
|
"Unset"
|
|
59
|
-
else
|
|
60
|
-
status
|
|
61
68
|
end
|
|
62
69
|
end
|
|
63
70
|
|
|
64
|
-
def
|
|
71
|
+
def convert_status(status)
|
|
65
72
|
case status
|
|
66
|
-
when "Unset"
|
|
67
|
-
"unset no"
|
|
68
73
|
when String, Symbol
|
|
69
|
-
status.to_s.titleize.
|
|
70
|
-
else
|
|
71
|
-
""
|
|
74
|
+
status.to_s.titleize.delete(" ").underscore
|
|
72
75
|
end
|
|
73
76
|
end
|
|
74
77
|
end
|
|
@@ -20,6 +20,7 @@ module ActiveAdmin
|
|
|
20
20
|
|
|
21
21
|
build_table
|
|
22
22
|
super(options)
|
|
23
|
+
add_class "data-table"
|
|
23
24
|
columns(*attrs)
|
|
24
25
|
end
|
|
25
26
|
|
|
@@ -66,20 +67,26 @@ module ActiveAdmin
|
|
|
66
67
|
end
|
|
67
68
|
|
|
68
69
|
def build_table_header(col)
|
|
69
|
-
classes = Arbre::HTML::ClassList.new
|
|
70
70
|
sort_key = sortable? && col.sortable? && col.sort_key
|
|
71
71
|
params = request.query_parameters.except :page, :order, :commit, :format
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
attributes = {
|
|
74
|
+
class: col.html_class,
|
|
75
|
+
"data-column": col.title_id.presence,
|
|
76
|
+
"data-sortable": (sort_key.present?) ? "" : nil,
|
|
77
|
+
"data-sort-direction": (sort_key && current_sort[0] == sort_key) ? current_sort[1] : nil
|
|
78
|
+
}
|
|
76
79
|
|
|
77
80
|
if sort_key
|
|
78
|
-
th
|
|
79
|
-
link_to
|
|
81
|
+
th(attributes) do
|
|
82
|
+
link_to params: params, order: "#{sort_key}_#{order_for_sort_key(sort_key)}" do
|
|
83
|
+
svg = '<svg class="data-table-sorted-icon" fill="none" viewBox="0 0 10 6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/></svg>'
|
|
84
|
+
|
|
85
|
+
(col.pretty_title + svg).html_safe
|
|
86
|
+
end
|
|
80
87
|
end
|
|
81
88
|
else
|
|
82
|
-
th col.pretty_title,
|
|
89
|
+
th col.pretty_title, attributes
|
|
83
90
|
end
|
|
84
91
|
end
|
|
85
92
|
|
|
@@ -87,19 +94,13 @@ module ActiveAdmin
|
|
|
87
94
|
@tbody = tbody do
|
|
88
95
|
# Build enough rows for our collection
|
|
89
96
|
@collection.each do |elem|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if @row_class
|
|
93
|
-
classes << @row_class.call(elem)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
tr(class: classes.flatten.join(" "), id: dom_id_for(elem))
|
|
97
|
+
tr(id: dom_id_for(elem), class: @row_class&.call(elem))
|
|
97
98
|
end
|
|
98
99
|
end
|
|
99
100
|
end
|
|
100
101
|
|
|
101
102
|
def build_table_cell(col, resource)
|
|
102
|
-
td class: col.html_class do
|
|
103
|
+
td class: col.html_class, "data-column": col.title_id.presence do
|
|
103
104
|
html = helpers.format_attribute(resource, col.data)
|
|
104
105
|
# Don't add the same Arbre twice, while still allowing format_attribute to call status_tag
|
|
105
106
|
current_arbre_element << html unless current_arbre_element.children.include? html
|
|
@@ -139,19 +140,13 @@ module ActiveAdmin
|
|
|
139
140
|
|
|
140
141
|
class Column
|
|
141
142
|
|
|
142
|
-
attr_accessor :title, :data, :html_class
|
|
143
|
+
attr_accessor :title, :title_id, :data, :html_class
|
|
143
144
|
|
|
144
145
|
def initialize(*args, &block)
|
|
145
146
|
@options = args.extract_options!
|
|
146
|
-
|
|
147
147
|
@title = args[0]
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
html_classes << @options.delete(:class)
|
|
151
|
-
elsif @title.present?
|
|
152
|
-
html_classes << "col-#{@title.to_s.parameterize(separator: "_")}"
|
|
153
|
-
end
|
|
154
|
-
@html_class = html_classes.join(" ")
|
|
148
|
+
@title_id = @title.to_s.parameterize(separator: "_") if @title.present? && !title.is_a?(Arbre::Element)
|
|
149
|
+
@html_class = @options.delete(:class)
|
|
155
150
|
@data = args[1] || args[0]
|
|
156
151
|
@data = block if block
|
|
157
152
|
@resource_class = args[2]
|
|
@@ -10,31 +10,30 @@ module ActiveAdmin
|
|
|
10
10
|
@tabs_content << build_content_item(title, options, &block)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def build(&block)
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
def build(attributes = {}, &block)
|
|
14
|
+
super(attributes)
|
|
15
|
+
add_class "tabs"
|
|
16
|
+
@menu = nav(class: "tabs-nav", role: "tablist", "data-tabs-toggle": "#tabs-container-#{object_id}")
|
|
17
|
+
@tabs_content = div(class: "tabs-content", id: "tabs-container-#{object_id}")
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
def build_menu_item(title, options, &block)
|
|
19
21
|
fragment = options.fetch(:id, fragmentize(title))
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
link_to title, "##{fragment}"
|
|
22
|
+
html_options = options.fetch(:html_options, {}).merge("data-tabs-target": "##{fragment}", role: "tab", "aria-controls": fragment)
|
|
23
|
+
button html_options do
|
|
24
|
+
title
|
|
24
25
|
end
|
|
25
26
|
end
|
|
26
27
|
|
|
27
28
|
def build_content_item(title, options, &block)
|
|
28
|
-
options = options.reverse_merge(id: fragmentize(title))
|
|
29
|
+
options = options.reverse_merge(id: fragmentize(title), class: "hidden", role: "tabpanel", "aria-labelledby": "#{title}-tab")
|
|
29
30
|
div(options, &block)
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
private
|
|
33
34
|
|
|
34
35
|
def fragmentize(string)
|
|
35
|
-
|
|
36
|
-
result = CGI.escape(string) if result.blank?
|
|
37
|
-
result
|
|
36
|
+
"tabs-#{string.parameterize}-#{object_id}"
|
|
38
37
|
end
|
|
39
38
|
end
|
|
40
39
|
end
|
|
@@ -72,7 +72,7 @@ module ActiveAdmin
|
|
|
72
72
|
# selectable_column
|
|
73
73
|
# column :title
|
|
74
74
|
# actions do |post|
|
|
75
|
-
# item "Preview", admin_preview_post_path(post), class: "
|
|
75
|
+
# item "Preview", admin_preview_post_path(post), class: "preview-link"
|
|
76
76
|
# end
|
|
77
77
|
# end
|
|
78
78
|
# ```
|
|
@@ -99,32 +99,6 @@ module ActiveAdmin
|
|
|
99
99
|
# end
|
|
100
100
|
# ```
|
|
101
101
|
#
|
|
102
|
-
# In case you prefer to list actions links in a dropdown menu:
|
|
103
|
-
#
|
|
104
|
-
# ```ruby
|
|
105
|
-
# index do
|
|
106
|
-
# selectable_column
|
|
107
|
-
# column :title
|
|
108
|
-
# actions dropdown: true do |post|
|
|
109
|
-
# item "Preview", admin_preview_post_path(post)
|
|
110
|
-
# end
|
|
111
|
-
# end
|
|
112
|
-
# ```
|
|
113
|
-
#
|
|
114
|
-
# In addition, you can insert the position of the row in the greater
|
|
115
|
-
# collection by using the index_column special command:
|
|
116
|
-
#
|
|
117
|
-
# ```ruby
|
|
118
|
-
# index do
|
|
119
|
-
# selectable_column
|
|
120
|
-
# index_column
|
|
121
|
-
# column :title
|
|
122
|
-
# end
|
|
123
|
-
# ```
|
|
124
|
-
#
|
|
125
|
-
# index_column take an optional offset parameter to allow a developer to set
|
|
126
|
-
# the starting number for the index (default is 1).
|
|
127
|
-
#
|
|
128
102
|
# ## Sorting
|
|
129
103
|
#
|
|
130
104
|
# When a column is generated from an Active Record attribute, the table is
|
|
@@ -234,35 +208,22 @@ module ActiveAdmin
|
|
|
234
208
|
# ```
|
|
235
209
|
#
|
|
236
210
|
class IndexAsTable < ActiveAdmin::Component
|
|
237
|
-
|
|
238
211
|
def build(page_presenter, collection)
|
|
212
|
+
add_class "index-as-table"
|
|
239
213
|
table_options = {
|
|
240
214
|
id: "index_table_#{active_admin_config.resource_name.plural}",
|
|
241
215
|
sortable: true,
|
|
242
|
-
class: "index_table index",
|
|
243
216
|
i18n: active_admin_config.resource_class,
|
|
244
217
|
paginator: page_presenter[:paginator] != false,
|
|
245
218
|
row_class: page_presenter[:row_class]
|
|
246
219
|
}
|
|
247
220
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
end
|
|
252
|
-
end
|
|
253
|
-
|
|
254
|
-
def table_for(*args, &block)
|
|
255
|
-
insert_tag IndexTableFor, *args, &block
|
|
256
|
-
end
|
|
257
|
-
|
|
258
|
-
def default_table
|
|
259
|
-
proc do
|
|
260
|
-
selectable_column
|
|
261
|
-
id_column if resource_class.primary_key
|
|
262
|
-
active_admin_config.resource_columns.each do |attribute|
|
|
263
|
-
column attribute
|
|
221
|
+
if page_presenter.block
|
|
222
|
+
insert_tag(IndexTableFor, collection, table_options) do |t|
|
|
223
|
+
instance_exec(t, &page_presenter.block)
|
|
264
224
|
end
|
|
265
|
-
|
|
225
|
+
else
|
|
226
|
+
render "index_as_table_default", table_options: table_options
|
|
266
227
|
end
|
|
267
228
|
end
|
|
268
229
|
|
|
@@ -275,29 +236,22 @@ module ActiveAdmin
|
|
|
275
236
|
# methods for quickly displaying items on the index page
|
|
276
237
|
#
|
|
277
238
|
class IndexTableFor < ::ActiveAdmin::Views::TableFor
|
|
278
|
-
|
|
279
239
|
# Display a column for checkbox
|
|
280
|
-
def selectable_column
|
|
240
|
+
def selectable_column(**options)
|
|
281
241
|
return unless active_admin_config.batch_actions.any?
|
|
282
|
-
column resource_selection_toggle_cell, class:
|
|
242
|
+
column resource_selection_toggle_cell, class: options[:class], sortable: false do |resource|
|
|
283
243
|
resource_selection_cell resource
|
|
284
244
|
end
|
|
285
245
|
end
|
|
286
246
|
|
|
287
|
-
def index_column(start_value = 1)
|
|
288
|
-
column "#", class: "col-index", sortable: false do |resource|
|
|
289
|
-
@collection.offset_value + @collection.index(resource) + start_value
|
|
290
|
-
end
|
|
291
|
-
end
|
|
292
|
-
|
|
293
247
|
# Display a column for the id
|
|
294
248
|
def id_column
|
|
295
249
|
raise "#{resource_class.name} has no primary_key!" unless resource_class.primary_key
|
|
296
250
|
column(resource_class.human_attribute_name(resource_class.primary_key), sortable: resource_class.primary_key) do |resource|
|
|
297
251
|
if controller.action_methods.include?("show")
|
|
298
|
-
link_to resource.id, resource_path(resource)
|
|
252
|
+
link_to resource.id, resource_path(resource)
|
|
299
253
|
elsif controller.action_methods.include?("edit")
|
|
300
|
-
link_to resource.id, edit_resource_path(resource)
|
|
254
|
+
link_to resource.id, edit_resource_path(resource)
|
|
301
255
|
else
|
|
302
256
|
resource.id
|
|
303
257
|
end
|
|
@@ -329,38 +283,17 @@ module ActiveAdmin
|
|
|
329
283
|
# item 'Grant Admin', grant_admin_admin_user_path(admin_user)
|
|
330
284
|
# end
|
|
331
285
|
#
|
|
332
|
-
# # Append some actions onto the end of the default actions displayed in a Dropdown Menu
|
|
333
|
-
# actions dropdown: true do |admin_user|
|
|
334
|
-
# item 'Grant Admin', grant_admin_admin_user_path(admin_user)
|
|
335
|
-
# end
|
|
336
|
-
#
|
|
337
|
-
# # Custom actions without the defaults displayed in a Dropdown Menu.
|
|
338
|
-
# actions defaults: false, dropdown: true, dropdown_name: 'Additional actions' do |admin_user|
|
|
339
|
-
# item 'Grant Admin', grant_admin_admin_user_path(admin_user)
|
|
340
|
-
# end
|
|
341
|
-
#
|
|
342
286
|
# ```
|
|
343
287
|
def actions(options = {}, &block)
|
|
344
288
|
name = options.delete(:name) { "" }
|
|
345
289
|
defaults = options.delete(:defaults) { true }
|
|
346
|
-
dropdown = options.delete(:dropdown) { false }
|
|
347
|
-
dropdown_name = options.delete(:dropdown_name) { I18n.t "active_admin.dropdown_actions.button_label", default: "Actions" }
|
|
348
|
-
|
|
349
|
-
options[:class] ||= "col-actions"
|
|
350
290
|
|
|
351
291
|
column name, options do |resource|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
instance_exec(resource, &block)
|
|
356
|
-
|
|
357
|
-
else
|
|
358
|
-
table_actions do
|
|
359
|
-
defaults(resource, css_class: :member_link) if defaults
|
|
360
|
-
if block_given?
|
|
361
|
-
block_result = instance_exec(resource, &block)
|
|
362
|
-
text_node block_result unless block_result.is_a? Arbre::Element
|
|
363
|
-
end
|
|
292
|
+
insert_tag(TableActions, class: "data-table-resource-actions") do
|
|
293
|
+
render "index_table_actions_default", defaults_data(resource) if defaults
|
|
294
|
+
if block
|
|
295
|
+
block_result = instance_exec(resource, &block)
|
|
296
|
+
text_node block_result unless block_result.is_a? Arbre::Element
|
|
364
297
|
end
|
|
365
298
|
end
|
|
366
299
|
end
|
|
@@ -368,29 +301,23 @@ module ActiveAdmin
|
|
|
368
301
|
|
|
369
302
|
private
|
|
370
303
|
|
|
371
|
-
def
|
|
304
|
+
def defaults_data(resource)
|
|
372
305
|
localizer = ActiveAdmin::Localizers.resource(active_admin_config)
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
item localizer.t(:delete), resource_path(resource), class: "delete_link #{options[:css_class]}", title: localizer.t(:delete),
|
|
381
|
-
method: :delete, data: { confirm: localizer.t(:delete_confirmation) }
|
|
382
|
-
end
|
|
306
|
+
{
|
|
307
|
+
resource: resource,
|
|
308
|
+
view_label: localizer.t(:view),
|
|
309
|
+
edit_label: localizer.t(:edit),
|
|
310
|
+
delete_label: localizer.t(:delete),
|
|
311
|
+
delete_confirmation_text: localizer.t(:delete_confirmation)
|
|
312
|
+
}
|
|
383
313
|
end
|
|
384
314
|
|
|
385
315
|
class TableActions < ActiveAdmin::Component
|
|
386
|
-
builder_method :table_actions
|
|
387
|
-
|
|
388
316
|
def item *args, **kwargs
|
|
389
317
|
text_node link_to(*args, **kwargs)
|
|
390
318
|
end
|
|
391
319
|
end
|
|
392
320
|
end # IndexTableFor
|
|
393
|
-
|
|
394
321
|
end
|
|
395
322
|
end
|
|
396
323
|
end
|
data/lib/active_admin.rb
CHANGED
|
@@ -7,21 +7,16 @@ require "kaminari"
|
|
|
7
7
|
require "formtastic"
|
|
8
8
|
require "formtastic_i18n"
|
|
9
9
|
require "inherited_resources"
|
|
10
|
-
require "jquery-rails"
|
|
11
10
|
require "arbre"
|
|
12
11
|
|
|
13
|
-
require "active_admin/helpers/i18n"
|
|
14
|
-
|
|
15
12
|
module ActiveAdmin
|
|
16
13
|
|
|
17
14
|
autoload :VERSION, "active_admin/version"
|
|
18
15
|
autoload :Application, "active_admin/application"
|
|
19
|
-
autoload :AssetRegistration, "active_admin/asset_registration"
|
|
20
16
|
autoload :Authorization, "active_admin/authorization_adapter"
|
|
21
17
|
autoload :AuthorizationAdapter, "active_admin/authorization_adapter"
|
|
22
18
|
autoload :Callbacks, "active_admin/callbacks"
|
|
23
19
|
autoload :Component, "active_admin/component"
|
|
24
|
-
autoload :BaseController, "active_admin/base_controller"
|
|
25
20
|
autoload :CanCanAdapter, "active_admin/cancan_adapter"
|
|
26
21
|
autoload :ControllerAction, "active_admin/controller_action"
|
|
27
22
|
autoload :CSVBuilder, "active_admin/csv_builder"
|
|
@@ -38,30 +33,32 @@ module ActiveAdmin
|
|
|
38
33
|
autoload :OrderClause, "active_admin/order_clause"
|
|
39
34
|
autoload :Page, "active_admin/page"
|
|
40
35
|
autoload :PagePresenter, "active_admin/page_presenter"
|
|
41
|
-
autoload :PageController, "active_admin/page_controller"
|
|
42
36
|
autoload :PageDSL, "active_admin/page_dsl"
|
|
43
37
|
autoload :PunditAdapter, "active_admin/pundit_adapter"
|
|
44
38
|
autoload :Resource, "active_admin/resource"
|
|
45
|
-
autoload :ResourceController, "active_admin/resource_controller"
|
|
46
39
|
autoload :ResourceDSL, "active_admin/resource_dsl"
|
|
47
40
|
autoload :Scope, "active_admin/scope"
|
|
48
41
|
autoload :ScopeChain, "active_admin/helpers/scope_chain"
|
|
49
42
|
autoload :SidebarSection, "active_admin/sidebar_section"
|
|
50
43
|
autoload :TableBuilder, "active_admin/table_builder"
|
|
51
|
-
autoload :ViewFactory, "active_admin/view_factory"
|
|
52
44
|
autoload :ViewHelpers, "active_admin/view_helpers"
|
|
53
45
|
autoload :Views, "active_admin/views"
|
|
54
46
|
|
|
55
47
|
class << self
|
|
56
48
|
|
|
57
|
-
attr_accessor :application
|
|
49
|
+
attr_accessor :application, :importmap
|
|
58
50
|
|
|
59
51
|
def application
|
|
60
52
|
@application ||= ::ActiveAdmin::Application.new
|
|
61
53
|
end
|
|
62
54
|
|
|
63
55
|
def deprecator
|
|
64
|
-
@deprecator ||= ActiveSupport::Deprecation.new("4.
|
|
56
|
+
@deprecator ||= ActiveSupport::Deprecation.new("4.1", "active-admin")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def importmap
|
|
60
|
+
require "importmap-rails"
|
|
61
|
+
@importmap ||= Importmap::Map.new
|
|
65
62
|
end
|
|
66
63
|
|
|
67
64
|
# Gets called within the initializer
|
|
@@ -132,4 +129,3 @@ require "active_admin/filters"
|
|
|
132
129
|
|
|
133
130
|
# Require ORM-specific plugins
|
|
134
131
|
require "active_admin/orm/active_record" if defined? ActiveRecord
|
|
135
|
-
require "active_admin/orm/mongoid" if defined? Mongoid
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
module ActiveAdmin
|
|
3
3
|
module Generators
|
|
4
4
|
class AssetsGenerator < Rails::Generators::Base
|
|
5
|
-
|
|
6
5
|
source_root File.expand_path("templates", __dir__)
|
|
7
6
|
|
|
8
7
|
def install_assets
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
remove_file "app/assets/stylesheets/active_admin.scss"
|
|
9
|
+
remove_file "app/assets/javascripts/active_admin.js"
|
|
10
|
+
template "active_admin.css", "app/assets/stylesheets/active_admin.css"
|
|
11
|
+
template "tailwind.config.js", "tailwind-active_admin.config.js"
|
|
11
12
|
end
|
|
12
|
-
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const execSync = require('child_process').execSync;
|
|
2
|
+
const activeAdminPath = execSync('bundle show activeadmin', { encoding: 'utf-8' }).trim();
|
|
3
|
+
|
|
4
|
+
module.exports = {
|
|
5
|
+
content: [
|
|
6
|
+
`${activeAdminPath}/vendor/javascript/flowbite.js`,
|
|
7
|
+
`${activeAdminPath}/plugin.js`,
|
|
8
|
+
`${activeAdminPath}/app/views/**/*.{arb,erb,html,rb}`,
|
|
9
|
+
'./app/admin/**/*.{arb,erb,html,rb}',
|
|
10
|
+
'./app/views/active_admin/**/*.{arb,erb,html,rb}',
|
|
11
|
+
'./app/views/admin/**/*.{arb,erb,html,rb}',
|
|
12
|
+
'./app/javascript/**/*.js'
|
|
13
|
+
],
|
|
14
|
+
darkMode: "class",
|
|
15
|
+
plugins: [
|
|
16
|
+
require(`@activeadmin/activeadmin/plugin`)
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -9,15 +9,13 @@ module ActiveAdmin
|
|
|
9
9
|
|
|
10
10
|
hook_for :users, default: "devise", desc: "Admin user generator to run. Skip with --skip-users"
|
|
11
11
|
class_option :skip_comments, type: :boolean, default: false, desc: "Skip installation of comments"
|
|
12
|
-
class_option :use_webpacker, type: :boolean, default: false, desc: "Use Webpacker assets instead of Sprockets"
|
|
13
12
|
|
|
14
13
|
source_root File.expand_path("templates", __dir__)
|
|
15
14
|
|
|
16
15
|
def copy_initializer
|
|
17
|
-
@underscored_user_name = name.underscore.
|
|
16
|
+
@underscored_user_name = name.underscore.tr("/", "_")
|
|
18
17
|
@use_authentication_method = options[:users].present?
|
|
19
18
|
@skip_comments = options[:skip_comments]
|
|
20
|
-
@use_webpacker = options[:use_webpacker]
|
|
21
19
|
template "active_admin.rb.erb", "config/initializers/active_admin.rb"
|
|
22
20
|
end
|
|
23
21
|
|
|
@@ -39,11 +37,7 @@ module ActiveAdmin
|
|
|
39
37
|
end
|
|
40
38
|
|
|
41
39
|
def create_assets
|
|
42
|
-
|
|
43
|
-
generate "active_admin:webpacker"
|
|
44
|
-
else
|
|
45
|
-
generate "active_admin:assets"
|
|
46
|
-
end
|
|
40
|
+
generate "active_admin:assets"
|
|
47
41
|
end
|
|
48
42
|
|
|
49
43
|
def create_migrations
|