ack_rails_admin_settings 1.2.2.1 → 1.2.3
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/CHANGELOG.md +3 -0
- data/Gemfile.lock +79 -79
- data/README.md +2 -0
- data/app/assets/javascripts/rails_admin_settings/array.coffee +43 -0
- data/app/assets/javascripts/rails_admin_settings/hash.coffee +32 -0
- data/app/assets/stylesheets/rails_admin_settings/hash.sass +5 -0
- data/app/models/rails_admin_settings/setting.rb +6 -6
- data/app/views/rails_admin/main/_setting_value.html.haml +29 -0
- data/app/views/rails_admin/main/rails_admin_settings/array/_element.html.haml +8 -0
- data/app/views/rails_admin/main/rails_admin_settings/hash/_element.html.haml +6 -0
- data/config/locales/en.yml +2 -1
- data/config/locales/ru.yml +2 -1
- data/lib/rails_admin_settings/engine.rb +7 -0
- data/lib/rails_admin_settings/kinds.rb +4 -1
- data/lib/rails_admin_settings/mongoid.rb +2 -0
- data/lib/rails_admin_settings/namespaced.rb +11 -0
- data/lib/rails_admin_settings/processing.rb +28 -1
- data/lib/rails_admin_settings/rails_admin_config.rb +31 -1
- data/lib/rails_admin_settings/version.rb +1 -1
- metadata +7 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6663058ce20b74441ee8340c97500cc9908cc091
|
|
4
|
+
data.tar.gz: 83bcf698383dbdc75b3f2d348ee51ec80aa1bea6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6afa909a56d795a158f0d4a2f36eb1871892a4aef293803396cd362938cf9fba86c501327c05670cc1e545d0bf563914c513849da87aa5ddbbc3bef5e2a5eb60
|
|
7
|
+
data.tar.gz: 1bb12aa2f4ba502387039761ad4321cb8919825f99d49bbaad7466b44a241686b333053c390ce8af8e168c57ccf63eac1bc113d349d1f587c48b5e5c6246638f
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,92 +1,92 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
ack_rails_admin_settings (1.2.
|
|
4
|
+
ack_rails_admin_settings (1.2.3)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
8
8
|
specs:
|
|
9
|
-
actioncable (5.
|
|
10
|
-
actionpack (= 5.
|
|
11
|
-
nio4r (~>
|
|
9
|
+
actioncable (5.1.3)
|
|
10
|
+
actionpack (= 5.1.3)
|
|
11
|
+
nio4r (~> 2.0)
|
|
12
12
|
websocket-driver (~> 0.6.1)
|
|
13
|
-
actionmailer (5.
|
|
14
|
-
actionpack (= 5.
|
|
15
|
-
actionview (= 5.
|
|
16
|
-
activejob (= 5.
|
|
13
|
+
actionmailer (5.1.3)
|
|
14
|
+
actionpack (= 5.1.3)
|
|
15
|
+
actionview (= 5.1.3)
|
|
16
|
+
activejob (= 5.1.3)
|
|
17
17
|
mail (~> 2.5, >= 2.5.4)
|
|
18
18
|
rails-dom-testing (~> 2.0)
|
|
19
|
-
actionpack (5.
|
|
20
|
-
actionview (= 5.
|
|
21
|
-
activesupport (= 5.
|
|
19
|
+
actionpack (5.1.3)
|
|
20
|
+
actionview (= 5.1.3)
|
|
21
|
+
activesupport (= 5.1.3)
|
|
22
22
|
rack (~> 2.0)
|
|
23
23
|
rack-test (~> 0.6.3)
|
|
24
24
|
rails-dom-testing (~> 2.0)
|
|
25
25
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
26
|
-
actionview (5.
|
|
27
|
-
activesupport (= 5.
|
|
26
|
+
actionview (5.1.3)
|
|
27
|
+
activesupport (= 5.1.3)
|
|
28
28
|
builder (~> 3.1)
|
|
29
|
-
|
|
29
|
+
erubi (~> 1.4)
|
|
30
30
|
rails-dom-testing (~> 2.0)
|
|
31
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.
|
|
32
|
-
activejob (5.
|
|
33
|
-
activesupport (= 5.
|
|
31
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
|
32
|
+
activejob (5.1.3)
|
|
33
|
+
activesupport (= 5.1.3)
|
|
34
34
|
globalid (>= 0.3.6)
|
|
35
|
-
activemodel (5.
|
|
36
|
-
activesupport (= 5.
|
|
37
|
-
activerecord (5.
|
|
38
|
-
activemodel (= 5.
|
|
39
|
-
activesupport (= 5.
|
|
40
|
-
arel (~>
|
|
41
|
-
activesupport (5.
|
|
35
|
+
activemodel (5.1.3)
|
|
36
|
+
activesupport (= 5.1.3)
|
|
37
|
+
activerecord (5.1.3)
|
|
38
|
+
activemodel (= 5.1.3)
|
|
39
|
+
activesupport (= 5.1.3)
|
|
40
|
+
arel (~> 8.0)
|
|
41
|
+
activesupport (5.1.3)
|
|
42
42
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
43
43
|
i18n (~> 0.7)
|
|
44
44
|
minitest (~> 5.1)
|
|
45
45
|
tzinfo (~> 1.1)
|
|
46
|
-
addressable (2.5.
|
|
46
|
+
addressable (2.5.1)
|
|
47
47
|
public_suffix (~> 2.0, >= 2.0.2)
|
|
48
|
-
arel (
|
|
49
|
-
bson (3.2.
|
|
48
|
+
arel (8.0.0)
|
|
49
|
+
bson (3.2.7)
|
|
50
50
|
builder (3.2.3)
|
|
51
51
|
carrierwave (0.9.0)
|
|
52
52
|
activemodel (>= 3.2.0)
|
|
53
53
|
activesupport (>= 3.2.0)
|
|
54
54
|
json (>= 1.7)
|
|
55
|
-
climate_control (0.
|
|
55
|
+
climate_control (0.2.0)
|
|
56
56
|
cocaine (0.5.8)
|
|
57
57
|
climate_control (>= 0.0.3, < 1.0)
|
|
58
58
|
coderay (1.1.1)
|
|
59
|
-
concurrent-ruby (1.0.
|
|
59
|
+
concurrent-ruby (1.0.5)
|
|
60
60
|
connection_pool (2.2.1)
|
|
61
61
|
crass (1.0.2)
|
|
62
|
-
database_cleaner (1.
|
|
62
|
+
database_cleaner (1.6.1)
|
|
63
63
|
diff-lcs (1.3)
|
|
64
64
|
docile (1.1.5)
|
|
65
|
-
|
|
65
|
+
erubi (1.6.1)
|
|
66
66
|
factory_girl (4.8.0)
|
|
67
67
|
activesupport (>= 3.0.0)
|
|
68
|
-
geocoder (1.4.
|
|
68
|
+
geocoder (1.4.4)
|
|
69
69
|
glebtv-carrierwave-mongoid (0.7.0)
|
|
70
70
|
carrierwave (~> 0.9.0)
|
|
71
71
|
mongoid (~> 4.0.0.alpha1)
|
|
72
72
|
glebtv-mongoid-paperclip (0.5.0)
|
|
73
73
|
mongoid (>= 3.0, < 6.1)
|
|
74
74
|
paperclip (~> 5.1.0)
|
|
75
|
-
globalid (0.
|
|
76
|
-
activesupport (>= 4.
|
|
77
|
-
i18n (0.8.
|
|
78
|
-
json (2.0
|
|
75
|
+
globalid (0.4.0)
|
|
76
|
+
activesupport (>= 4.2.0)
|
|
77
|
+
i18n (0.8.6)
|
|
78
|
+
json (2.1.0)
|
|
79
79
|
loofah (2.0.3)
|
|
80
80
|
nokogiri (>= 1.5.9)
|
|
81
|
-
mail (2.6.
|
|
81
|
+
mail (2.6.6)
|
|
82
82
|
mime-types (>= 1.16, < 4)
|
|
83
83
|
method_source (0.8.2)
|
|
84
84
|
mime-types (3.1)
|
|
85
85
|
mime-types-data (~> 3.2015)
|
|
86
86
|
mime-types-data (3.2016.0521)
|
|
87
87
|
mimemagic (0.3.2)
|
|
88
|
-
mini_portile2 (2.
|
|
89
|
-
minitest (5.10.
|
|
88
|
+
mini_portile2 (2.2.0)
|
|
89
|
+
minitest (5.10.3)
|
|
90
90
|
mongoid (4.0.0.beta2)
|
|
91
91
|
activemodel (>= 4.0.0)
|
|
92
92
|
moped (~> 2.0.beta6)
|
|
@@ -100,13 +100,13 @@ GEM
|
|
|
100
100
|
bson (~> 3.0)
|
|
101
101
|
connection_pool (~> 2.0)
|
|
102
102
|
optionable (~> 0.2.0)
|
|
103
|
-
nio4r (
|
|
104
|
-
nokogiri (1.
|
|
105
|
-
mini_portile2 (~> 2.
|
|
106
|
-
nokogumbo (1.4.
|
|
103
|
+
nio4r (2.1.0)
|
|
104
|
+
nokogiri (1.8.0)
|
|
105
|
+
mini_portile2 (~> 2.2.0)
|
|
106
|
+
nokogumbo (1.4.13)
|
|
107
107
|
nokogiri
|
|
108
108
|
optionable (0.2.0)
|
|
109
|
-
origin (2.3.
|
|
109
|
+
origin (2.3.1)
|
|
110
110
|
paperclip (5.1.0)
|
|
111
111
|
activemodel (>= 4.2.0)
|
|
112
112
|
activesupport (>= 4.2.0)
|
|
@@ -118,57 +118,57 @@ GEM
|
|
|
118
118
|
method_source (~> 0.8.1)
|
|
119
119
|
slop (~> 3.4)
|
|
120
120
|
public_suffix (2.0.5)
|
|
121
|
-
rack (2.0.
|
|
121
|
+
rack (2.0.3)
|
|
122
122
|
rack-test (0.6.3)
|
|
123
123
|
rack (>= 1.0)
|
|
124
|
-
rails (5.
|
|
125
|
-
actioncable (= 5.
|
|
126
|
-
actionmailer (= 5.
|
|
127
|
-
actionpack (= 5.
|
|
128
|
-
actionview (= 5.
|
|
129
|
-
activejob (= 5.
|
|
130
|
-
activemodel (= 5.
|
|
131
|
-
activerecord (= 5.
|
|
132
|
-
activesupport (= 5.
|
|
133
|
-
bundler (>= 1.3.0
|
|
134
|
-
railties (= 5.
|
|
124
|
+
rails (5.1.3)
|
|
125
|
+
actioncable (= 5.1.3)
|
|
126
|
+
actionmailer (= 5.1.3)
|
|
127
|
+
actionpack (= 5.1.3)
|
|
128
|
+
actionview (= 5.1.3)
|
|
129
|
+
activejob (= 5.1.3)
|
|
130
|
+
activemodel (= 5.1.3)
|
|
131
|
+
activerecord (= 5.1.3)
|
|
132
|
+
activesupport (= 5.1.3)
|
|
133
|
+
bundler (>= 1.3.0)
|
|
134
|
+
railties (= 5.1.3)
|
|
135
135
|
sprockets-rails (>= 2.0.0)
|
|
136
|
-
rails-dom-testing (2.0.
|
|
137
|
-
activesupport (>= 4.2.0
|
|
138
|
-
nokogiri (
|
|
136
|
+
rails-dom-testing (2.0.3)
|
|
137
|
+
activesupport (>= 4.2.0)
|
|
138
|
+
nokogiri (>= 1.6)
|
|
139
139
|
rails-html-sanitizer (1.0.3)
|
|
140
140
|
loofah (~> 2.0)
|
|
141
|
-
railties (5.
|
|
142
|
-
actionpack (= 5.
|
|
143
|
-
activesupport (= 5.
|
|
141
|
+
railties (5.1.3)
|
|
142
|
+
actionpack (= 5.1.3)
|
|
143
|
+
activesupport (= 5.1.3)
|
|
144
144
|
method_source
|
|
145
145
|
rake (>= 0.8.7)
|
|
146
146
|
thor (>= 0.18.1, < 2.0)
|
|
147
147
|
rake (12.0.0)
|
|
148
|
-
rspec (3.
|
|
149
|
-
rspec-core (~> 3.
|
|
150
|
-
rspec-expectations (~> 3.
|
|
151
|
-
rspec-mocks (~> 3.
|
|
152
|
-
rspec-core (3.
|
|
153
|
-
rspec-support (~> 3.
|
|
154
|
-
rspec-expectations (3.
|
|
148
|
+
rspec (3.6.0)
|
|
149
|
+
rspec-core (~> 3.6.0)
|
|
150
|
+
rspec-expectations (~> 3.6.0)
|
|
151
|
+
rspec-mocks (~> 3.6.0)
|
|
152
|
+
rspec-core (3.6.0)
|
|
153
|
+
rspec-support (~> 3.6.0)
|
|
154
|
+
rspec-expectations (3.6.0)
|
|
155
155
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
156
|
-
rspec-support (~> 3.
|
|
157
|
-
rspec-mocks (3.
|
|
156
|
+
rspec-support (~> 3.6.0)
|
|
157
|
+
rspec-mocks (3.6.0)
|
|
158
158
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
159
|
-
rspec-support (~> 3.
|
|
160
|
-
rspec-support (3.
|
|
161
|
-
russian_phone (0.
|
|
159
|
+
rspec-support (~> 3.6.0)
|
|
160
|
+
rspec-support (3.6.0)
|
|
161
|
+
russian_phone (0.6.0)
|
|
162
162
|
safe_yaml (1.0.4)
|
|
163
|
-
sanitize (4.
|
|
163
|
+
sanitize (4.5.0)
|
|
164
164
|
crass (~> 1.0.2)
|
|
165
165
|
nokogiri (>= 1.4.4)
|
|
166
166
|
nokogumbo (~> 1.4.1)
|
|
167
|
-
simplecov (0.
|
|
167
|
+
simplecov (0.14.1)
|
|
168
168
|
docile (~> 1.1.0)
|
|
169
169
|
json (>= 1.8, < 3)
|
|
170
170
|
simplecov-html (~> 0.10.0)
|
|
171
|
-
simplecov-html (0.10.
|
|
171
|
+
simplecov-html (0.10.1)
|
|
172
172
|
slop (3.6.0)
|
|
173
173
|
sprockets (3.7.1)
|
|
174
174
|
concurrent-ruby (~> 1.0)
|
|
@@ -178,8 +178,8 @@ GEM
|
|
|
178
178
|
activesupport (>= 4.0)
|
|
179
179
|
sprockets (>= 3.0.0)
|
|
180
180
|
thor (0.19.4)
|
|
181
|
-
thread_safe (0.3.
|
|
182
|
-
tzinfo (1.2.
|
|
181
|
+
thread_safe (0.3.6)
|
|
182
|
+
tzinfo (1.2.3)
|
|
183
183
|
thread_safe (~> 0.1)
|
|
184
184
|
validates_email_format_of (1.6.3)
|
|
185
185
|
i18n
|
data/README.md
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
$(document).on "click", "#edit_rails_admin_settings_setting .raw_array_field .rails_admin_settings_array_element_add_link", (e)->
|
|
2
|
+
e.preventDefault()
|
|
3
|
+
link = $(e.currentTarget)
|
|
4
|
+
link_parent = link.parent()
|
|
5
|
+
link_parent.before(link.data('template'))
|
|
6
|
+
link_parent.prev().find('input:first').focus().select().trigger('change')
|
|
7
|
+
return false
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
$(document).on 'click', '#edit_rails_admin_settings_setting .raw_array_field .rails_admin_settings_array_element_delete_link', (e)->
|
|
11
|
+
e.preventDefault()
|
|
12
|
+
hidden_field = $(e.currentTarget).closest(".raw_array_field").find("[type='hidden']")
|
|
13
|
+
$(e.currentTarget).parent().remove()
|
|
14
|
+
hidden_field.trigger('change')
|
|
15
|
+
return false
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
$(document).on 'click', '#edit_rails_admin_settings_setting .raw_array_field .rails_admin_settings_array_element_move_link', (e)->
|
|
19
|
+
e.preventDefault()
|
|
20
|
+
link = $(e.currentTarget)
|
|
21
|
+
array_element_block = link.parent()
|
|
22
|
+
if link.hasClass("up")
|
|
23
|
+
prev = array_element_block.prev(".rails_admin_settings_array_element_block")
|
|
24
|
+
array_element_block.insertBefore(prev) if prev.length > 0
|
|
25
|
+
if link.hasClass("down")
|
|
26
|
+
next = array_element_block.next(".rails_admin_settings_array_element_block")
|
|
27
|
+
array_element_block.insertAfter(next) if next.length > 0
|
|
28
|
+
return false
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
$(document).on "change", "#edit_rails_admin_settings_setting .raw_array_field :input", (e)->
|
|
33
|
+
field_block = $(e.currentTarget).closest(".raw_array_field")
|
|
34
|
+
hidden_field = field_block.find("[type='hidden']")
|
|
35
|
+
if field_block.find(":input:not([type='hidden'])").serializeArray().length == 0
|
|
36
|
+
hidden_field.prop('name', hidden_field.data('name')) if hidden_field.data('name')
|
|
37
|
+
else
|
|
38
|
+
hidden_field.data('name', hidden_field.prop('name')) if hidden_field.prop('name')
|
|
39
|
+
hidden_field.prop('name', '')
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
$(document).on "rails_admin.dom_ready", (e)->
|
|
43
|
+
$("#edit_rails_admin_settings_setting .raw_array_field").find(":input[type='hidden']").trigger('change')
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
$(document).on "click", "#edit_rails_admin_settings_setting .raw_hash_field .rails_admin_settings_hash_element_add_link", (e)->
|
|
2
|
+
e.preventDefault()
|
|
3
|
+
link = $(e.currentTarget)
|
|
4
|
+
link_parent = link.parent()
|
|
5
|
+
link_parent.before(link.data('template'))
|
|
6
|
+
$("#edit_rails_admin_settings_setting .raw_hash_field .rails_admin_settings_hash_element_block input:last").blur()
|
|
7
|
+
return false
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
$(document).on 'click', '#edit_rails_admin_settings_setting .raw_hash_field .rails_admin_settings_hash_element_delete_link', (e)->
|
|
11
|
+
e.preventDefault()
|
|
12
|
+
$(e.currentTarget).parent().remove()
|
|
13
|
+
return false
|
|
14
|
+
|
|
15
|
+
$(document).on 'blur', '#edit_rails_admin_settings_setting .raw_hash_field .rails_admin_settings_hash_element_key_field', (e)->
|
|
16
|
+
e.preventDefault()
|
|
17
|
+
input = $(e.currentTarget).siblings('input')
|
|
18
|
+
old_id = input.prop('id')
|
|
19
|
+
old_name = input.prop('name')
|
|
20
|
+
new_name = e.currentTarget.value
|
|
21
|
+
reg_for_id = /\[[^\[\]]+\]$/i
|
|
22
|
+
reg_for_name = /\[[^\[\]]+\]\]$/i
|
|
23
|
+
input.prop('id', old_id.replace(reg_for_id, "[" + new_name + "]"))
|
|
24
|
+
input.prop('name', old_name.replace(reg_for_name, "[" + new_name + "]]"))
|
|
25
|
+
return false
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
$(document).on 'blur', '#edit_rails_admin_settings_setting .raw_hash_field .rails_admin_settings_hash_element_block input', (e)->
|
|
29
|
+
fields_block = $(e.currentTarget).closest(".controls")
|
|
30
|
+
fields_block.find('.value_field').each ->
|
|
31
|
+
$(this).parent().removeClass('duplicate')
|
|
32
|
+
fields_block.find('.value_field').not($(this)).filter("[name='" + this.name + "']").parent().addClass('duplicate')
|
|
@@ -71,12 +71,12 @@ module RailsAdminSettings
|
|
|
71
71
|
# t = {_all: 'Все'}
|
|
72
72
|
if ::Settings.table_exists?
|
|
73
73
|
::RailsAdminSettings::Setting.pluck(:ns).uniq.each do |c|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
s = "ns_#{c.gsub('-', '_')}".to_sym
|
|
75
|
+
scope s, -> { where(ns: c) }
|
|
76
|
+
# t[s] = c
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
# I18n.backend.store_translations(:ru, {admin: {scopes: {'rails_admin_settings/setting': t}}})
|
|
80
80
|
|
|
81
81
|
if Object.const_defined?('RailsAdmin')
|
|
82
82
|
include RailsAdminSettings::RailsAdminConfig
|
|
@@ -102,3 +102,32 @@
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
= form.text_area field.method_name, field.html_attributes.reverse_merge(data: { richtext: 'codemirror', options: js_data.to_json }).reverse_merge({ value: field.form_value })
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
- elsif @object.type == 'array'
|
|
108
|
+
= javascript_include_tag 'rails_admin_settings/array'
|
|
109
|
+
|
|
110
|
+
= form.hidden_field field.method_name, value: "", multiple: true
|
|
111
|
+
- (field.value || []).each do |val|
|
|
112
|
+
= render partial: 'rails_admin/main/rails_admin_settings/array/element', locals: {form: form, field: field, val: val}
|
|
113
|
+
|
|
114
|
+
- _template = capture do
|
|
115
|
+
= render partial: 'rails_admin/main/rails_admin_settings/array/element', locals: {form: form, field: field, val: ""}
|
|
116
|
+
%p
|
|
117
|
+
= link_to "добавить", "#", class: "rails_admin_settings_array_element_add_link", data: {template: _template.html_safe}
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
- elsif @object.type == 'hash'
|
|
121
|
+
= javascript_include_tag 'rails_admin_settings/hash'
|
|
122
|
+
= stylesheet_link_tag 'rails_admin_settings/hash'
|
|
123
|
+
|
|
124
|
+
- (field.value || {}).each_pair do |name, val|
|
|
125
|
+
= render partial: 'rails_admin/main/rails_admin_settings/hash/element', locals: {form: form, field: field, name: name, val: val}
|
|
126
|
+
|
|
127
|
+
- _template = capture do
|
|
128
|
+
- name, val = "new", ""
|
|
129
|
+
= render partial: 'rails_admin/main/rails_admin_settings/hash/element', locals: {form: form, field: field, name: name, val: val}
|
|
130
|
+
%p
|
|
131
|
+
= link_to "добавить", "#", class: "rails_admin_settings_hash_element_add_link", data: {template: _template.html_safe}
|
|
132
|
+
/ = " | "
|
|
133
|
+
/ = link_to "показать дубликаты", "#", class: "rails_admin_settings_hash_element_duplicate_trigger", data: {text: "скрыть дубликаты"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
.rails_admin_settings_array_element_block
|
|
2
|
+
= form.text_field field.method_name, value: val, multiple: true
|
|
3
|
+
%span= " "
|
|
4
|
+
= link_to "(удалить)", "#", class: "rails_admin_settings_array_element_delete_link", tabindex: -1
|
|
5
|
+
%span= " "
|
|
6
|
+
= link_to "/\\", "#", class: "rails_admin_settings_array_element_move_link array_element_move_up_link up", tabindex: -1
|
|
7
|
+
%span= " "
|
|
8
|
+
= link_to "\\/", "#", class: "rails_admin_settings_array_element_move_link array_element_move_down_link down", tabindex: -1
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
.rails_admin_settings_hash_element_block
|
|
2
|
+
= form.text_field nil, value: name, class: 'rails_admin_settings_hash_element_key_field', name: ""
|
|
3
|
+
%span= ": "
|
|
4
|
+
= form.text_field "#{field.method_name}[#{name}]", value: val, class: 'value_field'
|
|
5
|
+
%span= " #{name} "
|
|
6
|
+
= link_to "(удалить)", "#", class: "rails_admin_settings_hash_element_delete_link", tabindex: -1
|
data/config/locales/en.yml
CHANGED
data/config/locales/ru.yml
CHANGED
|
@@ -4,6 +4,13 @@ module RailsAdminSettings
|
|
|
4
4
|
require File.expand_path('../tasks', __FILE__)
|
|
5
5
|
end
|
|
6
6
|
|
|
7
|
+
|
|
8
|
+
initializer "RailsAdminSettings precompile hook", group: :all do |app|
|
|
9
|
+
app.config.assets.precompile += %w(rails_admin_settings/array.js)
|
|
10
|
+
app.config.assets.precompile += %w(rails_admin_settings/hash.js rails_admin_settings/hash.css)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
|
|
7
14
|
initializer 'RailsAdminSettings Install after_action' do |app|
|
|
8
15
|
require File.dirname(__FILE__) + '/../../app/models/rails_admin_settings/setting.rb'
|
|
9
16
|
|
|
@@ -11,6 +11,8 @@ module RailsAdminSettings
|
|
|
11
11
|
field :ns, type: String, default: 'main'
|
|
12
12
|
field :key, type: String
|
|
13
13
|
field :raw, type: String
|
|
14
|
+
field :raw_array, type: Array
|
|
15
|
+
field :raw_hash, type: Hash
|
|
14
16
|
field :label, type: String
|
|
15
17
|
field :loadable, type: Boolean, default: true
|
|
16
18
|
scope :loadable, -> {
|
|
@@ -239,10 +239,19 @@ module RailsAdminSettings
|
|
|
239
239
|
end
|
|
240
240
|
|
|
241
241
|
def write_to_database(key, options)
|
|
242
|
+
options[:kind] = options[:kind].to_s if options[:kind]
|
|
242
243
|
is_file = !options[:kind].nil? && (options[:kind] == 'image' || options[:kind] == 'file')
|
|
244
|
+
is_array = !options[:kind].nil? && (options[:kind] == 'array')
|
|
245
|
+
is_hash = !options[:kind].nil? && (options[:kind] == 'hash')
|
|
243
246
|
if is_file
|
|
244
247
|
options[:raw] = ''
|
|
245
248
|
file = options[:value]
|
|
249
|
+
elsif is_array
|
|
250
|
+
options[:raw] = ''
|
|
251
|
+
options[:raw_array] = options[:value] if options[:value]
|
|
252
|
+
elsif is_hash
|
|
253
|
+
options[:raw] = ''
|
|
254
|
+
options[:raw_hash] = options[:value] if options[:value]
|
|
246
255
|
else
|
|
247
256
|
options[:raw] = options[:value] if options[:value]
|
|
248
257
|
end
|
|
@@ -280,6 +289,8 @@ module RailsAdminSettings
|
|
|
280
289
|
opts = options.dup
|
|
281
290
|
if options[:overwrite] == false && !@settings[key].value.blank?
|
|
282
291
|
opts.delete(:raw)
|
|
292
|
+
opts.delete(:raw_array)
|
|
293
|
+
opts.delete(:raw_hash)
|
|
283
294
|
opts.delete(:value)
|
|
284
295
|
opts.delete(:enabled)
|
|
285
296
|
end
|
|
@@ -24,6 +24,13 @@ module RailsAdminSettings
|
|
|
24
24
|
alias_method :upload_type?, :upload_kind?
|
|
25
25
|
alias_method :html_type?, :html_kind?
|
|
26
26
|
|
|
27
|
+
def array_kind?
|
|
28
|
+
['array'].include? kind
|
|
29
|
+
end
|
|
30
|
+
def hash_kind?
|
|
31
|
+
['hash'].include? kind
|
|
32
|
+
end
|
|
33
|
+
|
|
27
34
|
def value
|
|
28
35
|
if upload_kind?
|
|
29
36
|
if file_kind?
|
|
@@ -31,6 +38,10 @@ module RailsAdminSettings
|
|
|
31
38
|
else
|
|
32
39
|
nil
|
|
33
40
|
end
|
|
41
|
+
elsif array_kind?
|
|
42
|
+
raw_array
|
|
43
|
+
elsif hash_kind?
|
|
44
|
+
raw_hash
|
|
34
45
|
elsif raw.blank? || disabled?
|
|
35
46
|
default_value
|
|
36
47
|
else
|
|
@@ -41,6 +52,10 @@ module RailsAdminSettings
|
|
|
41
52
|
def blank?
|
|
42
53
|
if file_kind?
|
|
43
54
|
file.url.nil?
|
|
55
|
+
elsif array_kind?
|
|
56
|
+
raw_array.blank?
|
|
57
|
+
elsif hash_kind?
|
|
58
|
+
raw_hash.blank?
|
|
44
59
|
elsif raw.blank? || disabled?
|
|
45
60
|
true
|
|
46
61
|
else
|
|
@@ -51,6 +66,10 @@ module RailsAdminSettings
|
|
|
51
66
|
def to_s
|
|
52
67
|
if yaml_kind? || phone_kind? || integer_kind?
|
|
53
68
|
raw
|
|
69
|
+
elsif array_kind?
|
|
70
|
+
raw_array.join(", ")
|
|
71
|
+
elsif hash_kind?
|
|
72
|
+
raw_hash.to_json
|
|
54
73
|
else
|
|
55
74
|
value
|
|
56
75
|
end
|
|
@@ -82,13 +101,17 @@ module RailsAdminSettings
|
|
|
82
101
|
end
|
|
83
102
|
elsif phones_kind?
|
|
84
103
|
[]
|
|
104
|
+
elsif array_kind?
|
|
105
|
+
[]
|
|
106
|
+
elsif hash_kind?
|
|
107
|
+
{}
|
|
85
108
|
else
|
|
86
109
|
nil
|
|
87
110
|
end
|
|
88
111
|
end
|
|
89
112
|
|
|
90
113
|
def default_serializable_value
|
|
91
|
-
if phones_kind?
|
|
114
|
+
if phones_kind? or array_kind? or hash_kind?
|
|
92
115
|
''
|
|
93
116
|
elsif boolean_type?
|
|
94
117
|
'false'
|
|
@@ -146,6 +169,10 @@ module RailsAdminSettings
|
|
|
146
169
|
load_phones
|
|
147
170
|
elsif file_kind?
|
|
148
171
|
file.url
|
|
172
|
+
elsif array_kind?
|
|
173
|
+
raw_array
|
|
174
|
+
elsif hash_kind?
|
|
175
|
+
raw_hash
|
|
149
176
|
else
|
|
150
177
|
puts "[rails_admin_settings] Unknown field kind: #{kind}".freeze
|
|
151
178
|
nil
|
|
@@ -41,6 +41,18 @@ module RailsAdminSettings
|
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
end
|
|
44
|
+
field :raw_array do
|
|
45
|
+
searchable true
|
|
46
|
+
pretty_value do
|
|
47
|
+
bindings[:object].raw_array.join("<br>").html_safe
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
field :raw_hash do
|
|
51
|
+
searchable true
|
|
52
|
+
pretty_value do
|
|
53
|
+
"<pre>#{JSON.pretty_generate(bindings[:object].raw_hash)}</pre>".html_safe
|
|
54
|
+
end
|
|
55
|
+
end
|
|
44
56
|
field :cache_keys_str, :text do
|
|
45
57
|
searchable true
|
|
46
58
|
end
|
|
@@ -72,7 +84,25 @@ module RailsAdminSettings
|
|
|
72
84
|
field :raw do
|
|
73
85
|
partial "setting_value".freeze
|
|
74
86
|
visible do
|
|
75
|
-
!bindings[:object].upload_kind?
|
|
87
|
+
!bindings[:object].upload_kind? and !bindings[:object].array_kind? and !bindings[:object].hash_kind?
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
field :raw_array do
|
|
91
|
+
partial "setting_value".freeze
|
|
92
|
+
pretty_value do
|
|
93
|
+
bindings[:object].raw_array.map(&:to_s).join("<br>").html_safe
|
|
94
|
+
end
|
|
95
|
+
visible do
|
|
96
|
+
bindings[:object].array_kind?
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
field :raw_hash do
|
|
100
|
+
partial "setting_value".freeze
|
|
101
|
+
pretty_value do
|
|
102
|
+
"<pre>#{JSON.pretty_generate(bindings[:object].raw_hash)}</pre>".html_safe
|
|
103
|
+
end
|
|
104
|
+
visible do
|
|
105
|
+
bindings[:object].hash_kind?
|
|
76
106
|
end
|
|
77
107
|
end
|
|
78
108
|
if Settings.file_uploads_supported
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ack_rails_admin_settings
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexander Kiseliev
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2017-
|
|
12
|
+
date: 2017-08-04 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: mongoid
|
|
@@ -288,8 +288,13 @@ files:
|
|
|
288
288
|
- LICENSE.txt
|
|
289
289
|
- README.md
|
|
290
290
|
- Rakefile
|
|
291
|
+
- app/assets/javascripts/rails_admin_settings/array.coffee
|
|
292
|
+
- app/assets/javascripts/rails_admin_settings/hash.coffee
|
|
293
|
+
- app/assets/stylesheets/rails_admin_settings/hash.sass
|
|
291
294
|
- app/models/rails_admin_settings/setting.rb
|
|
292
295
|
- app/views/rails_admin/main/_setting_value.html.haml
|
|
296
|
+
- app/views/rails_admin/main/rails_admin_settings/array/_element.html.haml
|
|
297
|
+
- app/views/rails_admin/main/rails_admin_settings/hash/_element.html.haml
|
|
293
298
|
- config/locales/en.yml
|
|
294
299
|
- config/locales/ru.yml
|
|
295
300
|
- gemfiles/mongoid-3.1.gemfile
|