rails_admin 0.8.1 → 2.2.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.
Potentially problematic release.
This version of rails_admin might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/Gemfile +17 -34
- data/LICENSE.md +1 -1
- data/README.md +34 -26
- data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +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/magnifier.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-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/custom/ui.js +1 -0
- data/app/assets/javascripts/rails_admin/jquery-ui.js.erb +8 -0
- data/app/assets/javascripts/rails_admin/jquery.migrate.js +3 -0
- data/app/assets/javascripts/rails_admin/ra.filter-box.js +148 -60
- data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +31 -26
- data/app/assets/javascripts/rails_admin/ra.filtering-select.js +211 -110
- data/app/assets/javascripts/rails_admin/ra.i18n.js +28 -0
- data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.js +59 -0
- data/app/assets/javascripts/rails_admin/ra.sidescroll.js +31 -0
- data/app/assets/javascripts/rails_admin/ra.widgets.js +379 -0
- data/app/assets/javascripts/rails_admin/rails_admin.js +5 -5
- data/app/assets/javascripts/rails_admin/ui.js +135 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +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 +5 -5
- data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +29 -0
- data/app/assets/stylesheets/rails_admin/ra.widgets.scss +9 -1
- data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +2 -1
- data/app/controllers/rails_admin/application_controller.rb +14 -8
- data/app/controllers/rails_admin/main_controller.rb +9 -9
- data/app/helpers/rails_admin/application_helper.rb +26 -11
- data/app/helpers/rails_admin/form_builder.rb +20 -12
- data/app/helpers/rails_admin/main_helper.rb +8 -7
- data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_gap.html.haml +0 -0
- data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_next_page.html.haml +0 -0
- data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_page.html.haml +0 -0
- data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_paginator.html.haml +0 -0
- data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_prev_page.html.haml +0 -0
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.haml +4 -0
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.haml +4 -0
- data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.haml +4 -0
- data/app/views/layouts/rails_admin/_head.html.haml +7 -0
- data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +2 -2
- data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +2 -1
- data/app/views/layouts/rails_admin/application.html.haml +4 -10
- data/app/views/layouts/rails_admin/pjax.html.haml +1 -5
- data/app/views/rails_admin/main/_delete_notice.html.haml +14 -9
- data/app/views/rails_admin/main/_form_action_text.html.haml +7 -0
- data/app/views/rails_admin/main/_form_colorpicker.html.haml +1 -1
- data/app/views/rails_admin/main/_form_enumeration.html.haml +4 -3
- data/app/views/rails_admin/main/_form_file_upload.html.haml +5 -5
- data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +7 -6
- data/app/views/rails_admin/main/_form_filtering_select.html.haml +1 -1
- data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +16 -0
- data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +18 -3
- data/app/views/rails_admin/main/_form_simple_mde.haml +8 -0
- data/app/views/rails_admin/main/dashboard.html.haml +5 -6
- data/app/views/rails_admin/main/export.html.haml +45 -36
- data/app/views/rails_admin/main/history.html.haml +3 -3
- data/app/views/rails_admin/main/index.html.haml +37 -26
- data/app/views/rails_admin/main/show.html.haml +6 -7
- data/config/initializers/active_record_extensions.rb +3 -3
- data/config/initializers/haml.rb +4 -1
- data/config/locales/rails_admin.en.yml +5 -2
- data/lib/generators/rails_admin/templates/initializer.erb +6 -2
- data/lib/rails_admin/abstract_model.rb +9 -10
- data/lib/rails_admin/adapters/active_record/abstract_object.rb +9 -3
- data/lib/rails_admin/adapters/active_record/property.rb +1 -5
- data/lib/rails_admin/adapters/active_record.rb +83 -28
- data/lib/rails_admin/adapters/mongoid/abstract_object.rb +3 -3
- data/lib/rails_admin/adapters/mongoid/association.rb +18 -6
- data/lib/rails_admin/adapters/mongoid/bson.rb +29 -0
- data/lib/rails_admin/adapters/mongoid/extension.rb +4 -2
- data/lib/rails_admin/adapters/mongoid/property.rb +3 -3
- data/lib/rails_admin/adapters/mongoid.rb +40 -26
- data/lib/rails_admin/bootstrap-sass/compass_functions.rb +1 -1
- data/lib/rails_admin/bootstrap-sass/sass_functions.rb +1 -3
- data/lib/rails_admin/bootstrap-sass.rb +8 -6
- data/lib/rails_admin/config/actions/base.rb +20 -5
- data/lib/rails_admin/config/actions/bulk_delete.rb +2 -4
- data/lib/rails_admin/config/actions/dashboard.rb +9 -5
- data/lib/rails_admin/config/actions/edit.rb +1 -3
- data/lib/rails_admin/config/actions/export.rb +1 -1
- data/lib/rails_admin/config/actions/index.rb +5 -3
- data/lib/rails_admin/config/actions/new.rb +4 -5
- data/lib/rails_admin/config/actions.rb +1 -1
- data/lib/rails_admin/config/configurable.rb +25 -18
- data/lib/rails_admin/config/fields/association.rb +11 -3
- data/lib/rails_admin/config/fields/base.rb +20 -27
- data/lib/rails_admin/config/fields/factories/action_text.rb +12 -0
- data/lib/rails_admin/config/fields/factories/active_storage.rb +30 -0
- data/lib/rails_admin/config/fields/factories/carrierwave.rb +4 -2
- data/lib/rails_admin/config/fields/factories/dragonfly.rb +1 -1
- data/lib/rails_admin/config/fields/factories/shrine.rb +27 -0
- data/lib/rails_admin/config/fields/types/action_text.rb +30 -0
- data/lib/rails_admin/config/fields/types/active_record_enum.rb +19 -2
- data/lib/rails_admin/config/fields/types/active_storage.rb +49 -0
- data/lib/rails_admin/config/fields/types/all.rb +7 -1
- data/lib/rails_admin/config/fields/types/belongs_to_association.rb +8 -0
- data/lib/rails_admin/config/fields/types/bson_object_id.rb +1 -15
- data/lib/rails_admin/config/fields/types/ck_editor.rb +7 -7
- data/lib/rails_admin/config/fields/types/code_mirror.rb +10 -12
- data/lib/rails_admin/config/fields/types/color.rb +2 -2
- data/lib/rails_admin/config/fields/types/datetime.rb +6 -3
- data/lib/rails_admin/config/fields/types/file_upload.rb +12 -4
- data/lib/rails_admin/config/fields/types/froala.rb +9 -11
- data/lib/rails_admin/config/fields/types/has_many_association.rb +1 -1
- data/lib/rails_admin/config/fields/types/hidden.rb +2 -2
- data/lib/rails_admin/config/fields/types/json.rb +9 -1
- data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +53 -0
- data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +56 -0
- data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +125 -0
- data/lib/rails_admin/config/fields/types/password.rb +5 -1
- data/lib/rails_admin/config/fields/types/polymorphic_association.rb +12 -1
- data/lib/rails_admin/config/fields/types/serialized.rb +2 -2
- data/lib/rails_admin/config/fields/types/shrine.rb +54 -0
- data/lib/rails_admin/config/fields/types/simple_mde.rb +36 -0
- data/lib/rails_admin/config/fields/types/string.rb +8 -7
- data/lib/rails_admin/config/fields/types/string_like.rb +19 -0
- data/lib/rails_admin/config/fields/types/text.rb +2 -20
- data/lib/rails_admin/config/fields/types/wysihtml5.rb +14 -10
- 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 +1 -1
- data/lib/rails_admin/config/has_groups.rb +1 -1
- data/lib/rails_admin/config/hideable.rb +1 -1
- data/lib/rails_admin/config/inspectable.rb +39 -0
- data/lib/rails_admin/config/lazy_model.rb +48 -8
- data/lib/rails_admin/config/model.rb +10 -22
- data/lib/rails_admin/config/proxyable/proxy.rb +7 -9
- data/lib/rails_admin/config/proxyable.rb +13 -1
- data/lib/rails_admin/config/sections/base.rb +4 -17
- data/lib/rails_admin/config/sections/list.rb +37 -0
- data/lib/rails_admin/config.rb +46 -25
- data/lib/rails_admin/engine.rb +37 -4
- data/lib/rails_admin/extension.rb +16 -4
- data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +23 -7
- data/lib/rails_admin/extensions/cancancan.rb +1 -1
- data/lib/rails_admin/extensions/controller_extension.rb +6 -0
- data/lib/rails_admin/extensions/history/auditing_adapter.rb +2 -2
- data/lib/rails_admin/extensions/history/history.rb +2 -2
- data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +59 -17
- data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +11 -3
- data/lib/rails_admin/support/csv_converter.rb +20 -14
- data/lib/rails_admin/support/datetime.rb +7 -6
- data/lib/rails_admin/support/i18n.rb +7 -5
- data/lib/rails_admin/version.rb +2 -2
- data/lib/rails_admin.rb +23 -1
- data/lib/tasks/rails_admin.rake +16 -7
- 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 +2671 -0
- 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/bootstrap/glyphicons-halflings-white.png +0 -0
- data/vendor/assets/images/rails_admin/bootstrap/glyphicons-halflings.png +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/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
- data/{app → 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/{app → vendor}/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
- data/{app → 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/{app → vendor}/assets/images/rails_admin/colorpicker/select2.png +0 -0
- data/vendor/assets/images/rails_admin/colorpicker/slider.png +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +50 -28
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +10 -7
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +35 -20
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +48 -25
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +70 -28
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +56 -42
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +118 -40
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +26 -16
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +29 -27
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +46 -19
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +280 -60
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +5 -5
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -0
- data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +317 -150
- data/{app → vendor}/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/jquery.pjax.js +316 -161
- data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +16528 -8420
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_close.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_forms.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_grid.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_tables.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_type.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_variables.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_text-overflow.scss +0 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -0
- data/vendor/assets/stylesheets/rails_admin/font-awesome.scss +2342 -0
- data/{app → vendor}/assets/stylesheets/rails_admin/jquery.colorpicker.scss +0 -0
- metadata +214 -199
- data/app/assets/images/rails_admin/bootstrap/glyphicons-halflings-white.png +0 -0
- data/app/assets/images/rails_admin/bootstrap/glyphicons-halflings.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/select.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/slider.png +0 -0
- data/app/assets/javascripts/rails_admin/custom/ui.coffee +0 -1
- data/app/assets/javascripts/rails_admin/jquery.remotipart.fixed.js +0 -72
- data/app/assets/javascripts/rails_admin/ra.i18n.coffee +0 -8
- data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.coffee +0 -52
- data/app/assets/javascripts/rails_admin/ra.widgets.coffee +0 -308
- data/app/assets/javascripts/rails_admin/ui.coffee +0 -102
- data/config/initializers/devise_patch.rb +0 -9
- data/lib/rails_admin/config/fields/factories/refile.rb +0 -25
- data/lib/rails_admin/config/fields/types/refile.rb +0 -27
- data/lib/rails_admin/extensions/cancan/authorization_adapter.rb +0 -57
- data/lib/rails_admin/extensions/cancan.rb +0 -3
@@ -1,31 +1,13 @@
|
|
1
|
-
require 'rails_admin/config/fields/
|
1
|
+
require 'rails_admin/config/fields/types/string_like'
|
2
2
|
|
3
3
|
module RailsAdmin
|
4
4
|
module Config
|
5
5
|
module Fields
|
6
6
|
module Types
|
7
|
-
class Text <
|
7
|
+
class Text < StringLike
|
8
8
|
# Register field type for the type loader
|
9
9
|
RailsAdmin::Config::Fields::Types.register(self)
|
10
10
|
|
11
|
-
[:ckeditor, :ckeditor_base_location, :ckeditor_config_js, :ckeditor_location].each do |key|
|
12
|
-
register_deprecated_instance_option key do
|
13
|
-
fail("The 'field(:foo){ ckeditor true }' style DSL is deprecated. Please use 'field :foo, :ck_editor' instead.")
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
[:codemirror, :codemirror_assets, :codemirror_config, :codemirror_css_location, :codemirror_js_location].each do |key|
|
18
|
-
register_deprecated_instance_option key do
|
19
|
-
fail("The 'field(:foo){ codemirror true }' style DSL is deprecated. Please use 'field :foo, :code_mirror' instead.")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
[:bootstrap_wysihtml5, :bootstrap_wysihtml5_config_options, :bootstrap_wysihtml5_css_location, :bootstrap_wysihtml5_js_location].each do |key|
|
24
|
-
register_deprecated_instance_option key do
|
25
|
-
fail("The 'field(:foo){ bootstrap_wysihtml5 true }' style DSL is deprecated. Please use 'field :foo, :wysihtml5' instead.")
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
11
|
register_instance_option :html_attributes do
|
30
12
|
{
|
31
13
|
required: required?,
|
@@ -1,35 +1,39 @@
|
|
1
|
-
require 'rails_admin/config/fields/
|
1
|
+
require 'rails_admin/config/fields/types/text'
|
2
2
|
|
3
3
|
module RailsAdmin
|
4
4
|
module Config
|
5
5
|
module Fields
|
6
6
|
module Types
|
7
|
-
class Wysihtml5 <
|
7
|
+
class Wysihtml5 < Text
|
8
8
|
# Register field type for the type loader
|
9
9
|
RailsAdmin::Config::Fields::Types.register(self)
|
10
10
|
|
11
11
|
# If you want to have a different toolbar configuration for wysihtml5
|
12
12
|
# you can use a Ruby hash to configure these options:
|
13
|
-
# https://github.com/
|
13
|
+
# https://github.com/bootstrap-wysiwyg/bootstrap3-wysiwyg
|
14
14
|
register_instance_option :config_options do
|
15
|
-
|
15
|
+
{
|
16
|
+
toolbar: {
|
17
|
+
fa: true,
|
18
|
+
},
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
register_instance_option :version do
|
23
|
+
'0.3.3'
|
16
24
|
end
|
17
25
|
|
18
26
|
register_instance_option :css_location do
|
19
|
-
|
27
|
+
"https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-wysiwyg/#{version}/bootstrap3-wysihtml5.min.css"
|
20
28
|
end
|
21
29
|
|
22
30
|
register_instance_option :js_location do
|
23
|
-
|
31
|
+
"https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-wysiwyg/#{version}/bootstrap3-wysihtml5.all.min.js"
|
24
32
|
end
|
25
33
|
|
26
34
|
register_instance_option :partial do
|
27
35
|
:form_wysihtml5
|
28
36
|
end
|
29
|
-
|
30
|
-
[:config_options, :css_location, :js_location].each do |key|
|
31
|
-
register_deprecated_instance_option :"bootstrap_wysihtml5_#{key}", key
|
32
|
-
end
|
33
37
|
end
|
34
38
|
end
|
35
39
|
end
|
@@ -82,5 +82,7 @@ require 'rails_admin/config/fields/factories/devise'
|
|
82
82
|
require 'rails_admin/config/fields/factories/paperclip'
|
83
83
|
require 'rails_admin/config/fields/factories/dragonfly'
|
84
84
|
require 'rails_admin/config/fields/factories/carrierwave'
|
85
|
-
require 'rails_admin/config/fields/factories/
|
85
|
+
require 'rails_admin/config/fields/factories/active_storage'
|
86
|
+
require 'rails_admin/config/fields/factories/shrine'
|
87
|
+
require 'rails_admin/config/fields/factories/action_text'
|
86
88
|
require 'rails_admin/config/fields/factories/association'
|
@@ -130,7 +130,7 @@ module RailsAdmin
|
|
130
130
|
@_ro_fields = @_fields = RailsAdmin::Config::Fields.factory(self)
|
131
131
|
else
|
132
132
|
# parent is RailsAdmin::Config::Model, recursion is on Section's classes
|
133
|
-
@_ro_fields ||= parent.send(self.class.superclass.to_s.underscore.split('/').last)._fields(true).freeze
|
133
|
+
@_ro_fields ||= parent.send(self.class.superclass.to_s.underscore.split('/').last)._fields(true).clone.freeze
|
134
134
|
end
|
135
135
|
readonly ? @_ro_fields : (@_fields ||= @_ro_fields.collect(&:clone))
|
136
136
|
end
|
@@ -16,7 +16,7 @@ module RailsAdmin
|
|
16
16
|
|
17
17
|
# Reader for groups that are marked as visible
|
18
18
|
def visible_groups
|
19
|
-
parent.groups.collect { |f| f.section = self; f.with(bindings) }.select(&:visible?).select do |g| # rubocop:disable Semicolon
|
19
|
+
parent.groups.collect { |f| f.section = self; f.with(bindings) }.select(&:visible?).select do |g| # rubocop:disable Style/Semicolon
|
20
20
|
g.visible_fields.present?
|
21
21
|
end
|
22
22
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module RailsAdmin
|
2
|
+
module Config
|
3
|
+
module Inspectable
|
4
|
+
def inspect
|
5
|
+
set_named_instance_variables
|
6
|
+
|
7
|
+
instance_name = try(:name) || try(:abstract_model).try(:model).try(:name)
|
8
|
+
instance_name = instance_name ? "[#{instance_name}]" : ''
|
9
|
+
|
10
|
+
instance_vars = instance_variables.collect do |v|
|
11
|
+
instance_variable_name(v)
|
12
|
+
end.join(', ')
|
13
|
+
|
14
|
+
"#<#{self.class.name}#{instance_name} #{instance_vars}>"
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def instance_variable_name(variable)
|
20
|
+
value = instance_variable_get(variable)
|
21
|
+
if self.class::NAMED_INSTANCE_VARIABLES.include?(variable)
|
22
|
+
if value.respond_to?(:name)
|
23
|
+
"#{variable}=#{value.name.inspect}"
|
24
|
+
else
|
25
|
+
"#{variable}=#{value.class.name}"
|
26
|
+
end
|
27
|
+
else
|
28
|
+
"#{variable}=#{value.inspect}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def set_named_instance_variables
|
33
|
+
unless defined?(self.class::NAMED_INSTANCE_VARIABLES)
|
34
|
+
self.class.const_set('NAMED_INSTANCE_VARIABLES', [])
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -5,23 +5,63 @@ module RailsAdmin
|
|
5
5
|
class LazyModel < BasicObject
|
6
6
|
def initialize(entity, &block)
|
7
7
|
@entity = entity
|
8
|
-
@
|
8
|
+
@deferred_blocks = [*block]
|
9
|
+
@existing_blocks = []
|
10
|
+
end
|
11
|
+
|
12
|
+
def add_deferred_block(&block)
|
13
|
+
@deferred_blocks << block
|
9
14
|
end
|
10
15
|
|
11
16
|
def target
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
@model ||= ::RailsAdmin::Config::Model.new(@entity)
|
18
|
+
# When evaluating multiple configuration blocks, the order of
|
19
|
+
# execution is important. As one would expect (in my opinion),
|
20
|
+
# options defined within a resource should take precedence over
|
21
|
+
# more general options defined in an initializer. This way,
|
22
|
+
# general settings for a number of resources could be specified
|
23
|
+
# in the initializer, while models could override these settings
|
24
|
+
# later, if required.
|
25
|
+
#
|
26
|
+
# CAVEAT: It cannot be guaranteed that blocks defined in an initializer
|
27
|
+
# will be loaded (and adde to @deferred_blocks) first. For instance, if
|
28
|
+
# the initializer references a model class before defining
|
29
|
+
# a RailsAdmin configuration block, the configuration from the
|
30
|
+
# resource will get added to @deferred_blocks first:
|
31
|
+
#
|
32
|
+
# # app/models/some_model.rb
|
33
|
+
# class SomeModel
|
34
|
+
# rails_admin do
|
35
|
+
# :
|
36
|
+
# end
|
37
|
+
# end
|
38
|
+
#
|
39
|
+
# # config/initializers/rails_admin.rb
|
40
|
+
# model = 'SomeModel'.constantize # blocks from SomeModel get loaded
|
41
|
+
# model.config model do # blocks from initializer gets loaded
|
42
|
+
# :
|
43
|
+
# end
|
44
|
+
#
|
45
|
+
# Thus, sort all blocks to excute for a resource by Proc.source_path,
|
46
|
+
# to guarantee that blocks from 'config/initializers' evaluate before
|
47
|
+
# blocks defined within a model class.
|
48
|
+
unless @deferred_blocks.empty?
|
49
|
+
@existing_blocks += @deferred_blocks
|
50
|
+
@existing_blocks.
|
51
|
+
partition { |block| block.source_location.first =~ %r{config\/initializers} }.
|
52
|
+
flatten.
|
53
|
+
each { |block| @model.instance_eval(&block) }
|
54
|
+
@deferred_blocks = []
|
15
55
|
end
|
16
56
|
@model
|
17
57
|
end
|
18
58
|
|
19
|
-
def method_missing(
|
20
|
-
target.send(
|
59
|
+
def method_missing(method_name, *args, &block)
|
60
|
+
target.send(method_name, *args, &block)
|
21
61
|
end
|
22
62
|
|
23
|
-
def respond_to?(
|
24
|
-
super || target.respond_to?(
|
63
|
+
def respond_to?(method_name, include_private = false)
|
64
|
+
super || target.respond_to?(method_name, include_private)
|
25
65
|
end
|
26
66
|
end
|
27
67
|
end
|
@@ -9,6 +9,7 @@ require 'rails_admin/config/has_fields'
|
|
9
9
|
require 'rails_admin/config/has_description'
|
10
10
|
require 'rails_admin/config/sections'
|
11
11
|
require 'rails_admin/config/actions'
|
12
|
+
require 'rails_admin/config/inspectable'
|
12
13
|
|
13
14
|
module RailsAdmin
|
14
15
|
module Config
|
@@ -18,11 +19,14 @@ module RailsAdmin
|
|
18
19
|
include RailsAdmin::Config::Configurable
|
19
20
|
include RailsAdmin::Config::Hideable
|
20
21
|
include RailsAdmin::Config::Sections
|
22
|
+
include RailsAdmin::Config::Inspectable
|
21
23
|
|
22
24
|
attr_reader :abstract_model
|
23
25
|
attr_accessor :groups
|
24
26
|
attr_reader :parent, :root
|
25
27
|
|
28
|
+
NAMED_INSTANCE_VARIABLES = [:@parent, :@root].freeze
|
29
|
+
|
26
30
|
def initialize(entity)
|
27
31
|
@parent = nil
|
28
32
|
@root = self
|
@@ -40,7 +44,8 @@ module RailsAdmin
|
|
40
44
|
end
|
41
45
|
|
42
46
|
def excluded?
|
43
|
-
@excluded
|
47
|
+
return @excluded if defined?(@excluded)
|
48
|
+
@excluded = !RailsAdmin::AbstractModel.all.collect(&:model_name).include?(abstract_model.try(:model_name))
|
44
49
|
end
|
45
50
|
|
46
51
|
def object_label
|
@@ -61,7 +66,7 @@ module RailsAdmin
|
|
61
66
|
end
|
62
67
|
|
63
68
|
register_instance_option :label_plural do
|
64
|
-
(@label_plural ||= {})[::I18n.locale] ||= abstract_model.model.model_name.human(count: Float::INFINITY, default: label.pluralize)
|
69
|
+
(@label_plural ||= {})[::I18n.locale] ||= abstract_model.model.model_name.human(count: Float::INFINITY, default: label.pluralize(::I18n.locale))
|
65
70
|
end
|
66
71
|
|
67
72
|
def pluralize(count)
|
@@ -83,7 +88,7 @@ module RailsAdmin
|
|
83
88
|
|
84
89
|
register_instance_option :navigation_label do
|
85
90
|
@navigation_label ||= begin
|
86
|
-
if (parent_module = abstract_model.model.parent) != Object
|
91
|
+
if (parent_module = abstract_model.model.try(:module_parent) || abstract_model.model.try!(:parent)) != Object
|
87
92
|
parent_module.to_s
|
88
93
|
end
|
89
94
|
end
|
@@ -95,25 +100,8 @@ module RailsAdmin
|
|
95
100
|
|
96
101
|
# Act as a proxy for the base section configuration that actually
|
97
102
|
# store the configurations.
|
98
|
-
def method_missing(
|
99
|
-
send(:base).send(
|
100
|
-
end
|
101
|
-
|
102
|
-
def inspect
|
103
|
-
"#<#{self.class.name}[#{abstract_model.model.name}] #{
|
104
|
-
instance_variables.collect do |v|
|
105
|
-
value = instance_variable_get(v)
|
106
|
-
if [:@parent, :@root].include? v
|
107
|
-
if value.respond_to? :name
|
108
|
-
"#{v}=#{value.name.inspect}"
|
109
|
-
else
|
110
|
-
"#{v}=#{value.class.name}"
|
111
|
-
end
|
112
|
-
else
|
113
|
-
"#{v}=#{value.inspect}"
|
114
|
-
end
|
115
|
-
end.join(', ')
|
116
|
-
}>"
|
103
|
+
def method_missing(method_name, *args, &block)
|
104
|
+
send(:base).send(method_name, *args, &block)
|
117
105
|
end
|
118
106
|
end
|
119
107
|
end
|
@@ -2,8 +2,6 @@ module RailsAdmin
|
|
2
2
|
module Config
|
3
3
|
module Proxyable
|
4
4
|
class Proxy < BasicObject
|
5
|
-
attr_reader :bindings
|
6
|
-
|
7
5
|
def initialize(object, bindings = {})
|
8
6
|
@object = object
|
9
7
|
@bindings = bindings
|
@@ -19,18 +17,18 @@ module RailsAdmin
|
|
19
17
|
self
|
20
18
|
end
|
21
19
|
|
22
|
-
def method_missing(
|
23
|
-
if @object.respond_to?(
|
24
|
-
reset = @object.
|
20
|
+
def method_missing(method_name, *args, &block)
|
21
|
+
if @object.respond_to?(method_name)
|
22
|
+
reset = @object.bindings
|
25
23
|
begin
|
26
|
-
@object.
|
27
|
-
response = @object.__send__(
|
24
|
+
@object.bindings = @bindings
|
25
|
+
response = @object.__send__(method_name, *args, &block)
|
28
26
|
ensure
|
29
|
-
@object.
|
27
|
+
@object.bindings = reset
|
30
28
|
end
|
31
29
|
response
|
32
30
|
else
|
33
|
-
super(
|
31
|
+
super(method_name, *args, &block)
|
34
32
|
end
|
35
33
|
end
|
36
34
|
end
|
@@ -2,7 +2,19 @@ require 'rails_admin/config/proxyable/proxy'
|
|
2
2
|
module RailsAdmin
|
3
3
|
module Config
|
4
4
|
module Proxyable
|
5
|
-
|
5
|
+
def bindings
|
6
|
+
Thread.current[:rails_admin_bindings] ||= {}
|
7
|
+
Thread.current[:rails_admin_bindings][self]
|
8
|
+
end
|
9
|
+
|
10
|
+
def bindings=(new_bindings)
|
11
|
+
Thread.current[:rails_admin_bindings] ||= {}
|
12
|
+
if new_bindings.nil?
|
13
|
+
Thread.current[:rails_admin_bindings].delete(self)
|
14
|
+
else
|
15
|
+
Thread.current[:rails_admin_bindings][self] = new_bindings
|
16
|
+
end
|
17
|
+
end
|
6
18
|
|
7
19
|
def with(bindings = {})
|
8
20
|
RailsAdmin::Config::Proxyable::Proxy.new(self, bindings)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'rails_admin/config/proxyable'
|
2
2
|
require 'rails_admin/config/configurable'
|
3
|
+
require 'rails_admin/config/inspectable'
|
3
4
|
require 'rails_admin/config/has_fields'
|
4
5
|
require 'rails_admin/config/has_groups'
|
5
6
|
require 'rails_admin/config/has_description'
|
@@ -11,6 +12,7 @@ module RailsAdmin
|
|
11
12
|
class Base
|
12
13
|
include RailsAdmin::Config::Proxyable
|
13
14
|
include RailsAdmin::Config::Configurable
|
15
|
+
include RailsAdmin::Config::Inspectable
|
14
16
|
|
15
17
|
include RailsAdmin::Config::HasFields
|
16
18
|
include RailsAdmin::Config::HasGroups
|
@@ -19,29 +21,14 @@ module RailsAdmin
|
|
19
21
|
attr_reader :abstract_model
|
20
22
|
attr_reader :parent, :root
|
21
23
|
|
24
|
+
NAMED_INSTANCE_VARIABLES = [:@parent, :@root, :@abstract_model].freeze
|
25
|
+
|
22
26
|
def initialize(parent)
|
23
27
|
@parent = parent
|
24
28
|
@root = parent.root
|
25
29
|
|
26
30
|
@abstract_model = root.abstract_model
|
27
31
|
end
|
28
|
-
|
29
|
-
def inspect
|
30
|
-
"#<#{self.class.name} #{
|
31
|
-
instance_variables.collect do |v|
|
32
|
-
value = instance_variable_get(v)
|
33
|
-
if [:@parent, :@root, :@abstract_model].include? v
|
34
|
-
if value.respond_to? :name
|
35
|
-
"#{v}=#{value.name.inspect}"
|
36
|
-
else
|
37
|
-
"#{v}=#{value.class.name}"
|
38
|
-
end
|
39
|
-
else
|
40
|
-
"#{v}=#{value.inspect}"
|
41
|
-
end
|
42
|
-
end.join(', ')
|
43
|
-
}>"
|
44
|
-
end
|
45
32
|
end
|
46
33
|
end
|
47
34
|
end
|
@@ -5,6 +5,10 @@ module RailsAdmin
|
|
5
5
|
module Sections
|
6
6
|
# Configuration of the list view
|
7
7
|
class List < RailsAdmin::Config::Sections::Base
|
8
|
+
register_instance_option :checkboxes? do
|
9
|
+
true
|
10
|
+
end
|
11
|
+
|
8
12
|
register_instance_option :filters do
|
9
13
|
[]
|
10
14
|
end
|
@@ -14,6 +18,16 @@ module RailsAdmin
|
|
14
18
|
RailsAdmin::Config.default_items_per_page
|
15
19
|
end
|
16
20
|
|
21
|
+
# Positive value shows only prev, next links in pagination.
|
22
|
+
# This is for avoiding count(*) query.
|
23
|
+
register_instance_option :limited_pagination do
|
24
|
+
false
|
25
|
+
end
|
26
|
+
|
27
|
+
register_instance_option :search_by do
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
|
17
31
|
register_instance_option :sort_by do
|
18
32
|
parent.abstract_model.primary_key
|
19
33
|
end
|
@@ -25,6 +39,29 @@ module RailsAdmin
|
|
25
39
|
register_instance_option :scopes do
|
26
40
|
[]
|
27
41
|
end
|
42
|
+
|
43
|
+
register_instance_option :row_css_class do
|
44
|
+
''
|
45
|
+
end
|
46
|
+
|
47
|
+
register_instance_option :sidescroll do
|
48
|
+
nil
|
49
|
+
end
|
50
|
+
|
51
|
+
def sidescroll_frozen_columns
|
52
|
+
global_config = RailsAdmin::Config.sidescroll
|
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
|
64
|
+
end
|
28
65
|
end
|
29
66
|
end
|
30
67
|
end
|
data/lib/rails_admin/config.rb
CHANGED
@@ -41,6 +41,9 @@ module RailsAdmin
|
|
41
41
|
# been configured
|
42
42
|
attr_accessor :default_items_per_page
|
43
43
|
|
44
|
+
# Default association limit
|
45
|
+
attr_accessor :default_associated_collection_limit
|
46
|
+
|
44
47
|
attr_reader :default_search_operator
|
45
48
|
|
46
49
|
# Configuration option to specify which method names will be searched for
|
@@ -56,22 +59,29 @@ module RailsAdmin
|
|
56
59
|
# Set the max width of columns in list view before a new set is created
|
57
60
|
attr_accessor :total_columns_width
|
58
61
|
|
62
|
+
# Enable horizontal-scrolling table in list view, ignore total_columns_width
|
63
|
+
attr_accessor :sidescroll
|
64
|
+
|
59
65
|
# set parent controller
|
60
66
|
attr_accessor :parent_controller
|
61
67
|
|
68
|
+
# set settings for `protect_from_forgery` method
|
69
|
+
# By default, it raises exception upon invalid CSRF tokens
|
70
|
+
attr_accessor :forgery_protection_settings
|
71
|
+
|
62
72
|
# Stores model configuration objects in a hash identified by model's class
|
63
73
|
# name.
|
64
74
|
#
|
65
75
|
# @see RailsAdmin.config
|
66
76
|
attr_reader :registry
|
67
77
|
|
78
|
+
# show Gravatar in Navigation bar
|
79
|
+
attr_accessor :show_gravatar
|
80
|
+
|
68
81
|
# accepts a hash of static links to be shown below the main navigation
|
69
82
|
attr_accessor :navigation_static_links
|
70
83
|
attr_accessor :navigation_static_label
|
71
84
|
|
72
|
-
# yell about fields that are not marked as accessible
|
73
|
-
attr_accessor :yell_for_non_accessible_fields
|
74
|
-
|
75
85
|
# Setup authentication to be run as a before filter
|
76
86
|
# This is run inside the controller instance so you can setup any authentication you need to
|
77
87
|
#
|
@@ -104,11 +114,13 @@ module RailsAdmin
|
|
104
114
|
def audit_with(*args, &block)
|
105
115
|
extension = args.shift
|
106
116
|
if extension
|
117
|
+
klass = RailsAdmin::AUDITING_ADAPTERS[extension]
|
118
|
+
klass.setup if klass.respond_to? :setup
|
107
119
|
@audit = proc do
|
108
|
-
@auditing_adapter =
|
120
|
+
@auditing_adapter = klass.new(*([self] + args).compact)
|
109
121
|
end
|
110
|
-
|
111
|
-
@audit = block
|
122
|
+
elsif block
|
123
|
+
@audit = block
|
112
124
|
end
|
113
125
|
@audit || DEFAULT_AUDIT
|
114
126
|
end
|
@@ -126,11 +138,11 @@ module RailsAdmin
|
|
126
138
|
# end
|
127
139
|
#
|
128
140
|
# To use an authorization adapter, pass the name of the adapter. For example,
|
129
|
-
# to use with
|
141
|
+
# to use with CanCanCan[https://github.com/CanCanCommunity/cancancan/], pass it like this.
|
130
142
|
#
|
131
|
-
# @example
|
143
|
+
# @example CanCanCan
|
132
144
|
# RailsAdmin.config do |config|
|
133
|
-
# config.authorize_with :
|
145
|
+
# config.authorize_with :cancancan
|
134
146
|
# end
|
135
147
|
#
|
136
148
|
# See the wiki[https://github.com/sferik/rails_admin/wiki] for more on authorization.
|
@@ -139,11 +151,13 @@ module RailsAdmin
|
|
139
151
|
def authorize_with(*args, &block)
|
140
152
|
extension = args.shift
|
141
153
|
if extension
|
154
|
+
klass = RailsAdmin::AUTHORIZATION_ADAPTERS[extension]
|
155
|
+
klass.setup if klass.respond_to? :setup
|
142
156
|
@authorize = proc do
|
143
|
-
@authorization_adapter =
|
157
|
+
@authorization_adapter = klass.new(*([self] + args).compact)
|
144
158
|
end
|
145
|
-
|
146
|
-
@authorize = block
|
159
|
+
elsif block
|
160
|
+
@authorize = block
|
147
161
|
end
|
148
162
|
@authorize || DEFAULT_AUTHORIZE
|
149
163
|
end
|
@@ -187,15 +201,13 @@ module RailsAdmin
|
|
187
201
|
if %w(default like starts_with ends_with is =).include? operator
|
188
202
|
@default_search_operator = operator
|
189
203
|
else
|
190
|
-
|
204
|
+
raise(ArgumentError.new("Search operator '#{operator}' not supported"))
|
191
205
|
end
|
192
206
|
end
|
193
207
|
|
194
208
|
# pool of all found model names from the whole application
|
195
209
|
def models_pool
|
196
|
-
|
197
|
-
|
198
|
-
(viable_models - excluded).uniq.sort
|
210
|
+
(viable_models - excluded_models.collect(&:to_s)).uniq.sort
|
199
211
|
end
|
200
212
|
|
201
213
|
# Loads a model configuration instance from the registry or registers
|
@@ -223,11 +235,9 @@ module RailsAdmin
|
|
223
235
|
end
|
224
236
|
end
|
225
237
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
@registry[key] ||= RailsAdmin::Config::LazyModel.new(entity)
|
230
|
-
end
|
238
|
+
@registry[key] ||= RailsAdmin::Config::LazyModel.new(entity)
|
239
|
+
@registry[key].add_deferred_block(&block) if block
|
240
|
+
@registry[key]
|
231
241
|
end
|
232
242
|
|
233
243
|
def default_hidden_fields=(fields)
|
@@ -258,7 +268,6 @@ module RailsAdmin
|
|
258
268
|
def reset
|
259
269
|
@compact_show_view = true
|
260
270
|
@browser_validations = true
|
261
|
-
@yell_for_non_accessible_fields = true
|
262
271
|
@authenticate = nil
|
263
272
|
@authorize = nil
|
264
273
|
@audit = nil
|
@@ -268,16 +277,20 @@ module RailsAdmin
|
|
268
277
|
@default_hidden_fields[:edit] = [:id, :_id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on]
|
269
278
|
@default_hidden_fields[:show] = [:id, :_id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on]
|
270
279
|
@default_items_per_page = 20
|
280
|
+
@default_associated_collection_limit = 100
|
271
281
|
@default_search_operator = 'default'
|
272
282
|
@excluded_models = []
|
273
283
|
@included_models = []
|
274
284
|
@total_columns_width = 697
|
285
|
+
@sidescroll = nil
|
275
286
|
@label_methods = [:name, :title]
|
276
287
|
@main_app_name = proc { [Rails.application.engine_name.titleize.chomp(' Application'), 'Admin'] }
|
277
288
|
@registry = {}
|
289
|
+
@show_gravatar = true
|
278
290
|
@navigation_static_links = {}
|
279
291
|
@navigation_static_label = nil
|
280
|
-
@parent_controller = '::
|
292
|
+
@parent_controller = '::ActionController::Base'
|
293
|
+
@forgery_protection_settings = {with: :exception}
|
281
294
|
RailsAdmin::Config::Actions.reset
|
282
295
|
end
|
283
296
|
|
@@ -289,6 +302,14 @@ module RailsAdmin
|
|
289
302
|
@registry.delete(key)
|
290
303
|
end
|
291
304
|
|
305
|
+
# Reset all models configuration
|
306
|
+
# Used to clear all configurations when reloading code in development.
|
307
|
+
# @see RailsAdmin::Engine
|
308
|
+
# @see RailsAdmin::Config.registry
|
309
|
+
def reset_all_models
|
310
|
+
@registry = {}
|
311
|
+
end
|
312
|
+
|
292
313
|
# Get all models that are configured as visible sorted by their weight and label.
|
293
314
|
#
|
294
315
|
# @see RailsAdmin::Config::Hideable
|
@@ -313,7 +334,7 @@ module RailsAdmin
|
|
313
334
|
included_models.collect(&:to_s).presence || begin
|
314
335
|
@@system_models ||= # memoization for tests
|
315
336
|
([Rails.application] + Rails::Engine.subclasses.collect(&:instance)).flat_map do |app|
|
316
|
-
(app.paths['app/models'].to_a + app.
|
337
|
+
(app.paths['app/models'].to_a + app.paths.eager_load).collect do |load_path|
|
317
338
|
Dir.glob(app.root.join(load_path)).collect do |load_dir|
|
318
339
|
Dir.glob(load_dir + '/**/*.rb').collect do |filename|
|
319
340
|
# app/models/module/class.rb => module/class.rb => module/class => Module::Class
|
@@ -321,7 +342,7 @@ module RailsAdmin
|
|
321
342
|
end
|
322
343
|
end
|
323
344
|
end
|
324
|
-
end.flatten.reject { |m| m.starts_with?('Concerns::') } # rubocop:disable MultilineBlockChain
|
345
|
+
end.flatten.reject { |m| m.starts_with?('Concerns::') } # rubocop:disable Style/MultilineBlockChain
|
325
346
|
end
|
326
347
|
end
|
327
348
|
|