rails_admin 1.4.3 → 2.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.
Potentially problematic release.
This version of rails_admin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +4 -1
- data/README.md +2 -4
- data/app/assets/javascripts/rails_admin/jquery.pjax.js +1 -3
- data/app/assets/javascripts/rails_admin/ra.filtering-select.js +9 -7
- data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.coffee +1 -4
- data/app/assets/javascripts/rails_admin/ra.sidescroll.coffee +19 -0
- data/app/assets/javascripts/rails_admin/ra.widgets.coffee +35 -35
- data/app/assets/javascripts/rails_admin/rails_admin.js +1 -0
- data/app/assets/javascripts/rails_admin/ui.coffee +23 -18
- data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +29 -0
- data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +2 -1
- data/app/helpers/rails_admin/application_helper.rb +1 -1
- data/app/helpers/rails_admin/main_helper.rb +4 -4
- data/app/views/layouts/rails_admin/application.html.haml +0 -3
- 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 +1 -1
- 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 +1 -1
- 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 +18 -14
- data/app/views/rails_admin/main/show.html.haml +6 -7
- data/config/locales/rails_admin.en.yml +1 -1
- data/lib/rails_admin/adapters/active_record.rb +10 -6
- data/lib/rails_admin/adapters/active_record/property.rb +1 -5
- data/lib/rails_admin/adapters/mongoid.rb +16 -13
- data/lib/rails_admin/bootstrap-sass.rb +4 -2
- data/lib/rails_admin/bootstrap-sass/sass_functions.rb +1 -3
- data/lib/rails_admin/config.rb +4 -0
- data/lib/rails_admin/config/actions/index.rb +3 -3
- data/lib/rails_admin/config/configurable.rb +5 -3
- data/lib/rails_admin/config/fields.rb +2 -0
- data/lib/rails_admin/config/fields/base.rb +1 -1
- 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 +31 -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 -0
- data/lib/rails_admin/config/fields/types/ck_editor.rb +5 -5
- data/lib/rails_admin/config/fields/types/code_mirror.rb +8 -10
- data/lib/rails_admin/config/fields/types/froala.rb +7 -9
- data/lib/rails_admin/config/fields/types/shrine.rb +48 -0
- data/lib/rails_admin/config/fields/types/simple_mde.rb +6 -3
- data/lib/rails_admin/config/fields/types/text.rb +0 -18
- data/lib/rails_admin/config/fields/types/wysihtml5.rb +12 -8
- data/lib/rails_admin/config/model.rb +3 -2
- data/lib/rails_admin/config/proxyable.rb +13 -1
- data/lib/rails_admin/config/proxyable/proxy.rb +3 -5
- data/lib/rails_admin/config/sections/list.rb +23 -0
- data/lib/rails_admin/engine.rb +1 -2
- data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +16 -4
- data/lib/rails_admin/version.rb +4 -4
- 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/stylesheets/rails_admin/font-awesome.css.erb +2342 -0
- metadata +47 -32
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rails_admin/config/fields'
|
2
|
+
require 'rails_admin/config/fields/types'
|
3
|
+
require 'rails_admin/config/fields/types/file_upload'
|
4
|
+
|
5
|
+
RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
|
6
|
+
next false unless defined?(::Shrine)
|
7
|
+
|
8
|
+
attachment_names = parent.abstract_model.model.ancestors.select { |m| m.is_a?(Shrine::Attachment) }.map { |a| a.instance_variable_get("@name") }
|
9
|
+
next false if attachment_names.blank?
|
10
|
+
|
11
|
+
attachment_name = attachment_names.detect { |a| a == properties.name.to_s.chomp('_data').to_sym }
|
12
|
+
next false unless attachment_name
|
13
|
+
|
14
|
+
field = RailsAdmin::Config::Fields::Types.load(:shrine).new(parent, attachment_name, properties)
|
15
|
+
fields << field
|
16
|
+
|
17
|
+
data_field_name = "#{attachment_name}_data".to_sym
|
18
|
+
child_properties = parent.abstract_model.properties.detect { |p| p.name == data_field_name }
|
19
|
+
next true unless child_properties
|
20
|
+
|
21
|
+
children_field = fields.detect { |f| f.name == data_field_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_properties, fields)
|
22
|
+
children_field.hide unless field == children_field
|
23
|
+
children_field.filterable(false) unless field == children_field
|
24
|
+
|
25
|
+
field.children_fields([data_field_name])
|
26
|
+
true
|
27
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rails_admin/config/fields/base'
|
2
|
+
require 'rails_admin/config/fields/types/text'
|
3
|
+
|
4
|
+
module RailsAdmin
|
5
|
+
module Config
|
6
|
+
module Fields
|
7
|
+
module Types
|
8
|
+
class ActionText < RailsAdmin::Config::Fields::Types::Text
|
9
|
+
# Register field type for the type loader
|
10
|
+
RailsAdmin::Config::Fields::Types.register(self)
|
11
|
+
|
12
|
+
register_instance_option :version do
|
13
|
+
'1.1.1'
|
14
|
+
end
|
15
|
+
|
16
|
+
register_instance_option :css_location do
|
17
|
+
"https://cdnjs.cloudflare.com/ajax/libs/trix/#{version}/trix.css"
|
18
|
+
end
|
19
|
+
|
20
|
+
register_instance_option :js_location do
|
21
|
+
"https://cdnjs.cloudflare.com/ajax/libs/trix/#{version}/trix.js"
|
22
|
+
end
|
23
|
+
|
24
|
+
register_instance_option :partial do
|
25
|
+
:form_action_text
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -29,15 +29,7 @@ module RailsAdmin
|
|
29
29
|
|
30
30
|
def parse_value(value)
|
31
31
|
return unless value.present?
|
32
|
-
|
33
|
-
abstract_model.model.attribute_types[name.to_s].serialize(value)
|
34
|
-
else
|
35
|
-
# Depending on the colum type and AR version, we might get a
|
36
|
-
# string or an integer, so we need to handle both cases.
|
37
|
-
enum.fetch(value) do
|
38
|
-
type_cast_value(value)
|
39
|
-
end
|
40
|
-
end
|
32
|
+
abstract_model.model.attribute_types[name.to_s].serialize(value)
|
41
33
|
end
|
42
34
|
|
43
35
|
def parse_input(params)
|
@@ -53,19 +45,11 @@ module RailsAdmin
|
|
53
45
|
private
|
54
46
|
|
55
47
|
def parse_input_value(value)
|
56
|
-
|
57
|
-
abstract_model.model.attribute_types[name.to_s].deserialize(value)
|
58
|
-
else
|
59
|
-
enum.invert[type_cast_value(value)]
|
60
|
-
end
|
48
|
+
abstract_model.model.attribute_types[name.to_s].deserialize(value)
|
61
49
|
end
|
62
50
|
|
63
51
|
def type_cast_value(value)
|
64
|
-
|
65
|
-
abstract_model.model.column_types[name.to_s].type_cast_from_user(value)
|
66
|
-
else
|
67
|
-
abstract_model.model.column_types[name.to_s].type_cast(value)
|
68
|
-
end
|
52
|
+
abstract_model.model.column_types[name.to_s].type_cast_from_user(value)
|
69
53
|
end
|
70
54
|
end
|
71
55
|
end
|
@@ -24,6 +24,7 @@ module RailsAdmin
|
|
24
24
|
def resource_url(thumb = false)
|
25
25
|
return nil unless value
|
26
26
|
if thumb && value.variable?
|
27
|
+
thumb = thumb_method if thumb == true
|
27
28
|
variant = value.variant(thumb)
|
28
29
|
Rails.application.routes.url_helpers.rails_blob_representation_path(
|
29
30
|
variant.blob.signed_id, variant.variation.key, variant.blob.filename, only_path: true
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'rails_admin/config/fields/types/action_text'
|
1
2
|
require 'rails_admin/config/fields/types/active_record_enum'
|
2
3
|
require 'rails_admin/config/fields/types/active_storage'
|
3
4
|
require 'rails_admin/config/fields/types/belongs_to_association'
|
@@ -26,6 +27,7 @@ require 'rails_admin/config/fields/types/string'
|
|
26
27
|
require 'rails_admin/config/fields/types/hidden'
|
27
28
|
require 'rails_admin/config/fields/types/text'
|
28
29
|
require 'rails_admin/config/fields/types/serialized'
|
30
|
+
require 'rails_admin/config/fields/types/shrine'
|
29
31
|
require 'rails_admin/config/fields/types/time'
|
30
32
|
require 'rails_admin/config/fields/types/timestamp'
|
31
33
|
require 'rails_admin/config/fields/types/color'
|
@@ -8,6 +8,10 @@ module RailsAdmin
|
|
8
8
|
# Register field type for the type loader
|
9
9
|
RailsAdmin::Config::Fields::Types.register(self)
|
10
10
|
|
11
|
+
register_instance_option :version do
|
12
|
+
'4.11.4'
|
13
|
+
end
|
14
|
+
|
11
15
|
# If you want to have a different toolbar configuration for CKEditor
|
12
16
|
# create your own custom config.js and override this configuration
|
13
17
|
register_instance_option :config_js do
|
@@ -21,16 +25,12 @@ module RailsAdmin
|
|
21
25
|
|
22
26
|
# Use this if you want to point to a cloud instances of the base CKeditor
|
23
27
|
register_instance_option :base_location do
|
24
|
-
"
|
28
|
+
"https://cdnjs.cloudflare.com/ajax/libs/ckeditor/#{version}/"
|
25
29
|
end
|
26
30
|
|
27
31
|
register_instance_option :partial do
|
28
32
|
:form_ck_editor
|
29
33
|
end
|
30
|
-
|
31
|
-
[:base_location, :config_js, :location].each do |key|
|
32
|
-
register_deprecated_instance_option :"ckeditor_#{key}", key
|
33
|
-
end
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -16,31 +16,29 @@ module RailsAdmin
|
|
16
16
|
}
|
17
17
|
end
|
18
18
|
|
19
|
+
register_instance_option :version do
|
20
|
+
'5.46.0'
|
21
|
+
end
|
22
|
+
|
19
23
|
# Pass the location of the theme and mode for Codemirror
|
20
24
|
register_instance_option :assets do
|
21
25
|
{
|
22
|
-
mode:
|
23
|
-
theme:
|
26
|
+
mode: "https://cdnjs.cloudflare.com/ajax/libs/codemirror/#{version}/mode/css/css.min.js",
|
27
|
+
theme: "https://cdnjs.cloudflare.com/ajax/libs/codemirror/#{version}/theme/night.min.css",
|
24
28
|
}
|
25
29
|
end
|
26
30
|
|
27
|
-
# Use this if you want to point to a cloud instances of CodeMirror
|
28
31
|
register_instance_option :js_location do
|
29
|
-
|
32
|
+
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/#{version}/codemirror.min.js"
|
30
33
|
end
|
31
34
|
|
32
|
-
# Use this if you want to point to a cloud instances of CodeMirror
|
33
35
|
register_instance_option :css_location do
|
34
|
-
|
36
|
+
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/#{version}/codemirror.min.css"
|
35
37
|
end
|
36
38
|
|
37
39
|
register_instance_option :partial do
|
38
40
|
:form_code_mirror
|
39
41
|
end
|
40
|
-
|
41
|
-
[:assets, :config, :css_location, :js_location].each do |key|
|
42
|
-
register_deprecated_instance_option :"codemirror_#{key}", key
|
43
|
-
end
|
44
42
|
end
|
45
43
|
end
|
46
44
|
end
|
@@ -8,28 +8,26 @@ module RailsAdmin
|
|
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
|
@@ -0,0 +1,48 @@
|
|
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
|
+
"cached_#{name}_data" if bindings[:object].respond_to?("cached_#{name}_data")
|
33
|
+
end
|
34
|
+
|
35
|
+
def resource_url(thumb = nil)
|
36
|
+
return nil unless value
|
37
|
+
|
38
|
+
if value.is_a?(Hash)
|
39
|
+
value[thumb || value.keys.first].url
|
40
|
+
else
|
41
|
+
value.url
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -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
|
@@ -8,24 +8,6 @@ module RailsAdmin
|
|
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?,
|
@@ -10,26 +10,30 @@ module RailsAdmin
|
|
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
|
@@ -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
|
@@ -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)
|
@@ -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
|
@@ -21,12 +19,12 @@ module RailsAdmin
|
|
21
19
|
|
22
20
|
def method_missing(name, *args, &block)
|
23
21
|
if @object.respond_to?(name)
|
24
|
-
reset = @object.
|
22
|
+
reset = @object.bindings
|
25
23
|
begin
|
26
|
-
@object.
|
24
|
+
@object.bindings = @bindings
|
27
25
|
response = @object.__send__(name, *args, &block)
|
28
26
|
ensure
|
29
|
-
@object.
|
27
|
+
@object.bindings = reset
|
30
28
|
end
|
31
29
|
response
|
32
30
|
else
|
@@ -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
|