rails_admin 1.4.3 → 2.0.2
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 -4
- data/README.md +4 -7
- data/app/assets/javascripts/rails_admin/custom/ui.js +1 -0
- data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +1 -1
- data/app/assets/javascripts/rails_admin/ra.filtering-select.js +9 -7
- 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 +1 -0
- data/app/assets/javascripts/rails_admin/ui.js +135 -0
- data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +29 -0
- data/app/assets/stylesheets/rails_admin/ra.widgets.scss +4 -0
- data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +2 -1
- data/app/controllers/rails_admin/application_controller.rb +2 -0
- data/app/helpers/rails_admin/application_helper.rb +19 -4
- data/app/helpers/rails_admin/main_helper.rb +4 -4
- data/app/views/layouts/rails_admin/_head.html.haml +7 -0
- data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +1 -1
- data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +2 -1
- data/app/views/layouts/rails_admin/application.html.haml +3 -11
- data/app/views/layouts/rails_admin/pjax.html.haml +1 -5
- data/app/views/rails_admin/main/_form_action_text.html.haml +7 -0
- data/app/views/rails_admin/main/_form_file_upload.html.haml +4 -4
- 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 +7 -5
- data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +18 -3
- data/app/views/rails_admin/main/dashboard.html.haml +1 -2
- data/app/views/rails_admin/main/export.html.haml +2 -2
- data/app/views/rails_admin/main/index.html.haml +19 -15
- data/app/views/rails_admin/main/show.html.haml +6 -7
- data/config/locales/rails_admin.en.yml +3 -0
- data/lib/generators/rails_admin/templates/initializer.erb +2 -2
- data/lib/rails_admin/abstract_model.rb +3 -3
- data/lib/rails_admin/adapters/active_record/abstract_object.rb +2 -2
- data/lib/rails_admin/adapters/active_record/property.rb +1 -5
- data/lib/rails_admin/adapters/active_record.rb +23 -10
- data/lib/rails_admin/adapters/mongoid/association.rb +1 -1
- data/lib/rails_admin/adapters/mongoid.rb +30 -13
- data/lib/rails_admin/bootstrap-sass/sass_functions.rb +1 -3
- data/lib/rails_admin/bootstrap-sass.rb +7 -3
- data/lib/rails_admin/config/actions/base.rb +17 -1
- data/lib/rails_admin/config/actions/edit.rb +1 -3
- data/lib/rails_admin/config/actions/index.rb +3 -3
- data/lib/rails_admin/config/actions/new.rb +1 -3
- data/lib/rails_admin/config/configurable.rb +6 -4
- data/lib/rails_admin/config/fields/association.rb +1 -1
- data/lib/rails_admin/config/fields/base.rb +2 -2
- data/lib/rails_admin/config/fields/factories/action_text.rb +12 -0
- 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 +3 -19
- data/lib/rails_admin/config/fields/types/active_storage.rb +1 -0
- data/lib/rails_admin/config/fields/types/all.rb +2 -1
- data/lib/rails_admin/config/fields/types/belongs_to_association.rb +4 -0
- 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/file_upload.rb +6 -2
- data/lib/rails_admin/config/fields/types/froala.rb +9 -11
- data/lib/rails_admin/config/fields/types/hidden.rb +2 -2
- data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +1 -1
- data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +15 -3
- data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +17 -3
- data/lib/rails_admin/config/fields/types/polymorphic_association.rb +7 -0
- data/lib/rails_admin/config/fields/types/shrine.rb +52 -0
- data/lib/rails_admin/config/fields/types/simple_mde.rb +8 -5
- data/lib/rails_admin/config/fields/types/string.rb +2 -2
- 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.rb +2 -1
- data/lib/rails_admin/config/has_groups.rb +1 -1
- data/lib/rails_admin/config/lazy_model.rb +4 -4
- data/lib/rails_admin/config/model.rb +5 -4
- 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/list.rb +23 -0
- data/lib/rails_admin/config.rb +9 -7
- data/lib/rails_admin/engine.rb +1 -2
- data/lib/rails_admin/extension.rb +16 -4
- data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +45 -21
- data/lib/rails_admin/extensions/controller_extension.rb +6 -0
- data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +27 -10
- data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +1 -3
- data/lib/rails_admin/support/csv_converter.rb +1 -1
- data/lib/rails_admin/version.rb +3 -3
- data/lib/rails_admin.rb +0 -1
- 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/{app → vendor}/assets/images/rails_admin/bootstrap/glyphicons-halflings-white.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/bootstrap/glyphicons-halflings.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
- data/{app → 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/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
- data/{app → 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/{app → vendor}/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/select.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/select2.png +0 -0
- data/{app → vendor}/assets/images/rails_admin/colorpicker/slider.png +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +0 -0
- 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/{app → vendor}/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -0
- data/{app → vendor}/assets/javascripts/rails_admin/jquery.pjax.js +1 -3
- data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +9451 -3263
- 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 +163 -170
- data/app/assets/javascripts/rails_admin/custom/ui.coffee +0 -1
- data/app/assets/javascripts/rails_admin/ra.i18n.coffee +0 -10
- data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.coffee +0 -58
- data/app/assets/javascripts/rails_admin/ra.widgets.coffee +0 -359
- data/app/assets/javascripts/rails_admin/ui.coffee +0 -102
- 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,35 +1,33 @@
|
|
|
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 Froala <
|
|
7
|
+
class Froala < Text
|
|
8
8
|
# Register field type for the type loader
|
|
9
9
|
RailsAdmin::Config::Fields::Types.register(self)
|
|
10
10
|
|
|
11
|
-
#
|
|
12
|
-
# you can use a Ruby hash to configure these options:
|
|
13
|
-
# https://github.com/jhollingworth/bootstrap-wysihtml5/#advanced
|
|
11
|
+
# See https://www.froala.com/wysiwyg-editor/docs/options
|
|
14
12
|
register_instance_option :config_options do
|
|
15
13
|
nil
|
|
16
14
|
end
|
|
17
15
|
|
|
16
|
+
register_instance_option :version do
|
|
17
|
+
'2.9.5'
|
|
18
|
+
end
|
|
19
|
+
|
|
18
20
|
register_instance_option :css_location do
|
|
19
|
-
|
|
21
|
+
"https://cdnjs.cloudflare.com/ajax/libs/froala-editor/#{version}/css/froala_editor.min.css"
|
|
20
22
|
end
|
|
21
23
|
|
|
22
24
|
register_instance_option :js_location do
|
|
23
|
-
|
|
25
|
+
"https://cdnjs.cloudflare.com/ajax/libs/froala-editor/#{version}/js/froala_editor.min.js"
|
|
24
26
|
end
|
|
25
27
|
|
|
26
28
|
register_instance_option :partial do
|
|
27
29
|
:form_froala
|
|
28
30
|
end
|
|
29
|
-
|
|
30
|
-
[:config_options, :css_location, :js_location].each do |key|
|
|
31
|
-
register_deprecated_instance_option :"froala_#{key}", key
|
|
32
|
-
end
|
|
33
31
|
end
|
|
34
32
|
end
|
|
35
33
|
end
|
|
@@ -1,10 +1,10 @@
|
|
|
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 Hidden <
|
|
7
|
+
class Hidden < StringLike
|
|
8
8
|
RailsAdmin::Config::Fields::Types.register(self)
|
|
9
9
|
|
|
10
10
|
register_instance_option :view_helper do
|
|
@@ -12,8 +12,12 @@ module RailsAdmin
|
|
|
12
12
|
@thumb_method ||= ((versions = value.versions.keys).detect { |k| k.in?([:thumb, :thumbnail, 'thumb', 'thumbnail']) } || versions.first.to_s)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
register_instance_option :
|
|
16
|
-
value.
|
|
15
|
+
register_instance_option :keep_value do
|
|
16
|
+
value.cache_name || value.identifier
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
register_instance_option :delete_value do
|
|
20
|
+
value.file.filename
|
|
17
21
|
end
|
|
18
22
|
|
|
19
23
|
def resource_url(thumb = false)
|
|
@@ -27,7 +31,15 @@ module RailsAdmin
|
|
|
27
31
|
end
|
|
28
32
|
|
|
29
33
|
register_instance_option :cache_method do
|
|
30
|
-
"#{name}_cache"
|
|
34
|
+
"#{name}_cache" unless ::CarrierWave::VERSION >= '2'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
register_instance_option :keep_method do
|
|
38
|
+
name if ::CarrierWave::VERSION >= '2'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
register_instance_option :reorderable? do
|
|
42
|
+
::CarrierWave::VERSION >= '2'
|
|
31
43
|
end
|
|
32
44
|
|
|
33
45
|
register_instance_option :delete_method do
|
|
@@ -19,10 +19,16 @@ module RailsAdmin
|
|
|
19
19
|
nil
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
register_instance_option :
|
|
22
|
+
register_instance_option :keep_value do
|
|
23
23
|
nil
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
+
register_instance_option :delete_value do
|
|
27
|
+
nil
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
register_deprecated_instance_option :delete_key, :delete_value
|
|
31
|
+
|
|
26
32
|
register_instance_option :pretty_value do
|
|
27
33
|
if value.presence
|
|
28
34
|
v = bindings[:view]
|
|
@@ -30,9 +36,9 @@ module RailsAdmin
|
|
|
30
36
|
if image
|
|
31
37
|
thumb_url = resource_url(thumb_method)
|
|
32
38
|
image_html = v.image_tag(thumb_url, class: 'img-thumbnail')
|
|
33
|
-
url != thumb_url ? v.link_to(image_html, url, target: '_blank') : image_html
|
|
39
|
+
url != thumb_url ? v.link_to(image_html, url, target: '_blank', rel: 'noopener noreferrer') : image_html
|
|
34
40
|
else
|
|
35
|
-
v.link_to(value, url, target: '_blank')
|
|
41
|
+
v.link_to(value, url, target: '_blank', rel: 'noopener noreferrer')
|
|
36
42
|
end
|
|
37
43
|
end
|
|
38
44
|
end
|
|
@@ -67,6 +73,14 @@ module RailsAdmin
|
|
|
67
73
|
nil
|
|
68
74
|
end
|
|
69
75
|
|
|
76
|
+
register_instance_option :keep_method do
|
|
77
|
+
nil
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
register_instance_option :reorderable? do
|
|
81
|
+
false
|
|
82
|
+
end
|
|
83
|
+
|
|
70
84
|
register_instance_option :export_value do
|
|
71
85
|
attachments.map(&:resource_url).map(&:to_s).join(',')
|
|
72
86
|
end
|
|
@@ -78,6 +78,13 @@ module RailsAdmin
|
|
|
78
78
|
def value
|
|
79
79
|
bindings[:object].send(association.name)
|
|
80
80
|
end
|
|
81
|
+
|
|
82
|
+
def parse_input(params)
|
|
83
|
+
if (type_value = params[association.foreign_type.to_sym]).present?
|
|
84
|
+
config = associated_model_config.find { |c| type_value == c.abstract_model.model.name }
|
|
85
|
+
params[association.foreign_type.to_sym] = config.abstract_model.base_class.name if config
|
|
86
|
+
end
|
|
87
|
+
end
|
|
81
88
|
end
|
|
82
89
|
end
|
|
83
90
|
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
require 'rails_admin/config/fields/types/file_upload'
|
|
2
|
+
|
|
3
|
+
module RailsAdmin
|
|
4
|
+
module Config
|
|
5
|
+
module Fields
|
|
6
|
+
module Types
|
|
7
|
+
class Shrine < RailsAdmin::Config::Fields::Types::FileUpload
|
|
8
|
+
RailsAdmin::Config::Fields::Types.register(self)
|
|
9
|
+
|
|
10
|
+
register_instance_option :thumb_method do
|
|
11
|
+
unless defined? @thumb_method
|
|
12
|
+
@thumb_method = begin
|
|
13
|
+
next nil unless value.is_a?(Hash)
|
|
14
|
+
|
|
15
|
+
if value.key?(:thumb)
|
|
16
|
+
:thumb
|
|
17
|
+
elsif value.key?(:thumbnail)
|
|
18
|
+
:thumbnail
|
|
19
|
+
else
|
|
20
|
+
value.keys.first
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
@thumb_method
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
register_instance_option :delete_method do
|
|
28
|
+
"remove_#{name}" if bindings[:object].respond_to?("remove_#{name}")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
register_instance_option :cache_method do
|
|
32
|
+
name
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
register_instance_option :cache_value do
|
|
36
|
+
bindings[:object].public_send("cached_#{name}_data") if bindings[:object].respond_to?("cached_#{name}_data")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def resource_url(thumb = nil)
|
|
40
|
+
return nil unless value
|
|
41
|
+
|
|
42
|
+
if value.is_a?(Hash)
|
|
43
|
+
value[thumb || value.keys.first].url
|
|
44
|
+
else
|
|
45
|
+
value.url
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -1,10 +1,10 @@
|
|
|
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 SimpleMDE <
|
|
7
|
+
class SimpleMDE < Text
|
|
8
8
|
# Register field type for the type loader
|
|
9
9
|
RailsAdmin::Config::Fields::Types.register(self)
|
|
10
10
|
|
|
@@ -14,13 +14,16 @@ module RailsAdmin
|
|
|
14
14
|
nil
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
register_instance_option :version do
|
|
18
|
+
'1.11.2'
|
|
19
|
+
end
|
|
20
|
+
|
|
18
21
|
register_instance_option :js_location do
|
|
19
|
-
"
|
|
22
|
+
"https://cdnjs.cloudflare.com/ajax/libs/simplemde/#{version}/simplemde.min.js"
|
|
20
23
|
end
|
|
21
24
|
|
|
22
25
|
register_instance_option :css_location do
|
|
23
|
-
"
|
|
26
|
+
"https://cdnjs.cloudflare.com/ajax/libs/simplemde/#{version}/simplemde.min.css"
|
|
24
27
|
end
|
|
25
28
|
|
|
26
29
|
register_instance_option :partial do
|
|
@@ -1,10 +1,10 @@
|
|
|
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 String <
|
|
7
|
+
class String < StringLike
|
|
8
8
|
RailsAdmin::Config::Fields::Types.register(self)
|
|
9
9
|
|
|
10
10
|
def input_size
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'rails_admin/config/fields/base'
|
|
2
|
+
|
|
3
|
+
module RailsAdmin
|
|
4
|
+
module Config
|
|
5
|
+
module Fields
|
|
6
|
+
module Types
|
|
7
|
+
class StringLike < RailsAdmin::Config::Fields::Base
|
|
8
|
+
register_instance_option :treat_empty_as_nil? do
|
|
9
|
+
properties.try(:nullable?)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def parse_input(params)
|
|
13
|
+
params[name] = params[name].presence if params.key?(name) && treat_empty_as_nil?
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -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
|
-
raise("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
|
-
raise("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
|
-
raise("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,6 +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/refile'
|
|
86
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'
|
|
87
88
|
require 'rails_admin/config/fields/factories/association'
|
|
@@ -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
|
|
@@ -56,12 +56,12 @@ module RailsAdmin
|
|
|
56
56
|
@model
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
def method_missing(
|
|
60
|
-
target.send(
|
|
59
|
+
def method_missing(method_name, *args, &block)
|
|
60
|
+
target.send(method_name, *args, &block)
|
|
61
61
|
end
|
|
62
62
|
|
|
63
|
-
def respond_to?(
|
|
64
|
-
super || target.respond_to?(
|
|
63
|
+
def respond_to?(method_name, include_private = false)
|
|
64
|
+
super || target.respond_to?(method_name, include_private)
|
|
65
65
|
end
|
|
66
66
|
end
|
|
67
67
|
end
|
|
@@ -44,7 +44,8 @@ module RailsAdmin
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
def excluded?
|
|
47
|
-
@excluded
|
|
47
|
+
return @excluded if defined?(@excluded)
|
|
48
|
+
@excluded = !RailsAdmin::AbstractModel.all.collect(&:model_name).include?(abstract_model.try(:model_name))
|
|
48
49
|
end
|
|
49
50
|
|
|
50
51
|
def object_label
|
|
@@ -87,7 +88,7 @@ module RailsAdmin
|
|
|
87
88
|
|
|
88
89
|
register_instance_option :navigation_label do
|
|
89
90
|
@navigation_label ||= begin
|
|
90
|
-
if (parent_module = abstract_model.model.parent) != Object
|
|
91
|
+
if (parent_module = abstract_model.model.try(:module_parent) || abstract_model.model.try!(:parent)) != Object
|
|
91
92
|
parent_module.to_s
|
|
92
93
|
end
|
|
93
94
|
end
|
|
@@ -99,8 +100,8 @@ module RailsAdmin
|
|
|
99
100
|
|
|
100
101
|
# Act as a proxy for the base section configuration that actually
|
|
101
102
|
# store the configurations.
|
|
102
|
-
def method_missing(
|
|
103
|
-
send(:base).send(
|
|
103
|
+
def method_missing(method_name, *args, &block)
|
|
104
|
+
send(:base).send(method_name, *args, &block)
|
|
104
105
|
end
|
|
105
106
|
end
|
|
106
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)
|
|
@@ -24,6 +24,10 @@ module RailsAdmin
|
|
|
24
24
|
false
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
+
register_instance_option :search_by do
|
|
28
|
+
nil
|
|
29
|
+
end
|
|
30
|
+
|
|
27
31
|
register_instance_option :sort_by do
|
|
28
32
|
parent.abstract_model.primary_key
|
|
29
33
|
end
|
|
@@ -39,6 +43,25 @@ module RailsAdmin
|
|
|
39
43
|
register_instance_option :row_css_class do
|
|
40
44
|
''
|
|
41
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
|
|
42
65
|
end
|
|
43
66
|
end
|
|
44
67
|
end
|
data/lib/rails_admin/config.rb
CHANGED
|
@@ -59,6 +59,9 @@ module RailsAdmin
|
|
|
59
59
|
# Set the max width of columns in list view before a new set is created
|
|
60
60
|
attr_accessor :total_columns_width
|
|
61
61
|
|
|
62
|
+
# Enable horizontal-scrolling table in list view, ignore total_columns_width
|
|
63
|
+
attr_accessor :sidescroll
|
|
64
|
+
|
|
62
65
|
# set parent controller
|
|
63
66
|
attr_accessor :parent_controller
|
|
64
67
|
|
|
@@ -138,11 +141,11 @@ module RailsAdmin
|
|
|
138
141
|
# end
|
|
139
142
|
#
|
|
140
143
|
# To use an authorization adapter, pass the name of the adapter. For example,
|
|
141
|
-
# to use with
|
|
144
|
+
# to use with CanCanCan[https://github.com/CanCanCommunity/cancancan/], pass it like this.
|
|
142
145
|
#
|
|
143
|
-
# @example
|
|
146
|
+
# @example CanCanCan
|
|
144
147
|
# RailsAdmin.config do |config|
|
|
145
|
-
# config.authorize_with :
|
|
148
|
+
# config.authorize_with :cancancan
|
|
146
149
|
# end
|
|
147
150
|
#
|
|
148
151
|
# See the wiki[https://github.com/sferik/rails_admin/wiki] for more on authorization.
|
|
@@ -207,9 +210,7 @@ module RailsAdmin
|
|
|
207
210
|
|
|
208
211
|
# pool of all found model names from the whole application
|
|
209
212
|
def models_pool
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
(viable_models - excluded).uniq.sort
|
|
213
|
+
(viable_models - excluded_models.collect(&:to_s)).uniq.sort
|
|
213
214
|
end
|
|
214
215
|
|
|
215
216
|
# Loads a model configuration instance from the registry or registers
|
|
@@ -285,6 +286,7 @@ module RailsAdmin
|
|
|
285
286
|
@excluded_models = []
|
|
286
287
|
@included_models = []
|
|
287
288
|
@total_columns_width = 697
|
|
289
|
+
@sidescroll = nil
|
|
288
290
|
@label_methods = [:name, :title]
|
|
289
291
|
@main_app_name = proc { [Rails.application.engine_name.titleize.chomp(' Application'), 'Admin'] }
|
|
290
292
|
@registry = {}
|
|
@@ -344,7 +346,7 @@ module RailsAdmin
|
|
|
344
346
|
end
|
|
345
347
|
end
|
|
346
348
|
end
|
|
347
|
-
end.flatten.reject { |m| m.starts_with?('Concerns::') } # rubocop:disable MultilineBlockChain
|
|
349
|
+
end.flatten.reject { |m| m.starts_with?('Concerns::') } # rubocop:disable Style/MultilineBlockChain
|
|
348
350
|
end
|
|
349
351
|
end
|
|
350
352
|
|
data/lib/rails_admin/engine.rb
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
require 'font-awesome-rails'
|
|
2
1
|
require 'jquery-rails'
|
|
3
2
|
require 'jquery-ui-rails'
|
|
4
3
|
require 'kaminari'
|
|
@@ -45,7 +44,7 @@ module RailsAdmin
|
|
|
45
44
|
|
|
46
45
|
# Check for required middlewares, users may forget to use them in Rails API mode
|
|
47
46
|
config.after_initialize do |app|
|
|
48
|
-
has_session_store =
|
|
47
|
+
has_session_store = app.config.middleware.to_a.any? do |m|
|
|
49
48
|
m.klass.try(:<=, ActionDispatch::Session::AbstractStore) ||
|
|
50
49
|
m.klass.name =~ /^ActionDispatch::Session::/
|
|
51
50
|
end
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
require 'rails_admin/extensions/controller_extension'
|
|
1
2
|
|
|
2
3
|
module RailsAdmin
|
|
3
|
-
EXTENSIONS = [] # rubocop:disable MutableConstant
|
|
4
|
-
AUTHORIZATION_ADAPTERS = {} # rubocop:disable MutableConstant
|
|
5
|
-
AUDITING_ADAPTERS = {} # rubocop:disable MutableConstant
|
|
6
|
-
CONFIGURATION_ADAPTERS = {} # rubocop:disable MutableConstant
|
|
4
|
+
EXTENSIONS = [] # rubocop:disable Style/MutableConstant
|
|
5
|
+
AUTHORIZATION_ADAPTERS = {} # rubocop:disable Style/MutableConstant
|
|
6
|
+
AUDITING_ADAPTERS = {} # rubocop:disable Style/MutableConstant
|
|
7
|
+
CONFIGURATION_ADAPTERS = {} # rubocop:disable Style/MutableConstant
|
|
7
8
|
|
|
8
9
|
# Extend RailsAdmin
|
|
9
10
|
#
|
|
@@ -26,4 +27,15 @@ module RailsAdmin
|
|
|
26
27
|
AUDITING_ADAPTERS[extension_key] = extension_definition::AuditingAdapter
|
|
27
28
|
end
|
|
28
29
|
end
|
|
30
|
+
|
|
31
|
+
# Setup all extensions for testing
|
|
32
|
+
def self.setup_all_extensions
|
|
33
|
+
(AUTHORIZATION_ADAPTERS.values + AUDITING_ADAPTERS.values).each do |klass|
|
|
34
|
+
begin
|
|
35
|
+
klass.setup if klass.respond_to? :setup
|
|
36
|
+
rescue # rubocop:disable Lint/HandleExceptions, Style/RescueStandardError
|
|
37
|
+
# ignore errors
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
29
41
|
end
|