rails_admin 2.0.2 → 3.0.0.beta
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/Gemfile +12 -16
- data/README.md +40 -33
- data/Rakefile +2 -2
- data/app/assets/javascripts/rails_admin.js +21 -0
- data/app/assets/stylesheets/rails_admin/custom/mixins.scss +1 -1
- data/app/assets/stylesheets/rails_admin/custom/variables.scss +1 -1
- data/app/assets/stylesheets/rails_admin.scss.erb +76 -0
- data/app/controllers/rails_admin/application_controller.rb +4 -3
- data/app/controllers/rails_admin/main_controller.rb +43 -24
- data/app/helpers/rails_admin/application_helper.rb +69 -52
- data/app/helpers/rails_admin/form_builder.rb +14 -12
- data/app/helpers/rails_admin/main_helper.rb +27 -42
- data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +5 -0
- data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +9 -0
- data/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +9 -0
- data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +13 -0
- data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +9 -0
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +9 -0
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +6 -0
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +9 -0
- data/app/views/layouts/rails_admin/_head.html.erb +17 -0
- data/app/views/layouts/rails_admin/_navigation.html.erb +21 -0
- data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +24 -0
- data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +9 -0
- data/app/views/layouts/rails_admin/application.html.erb +27 -0
- data/app/views/layouts/rails_admin/modal.js.erb +7 -0
- data/app/views/layouts/rails_admin/pjax.html.erb +20 -0
- data/app/views/rails_admin/main/_dashboard_history.html.erb +45 -0
- data/app/views/rails_admin/main/_delete_notice.html.erb +35 -0
- data/app/views/rails_admin/main/_form_action_text.html.erb +7 -0
- data/app/views/rails_admin/main/_form_boolean.html.erb +16 -0
- data/app/views/rails_admin/main/{_form_ck_editor.html.haml → _form_ck_editor.html.erb} +3 -3
- data/app/views/rails_admin/main/_form_code_mirror.html.erb +9 -0
- data/app/views/rails_admin/main/_form_colorpicker.html.erb +1 -0
- data/app/views/rails_admin/main/_form_datetime.html.erb +9 -0
- data/app/views/rails_admin/main/_form_enumeration.html.erb +21 -0
- data/app/views/rails_admin/main/_form_field.html.erb +1 -0
- data/app/views/rails_admin/main/_form_file_upload.html.erb +17 -0
- data/app/views/rails_admin/main/{_form_filtering_multiselect.html.haml → _form_filtering_multiselect.html.erb} +18 -17
- data/app/views/rails_admin/main/{_form_filtering_select.html.haml → _form_filtering_select.html.erb} +13 -12
- data/app/views/rails_admin/main/_form_froala.html.erb +8 -0
- data/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +20 -0
- data/app/views/rails_admin/main/_form_nested_many.html.erb +21 -0
- data/app/views/rails_admin/main/_form_nested_one.html.erb +21 -0
- data/app/views/rails_admin/main/_form_polymorphic_association.html.erb +27 -0
- data/app/views/rails_admin/main/_form_simple_mde.html.erb +8 -0
- data/app/views/rails_admin/main/_form_text.html.erb +1 -0
- data/app/views/rails_admin/main/_form_wysihtml5.html.erb +8 -0
- data/app/views/rails_admin/main/_submit_buttons.html.erb +25 -0
- data/app/views/rails_admin/main/bulk_delete.html.erb +19 -0
- data/app/views/rails_admin/main/dashboard.html.erb +64 -0
- data/app/views/rails_admin/main/delete.html.erb +21 -0
- data/app/views/rails_admin/main/edit.html.erb +3 -0
- data/app/views/rails_admin/main/export.html.erb +146 -0
- data/app/views/rails_admin/main/history.html.erb +78 -0
- data/app/views/rails_admin/main/index.html.erb +193 -0
- data/app/views/rails_admin/main/new.html.erb +3 -0
- data/app/views/rails_admin/main/show.html.erb +28 -0
- data/config/initializers/active_record_extensions.rb +3 -1
- data/config/initializers/mongoid_extensions.rb +1 -1
- data/config/locales/rails_admin.en.yml +6 -2
- data/lib/generators/rails_admin/install_generator.rb +51 -3
- data/lib/generators/rails_admin/templates/environment.js +6 -0
- data/lib/generators/rails_admin/templates/initializer.erb +2 -1
- data/lib/generators/rails_admin/templates/rails_admin.js.erb +2 -0
- data/lib/generators/rails_admin/templates/rails_admin.scss +1 -0
- data/lib/generators/rails_admin/templates/webpack.config.js +32 -0
- data/lib/rails_admin/abstract_model.rb +24 -10
- data/lib/rails_admin/adapters/active_record/association.rb +20 -1
- data/lib/rails_admin/adapters/active_record/object_extension.rb +29 -0
- data/lib/rails_admin/adapters/active_record/property.rb +1 -1
- data/lib/rails_admin/adapters/active_record.rb +35 -25
- data/lib/rails_admin/adapters/mongoid/association.rb +38 -9
- data/lib/rails_admin/adapters/mongoid/bson.rb +4 -5
- data/lib/rails_admin/adapters/mongoid/extension.rb +3 -1
- data/lib/rails_admin/adapters/mongoid/object_extension.rb +32 -0
- data/lib/rails_admin/adapters/mongoid/property.rb +2 -2
- data/lib/rails_admin/adapters/mongoid.rb +27 -19
- data/lib/rails_admin/config/actions/base.rb +7 -2
- data/lib/rails_admin/config/actions/bulk_delete.rb +2 -2
- data/lib/rails_admin/config/actions/dashboard.rb +4 -3
- data/lib/rails_admin/config/actions/delete.rb +5 -9
- data/lib/rails_admin/config/actions/edit.rb +7 -7
- data/lib/rails_admin/config/actions/export.rb +2 -2
- data/lib/rails_admin/config/actions/history_index.rb +2 -2
- data/lib/rails_admin/config/actions/history_show.rb +2 -2
- data/lib/rails_admin/config/actions/index.rb +5 -7
- data/lib/rails_admin/config/actions/new.rb +9 -9
- data/lib/rails_admin/config/actions/show.rb +1 -1
- data/lib/rails_admin/config/actions/show_in_app.rb +6 -2
- data/lib/rails_admin/config/actions.rb +4 -4
- data/lib/rails_admin/config/configurable.rb +2 -2
- data/lib/rails_admin/config/fields/association.rb +15 -12
- data/lib/rails_admin/config/fields/base.rb +44 -20
- data/lib/rails_admin/config/fields/factories/active_storage.rb +1 -0
- data/lib/rails_admin/config/fields/factories/association.rb +6 -8
- data/lib/rails_admin/config/fields/factories/carrierwave.rb +2 -1
- data/lib/rails_admin/config/fields/factories/devise.rb +2 -1
- data/lib/rails_admin/config/fields/factories/dragonfly.rb +2 -1
- data/lib/rails_admin/config/fields/factories/paperclip.rb +2 -1
- data/lib/rails_admin/config/fields/factories/shrine.rb +1 -1
- data/lib/rails_admin/config/fields/group.rb +1 -2
- data/lib/rails_admin/config/fields/types/active_record_enum.rb +2 -0
- data/lib/rails_admin/config/fields/types/active_storage.rb +9 -3
- data/lib/rails_admin/config/fields/types/all.rb +1 -0
- data/lib/rails_admin/config/fields/types/belongs_to_association.rb +4 -12
- data/lib/rails_admin/config/fields/types/boolean.rb +32 -8
- data/lib/rails_admin/config/fields/types/carrierwave.rb +1 -0
- data/lib/rails_admin/config/fields/types/citext.rb +13 -0
- data/lib/rails_admin/config/fields/types/color.rb +6 -2
- data/lib/rails_admin/config/fields/types/date.rb +5 -8
- data/lib/rails_admin/config/fields/types/datetime.rb +18 -21
- data/lib/rails_admin/config/fields/types/decimal.rb +9 -2
- data/lib/rails_admin/config/fields/types/dragonfly.rb +3 -1
- data/lib/rails_admin/config/fields/types/enum.rb +1 -1
- data/lib/rails_admin/config/fields/types/file_upload.rb +9 -4
- data/lib/rails_admin/config/fields/types/float.rb +9 -2
- data/lib/rails_admin/config/fields/types/has_many_association.rb +1 -5
- data/lib/rails_admin/config/fields/types/has_one_association.rb +1 -13
- data/lib/rails_admin/config/fields/types/integer.rb +2 -6
- data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +8 -2
- data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +1 -0
- data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +6 -4
- data/lib/rails_admin/config/fields/types/numeric.rb +18 -0
- data/lib/rails_admin/config/fields/types/polymorphic_association.rb +3 -2
- data/lib/rails_admin/config/fields/types/shrine.rb +13 -11
- data/lib/rails_admin/config/fields/types/string.rb +1 -1
- data/lib/rails_admin/config/fields/types/time.rb +1 -4
- data/lib/rails_admin/config/fields/types/timestamp.rb +0 -4
- data/lib/rails_admin/config/fields/types.rb +1 -1
- data/lib/rails_admin/config/fields.rb +3 -1
- data/lib/rails_admin/config/has_fields.rb +5 -6
- data/lib/rails_admin/config/hideable.rb +1 -1
- data/lib/rails_admin/config/inspectable.rb +1 -3
- data/lib/rails_admin/config/model.rb +10 -10
- data/lib/rails_admin/config/sections/base.rb +2 -3
- data/lib/rails_admin/config/sections/list.rb +4 -15
- data/lib/rails_admin/config/sections.rb +1 -1
- data/lib/rails_admin/config.rb +72 -41
- data/lib/rails_admin/engine.rb +36 -23
- data/lib/rails_admin/extension.rb +6 -14
- data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +4 -2
- data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +13 -8
- data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +6 -7
- data/lib/rails_admin/support/csv_converter.rb +12 -13
- data/lib/rails_admin/support/datetime.rb +40 -74
- data/lib/rails_admin/support/esmodule_preprocessor.rb +32 -0
- data/lib/rails_admin/support/hash_helper.rb +6 -5
- data/lib/rails_admin/version.rb +7 -3
- data/lib/rails_admin.rb +1 -4
- data/lib/tasks/rails_admin.rake +17 -8
- data/package.json +28 -0
- data/src/rails_admin/base.js +21 -0
- data/src/rails_admin/filter-box.js +405 -0
- data/src/rails_admin/filtering-multiselect.js +394 -0
- data/src/rails_admin/filtering-select.js +302 -0
- data/src/rails_admin/i18n.js +19 -0
- data/src/rails_admin/nested-form-hooks.js +100 -0
- data/src/rails_admin/remote-form.js +190 -0
- data/src/rails_admin/sidescroll.js +20 -0
- data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/theming.scss +93 -34
- data/src/rails_admin/styles/base.scss +64 -0
- data/src/rails_admin/styles/filtering-multiselect.scss +53 -0
- data/src/rails_admin/styles/filtering-select.scss +70 -0
- data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/themes/cerulean/theming.scss +23 -21
- data/src/rails_admin/styles/themes/cerulean/variables.scss +830 -0
- data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/themes/default/mixins.scss +1 -1
- data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/themes/default/variables.scss +1 -1
- data/src/rails_admin/styles/widgets.scss +35 -0
- data/src/rails_admin/ui.js +172 -0
- data/src/rails_admin/vendor/jquery.pjax.js +899 -0
- data/src/rails_admin/vendor/jquery_nested_form.js +122 -0
- data/src/rails_admin/widgets.js +512 -0
- data/vendor/assets/fonts/rails_admin/fa-solid-900.eot +0 -0
- data/vendor/assets/fonts/rails_admin/fa-solid-900.svg +5034 -0
- data/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
- data/vendor/assets/fonts/rails_admin/fa-solid-900.woff +0 -0
- data/vendor/assets/fonts/rails_admin/fa-solid-900.woff2 +0 -0
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +50 -28
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +10 -7
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +35 -20
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +48 -25
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +70 -28
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +56 -42
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +118 -40
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +26 -16
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +29 -27
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +46 -19
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +280 -60
- data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +5 -5
- data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +317 -150
- data/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
- data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
- data/vendor/assets/javascripts/rails_admin/jquery.pjax.js +317 -160
- data/vendor/assets/javascripts/rails_admin/jquery3.js +10872 -0
- data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +11210 -9290
- data/vendor/assets/stylesheets/rails_admin/font-awesome.scss +4476 -2216
- metadata +121 -265
- data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
- data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/rails_admin/bullet_black.png +0 -0
- data/app/assets/images/rails_admin/bullet_white.png +0 -0
- data/app/assets/images/rails_admin/calendar.png +0 -0
- data/app/assets/images/rails_admin/clock.png +0 -0
- data/app/assets/images/rails_admin/logo.png +0 -0
- data/app/assets/images/rails_admin/magnifier.png +0 -0
- data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
- data/app/assets/javascripts/rails_admin/jquery-ui.js.erb +0 -8
- data/app/assets/javascripts/rails_admin/ra.filter-box.js +0 -226
- data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +0 -331
- data/app/assets/javascripts/rails_admin/ra.filtering-select.js +0 -294
- data/app/assets/javascripts/rails_admin/ra.i18n.js +0 -28
- data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.js +0 -59
- data/app/assets/javascripts/rails_admin/ra.remote-form.js +0 -155
- data/app/assets/javascripts/rails_admin/ra.sidescroll.js +0 -31
- data/app/assets/javascripts/rails_admin/ra.widgets.js +0 -379
- data/app/assets/javascripts/rails_admin/rails_admin.js +0 -20
- data/app/assets/javascripts/rails_admin/ui.js +0 -135
- data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +0 -733
- data/app/assets/stylesheets/rails_admin/base/font-awesome-4-compability.scss +0 -153
- data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.scss +0 -88
- data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +0 -29
- data/app/assets/stylesheets/rails_admin/ra.widgets.scss +0 -17
- data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +0 -110
- data/app/assets/stylesheets/rails_admin/themes/cerulean/variables.scss +0 -857
- data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.haml +0 -2
- data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.haml +0 -4
- data/app/views/kaminari/ra-twitter-bootstrap/_page.html.haml +0 -4
- data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.haml +0 -9
- data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.haml +0 -4
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.haml +0 -4
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.haml +0 -4
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.haml +0 -4
- data/app/views/layouts/rails_admin/_head.html.haml +0 -7
- data/app/views/layouts/rails_admin/_navigation.html.haml +0 -12
- data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +0 -10
- data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +0 -3
- data/app/views/layouts/rails_admin/application.html.haml +0 -16
- data/app/views/layouts/rails_admin/pjax.html.haml +0 -12
- data/app/views/rails_admin/main/_dashboard_history.html.haml +0 -21
- data/app/views/rails_admin/main/_delete_notice.html.haml +0 -24
- data/app/views/rails_admin/main/_form_action_text.html.haml +0 -7
- data/app/views/rails_admin/main/_form_boolean.html.haml +0 -3
- data/app/views/rails_admin/main/_form_code_mirror.html.haml +0 -9
- data/app/views/rails_admin/main/_form_colorpicker.html.haml +0 -1
- data/app/views/rails_admin/main/_form_datetime.html.haml +0 -5
- data/app/views/rails_admin/main/_form_enumeration.html.haml +0 -18
- data/app/views/rails_admin/main/_form_field.html.haml +0 -1
- data/app/views/rails_admin/main/_form_file_upload.html.haml +0 -17
- data/app/views/rails_admin/main/_form_froala.html.haml +0 -8
- data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +0 -16
- data/app/views/rails_admin/main/_form_nested_many.html.haml +0 -15
- data/app/views/rails_admin/main/_form_nested_one.html.haml +0 -17
- data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +0 -26
- data/app/views/rails_admin/main/_form_simple_mde.haml +0 -8
- data/app/views/rails_admin/main/_form_text.html.haml +0 -1
- data/app/views/rails_admin/main/_form_wysihtml5.html.haml +0 -8
- data/app/views/rails_admin/main/_submit_buttons.html.haml +0 -16
- data/app/views/rails_admin/main/bulk_delete.html.haml +0 -11
- data/app/views/rails_admin/main/dashboard.html.haml +0 -34
- data/app/views/rails_admin/main/delete.html.haml +0 -18
- data/app/views/rails_admin/main/edit.html.haml +0 -2
- data/app/views/rails_admin/main/export.html.haml +0 -92
- data/app/views/rails_admin/main/history.html.haml +0 -51
- data/app/views/rails_admin/main/index.html.haml +0 -126
- data/app/views/rails_admin/main/new.html.haml +0 -2
- data/app/views/rails_admin/main/show.html.haml +0 -15
- data/config/initializers/devise_patch.rb +0 -9
- data/config/initializers/haml.rb +0 -5
- data/lib/rails_admin/adapters/active_record/abstract_object.rb +0 -32
- data/lib/rails_admin/adapters/mongoid/abstract_object.rb +0 -42
- data/lib/rails_admin/bootstrap-sass/compass_functions.rb +0 -28
- data/lib/rails_admin/bootstrap-sass/sass_functions.rb +0 -16
- data/lib/rails_admin/bootstrap-sass.rb +0 -49
- data/lib/rails_admin/config/lazy_model.rb +0 -68
- data/lib/rails_admin/extensions/history/auditing_adapter.rb +0 -37
- data/lib/rails_admin/extensions/history/history.rb +0 -44
- data/lib/rails_admin/extensions/history.rb +0 -3
- data/lib/rails_admin/support/i18n.rb +0 -43
- data/vendor/assets/fonts/rails_admin/FontAwesome.otf +0 -0
- data/vendor/assets/fonts/rails_admin/fontawesome-webfont.eot +0 -0
- data/vendor/assets/fonts/rails_admin/fontawesome-webfont.svg +0 -2671
- data/vendor/assets/fonts/rails_admin/fontawesome-webfont.ttf +0 -0
- data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff +0 -0
- data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff2 +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/select.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/select2.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/slider.png +0 -0
- data/vendor/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -484
- data/vendor/assets/stylesheets/rails_admin/jquery.colorpicker.scss +0 -182
- /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/README.txt +0 -0
- /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/mixins.scss +0 -0
- /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/variables.scss +0 -0
- /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/themes/cerulean/mixins.scss +0 -0
- /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/themes/default/theming.scss +0 -0
|
@@ -45,12 +45,13 @@ module RailsAdmin
|
|
|
45
45
|
[children_fields]
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
-
register_instance_option :eager_load
|
|
48
|
+
register_instance_option :eager_load do
|
|
49
49
|
false
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
def associated_collection(type)
|
|
53
53
|
return [] if type.blank?
|
|
54
|
+
|
|
54
55
|
config = RailsAdmin.config(type)
|
|
55
56
|
config.abstract_model.all.collect do |object|
|
|
56
57
|
[object.send(config.object_label_method), object.id]
|
|
@@ -58,7 +59,7 @@ module RailsAdmin
|
|
|
58
59
|
end
|
|
59
60
|
|
|
60
61
|
def associated_model_config
|
|
61
|
-
@associated_model_config ||= association.klass.collect { |type| RailsAdmin.config(type) }.
|
|
62
|
+
@associated_model_config ||= association.klass.collect { |type| RailsAdmin.config(type) }.reject(&:excluded?)
|
|
62
63
|
end
|
|
63
64
|
|
|
64
65
|
def polymorphic_type_collection
|
|
@@ -10,14 +10,16 @@ module RailsAdmin
|
|
|
10
10
|
register_instance_option :thumb_method do
|
|
11
11
|
unless defined? @thumb_method
|
|
12
12
|
@thumb_method = begin
|
|
13
|
-
next nil unless
|
|
13
|
+
next nil unless bindings[:object].respond_to?("#{name}_derivatives")
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
derivatives = bindings[:object].public_send("#{name}_derivatives")
|
|
16
|
+
|
|
17
|
+
if derivatives.key?(:thumb)
|
|
16
18
|
:thumb
|
|
17
|
-
elsif
|
|
19
|
+
elsif derivatives.key?(:thumbnail)
|
|
18
20
|
:thumbnail
|
|
19
21
|
else
|
|
20
|
-
|
|
22
|
+
derivatives.keys.first
|
|
21
23
|
end
|
|
22
24
|
end
|
|
23
25
|
end
|
|
@@ -29,21 +31,21 @@ module RailsAdmin
|
|
|
29
31
|
end
|
|
30
32
|
|
|
31
33
|
register_instance_option :cache_method do
|
|
32
|
-
name
|
|
34
|
+
name if bindings[:object].try("cached_#{name}_data")
|
|
33
35
|
end
|
|
34
36
|
|
|
35
37
|
register_instance_option :cache_value do
|
|
36
|
-
bindings[:object].
|
|
38
|
+
bindings[:object].try("cached_#{name}_data")
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
register_instance_option :link_name do
|
|
42
|
+
value.original_filename
|
|
37
43
|
end
|
|
38
44
|
|
|
39
45
|
def resource_url(thumb = nil)
|
|
40
46
|
return nil unless value
|
|
41
47
|
|
|
42
|
-
|
|
43
|
-
value[thumb || value.keys.first].url
|
|
44
|
-
else
|
|
45
|
-
value.url
|
|
46
|
-
end
|
|
48
|
+
thumb && bindings[:object].public_send(:"#{name}", thumb).try(:url) || value.url
|
|
47
49
|
end
|
|
48
50
|
end
|
|
49
51
|
end
|
|
@@ -20,7 +20,7 @@ module RailsAdmin
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def generic_help
|
|
23
|
-
text =
|
|
23
|
+
text = "#{required? ? I18n.translate('admin.form.required') : I18n.translate('admin.form.optional')}. "
|
|
24
24
|
if valid_length.present? && valid_length[:is].present?
|
|
25
25
|
text += "#{I18n.translate('admin.form.char_length_of').capitalize} #{valid_length[:is]}."
|
|
26
26
|
else
|
|
@@ -8,10 +8,7 @@ module RailsAdmin
|
|
|
8
8
|
RailsAdmin::Config::Fields::Types.register(self)
|
|
9
9
|
|
|
10
10
|
def parse_value(value)
|
|
11
|
-
|
|
12
|
-
return unless parent_value
|
|
13
|
-
value_with_tz = parent_value.in_time_zone
|
|
14
|
-
::DateTime.parse(value_with_tz.strftime('%Y-%m-%d %H:%M:%S'))
|
|
11
|
+
abstract_model.model.type_for_attribute(name.to_s).serialize(super)&.change(year: 2000, month: 1, day: 1)
|
|
15
12
|
end
|
|
16
13
|
|
|
17
14
|
register_instance_option :strftime_format do
|
|
@@ -7,10 +7,6 @@ module RailsAdmin
|
|
|
7
7
|
class Timestamp < RailsAdmin::Config::Fields::Types::Datetime
|
|
8
8
|
# Register field type for the type loader
|
|
9
9
|
RailsAdmin::Config::Fields::Types.register(self)
|
|
10
|
-
|
|
11
|
-
@format = :long
|
|
12
|
-
@i18n_scope = [:time, :formats]
|
|
13
|
-
@js_plugin_options = {}
|
|
14
10
|
end
|
|
15
11
|
end
|
|
16
12
|
end
|
|
@@ -9,7 +9,7 @@ module RailsAdmin
|
|
|
9
9
|
@@registry = {}
|
|
10
10
|
|
|
11
11
|
def self.load(type)
|
|
12
|
-
@@registry
|
|
12
|
+
@@registry.fetch(type.to_sym) { raise "Unsupported field datatype: #{type}" }
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def self.register(type, klass = nil)
|
|
@@ -50,13 +50,15 @@ module RailsAdmin
|
|
|
50
50
|
parent.abstract_model.properties.each do |properties|
|
|
51
51
|
# Unless a previous factory has already loaded current field as well
|
|
52
52
|
next if fields.detect { |f| f.name == properties.name }
|
|
53
|
+
|
|
53
54
|
# Loop through factories until one returns true
|
|
54
55
|
@@registry.detect { |factory| factory.call(parent, properties, fields) }
|
|
55
56
|
end
|
|
56
57
|
# Load fields for all associations (relations)
|
|
57
|
-
parent.abstract_model.associations.
|
|
58
|
+
parent.abstract_model.associations.reject { |a| a.type == :belongs_to }.each do |association| # :belongs_to are created by factory for belongs_to fields
|
|
58
59
|
# Unless a previous factory has already loaded current field as well
|
|
59
60
|
next if fields.detect { |f| f.name == association.name }
|
|
61
|
+
|
|
60
62
|
# Loop through factories until one returns true
|
|
61
63
|
@@registry.detect { |factory| factory.call(parent, association, fields) }
|
|
62
64
|
end
|
|
@@ -8,9 +8,7 @@ module RailsAdmin
|
|
|
8
8
|
|
|
9
9
|
# some fields are hidden by default (belongs_to keys, has_many associations in list views.)
|
|
10
10
|
# unhide them if config specifically defines them
|
|
11
|
-
if field
|
|
12
|
-
field.show unless field.instance_variable_get("@#{field.name}_registered").is_a?(Proc)
|
|
13
|
-
end
|
|
11
|
+
field.show if field && !field.instance_variable_get("@#{field.name}_registered").is_a?(Proc)
|
|
14
12
|
# Specify field as virtual if type is not specifically set and field was not
|
|
15
13
|
# found in default stack
|
|
16
14
|
if field.nil? && type.nil?
|
|
@@ -39,9 +37,9 @@ module RailsAdmin
|
|
|
39
37
|
field
|
|
40
38
|
end
|
|
41
39
|
|
|
42
|
-
# configure a
|
|
40
|
+
# configure field(s) from the default group in a section without changing the original order.
|
|
43
41
|
def configure(name, type = nil, &block)
|
|
44
|
-
field(
|
|
42
|
+
[*name].each { |field_name| field(field_name, type, false, &block) }
|
|
45
43
|
end
|
|
46
44
|
|
|
47
45
|
# include fields by name and apply an optionnal block to each (through a call to fields),
|
|
@@ -50,6 +48,7 @@ module RailsAdmin
|
|
|
50
48
|
if field_names.empty?
|
|
51
49
|
_fields.select { |f| f.instance_eval(&block) }.each do |f|
|
|
52
50
|
next if f.defined
|
|
51
|
+
|
|
53
52
|
f.defined = true
|
|
54
53
|
f.order = _fields.count(&:defined)
|
|
55
54
|
end
|
|
@@ -126,7 +125,7 @@ module RailsAdmin
|
|
|
126
125
|
return @_fields if @_fields
|
|
127
126
|
return @_ro_fields if readonly && @_ro_fields
|
|
128
127
|
|
|
129
|
-
if
|
|
128
|
+
if instance_of?(RailsAdmin::Config::Sections::Base)
|
|
130
129
|
@_ro_fields = @_fields = RailsAdmin::Config::Fields.factory(self)
|
|
131
130
|
else
|
|
132
131
|
# parent is RailsAdmin::Config::Model, recursion is on Section's classes
|
|
@@ -30,9 +30,7 @@ module RailsAdmin
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def set_named_instance_variables
|
|
33
|
-
unless defined?(self.class::NAMED_INSTANCE_VARIABLES)
|
|
34
|
-
self.class.const_set('NAMED_INSTANCE_VARIABLES', [])
|
|
35
|
-
end
|
|
33
|
+
self.class.const_set('NAMED_INSTANCE_VARIABLES', []) unless defined?(self.class::NAMED_INSTANCE_VARIABLES)
|
|
36
34
|
end
|
|
37
35
|
end
|
|
38
36
|
end
|
|
@@ -21,30 +21,31 @@ module RailsAdmin
|
|
|
21
21
|
include RailsAdmin::Config::Sections
|
|
22
22
|
include RailsAdmin::Config::Inspectable
|
|
23
23
|
|
|
24
|
-
attr_reader :abstract_model
|
|
24
|
+
attr_reader :abstract_model, :parent, :root
|
|
25
25
|
attr_accessor :groups
|
|
26
|
-
attr_reader :parent, :root
|
|
27
26
|
|
|
28
|
-
NAMED_INSTANCE_VARIABLES = [
|
|
27
|
+
NAMED_INSTANCE_VARIABLES = %i[@parent @root].freeze
|
|
29
28
|
|
|
30
29
|
def initialize(entity)
|
|
31
30
|
@parent = nil
|
|
32
31
|
@root = self
|
|
33
32
|
|
|
34
|
-
@abstract_model =
|
|
35
|
-
|
|
33
|
+
@abstract_model =
|
|
34
|
+
case entity
|
|
35
|
+
when RailsAdmin::AbstractModel
|
|
36
36
|
entity
|
|
37
|
-
|
|
37
|
+
when Class, String, Symbol
|
|
38
38
|
RailsAdmin::AbstractModel.new(entity)
|
|
39
39
|
else
|
|
40
40
|
RailsAdmin::AbstractModel.new(entity.class)
|
|
41
41
|
end
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
@groups = [RailsAdmin::Config::Fields::Group.new(self, :default).tap { |g| g.label { I18n.translate('admin.form.basic_info') } }]
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
def excluded?
|
|
47
47
|
return @excluded if defined?(@excluded)
|
|
48
|
+
|
|
48
49
|
@excluded = !RailsAdmin::AbstractModel.all.collect(&:model_name).include?(abstract_model.try(:model_name))
|
|
49
50
|
end
|
|
50
51
|
|
|
@@ -81,17 +82,16 @@ module RailsAdmin
|
|
|
81
82
|
register_instance_option :parent do
|
|
82
83
|
@parent_model ||= begin
|
|
83
84
|
klass = abstract_model.model.superclass
|
|
84
|
-
klass = nil if klass.to_s.in?(%w
|
|
85
|
+
klass = nil if klass.to_s.in?(%w[Object BasicObject ActiveRecord::Base])
|
|
85
86
|
klass
|
|
86
87
|
end
|
|
87
88
|
end
|
|
88
89
|
|
|
89
90
|
register_instance_option :navigation_label do
|
|
90
|
-
@navigation_label ||=
|
|
91
|
+
@navigation_label ||=
|
|
91
92
|
if (parent_module = abstract_model.model.try(:module_parent) || abstract_model.model.try!(:parent)) != Object
|
|
92
93
|
parent_module.to_s
|
|
93
94
|
end
|
|
94
|
-
end
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
register_instance_option :navigation_icon do
|
|
@@ -18,10 +18,9 @@ module RailsAdmin
|
|
|
18
18
|
include RailsAdmin::Config::HasGroups
|
|
19
19
|
include RailsAdmin::Config::HasDescription
|
|
20
20
|
|
|
21
|
-
attr_reader :abstract_model
|
|
22
|
-
attr_reader :parent, :root
|
|
21
|
+
attr_reader :abstract_model, :parent, :root
|
|
23
22
|
|
|
24
|
-
NAMED_INSTANCE_VARIABLES = [
|
|
23
|
+
NAMED_INSTANCE_VARIABLES = %i[@parent @root @abstract_model].freeze
|
|
25
24
|
|
|
26
25
|
def initialize(parent)
|
|
27
26
|
@parent = parent
|
|
@@ -44,23 +44,12 @@ module RailsAdmin
|
|
|
44
44
|
''
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
register_deprecated_instance_option :sidescroll do
|
|
48
|
+
ActiveSupport::Deprecation.warn('The sidescroll configuration option was removed, it is always enabled now.')
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
-
def
|
|
52
|
-
|
|
53
|
-
model_config = sidescroll
|
|
54
|
-
enabled = model_config.nil? ? global_config : model_config
|
|
55
|
-
if enabled
|
|
56
|
-
num_frozen = model_config[:num_frozen_columns] if model_config.is_a?(Hash)
|
|
57
|
-
unless num_frozen
|
|
58
|
-
num_frozen = global_config[:num_frozen_columns] if global_config.is_a?(Hash)
|
|
59
|
-
num_frozen ||= 3 # by default, freeze checkboxes, links & first property (usually primary key / id?)
|
|
60
|
-
num_frozen -= 1 unless checkboxes? # model config should be explicit about this, only adjust if using global config
|
|
61
|
-
end
|
|
62
|
-
num_frozen
|
|
63
|
-
end
|
|
51
|
+
def fields_for_table
|
|
52
|
+
visible_fields.partition(&:sticky?).flatten
|
|
64
53
|
end
|
|
65
54
|
end
|
|
66
55
|
end
|
|
@@ -25,7 +25,7 @@ module RailsAdmin
|
|
|
25
25
|
section = RailsAdmin::Config::Sections.const_get(name)
|
|
26
26
|
name = name.to_s.underscore.to_sym
|
|
27
27
|
klass.send(:define_method, name) do |&block|
|
|
28
|
-
@sections
|
|
28
|
+
@sections ||= {}
|
|
29
29
|
@sections[name] = section.new(self) unless @sections[name]
|
|
30
30
|
@sections[name].instance_eval(&block) if block
|
|
31
31
|
@sections[name]
|
data/lib/rails_admin/config.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require 'rails_admin/config/
|
|
1
|
+
require 'rails_admin/config/model'
|
|
2
2
|
require 'rails_admin/config/sections/list'
|
|
3
3
|
require 'active_support/core_ext/module/attribute_accessors'
|
|
4
4
|
|
|
@@ -20,6 +20,10 @@ module RailsAdmin
|
|
|
20
20
|
|
|
21
21
|
DEFAULT_CURRENT_USER = proc {}
|
|
22
22
|
|
|
23
|
+
# Variables to track initialization process
|
|
24
|
+
@initialized = false
|
|
25
|
+
@deferred_blocks = []
|
|
26
|
+
|
|
23
27
|
class << self
|
|
24
28
|
# Application title, can be an array of two elements
|
|
25
29
|
attr_accessor :main_app_name
|
|
@@ -27,8 +31,8 @@ module RailsAdmin
|
|
|
27
31
|
# Configuration option to specify which models you want to exclude.
|
|
28
32
|
attr_accessor :excluded_models
|
|
29
33
|
|
|
30
|
-
# Configuration option to specify a
|
|
31
|
-
# The excluded_models list applies against the
|
|
34
|
+
# Configuration option to specify a allowlist of models you want to RailsAdmin to work with.
|
|
35
|
+
# The excluded_models list applies against the allowlist as well and further reduces the models
|
|
32
36
|
# RailsAdmin will use.
|
|
33
37
|
# If included_models is left empty ([]), then RailsAdmin will automatically use all the models
|
|
34
38
|
# in your application (less any excluded_models you may have specified).
|
|
@@ -56,14 +60,8 @@ module RailsAdmin
|
|
|
56
60
|
# Tell browsers whether to use the native HTML5 validations (novalidate form option).
|
|
57
61
|
attr_accessor :browser_validations
|
|
58
62
|
|
|
59
|
-
# Set the max width of columns in list view before a new set is created
|
|
60
|
-
attr_accessor :total_columns_width
|
|
61
|
-
|
|
62
|
-
# Enable horizontal-scrolling table in list view, ignore total_columns_width
|
|
63
|
-
attr_accessor :sidescroll
|
|
64
|
-
|
|
65
63
|
# set parent controller
|
|
66
|
-
|
|
64
|
+
attr_reader :parent_controller
|
|
67
65
|
|
|
68
66
|
# set settings for `protect_from_forgery` method
|
|
69
67
|
# By default, it raises exception upon invalid CSRF tokens
|
|
@@ -82,8 +80,24 @@ module RailsAdmin
|
|
|
82
80
|
attr_accessor :navigation_static_links
|
|
83
81
|
attr_accessor :navigation_static_label
|
|
84
82
|
|
|
85
|
-
#
|
|
86
|
-
attr_accessor :
|
|
83
|
+
# Set where RailsAdmin fetches JS/CSS from, defaults to :sprockets
|
|
84
|
+
attr_accessor :asset_source
|
|
85
|
+
|
|
86
|
+
# Finish initialization by executing deferred configuration blocks
|
|
87
|
+
def initialize!
|
|
88
|
+
@deferred_blocks.each { |block| block.call(self) }
|
|
89
|
+
@deferred_blocks.clear
|
|
90
|
+
@initialized = true
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Evaluate the given block either immediately or lazily, based on initialization status.
|
|
94
|
+
def apply(&block)
|
|
95
|
+
if @initialized
|
|
96
|
+
yield(self)
|
|
97
|
+
else
|
|
98
|
+
@deferred_blocks << block
|
|
99
|
+
end
|
|
100
|
+
end
|
|
87
101
|
|
|
88
102
|
# Setup authentication to be run as a before filter
|
|
89
103
|
# This is run inside the controller instance so you can setup any authentication you need to
|
|
@@ -113,7 +127,7 @@ module RailsAdmin
|
|
|
113
127
|
@authenticate || DEFAULT_AUTHENTICATION
|
|
114
128
|
end
|
|
115
129
|
|
|
116
|
-
# Setup auditing/
|
|
130
|
+
# Setup auditing/versioning provider that observe objects lifecycle
|
|
117
131
|
def audit_with(*args, &block)
|
|
118
132
|
extension = args.shift
|
|
119
133
|
if extension
|
|
@@ -148,7 +162,7 @@ module RailsAdmin
|
|
|
148
162
|
# config.authorize_with :cancancan
|
|
149
163
|
# end
|
|
150
164
|
#
|
|
151
|
-
# See the wiki[https://github.com/
|
|
165
|
+
# See the wiki[https://github.com/railsadminteam/rails_admin/wiki] for more on authorization.
|
|
152
166
|
#
|
|
153
167
|
# @see RailsAdmin::Config::DEFAULT_AUTHORIZE
|
|
154
168
|
def authorize_with(*args, &block)
|
|
@@ -201,10 +215,10 @@ module RailsAdmin
|
|
|
201
215
|
end
|
|
202
216
|
|
|
203
217
|
def default_search_operator=(operator)
|
|
204
|
-
if %w
|
|
218
|
+
if %w[default like not_like starts_with ends_with is =].include? operator
|
|
205
219
|
@default_search_operator = operator
|
|
206
220
|
else
|
|
207
|
-
raise
|
|
221
|
+
raise ArgumentError.new("Search operator '#{operator}' not supported")
|
|
208
222
|
end
|
|
209
223
|
end
|
|
210
224
|
|
|
@@ -226,20 +240,20 @@ module RailsAdmin
|
|
|
226
240
|
#
|
|
227
241
|
# @see RailsAdmin::Config.registry
|
|
228
242
|
def model(entity, &block)
|
|
229
|
-
key =
|
|
230
|
-
|
|
243
|
+
key =
|
|
244
|
+
case entity
|
|
245
|
+
when RailsAdmin::AbstractModel
|
|
231
246
|
entity.model.try(:name).try :to_sym
|
|
232
|
-
|
|
247
|
+
when Class
|
|
233
248
|
entity.name.to_sym
|
|
234
|
-
|
|
249
|
+
when String, Symbol
|
|
235
250
|
entity.to_sym
|
|
236
251
|
else
|
|
237
252
|
entity.class.name.to_sym
|
|
238
253
|
end
|
|
239
|
-
end
|
|
240
254
|
|
|
241
|
-
@registry[key] ||= RailsAdmin::Config::
|
|
242
|
-
@registry[key].
|
|
255
|
+
@registry[key] ||= RailsAdmin::Config::Model.new(entity)
|
|
256
|
+
@registry[key].instance_eval(&block) if block && @registry[key].abstract_model
|
|
243
257
|
@registry[key]
|
|
244
258
|
end
|
|
245
259
|
|
|
@@ -253,9 +267,28 @@ module RailsAdmin
|
|
|
253
267
|
end
|
|
254
268
|
end
|
|
255
269
|
|
|
256
|
-
|
|
270
|
+
def parent_controller=(name)
|
|
271
|
+
@parent_controller = name
|
|
272
|
+
if defined?(RailsAdmin::ApplicationController)
|
|
273
|
+
RailsAdmin.send(:remove_const, :ApplicationController)
|
|
274
|
+
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/application_controller.rb')
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
def total_columns_width=(_)
|
|
279
|
+
ActiveSupport::Deprecation.warn('The total_columns_width configuration option is deprecated and has no effect.')
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
def sidescroll=(_)
|
|
283
|
+
ActiveSupport::Deprecation.warn('The sidescroll configuration option was removed, it is always enabled now.')
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
# Setup actions to be used.
|
|
257
287
|
def actions(&block)
|
|
258
|
-
|
|
288
|
+
return unless block
|
|
289
|
+
|
|
290
|
+
RailsAdmin::Config::Actions.reset
|
|
291
|
+
RailsAdmin::Config::Actions.instance_eval(&block)
|
|
259
292
|
end
|
|
260
293
|
|
|
261
294
|
# Returns all model configurations
|
|
@@ -271,31 +304,30 @@ module RailsAdmin
|
|
|
271
304
|
def reset
|
|
272
305
|
@compact_show_view = true
|
|
273
306
|
@browser_validations = true
|
|
274
|
-
@yell_for_non_accessible_fields = true
|
|
275
307
|
@authenticate = nil
|
|
276
308
|
@authorize = nil
|
|
277
309
|
@audit = nil
|
|
278
310
|
@current_user = nil
|
|
279
311
|
@default_hidden_fields = {}
|
|
280
312
|
@default_hidden_fields[:base] = [:_type]
|
|
281
|
-
@default_hidden_fields[:edit] = [
|
|
282
|
-
@default_hidden_fields[:show] = [
|
|
313
|
+
@default_hidden_fields[:edit] = %i[id _id created_at created_on deleted_at updated_at updated_on deleted_on]
|
|
314
|
+
@default_hidden_fields[:show] = %i[id _id created_at created_on deleted_at updated_at updated_on deleted_on]
|
|
283
315
|
@default_items_per_page = 20
|
|
284
316
|
@default_associated_collection_limit = 100
|
|
285
317
|
@default_search_operator = 'default'
|
|
286
318
|
@excluded_models = []
|
|
287
319
|
@included_models = []
|
|
288
|
-
@
|
|
289
|
-
@sidescroll = nil
|
|
290
|
-
@label_methods = [:name, :title]
|
|
320
|
+
@label_methods = %i[name title]
|
|
291
321
|
@main_app_name = proc { [Rails.application.engine_name.titleize.chomp(' Application'), 'Admin'] }
|
|
292
322
|
@registry = {}
|
|
293
323
|
@show_gravatar = true
|
|
294
324
|
@navigation_static_links = {}
|
|
295
325
|
@navigation_static_label = nil
|
|
326
|
+
@asset_source = (defined?(Webpacker) ? :webpacker : :sprockets)
|
|
296
327
|
@parent_controller = '::ActionController::Base'
|
|
297
328
|
@forgery_protection_settings = {with: :exception}
|
|
298
329
|
RailsAdmin::Config::Actions.reset
|
|
330
|
+
RailsAdmin::AbstractModel.reset
|
|
299
331
|
end
|
|
300
332
|
|
|
301
333
|
# Reset a provided model's configuration.
|
|
@@ -306,22 +338,21 @@ module RailsAdmin
|
|
|
306
338
|
@registry.delete(key)
|
|
307
339
|
end
|
|
308
340
|
|
|
309
|
-
#
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
341
|
+
# Perform reset, then load RailsAdmin initializer again
|
|
342
|
+
def reload!
|
|
343
|
+
@initialized = false
|
|
344
|
+
reset
|
|
345
|
+
load RailsAdmin::Engine.config.initializer_path
|
|
346
|
+
initialize!
|
|
315
347
|
end
|
|
316
348
|
|
|
317
349
|
# Get all models that are configured as visible sorted by their weight and label.
|
|
318
350
|
#
|
|
319
351
|
# @see RailsAdmin::Config::Hideable
|
|
320
|
-
|
|
321
352
|
def visible_models(bindings)
|
|
322
353
|
visible_models_with_bindings(bindings).sort do |a, b|
|
|
323
354
|
if (weight_order = a.weight <=> b.weight) == 0
|
|
324
|
-
a.label.
|
|
355
|
+
a.label.casecmp(b.label)
|
|
325
356
|
else
|
|
326
357
|
weight_order
|
|
327
358
|
end
|
|
@@ -338,9 +369,9 @@ module RailsAdmin
|
|
|
338
369
|
included_models.collect(&:to_s).presence || begin
|
|
339
370
|
@@system_models ||= # memoization for tests
|
|
340
371
|
([Rails.application] + Rails::Engine.subclasses.collect(&:instance)).flat_map do |app|
|
|
341
|
-
(app.paths['app/models'].to_a + app.
|
|
372
|
+
(app.paths['app/models'].to_a + app.config.eager_load_paths).collect do |load_path|
|
|
342
373
|
Dir.glob(app.root.join(load_path)).collect do |load_dir|
|
|
343
|
-
Dir.glob(load_dir
|
|
374
|
+
Dir.glob("#{load_dir}/**/*.rb").collect do |filename|
|
|
344
375
|
# app/models/module/class.rb => module/class.rb => module/class => Module::Class
|
|
345
376
|
lchomp(filename, "#{app.root.join(load_dir)}/").chomp('.rb').camelize
|
|
346
377
|
end
|
data/lib/rails_admin/engine.rb
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
require 'jquery-rails'
|
|
2
|
-
require 'jquery-ui-rails'
|
|
3
1
|
require 'kaminari'
|
|
4
2
|
require 'nested_form'
|
|
5
3
|
require 'rack-pjax'
|
|
6
4
|
require 'rails'
|
|
7
5
|
require 'rails_admin'
|
|
8
|
-
require 'remotipart'
|
|
9
6
|
|
|
10
7
|
module RailsAdmin
|
|
11
8
|
class Engine < Rails::Engine
|
|
@@ -14,27 +11,38 @@ module RailsAdmin
|
|
|
14
11
|
config.action_dispatch.rescue_responses['RailsAdmin::ActionNotAllowed'] = :forbidden
|
|
15
12
|
|
|
16
13
|
initializer 'RailsAdmin precompile hook', group: :all do |app|
|
|
17
|
-
app.config.assets
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
if app.config.respond_to?(:assets)
|
|
15
|
+
app.config.assets.precompile += %w[
|
|
16
|
+
rails_admin.js
|
|
17
|
+
rails_admin.css
|
|
18
|
+
]
|
|
19
|
+
app.config.assets.paths << RailsAdmin::Engine.root.join('src')
|
|
20
|
+
require 'rails_admin/support/esmodule_preprocessor'
|
|
21
|
+
Sprockets.register_preprocessor 'application/javascript', RailsAdmin::ESModulePreprocessor
|
|
22
|
+
end
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
initializer 'RailsAdmin setup middlewares' do |app|
|
|
26
26
|
app.config.middleware.use Rack::Pjax
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
initializer 'RailsAdmin reload config in development' do
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
initializer 'RailsAdmin reload config in development' do |app|
|
|
30
|
+
config.initializer_path = app.root.join('config/initializers/rails_admin.rb')
|
|
31
|
+
|
|
32
|
+
unless Rails.application.config.cache_classes
|
|
33
|
+
ActiveSupport::Reloader.before_class_unload do
|
|
34
|
+
RailsAdmin::Config.reload!
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
reloader = app.config.file_watcher.new([config.initializer_path], []) do
|
|
38
|
+
# Do nothing, ActiveSupport::Reloader will trigger class_unload! anyway
|
|
37
39
|
end
|
|
40
|
+
|
|
41
|
+
app.reloaders << reloader
|
|
42
|
+
app.reloader.to_run do
|
|
43
|
+
reloader.execute_if_updated { require_unload_lock! }
|
|
44
|
+
end
|
|
45
|
+
reloader.execute
|
|
38
46
|
end
|
|
39
47
|
end
|
|
40
48
|
|
|
@@ -49,20 +57,25 @@ module RailsAdmin
|
|
|
49
57
|
m.klass.name =~ /^ActionDispatch::Session::/
|
|
50
58
|
end
|
|
51
59
|
loaded = app.config.middleware.to_a.map(&:name)
|
|
52
|
-
required = %w
|
|
60
|
+
required = %w[ActionDispatch::Cookies ActionDispatch::Flash Rack::MethodOverride]
|
|
53
61
|
missing = required - loaded
|
|
54
62
|
unless missing.empty? && has_session_store
|
|
55
63
|
configs = missing.map { |m| "config.middleware.use #{m}" }
|
|
56
64
|
configs << "config.middleware.use #{app.config.session_store.try(:name) || 'ActionDispatch::Session::CookieStore'}, #{app.config.session_options}" unless has_session_store
|
|
57
|
-
raise
|
|
58
|
-
Required middlewares for RailsAdmin are not added
|
|
59
|
-
To fix this, add
|
|
65
|
+
raise <<~EOM
|
|
66
|
+
Required middlewares for RailsAdmin are not added
|
|
67
|
+
To fix this, add
|
|
60
68
|
|
|
61
|
-
|
|
69
|
+
#{configs.join("\n ")}
|
|
62
70
|
|
|
63
|
-
to config/application.rb.
|
|
71
|
+
to config/application.rb.
|
|
64
72
|
EOM
|
|
65
73
|
end
|
|
74
|
+
|
|
75
|
+
RailsAdmin::Config.initialize!
|
|
76
|
+
|
|
77
|
+
# Force route reload, since it doesn't reflect RailsAdmin action configuration yet
|
|
78
|
+
app.reload_routes!
|
|
66
79
|
end
|
|
67
80
|
end
|
|
68
81
|
end
|