hyper-max-sys 0.0.1
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 +7 -0
- data/hyper-max-sys.gemspec +12 -0
- data/rails_admin-3.3.0/Gemfile +56 -0
- data/rails_admin-3.3.0/LICENSE.md +20 -0
- data/rails_admin-3.3.0/README.md +105 -0
- data/rails_admin-3.3.0/Rakefile +37 -0
- data/rails_admin-3.3.0/app/assets/javascripts/rails_admin/application.js.erb +30 -0
- data/rails_admin-3.3.0/app/assets/javascripts/rails_admin/custom/ui.js +1 -0
- data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/application.scss.erb +35 -0
- data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/custom/mixins.scss +11 -0
- data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/custom/theming.scss +13 -0
- data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/custom/variables.scss +15 -0
- data/rails_admin-3.3.0/app/controllers/rails_admin/application_controller.rb +84 -0
- data/rails_admin-3.3.0/app/controllers/rails_admin/main_controller.rb +153 -0
- data/rails_admin-3.3.0/app/helpers/rails_admin/application_helper.rb +264 -0
- data/rails_admin-3.3.0/app/helpers/rails_admin/form_builder.rb +157 -0
- data/rails_admin-3.3.0/app/helpers/rails_admin/main_helper.rb +61 -0
- data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +5 -0
- data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +9 -0
- data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +9 -0
- data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +15 -0
- data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +9 -0
- data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +9 -0
- data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +8 -0
- data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +9 -0
- data/rails_admin-3.3.0/app/views/layouts/rails_admin/_head.html.erb +32 -0
- data/rails_admin-3.3.0/app/views/layouts/rails_admin/_navigation.html.erb +17 -0
- data/rails_admin-3.3.0/app/views/layouts/rails_admin/_secondary_navigation.html.erb +26 -0
- data/rails_admin-3.3.0/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +5 -0
- data/rails_admin-3.3.0/app/views/layouts/rails_admin/application.html.erb +27 -0
- data/rails_admin-3.3.0/app/views/layouts/rails_admin/content.html.erb +22 -0
- data/rails_admin-3.3.0/app/views/layouts/rails_admin/modal.js.erb +7 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_dashboard_history.html.erb +45 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_delete_notice.html.erb +35 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_action_text.html.erb +8 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_boolean.html.erb +14 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_ck_editor.html.erb +10 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_code_mirror.html.erb +9 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_datetime.html.erb +10 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_enumeration.html.erb +25 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_field.html.erb +1 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_file_upload.html.erb +17 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +19 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_filtering_select.html.erb +21 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_froala.html.erb +8 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +20 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_nested_many.html.erb +21 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_nested_one.html.erb +21 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_polymorphic_association.html.erb +23 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_simple_mde.html.erb +8 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_text.html.erb +1 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_form_wysihtml5.html.erb +8 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/_submit_buttons.html.erb +25 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/bulk_delete.html.erb +19 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/dashboard.html.erb +64 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/delete.html.erb +21 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/edit.html.erb +3 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/export.html.erb +149 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/history.html.erb +80 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/index.html.erb +184 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/new.html.erb +3 -0
- data/rails_admin-3.3.0/app/views/rails_admin/main/show.html.erb +30 -0
- data/rails_admin-3.3.0/config/initializers/active_record_extensions.rb +23 -0
- data/rails_admin-3.3.0/config/initializers/mongoid_extensions.rb +6 -0
- data/rails_admin-3.3.0/config/locales/rails_admin.en.yml +158 -0
- data/rails_admin-3.3.0/config/routes.rb +14 -0
- data/rails_admin-3.3.0/lib/generators/rails_admin/importmap_formatter.rb +28 -0
- data/rails_admin-3.3.0/lib/generators/rails_admin/install_generator.rb +142 -0
- data/rails_admin-3.3.0/lib/generators/rails_admin/templates/initializer.erb +42 -0
- data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.js +1 -0
- data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.scss.erb +1 -0
- data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.vite.js +2 -0
- data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.webpacker.js +2 -0
- data/rails_admin-3.3.0/lib/generators/rails_admin/utils.rb +21 -0
- data/rails_admin-3.3.0/lib/rails_admin/abstract_model.rb +275 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record/association.rb +130 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record/object_extension.rb +13 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record/property.rb +58 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record.rb +367 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record.rb.bak +348 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/association.rb +161 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/bson.rb +31 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/extension.rb +49 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/object_extension.rb +29 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/property.rb +101 -0
- data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid.rb +312 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/base.rb +162 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/bulk_delete.rb +67 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/dashboard.rb +62 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/delete.rb +58 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/edit.rb +56 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/export.rb +41 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/history_index.rb +40 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/history_show.rb +40 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/index.rb +98 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/new.rb +69 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/show.rb +36 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions/show_in_app.rb +37 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/actions.rb +122 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/configurable.rb +107 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/const_load_suppressor.rb +78 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/association.rb +168 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/base.rb +391 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/collection_association.rb +90 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/action_text.rb +14 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/active_storage.rb +34 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/association.rb +32 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/carrierwave.rb +30 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/devise.rb +28 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/dragonfly.rb +28 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/enum.rb +23 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/paperclip.rb +29 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/password.rb +19 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/shrine.rb +29 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/group.rb +77 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/singular_association.rb +59 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/action_text.rb +36 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/active_record_enum.rb +62 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/active_storage.rb +70 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/all.rb +43 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/belongs_to_association.rb +48 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/boolean.rb +70 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/bson_object_id.rb +42 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/carrierwave.rb +34 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/citext.rb +15 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/ck_editor.rb +40 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/code_mirror.rb +48 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/color.rb +43 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/date.rb +41 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/datetime.rb +96 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/decimal.rb +23 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/dragonfly.rb +44 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/enum.rb +52 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/file_upload.rb +87 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/float.rb +23 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/froala.rb +37 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +16 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/has_many_association.rb +16 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/has_one_association.rb +35 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/hidden.rb +31 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/inet.rb +15 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/integer.rb +20 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/json.rb +37 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/multiple_active_storage.rb +82 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +59 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/multiple_file_upload.rb +134 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/numeric.rb +24 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/paperclip.rb +30 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/password.rb +45 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/polymorphic_association.rb +118 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/serialized.rb +28 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/shrine.rb +56 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/simple_mde.rb +38 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/string.rb +50 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/string_like.rb +25 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/text.rb +28 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/time.rb +36 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/timestamp.rb +16 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/uuid.rb +15 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/wysihtml5.rb +43 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields/types.rb +29 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/fields.rb +92 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/groupable.rb +20 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/has_description.rb +14 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/has_fields.rb +144 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/has_groups.rb +27 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/hideable.rb +30 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/inspectable.rb +39 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/lazy_model.rb +74 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/model.rb +120 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/proxyable/proxy.rb +39 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/proxyable.rb +26 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/sections/base.rb +36 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/sections/create.rb +13 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/sections/edit.rb +13 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/sections/export.rb +13 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/sections/list.rb +63 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/sections/modal.rb +12 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/sections/nested.rb +12 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/sections/show.rb +12 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/sections/update.rb +12 -0
- data/rails_admin-3.3.0/lib/rails_admin/config/sections.rb +39 -0
- data/rails_admin-3.3.0/lib/rails_admin/config.rb +403 -0
- data/rails_admin-3.3.0/lib/rails_admin/engine.rb +84 -0
- data/rails_admin-3.3.0/lib/rails_admin/extension.rb +35 -0
- data/rails_admin-3.3.0/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +90 -0
- data/rails_admin-3.3.0/lib/rails_admin/extensions/cancancan.rb +5 -0
- data/rails_admin-3.3.0/lib/rails_admin/extensions/controller_extension.rb +8 -0
- data/rails_admin-3.3.0/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +187 -0
- data/rails_admin-3.3.0/lib/rails_admin/extensions/paper_trail.rb +5 -0
- data/rails_admin-3.3.0/lib/rails_admin/extensions/pundit/authorization_adapter.rb +72 -0
- data/rails_admin-3.3.0/lib/rails_admin/extensions/pundit.rb +5 -0
- data/rails_admin-3.3.0/lib/rails_admin/extensions/url_for_extension.rb +15 -0
- data/rails_admin-3.3.0/lib/rails_admin/support/composite_keys_serializer.rb +15 -0
- data/rails_admin-3.3.0/lib/rails_admin/support/csv_converter.rb +107 -0
- data/rails_admin-3.3.0/lib/rails_admin/support/datetime.rb +66 -0
- data/rails_admin-3.3.0/lib/rails_admin/support/es_module_processor.rb +23 -0
- data/rails_admin-3.3.0/lib/rails_admin/support/hash_helper.rb +31 -0
- data/rails_admin-3.3.0/lib/rails_admin/version.rb +54 -0
- data/rails_admin-3.3.0/lib/rails_admin.rb +62 -0
- data/rails_admin-3.3.0/lib/tasks/rails_admin.rake +47 -0
- data/rails_admin-3.3.0/package.json +30 -0
- data/rails_admin-3.3.0/src/rails_admin/abstract-select.js +30 -0
- data/rails_admin-3.3.0/src/rails_admin/base.js +32 -0
- data/rails_admin-3.3.0/src/rails_admin/filter-box.js +360 -0
- data/rails_admin-3.3.0/src/rails_admin/filtering-multiselect.js +387 -0
- data/rails_admin-3.3.0/src/rails_admin/filtering-select.js +306 -0
- data/rails_admin-3.3.0/src/rails_admin/i18n.js +18 -0
- data/rails_admin-3.3.0/src/rails_admin/jquery.js +3 -0
- data/rails_admin-3.3.0/src/rails_admin/nested-form-hooks.js +110 -0
- data/rails_admin-3.3.0/src/rails_admin/remote-form.js +193 -0
- data/rails_admin-3.3.0/src/rails_admin/sidescroll.js +20 -0
- data/rails_admin-3.3.0/src/rails_admin/styles/base/README.txt +2 -0
- data/rails_admin-3.3.0/src/rails_admin/styles/base/mixins.scss +1 -0
- data/rails_admin-3.3.0/src/rails_admin/styles/base/theming.scss +342 -0
- data/rails_admin-3.3.0/src/rails_admin/styles/base/variables.scss +3 -0
- data/rails_admin-3.3.0/src/rails_admin/styles/base.scss +27 -0
- data/rails_admin-3.3.0/src/rails_admin/styles/filtering-multiselect.scss +53 -0
- data/rails_admin-3.3.0/src/rails_admin/styles/filtering-select.scss +70 -0
- data/rails_admin-3.3.0/src/rails_admin/styles/widgets.scss +26 -0
- data/rails_admin-3.3.0/src/rails_admin/ui.js +176 -0
- data/rails_admin-3.3.0/src/rails_admin/vendor/jquery_nested_form.js +122 -0
- data/rails_admin-3.3.0/src/rails_admin/widgets.js +507 -0
- data/rails_admin-3.3.0/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
- data/rails_admin-3.3.0/vendor/assets/fonts/rails_admin/fa-solid-900.woff2 +0 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +11246 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery3.js +10881 -0
- data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +111 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +229 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +40 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +33 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +174 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +43 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +335 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +64 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +155 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +115 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +104 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +630 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1641 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +53 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +78 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +133 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +9 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +144 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +47 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +151 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +16 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +24 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +31 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +6 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-truncate.scss +8 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
- data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/font-awesome.scss +6351 -0
- metadata +368 -0
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails_admin/config/lazy_model'
|
|
4
|
+
require 'rails_admin/config/sections/list'
|
|
5
|
+
require 'rails_admin/support/composite_keys_serializer'
|
|
6
|
+
require 'active_support/core_ext/module/attribute_accessors'
|
|
7
|
+
|
|
8
|
+
module RailsAdmin
|
|
9
|
+
module Config
|
|
10
|
+
# RailsAdmin is setup to try and authenticate with warden
|
|
11
|
+
# If warden is found, then it will try to authenticate
|
|
12
|
+
#
|
|
13
|
+
# This is valid for custom warden setups, and also devise
|
|
14
|
+
# If you're using the admin setup for devise, you should set RailsAdmin to use the admin
|
|
15
|
+
#
|
|
16
|
+
# @see RailsAdmin::Config.authenticate_with
|
|
17
|
+
# @see RailsAdmin::Config.authorize_with
|
|
18
|
+
DEFAULT_AUTHENTICATION = proc {}
|
|
19
|
+
|
|
20
|
+
DEFAULT_AUTHORIZE = proc {}
|
|
21
|
+
|
|
22
|
+
DEFAULT_AUDIT = proc {}
|
|
23
|
+
|
|
24
|
+
DEFAULT_CURRENT_USER = proc {}
|
|
25
|
+
|
|
26
|
+
class << self
|
|
27
|
+
# Application title, can be an array of two elements
|
|
28
|
+
attr_accessor :main_app_name
|
|
29
|
+
|
|
30
|
+
# Configuration option to specify which models you want to exclude.
|
|
31
|
+
attr_accessor :excluded_models
|
|
32
|
+
|
|
33
|
+
# Configuration option to specify a allowlist of models you want to RailsAdmin to work with.
|
|
34
|
+
# The excluded_models list applies against the allowlist as well and further reduces the models
|
|
35
|
+
# RailsAdmin will use.
|
|
36
|
+
# If included_models is left empty ([]), then RailsAdmin will automatically use all the models
|
|
37
|
+
# in your application (less any excluded_models you may have specified).
|
|
38
|
+
attr_accessor :included_models
|
|
39
|
+
|
|
40
|
+
# Fields to be hidden in show, create and update views
|
|
41
|
+
attr_reader :default_hidden_fields
|
|
42
|
+
|
|
43
|
+
# Default items per page value used if a model level option has not
|
|
44
|
+
# been configured
|
|
45
|
+
attr_accessor :default_items_per_page
|
|
46
|
+
|
|
47
|
+
# Default association limit
|
|
48
|
+
attr_accessor :default_associated_collection_limit
|
|
49
|
+
|
|
50
|
+
attr_reader :default_search_operator
|
|
51
|
+
|
|
52
|
+
# Configuration option to specify which method names will be searched for
|
|
53
|
+
# to be used as a label for object records. This defaults to [:name, :title]
|
|
54
|
+
attr_accessor :label_methods
|
|
55
|
+
|
|
56
|
+
# hide blank fields in show view if true
|
|
57
|
+
attr_accessor :compact_show_view
|
|
58
|
+
|
|
59
|
+
# Tell browsers whether to use the native HTML5 validations (novalidate form option).
|
|
60
|
+
attr_accessor :browser_validations
|
|
61
|
+
|
|
62
|
+
# set parent controller
|
|
63
|
+
attr_reader :parent_controller
|
|
64
|
+
|
|
65
|
+
# set settings for `protect_from_forgery` method
|
|
66
|
+
# By default, it raises exception upon invalid CSRF tokens
|
|
67
|
+
attr_accessor :forgery_protection_settings
|
|
68
|
+
|
|
69
|
+
# Stores model configuration objects in a hash identified by model's class
|
|
70
|
+
# name.
|
|
71
|
+
#
|
|
72
|
+
# @see RailsAdmin.config
|
|
73
|
+
attr_reader :registry
|
|
74
|
+
|
|
75
|
+
# Bootstrap CSS classes used for Navigation bar
|
|
76
|
+
attr_accessor :navbar_css_classes
|
|
77
|
+
|
|
78
|
+
# show Gravatar in Navigation bar
|
|
79
|
+
attr_accessor :show_gravatar
|
|
80
|
+
|
|
81
|
+
# accepts a hash of static links to be shown below the main navigation
|
|
82
|
+
attr_accessor :navigation_static_links
|
|
83
|
+
attr_accessor :navigation_static_label
|
|
84
|
+
|
|
85
|
+
# Set where RailsAdmin fetches JS/CSS from, defaults to :sprockets
|
|
86
|
+
attr_writer :asset_source
|
|
87
|
+
|
|
88
|
+
# For customization of composite keys representation
|
|
89
|
+
attr_accessor :composite_keys_serializer
|
|
90
|
+
|
|
91
|
+
# Setup authentication to be run as a before filter
|
|
92
|
+
# This is run inside the controller instance so you can setup any authentication you need to
|
|
93
|
+
#
|
|
94
|
+
# By default, the authentication will run via warden if available
|
|
95
|
+
# and will run the default.
|
|
96
|
+
#
|
|
97
|
+
# If you use devise, this will authenticate the same as _authenticate_user!_
|
|
98
|
+
#
|
|
99
|
+
# @example Devise admin
|
|
100
|
+
# RailsAdmin.config do |config|
|
|
101
|
+
# config.authenticate_with do
|
|
102
|
+
# authenticate_admin!
|
|
103
|
+
# end
|
|
104
|
+
# end
|
|
105
|
+
#
|
|
106
|
+
# @example Custom Warden
|
|
107
|
+
# RailsAdmin.config do |config|
|
|
108
|
+
# config.authenticate_with do
|
|
109
|
+
# warden.authenticate! scope: :paranoid
|
|
110
|
+
# end
|
|
111
|
+
# end
|
|
112
|
+
#
|
|
113
|
+
# @see RailsAdmin::Config::DEFAULT_AUTHENTICATION
|
|
114
|
+
def authenticate_with(&blk)
|
|
115
|
+
@authenticate = blk if blk
|
|
116
|
+
@authenticate || DEFAULT_AUTHENTICATION
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Setup auditing/versioning provider that observe objects lifecycle
|
|
120
|
+
def audit_with(*args, &block)
|
|
121
|
+
extension = args.shift
|
|
122
|
+
if extension
|
|
123
|
+
klass = RailsAdmin::AUDITING_ADAPTERS[extension]
|
|
124
|
+
klass.setup if klass.respond_to? :setup
|
|
125
|
+
@audit = proc do
|
|
126
|
+
@auditing_adapter = klass.new(*([self] + args).compact, &block)
|
|
127
|
+
end
|
|
128
|
+
elsif block
|
|
129
|
+
@audit = block
|
|
130
|
+
end
|
|
131
|
+
@audit || DEFAULT_AUDIT
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# Setup authorization to be run as a before filter
|
|
135
|
+
# This is run inside the controller instance so you can setup any authorization you need to.
|
|
136
|
+
#
|
|
137
|
+
# By default, there is no authorization.
|
|
138
|
+
#
|
|
139
|
+
# @example Custom
|
|
140
|
+
# RailsAdmin.config do |config|
|
|
141
|
+
# config.authorize_with do
|
|
142
|
+
# redirect_to root_path unless warden.user.is_admin?
|
|
143
|
+
# end
|
|
144
|
+
# end
|
|
145
|
+
#
|
|
146
|
+
# To use an authorization adapter, pass the name of the adapter. For example,
|
|
147
|
+
# to use with CanCanCan[https://github.com/CanCanCommunity/cancancan/], pass it like this.
|
|
148
|
+
#
|
|
149
|
+
# @example CanCanCan
|
|
150
|
+
# RailsAdmin.config do |config|
|
|
151
|
+
# config.authorize_with :cancancan
|
|
152
|
+
# end
|
|
153
|
+
#
|
|
154
|
+
# See the wiki[https://github.com/railsadminteam/rails_admin/wiki] for more on authorization.
|
|
155
|
+
#
|
|
156
|
+
# @see RailsAdmin::Config::DEFAULT_AUTHORIZE
|
|
157
|
+
def authorize_with(*args, &block)
|
|
158
|
+
extension = args.shift
|
|
159
|
+
if extension
|
|
160
|
+
klass = RailsAdmin::AUTHORIZATION_ADAPTERS[extension]
|
|
161
|
+
klass.setup if klass.respond_to? :setup
|
|
162
|
+
@authorize = proc do
|
|
163
|
+
@authorization_adapter = klass.new(*([self] + args).compact, &block)
|
|
164
|
+
end
|
|
165
|
+
elsif block
|
|
166
|
+
@authorize = block
|
|
167
|
+
end
|
|
168
|
+
@authorize || DEFAULT_AUTHORIZE
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
# Setup configuration using an extension-provided ConfigurationAdapter
|
|
172
|
+
#
|
|
173
|
+
# @example Custom configuration for role-based setup.
|
|
174
|
+
# RailsAdmin.config do |config|
|
|
175
|
+
# config.configure_with(:custom) do |config|
|
|
176
|
+
# config.models = ['User', 'Comment']
|
|
177
|
+
# config.roles = {
|
|
178
|
+
# 'Admin' => :all,
|
|
179
|
+
# 'User' => ['User']
|
|
180
|
+
# }
|
|
181
|
+
# end
|
|
182
|
+
# end
|
|
183
|
+
def configure_with(extension)
|
|
184
|
+
configuration = RailsAdmin::CONFIGURATION_ADAPTERS[extension].new
|
|
185
|
+
yield(configuration) if block_given?
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
# Setup a different method to determine the current user or admin logged in.
|
|
189
|
+
# This is run inside the controller instance and made available as a helper.
|
|
190
|
+
#
|
|
191
|
+
# By default, _request.env["warden"].user_ or _current_user_ will be used.
|
|
192
|
+
#
|
|
193
|
+
# @example Custom
|
|
194
|
+
# RailsAdmin.config do |config|
|
|
195
|
+
# config.current_user_method do
|
|
196
|
+
# current_admin
|
|
197
|
+
# end
|
|
198
|
+
# end
|
|
199
|
+
#
|
|
200
|
+
# @see RailsAdmin::Config::DEFAULT_CURRENT_USER
|
|
201
|
+
def current_user_method(&block)
|
|
202
|
+
@current_user = block if block
|
|
203
|
+
@current_user || DEFAULT_CURRENT_USER
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def default_search_operator=(operator)
|
|
207
|
+
if %w[default like not_like starts_with ends_with is =].include? operator
|
|
208
|
+
@default_search_operator = operator
|
|
209
|
+
else
|
|
210
|
+
raise ArgumentError.new("Search operator '#{operator}' not supported")
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
# pool of all found model names from the whole application
|
|
215
|
+
def models_pool
|
|
216
|
+
(viable_models - excluded_models.collect(&:to_s)).uniq.sort
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
# Loads a model configuration instance from the registry or registers
|
|
220
|
+
# a new one if one is yet to be added.
|
|
221
|
+
#
|
|
222
|
+
# First argument can be an instance of requested model, its class object,
|
|
223
|
+
# its class name as a string or symbol or a RailsAdmin::AbstractModel
|
|
224
|
+
# instance.
|
|
225
|
+
#
|
|
226
|
+
# If a block is given it is evaluated in the context of configuration instance.
|
|
227
|
+
#
|
|
228
|
+
# Returns given model's configuration
|
|
229
|
+
#
|
|
230
|
+
# @see RailsAdmin::Config.registry
|
|
231
|
+
def model(entity, &block)
|
|
232
|
+
key =
|
|
233
|
+
case entity
|
|
234
|
+
when RailsAdmin::AbstractModel
|
|
235
|
+
entity.model.try(:name).try :to_sym
|
|
236
|
+
when Class, ConstLoadSuppressor::ConstProxy
|
|
237
|
+
entity.name.to_sym
|
|
238
|
+
when String, Symbol
|
|
239
|
+
entity.to_sym
|
|
240
|
+
else
|
|
241
|
+
entity.class.name.to_sym
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
@registry[key] ||= RailsAdmin::Config::LazyModel.new(key.to_s)
|
|
245
|
+
@registry[key].add_deferred_block(&block) if block
|
|
246
|
+
@registry[key]
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
def asset_source
|
|
250
|
+
@asset_source ||=
|
|
251
|
+
begin
|
|
252
|
+
detected = defined?(Sprockets) ? :sprockets : :invalid
|
|
253
|
+
unless ARGV.join(' ').include? 'rails_admin:install'
|
|
254
|
+
warn <<~MSG
|
|
255
|
+
[Warning] After upgrading RailsAdmin to 3.x you haven't set asset_source yet, using :#{detected} as the default.
|
|
256
|
+
To suppress this message, run 'rails rails_admin:install' to setup the asset delivery method suitable to you.
|
|
257
|
+
MSG
|
|
258
|
+
end
|
|
259
|
+
detected
|
|
260
|
+
end
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
def default_hidden_fields=(fields)
|
|
264
|
+
if fields.is_a?(Array)
|
|
265
|
+
@default_hidden_fields = {}
|
|
266
|
+
@default_hidden_fields[:edit] = fields
|
|
267
|
+
@default_hidden_fields[:show] = fields
|
|
268
|
+
else
|
|
269
|
+
@default_hidden_fields = fields
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
def parent_controller=(name)
|
|
274
|
+
@parent_controller = name
|
|
275
|
+
|
|
276
|
+
if defined?(RailsAdmin::ApplicationController) || defined?(RailsAdmin::MainController)
|
|
277
|
+
RailsAdmin::Config::ConstLoadSuppressor.allowing do
|
|
278
|
+
RailsAdmin.send(:remove_const, :ApplicationController)
|
|
279
|
+
RailsAdmin.send(:remove_const, :MainController)
|
|
280
|
+
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/application_controller.rb')
|
|
281
|
+
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/main_controller.rb')
|
|
282
|
+
end
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
def total_columns_width=(_)
|
|
287
|
+
ActiveSupport::Deprecation.warn('The total_columns_width configuration option is deprecated and has no effect.')
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
def sidescroll=(_)
|
|
291
|
+
ActiveSupport::Deprecation.warn('The sidescroll configuration option was removed, it is always enabled now.')
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
# Setup actions to be used.
|
|
295
|
+
def actions(&block)
|
|
296
|
+
return unless block
|
|
297
|
+
|
|
298
|
+
RailsAdmin::Config::Actions.reset
|
|
299
|
+
RailsAdmin::Config::Actions.instance_eval(&block)
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
# Returns all model configurations
|
|
303
|
+
#
|
|
304
|
+
# @see RailsAdmin::Config.registry
|
|
305
|
+
def models
|
|
306
|
+
RailsAdmin::AbstractModel.all.collect { |m| model(m) }
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
# Reset all configurations to defaults.
|
|
310
|
+
#
|
|
311
|
+
# @see RailsAdmin::Config.registry
|
|
312
|
+
def reset
|
|
313
|
+
@compact_show_view = true
|
|
314
|
+
@browser_validations = true
|
|
315
|
+
@authenticate = nil
|
|
316
|
+
@authorize = nil
|
|
317
|
+
@audit = nil
|
|
318
|
+
@current_user = nil
|
|
319
|
+
@default_hidden_fields = {}
|
|
320
|
+
@default_hidden_fields[:base] = [:_type]
|
|
321
|
+
@default_hidden_fields[:edit] = %i[id _id created_at created_on deleted_at updated_at updated_on deleted_on]
|
|
322
|
+
@default_hidden_fields[:show] = %i[id _id created_at created_on deleted_at updated_at updated_on deleted_on]
|
|
323
|
+
@default_items_per_page = 20
|
|
324
|
+
@default_associated_collection_limit = 100
|
|
325
|
+
@default_search_operator = 'default'
|
|
326
|
+
@excluded_models = []
|
|
327
|
+
@included_models = []
|
|
328
|
+
@label_methods = %i[name title]
|
|
329
|
+
@main_app_name = proc { [Rails.application.engine_name.titleize.chomp(' Application'), 'Admin'] }
|
|
330
|
+
@registry = {}
|
|
331
|
+
@navbar_css_classes = %w[navbar-dark bg-primary border-bottom]
|
|
332
|
+
@show_gravatar = true
|
|
333
|
+
@navigation_static_links = {}
|
|
334
|
+
@navigation_static_label = nil
|
|
335
|
+
@asset_source = nil
|
|
336
|
+
@composite_keys_serializer = RailsAdmin::Support::CompositeKeysSerializer
|
|
337
|
+
@parent_controller = '::ActionController::Base'
|
|
338
|
+
@forgery_protection_settings = {with: :exception}
|
|
339
|
+
RailsAdmin::Config::Actions.reset
|
|
340
|
+
RailsAdmin::AbstractModel.reset
|
|
341
|
+
end
|
|
342
|
+
|
|
343
|
+
# Reset a provided model's configuration.
|
|
344
|
+
#
|
|
345
|
+
# @see RailsAdmin::Config.registry
|
|
346
|
+
def reset_model(model)
|
|
347
|
+
key = model.is_a?(Class) ? model.name.to_sym : model.to_sym
|
|
348
|
+
@registry.delete(key)
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
# Perform reset, then load RailsAdmin initializer again
|
|
352
|
+
def reload!
|
|
353
|
+
reset
|
|
354
|
+
load RailsAdmin::Engine.config.initializer_path
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
# Get all models that are configured as visible sorted by their weight and label.
|
|
358
|
+
#
|
|
359
|
+
# @see RailsAdmin::Config::Hideable
|
|
360
|
+
def visible_models(bindings)
|
|
361
|
+
visible_models_with_bindings(bindings).sort do |a, b|
|
|
362
|
+
if (weight_order = a.weight <=> b.weight) == 0
|
|
363
|
+
a.label.casecmp(b.label)
|
|
364
|
+
else
|
|
365
|
+
weight_order
|
|
366
|
+
end
|
|
367
|
+
end
|
|
368
|
+
end
|
|
369
|
+
|
|
370
|
+
private
|
|
371
|
+
|
|
372
|
+
def viable_models
|
|
373
|
+
included_models.collect(&:to_s).presence || begin
|
|
374
|
+
@@system_models ||= # memoization for tests
|
|
375
|
+
([Rails.application] + Rails::Engine.subclasses.collect(&:instance)).flat_map do |app|
|
|
376
|
+
(app.paths['app/models'].to_a + app.config.eager_load_paths).collect do |load_path|
|
|
377
|
+
Dir.glob(app.root.join(load_path)).collect do |load_dir|
|
|
378
|
+
path_prefix = "#{app.root.join(load_dir)}/"
|
|
379
|
+
Dir.glob("#{load_dir}/**/*.rb").collect do |filename|
|
|
380
|
+
# app/models/module/class.rb => module/class.rb => module/class => Module::Class
|
|
381
|
+
filename.delete_prefix(path_prefix).chomp('.rb').camelize
|
|
382
|
+
end
|
|
383
|
+
end
|
|
384
|
+
end
|
|
385
|
+
end.flatten.reject { |m| m.starts_with?('Concerns::') } # rubocop:disable Style/MultilineBlockChain
|
|
386
|
+
|
|
387
|
+
@@system_models + @registry.keys.collect(&:to_s)
|
|
388
|
+
end
|
|
389
|
+
end
|
|
390
|
+
|
|
391
|
+
def visible_models_with_bindings(bindings)
|
|
392
|
+
models.collect { |m| m.with(bindings) }.select do |m|
|
|
393
|
+
m.visible? &&
|
|
394
|
+
RailsAdmin::Config::Actions.find(:index, bindings.merge(abstract_model: m.abstract_model)).try(:authorized?) &&
|
|
395
|
+
(!m.abstract_model.embedded? || m.abstract_model.cyclic?)
|
|
396
|
+
end
|
|
397
|
+
end
|
|
398
|
+
end
|
|
399
|
+
|
|
400
|
+
# Set default values for configuration options on load
|
|
401
|
+
reset
|
|
402
|
+
end
|
|
403
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'kaminari'
|
|
4
|
+
require 'nested_form'
|
|
5
|
+
require 'rails'
|
|
6
|
+
require 'rails_admin'
|
|
7
|
+
require 'rails_admin/extensions/url_for_extension'
|
|
8
|
+
require 'rails_admin/version'
|
|
9
|
+
require 'turbo-rails'
|
|
10
|
+
|
|
11
|
+
module RailsAdmin
|
|
12
|
+
class Engine < Rails::Engine
|
|
13
|
+
isolate_namespace RailsAdmin
|
|
14
|
+
|
|
15
|
+
attr_accessor :importmap
|
|
16
|
+
|
|
17
|
+
config.action_dispatch.rescue_responses['RailsAdmin::ActionNotAllowed'] = :forbidden
|
|
18
|
+
|
|
19
|
+
initializer 'RailsAdmin load UrlForExtension' do
|
|
20
|
+
RailsAdmin::Engine.routes.singleton_class.prepend(RailsAdmin::Extensions::UrlForExtension)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
initializer 'RailsAdmin reload config in development' do |app|
|
|
24
|
+
config.initializer_path = app.root.join('config/initializers/rails_admin.rb')
|
|
25
|
+
|
|
26
|
+
unless Rails.application.config.cache_classes
|
|
27
|
+
ActiveSupport::Reloader.before_class_unload do
|
|
28
|
+
RailsAdmin::Config.reload!
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
reloader = app.config.file_watcher.new([config.initializer_path], []) do
|
|
32
|
+
# Do nothing, ActiveSupport::Reloader will trigger class_unload! anyway
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
app.reloaders << reloader
|
|
36
|
+
app.reloader.to_run do
|
|
37
|
+
reloader.execute_if_updated { require_unload_lock! }
|
|
38
|
+
end
|
|
39
|
+
reloader.execute
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
initializer 'RailsAdmin precompile hook', group: :all do |app|
|
|
44
|
+
case RailsAdmin.config.asset_source
|
|
45
|
+
when :sprockets
|
|
46
|
+
app.config.assets.precompile += %w[
|
|
47
|
+
rails_admin/application.js
|
|
48
|
+
rails_admin/application.css
|
|
49
|
+
]
|
|
50
|
+
app.config.assets.paths << RailsAdmin::Engine.root.join('src')
|
|
51
|
+
require 'rails_admin/support/es_module_processor'
|
|
52
|
+
Sprockets.register_bundle_processor 'application/javascript', RailsAdmin::Support::ESModuleProcessor
|
|
53
|
+
when :importmap
|
|
54
|
+
self.importmap = Importmap::Map.new.draw(app.root.join('config/importmap.rails_admin.rb'))
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Check for required middlewares, users may forget to use them in Rails API mode
|
|
59
|
+
config.after_initialize do |app|
|
|
60
|
+
has_session_store = app.config.middleware.to_a.any? do |m|
|
|
61
|
+
m.klass.try(:<=, ActionDispatch::Session::AbstractStore) ||
|
|
62
|
+
m.klass.try(:<=, ActionDispatch::Session::AbstractSecureStore) ||
|
|
63
|
+
m.klass.name =~ /^ActionDispatch::Session::/
|
|
64
|
+
end
|
|
65
|
+
loaded = app.config.middleware.to_a.map(&:name)
|
|
66
|
+
required = %w[ActionDispatch::Cookies ActionDispatch::Flash Rack::MethodOverride]
|
|
67
|
+
missing = required - loaded
|
|
68
|
+
unless missing.empty? && has_session_store
|
|
69
|
+
configs = missing.map { |m| "config.middleware.use #{m}" }
|
|
70
|
+
configs << "config.middleware.use #{app.config.session_store.try(:name) || 'ActionDispatch::Session::CookieStore'}, #{app.config.session_options}" unless has_session_store
|
|
71
|
+
raise <<~ERROR
|
|
72
|
+
Required middlewares for RailsAdmin are not added
|
|
73
|
+
To fix this, add
|
|
74
|
+
|
|
75
|
+
#{configs.join("\n ")}
|
|
76
|
+
|
|
77
|
+
to config/application.rb.
|
|
78
|
+
ERROR
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
RailsAdmin::Version.warn_with_js_version
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails_admin/extensions/controller_extension'
|
|
4
|
+
|
|
5
|
+
module RailsAdmin
|
|
6
|
+
EXTENSIONS = [] # rubocop:disable Style/MutableConstant
|
|
7
|
+
AUTHORIZATION_ADAPTERS = {} # rubocop:disable Style/MutableConstant
|
|
8
|
+
AUDITING_ADAPTERS = {} # rubocop:disable Style/MutableConstant
|
|
9
|
+
CONFIGURATION_ADAPTERS = {} # rubocop:disable Style/MutableConstant
|
|
10
|
+
|
|
11
|
+
# Extend RailsAdmin
|
|
12
|
+
#
|
|
13
|
+
# The extension may define various adapters (e.g., for authorization) and
|
|
14
|
+
# register those via the options hash.
|
|
15
|
+
def self.add_extension(extension_key, extension_definition, options = {})
|
|
16
|
+
options.assert_valid_keys(:authorization, :configuration, :auditing)
|
|
17
|
+
|
|
18
|
+
EXTENSIONS << extension_key
|
|
19
|
+
|
|
20
|
+
AUTHORIZATION_ADAPTERS[extension_key] = extension_definition::AuthorizationAdapter if options[:authorization]
|
|
21
|
+
|
|
22
|
+
CONFIGURATION_ADAPTERS[extension_key] = extension_definition::ConfigurationAdapter if options[:configuration]
|
|
23
|
+
|
|
24
|
+
AUDITING_ADAPTERS[extension_key] = extension_definition::AuditingAdapter if options[:auditing]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Setup all extensions for testing
|
|
28
|
+
def self.setup_all_extensions
|
|
29
|
+
(AUTHORIZATION_ADAPTERS.values + AUDITING_ADAPTERS.values).each do |klass|
|
|
30
|
+
klass.setup if klass.respond_to? :setup
|
|
31
|
+
rescue # rubocop:disable Style/RescueStandardError
|
|
32
|
+
# ignore errors
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RailsAdmin
|
|
4
|
+
module Extensions
|
|
5
|
+
module CanCanCan
|
|
6
|
+
# This adapter is for the CanCanCan[https://github.com/CanCanCommunity/cancancan] authorization library.
|
|
7
|
+
class AuthorizationAdapter
|
|
8
|
+
module ControllerExtension
|
|
9
|
+
def current_ability
|
|
10
|
+
# use _current_user instead of default current_user so it works with
|
|
11
|
+
# whatever current user method is defined with RailsAdmin
|
|
12
|
+
@current_ability ||= ability_class.new(_current_user)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
include RailsAdmin::Config::Configurable
|
|
17
|
+
|
|
18
|
+
def self.setup
|
|
19
|
+
RailsAdmin::Extensions::ControllerExtension.include ControllerExtension
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# See the +authorize_with+ config method for where the initialization happens.
|
|
23
|
+
def initialize(controller, ability = nil, &block)
|
|
24
|
+
@controller = controller
|
|
25
|
+
ability_class { ability } if ability
|
|
26
|
+
instance_eval(&block) if block
|
|
27
|
+
|
|
28
|
+
adapter = self
|
|
29
|
+
ControllerExtension.define_method(:ability_class) do
|
|
30
|
+
adapter.ability_class
|
|
31
|
+
end
|
|
32
|
+
@controller.current_ability.authorize! :access, :rails_admin
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
register_instance_option :ability_class do
|
|
36
|
+
Ability
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# This method is called in every controller action and should raise an exception
|
|
40
|
+
# when the authorization fails. The first argument is the name of the controller
|
|
41
|
+
# action as a symbol (:create, :bulk_delete, etc.). The second argument is the
|
|
42
|
+
# AbstractModel instance that applies. The third argument is the actual model
|
|
43
|
+
# instance if it is available.
|
|
44
|
+
def authorize(action, abstract_model = nil, model_object = nil)
|
|
45
|
+
return unless action
|
|
46
|
+
|
|
47
|
+
action, subject = resolve_action_and_subject(action, abstract_model, model_object)
|
|
48
|
+
@controller.current_ability.authorize!(action, subject)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# This method is called primarily from the view to determine whether the given user
|
|
52
|
+
# has access to perform the action on a given model. It should return true when authorized.
|
|
53
|
+
# This takes the same arguments as +authorize+. The difference is that this will
|
|
54
|
+
# return a boolean whereas +authorize+ will raise an exception when not authorized.
|
|
55
|
+
def authorized?(action, abstract_model = nil, model_object = nil)
|
|
56
|
+
return unless action
|
|
57
|
+
|
|
58
|
+
action, subject = resolve_action_and_subject(action, abstract_model, model_object)
|
|
59
|
+
@controller.current_ability.can?(action, subject)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# This is called when needing to scope a database query. It is called within the list
|
|
63
|
+
# and bulk_delete/destroy actions and should return a scope which limits the records
|
|
64
|
+
# to those which the user can perform the given action on.
|
|
65
|
+
def query(action, abstract_model)
|
|
66
|
+
abstract_model.model.accessible_by(@controller.current_ability, action)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# This is called in the new/create actions to determine the initial attributes for new
|
|
70
|
+
# records. It should return a hash of attributes which match what the user
|
|
71
|
+
# is authorized to create.
|
|
72
|
+
def attributes_for(action, abstract_model)
|
|
73
|
+
@controller.current_ability.attributes_for(action, abstract_model&.model)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
private
|
|
77
|
+
|
|
78
|
+
def resolve_action_and_subject(action, abstract_model, model_object)
|
|
79
|
+
subject = model_object || abstract_model&.model
|
|
80
|
+
if subject
|
|
81
|
+
[action, subject]
|
|
82
|
+
else
|
|
83
|
+
# For :dashboard compatibility
|
|
84
|
+
[:read, action]
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|