activeadmin 3.1.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 -1
- 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 +23 -2
- 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 +2 -43
- data/lib/active_admin/filters/formtastic_addons.rb +1 -1
- 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/filters/select_input.rb +2 -0
- data/lib/active_admin/inputs.rb +0 -3
- data/lib/active_admin/menu.rb +11 -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 +66 -200
- 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
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
|
@@ -2,22 +2,12 @@ ActiveAdmin.setup do |config|
|
|
2
2
|
# == Site Title
|
3
3
|
#
|
4
4
|
# Set the title that is displayed on the main layout
|
5
|
-
# for each of the active admin pages.
|
5
|
+
# for each of the active admin pages. Can also be customized
|
6
|
+
# by extracting the _site_header partial into your project
|
7
|
+
# to use your own logo, styles, etc.
|
6
8
|
#
|
7
9
|
config.site_title = "<%= Rails.application.class.name.split("::").first.titlecase %>"
|
8
10
|
|
9
|
-
# Set the link url for the title. For example, to take
|
10
|
-
# users to your main site. Defaults to no link.
|
11
|
-
#
|
12
|
-
# config.site_title_link = "/"
|
13
|
-
|
14
|
-
# Set an optional image to be displayed for the header
|
15
|
-
# instead of a string (overrides :site_title)
|
16
|
-
#
|
17
|
-
# Note: Aim for an image that's 21px high so it fits in the header.
|
18
|
-
#
|
19
|
-
# config.site_title_image = "logo.png"
|
20
|
-
|
21
11
|
# == Load Paths
|
22
12
|
#
|
23
13
|
# By default Active Admin files go inside app/admin/.
|
@@ -78,8 +68,10 @@ ActiveAdmin.setup do |config|
|
|
78
68
|
# Active Admin will automatically call an authorization
|
79
69
|
# method in a before filter of all controller actions to
|
80
70
|
# ensure that there is a user with proper rights. You can use
|
81
|
-
# CanCanAdapter or make your own. Please
|
71
|
+
# CanCanAdapter, PunditAdapter, or make your own. Please
|
72
|
+
# refer to the documentation.
|
82
73
|
# config.authorization_adapter = ActiveAdmin::CanCanAdapter
|
74
|
+
# config.authorization_adapter = ActiveAdmin::PunditAdapter
|
83
75
|
|
84
76
|
# In case you prefer Pundit over other solutions you can here pass
|
85
77
|
# the name of default policy class. This policy will be used in every
|
@@ -116,18 +108,12 @@ ActiveAdmin.setup do |config|
|
|
116
108
|
# settings configure the location and method used for the link.
|
117
109
|
#
|
118
110
|
# This setting changes the path where the link points to. If it's
|
119
|
-
# a string, the
|
111
|
+
# a string, the string is used as the path. If it's a Symbol, we
|
120
112
|
# will call the method to return the path.
|
121
113
|
#
|
122
114
|
# Default:
|
123
115
|
config.logout_link_path = :destroy_<%= @underscored_user_name %>_session_path
|
124
116
|
|
125
|
-
# This setting changes the http method used when rendering the
|
126
|
-
# link. For example :get, :delete, :put, etc..
|
127
|
-
#
|
128
|
-
# Default:
|
129
|
-
# config.logout_link_method = :get
|
130
|
-
|
131
117
|
# == Root
|
132
118
|
#
|
133
119
|
# Set the action to call for the root path. You can set different
|
@@ -187,23 +173,6 @@ ActiveAdmin.setup do |config|
|
|
187
173
|
#
|
188
174
|
config.localize_format = :long
|
189
175
|
|
190
|
-
# == Setting a Favicon
|
191
|
-
#
|
192
|
-
# config.favicon = 'favicon.ico'
|
193
|
-
|
194
|
-
# == Meta Tags
|
195
|
-
#
|
196
|
-
# Add additional meta tags to the head element of active admin pages.
|
197
|
-
#
|
198
|
-
# Add tags to all pages logged in users see:
|
199
|
-
# config.meta_tags = { author: 'My Company' }
|
200
|
-
|
201
|
-
# By default, sign up/sign in/recover password pages are excluded
|
202
|
-
# from showing up in search engine results by adding a robots meta
|
203
|
-
# tag. You can reset the hash of meta tags included in logged out
|
204
|
-
# pages:
|
205
|
-
# config.meta_tags_for_logged_out_pages = {}
|
206
|
-
|
207
176
|
# == Removing Breadcrumbs
|
208
177
|
#
|
209
178
|
# Breadcrumbs are enabled by default. You can customize them for individual
|
@@ -218,21 +187,6 @@ ActiveAdmin.setup do |config|
|
|
218
187
|
#
|
219
188
|
# config.create_another = true
|
220
189
|
|
221
|
-
# == Register Stylesheets & Javascripts
|
222
|
-
#
|
223
|
-
# We recommend using the built in Active Admin layout and loading
|
224
|
-
# up your own stylesheets / javascripts to customize the look
|
225
|
-
# and feel.
|
226
|
-
#
|
227
|
-
# To load a stylesheet:
|
228
|
-
# config.register_stylesheet 'my_stylesheet.css'
|
229
|
-
#
|
230
|
-
# You can provide an options hash for more control, which is passed along to stylesheet_link_tag():
|
231
|
-
# config.register_stylesheet 'my_print_stylesheet.css', media: :print
|
232
|
-
#
|
233
|
-
# To load a javascript file:
|
234
|
-
# config.register_javascript 'my_javascript.js'
|
235
|
-
|
236
190
|
# == CSV options
|
237
191
|
#
|
238
192
|
# Set the CSV builder separator
|
@@ -245,20 +199,11 @@ ActiveAdmin.setup do |config|
|
|
245
199
|
#
|
246
200
|
# You can add a navigation menu to be used in your application, or configure a provided menu
|
247
201
|
#
|
248
|
-
# To change the default utility navigation to show a link to your website & a logout btn
|
249
|
-
#
|
250
|
-
# config.namespace :admin do |admin|
|
251
|
-
# admin.build_menu :utility_navigation do |menu|
|
252
|
-
# menu.add label: "My Great Website", url: "http://www.mygreatwebsite.com", html_options: { target: :blank }
|
253
|
-
# admin.add_logout_button_to_menu menu
|
254
|
-
# end
|
255
|
-
# end
|
256
|
-
#
|
257
202
|
# If you wanted to add a static menu item to the default menu provided:
|
258
203
|
#
|
259
204
|
# config.namespace :admin do |admin|
|
260
205
|
# admin.build_menu :default do |menu|
|
261
|
-
# menu.add label: "My Great Website", url: "
|
206
|
+
# menu.add label: "My Great Website", url: "https://mygreatwebsite.example.com", html_options: { target: :blank }
|
262
207
|
# end
|
263
208
|
# end
|
264
209
|
|
@@ -274,11 +219,10 @@ ActiveAdmin.setup do |config|
|
|
274
219
|
# # Disable the links entirely
|
275
220
|
# admin.download_links = false
|
276
221
|
#
|
277
|
-
# # Only show XML & PDF options
|
222
|
+
# # Only show XML & PDF options. You must register the format mime type with `Mime::Type.register`.
|
278
223
|
# admin.download_links = [:xml, :pdf]
|
279
224
|
#
|
280
|
-
# # Enable/disable the links based on block
|
281
|
-
# # (for example, with cancan)
|
225
|
+
# # Enable/disable the links based on block (for example, with cancan)
|
282
226
|
# admin.download_links = proc { can?(:view_download_links) }
|
283
227
|
#
|
284
228
|
# end
|
@@ -322,31 +266,10 @@ ActiveAdmin.setup do |config|
|
|
322
266
|
# ]
|
323
267
|
# config.filter_method_for_large_association = '_start'
|
324
268
|
|
325
|
-
# == Head
|
326
|
-
#
|
327
|
-
# You can add your own content to the site head like analytics. Make sure
|
328
|
-
# you only pass content you trust.
|
329
|
-
#
|
330
|
-
# config.head = ''.html_safe
|
331
|
-
|
332
|
-
# == Footer
|
333
|
-
#
|
334
|
-
# By default, the footer shows the current Active Admin version. You can
|
335
|
-
# override the content of the footer here.
|
336
|
-
#
|
337
|
-
# config.footer = 'my custom footer text'
|
338
|
-
|
339
269
|
# == Sorting
|
340
270
|
#
|
341
271
|
# By default ActiveAdmin::OrderClause is used for sorting logic
|
342
272
|
# You can inherit it with own class and inject it for all resources
|
343
273
|
#
|
344
274
|
# config.order_clause = MyOrderClause
|
345
|
-
|
346
|
-
# == Webpacker
|
347
|
-
#
|
348
|
-
# By default, Active Admin uses Sprocket's asset pipeline.
|
349
|
-
# You can switch to using Webpacker here.
|
350
|
-
#
|
351
|
-
<% unless @use_webpacker %># <% end %>config.use_webpacker = true
|
352
275
|
end
|
@@ -3,31 +3,14 @@ ActiveAdmin.register_page "Dashboard" do
|
|
3
3
|
menu priority: 1, label: proc { I18n.t("active_admin.dashboard") }
|
4
4
|
|
5
5
|
content title: proc { I18n.t("active_admin.dashboard") } do
|
6
|
-
div class: "
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
div class: "px-4 py-16 md:py-32 text-center m-auto max-w-3xl" do
|
7
|
+
h2 "Welcome to ActiveAdmin", class: "text-base font-semibold leading-7 text-indigo-600 dark:text-indigo-500"
|
8
|
+
para "This is the default page", class: "mt-2 text-3xl sm:text-4xl font-bold text-gray-900 dark:text-gray-200"
|
9
|
+
para class: "mt-6 text-xl leading-8 text-gray-700 dark:text-gray-400" do
|
10
|
+
text_node "To update the content, edit the"
|
11
|
+
strong "app/admin/dashboard.rb"
|
12
|
+
text_node "file to get started."
|
10
13
|
end
|
11
14
|
end
|
12
|
-
|
13
|
-
# Here is an example of a simple dashboard with columns and panels.
|
14
|
-
#
|
15
|
-
# columns do
|
16
|
-
# column do
|
17
|
-
# panel "Recent Posts" do
|
18
|
-
# ul do
|
19
|
-
# Post.recent(5).map do |post|
|
20
|
-
# li link_to(post.title, admin_post_path(post))
|
21
|
-
# end
|
22
|
-
# end
|
23
|
-
# end
|
24
|
-
# end
|
25
|
-
|
26
|
-
# column do
|
27
|
-
# panel "Info" do
|
28
|
-
# para "Welcome to ActiveAdmin."
|
29
|
-
# end
|
30
|
-
# end
|
31
|
-
# end
|
32
|
-
end # content
|
15
|
+
end
|
33
16
|
end
|
@@ -1,21 +1,60 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require "active_admin/generators/boilerplate"
|
3
|
-
|
4
2
|
module ActiveAdmin
|
5
3
|
module Generators
|
6
4
|
class ResourceGenerator < Rails::Generators::NamedBase
|
7
5
|
desc "Registers resources with Active Admin"
|
8
6
|
|
9
|
-
class_option :include_boilerplate, type: :boolean, default: false,
|
10
|
-
desc: "Generate boilerplate code for your resource."
|
11
|
-
|
12
7
|
source_root File.expand_path("templates", __dir__)
|
13
8
|
|
14
9
|
def generate_config_file
|
15
|
-
|
16
|
-
|
10
|
+
template "resource.rb.erb", "app/admin/#{file_path.tr('/', '_').pluralize}.rb"
|
11
|
+
end
|
12
|
+
|
13
|
+
protected
|
14
|
+
|
15
|
+
def attributes
|
16
|
+
@attributes ||= class_name.constantize.new.attributes.keys
|
17
|
+
end
|
18
|
+
|
19
|
+
def assignable_attributes
|
20
|
+
@assignable_attributes ||= attributes - %w(id created_at updated_at)
|
21
|
+
end
|
22
|
+
|
23
|
+
def permit_params
|
24
|
+
assignable_attributes.map { |a| a.to_sym.inspect }.join(", ")
|
25
|
+
end
|
26
|
+
|
27
|
+
def rows
|
28
|
+
attributes.map { |a| row(a) }.join("\n ")
|
29
|
+
end
|
30
|
+
|
31
|
+
def row(name)
|
32
|
+
"row :#{name.gsub(/_id$/, '')}"
|
33
|
+
end
|
34
|
+
|
35
|
+
def columns
|
36
|
+
attributes.map { |a| column(a) }.join("\n ")
|
37
|
+
end
|
38
|
+
|
39
|
+
def column(name)
|
40
|
+
"column :#{name.gsub(/_id$/, '')}"
|
41
|
+
end
|
42
|
+
|
43
|
+
def filters
|
44
|
+
attributes.map { |a| filter(a) }.join("\n ")
|
45
|
+
end
|
46
|
+
|
47
|
+
def filter(name)
|
48
|
+
"filter :#{name.gsub(/_id$/, '')}"
|
17
49
|
end
|
18
50
|
|
51
|
+
def form_inputs
|
52
|
+
assignable_attributes.map { |a| form_input(a) }.join("\n ")
|
53
|
+
end
|
54
|
+
|
55
|
+
def form_input(name)
|
56
|
+
"f.input :#{name.gsub(/_id$/, '')}"
|
57
|
+
end
|
19
58
|
end
|
20
59
|
end
|
21
60
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
ActiveAdmin.register <%= class_name %> do
|
2
|
+
# Specify parameters which should be permitted for assignment
|
3
|
+
permit_params <%= permit_params %>
|
4
|
+
|
5
|
+
# or consider:
|
6
|
+
#
|
7
|
+
# permit_params do
|
8
|
+
# permitted = [<%= permit_params %>]
|
9
|
+
# permitted << :other if params[:action] == 'create' && current_user.admin?
|
10
|
+
# permitted
|
11
|
+
# end
|
12
|
+
|
13
|
+
# For security, limit the actions that should be available
|
14
|
+
actions :all, except: []
|
15
|
+
|
16
|
+
# Add or remove filters to toggle their visibility
|
17
|
+
<%= filters %>
|
18
|
+
|
19
|
+
# Add or remove columns to toggle their visiblity in the index action
|
20
|
+
index do
|
21
|
+
selectable_column
|
22
|
+
id_column
|
23
|
+
<%= columns %>
|
24
|
+
actions
|
25
|
+
end
|
26
|
+
|
27
|
+
# Add or remove rows to toggle their visiblity in the show action
|
28
|
+
show do
|
29
|
+
attributes_table_for(resource) do
|
30
|
+
<%= rows %>
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Add or remove fields to toggle their visibility in the form
|
35
|
+
form do |f|
|
36
|
+
f.semantic_errors(*f.object.errors.attribute_names)
|
37
|
+
f.inputs do
|
38
|
+
<%= form_inputs %>
|
39
|
+
end
|
40
|
+
f.actions
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module ActiveAdmin
|
3
|
+
module Generators
|
4
|
+
class ViewsGenerator < Rails::Generators::Base
|
5
|
+
source_root File.expand_path("../../../", __dir__)
|
6
|
+
|
7
|
+
def copy_views
|
8
|
+
directory "app/views/layouts"
|
9
|
+
directory "app/views/active_admin", recursive: false
|
10
|
+
directory "app/views/active_admin/devise"
|
11
|
+
directory "app/views/active_admin/kaminari"
|
12
|
+
copy_file "app/views/active_admin/shared/_resource_comments.html.erb"
|
13
|
+
copy_file "app/views/active_admin/resource/_index_blank_slate.html.erb"
|
14
|
+
copy_file "app/views/active_admin/resource/_index_empty_results.html.erb"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|