drg_cms 0.5.52 → 0.5.52.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/drg_cms/drg_cms.js +13 -24
- data/app/assets/stylesheets/drg_cms/drg_cms.css +52 -38
- data/app/controllers/design_element_settings_control.rb +1 -0
- data/app/forms/dc_page.yml +8 -8
- data/app/forms/dc_part.yml +1 -1
- data/app/forms/dc_piece.yml +1 -1
- data/app/helpers/dc_application_helper.rb +1 -1
- data/app/models/dc_menu.rb +2 -4
- data/app/models/drgcms_form_fields.rb +22 -27
- data/config/locales/drgcms_en.yml +1 -0
- data/config/locales/drgcms_sl.yml +2 -1
- data/lib/drg_cms/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac624231414ec0d8f5dfcb2f87623189fa9558d3
|
4
|
+
data.tar.gz: 4da97b7be20ae7ba6641127a8fa9e1de2f03d84d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 075acb47b95998834a156fa11543c0ed7a9f4dc4292257c144c99e932fac779552a3b8063daf9649797a064f000d6ca001c08362d7bde740c3c316fc96c916fe
|
7
|
+
data.tar.gz: ef960025a10da97bd10cd942793567d313c1cdbcfe30c50fa02479c70cd058c52f4401dd4e5e60fb0a62b01634cbbfe1587f21b25b35904cc96cb1a894171301
|
@@ -170,20 +170,6 @@ function dc_reload_window() {
|
|
170
170
|
location.reload();
|
171
171
|
}
|
172
172
|
|
173
|
-
/*******************************************************************
|
174
|
-
* I would like to resize window to display whole tab. This will
|
175
|
-
* be a job for someone with better javascrip knowledge.
|
176
|
-
*******************************************************************/
|
177
|
-
function dc_resize_to_tab() {
|
178
|
-
dom = $('iframe');
|
179
|
-
if (dom.contentWindow.document.body.offsetHeight > 10) {
|
180
|
-
alert(dom.style.height);
|
181
|
-
dom.style.height = (dom.contentWindow.document.body.offsetHeight + 30) + 'px';
|
182
|
-
// scroll to top
|
183
|
-
// $('#' + iframe_name).dc_scroll_view();
|
184
|
-
}
|
185
|
-
};
|
186
|
-
|
187
173
|
/*******************************************************************
|
188
174
|
* Will scroll to position on the screen. This is replacement for
|
189
175
|
* location.hash, which doesn't work in Chrome.
|
@@ -193,7 +179,7 @@ function dc_resize_to_tab() {
|
|
193
179
|
$.fn.dc_scroll_view = function () {
|
194
180
|
return this.each(function () {
|
195
181
|
$('html, body').animate({
|
196
|
-
scrollTop: $(this).offset().top -
|
182
|
+
scrollTop: $(this).offset().top - 100
|
197
183
|
}, 500);
|
198
184
|
});
|
199
185
|
};
|
@@ -243,26 +229,29 @@ $(document).ready( function() {
|
|
243
229
|
* Tab clicked on form. Hide old and show selected div.
|
244
230
|
*******************************************************************/
|
245
231
|
$('.dc-form-li').on('click', function(e) {
|
246
|
-
|
247
|
-
var
|
232
|
+
// find li with dc-form-li-selected class. This is our old tab
|
233
|
+
var old_tab_id = null;
|
248
234
|
$(e.target).parents('ul').find('li').each( function() {
|
249
|
-
/* console.debug( $(this) ); */
|
250
235
|
if ($(this).hasClass('dc-form-li-selected')) {
|
251
|
-
|
236
|
+
// when not already selected toggle dc-form-li-selected class and save old tab
|
252
237
|
if ($(this) !== $(e.target)) {
|
253
238
|
$(this).toggleClass('dc-form-li-selected');
|
254
239
|
$(e.target).toggleClass('dc-form-li-selected');
|
255
|
-
|
240
|
+
old_tab_id = this.getAttribute("data-div");
|
256
241
|
}
|
257
242
|
return false;
|
258
243
|
}
|
259
244
|
|
260
|
-
});
|
261
|
-
if (
|
262
|
-
$('#data_' +
|
245
|
+
}); // show selected data div
|
246
|
+
if (old_tab_id !== null) {
|
247
|
+
$('#data_' + old_tab_id).toggleClass('div-hidden');
|
263
248
|
$('#data_' + e.target.getAttribute("data-div")).toggleClass('div-hidden');
|
249
|
+
// resize parent iframe if its size is less then selected div size
|
250
|
+
var div_height = document.getElementById('data_' + e.target.getAttribute("data-div")).clientHeight + 120;
|
251
|
+
// if (window.frameElement.clientHeight < div_height) {
|
252
|
+
window.frameElement.style.height = div_height.toString() + 'px';
|
253
|
+
// }
|
264
254
|
}
|
265
|
-
// dc_resize_to_tab();
|
266
255
|
});
|
267
256
|
|
268
257
|
/*******************************************************************
|
@@ -89,9 +89,10 @@ color: #222;
|
|
89
89
|
|
90
90
|
textarea, input, select {
|
91
91
|
color: #222;
|
92
|
-
padding:
|
93
|
-
border: solid
|
92
|
+
padding: 6px 4px;
|
93
|
+
border: solid 2px #ddd;
|
94
94
|
border-radius: 2px;
|
95
|
+
font: 14px Arial;
|
95
96
|
}
|
96
97
|
|
97
98
|
input.file {
|
@@ -99,8 +100,10 @@ border: none;
|
|
99
100
|
}
|
100
101
|
|
101
102
|
select {
|
102
|
-
padding:
|
103
|
+
padding: 5px 0px;
|
103
104
|
background: #fff;
|
105
|
+
border: solid 2px #ddd;
|
106
|
+
border-radius: 2px;
|
104
107
|
}
|
105
108
|
|
106
109
|
hr {
|
@@ -124,9 +127,9 @@ td { vertical-align: middle; }
|
|
124
127
|
th {
|
125
128
|
padding: 4px;
|
126
129
|
text-align: left;
|
127
|
-
border-bottom:
|
128
|
-
border-right:
|
129
|
-
background: #
|
130
|
+
border-bottom:2px solid #ddd;
|
131
|
+
border-right:2px solid #ddd;
|
132
|
+
background: #ddd;
|
130
133
|
color:#888;
|
131
134
|
font-weight: bold;
|
132
135
|
}
|
@@ -138,7 +141,7 @@ img { vertical-align:bottom; }
|
|
138
141
|
.dc-link a:link, .dc-link a:active, .dc-link a:visited,
|
139
142
|
.dc-animate a:link, .dc-animate a:active, .dc-animate a:visited,
|
140
143
|
.dc-result a:link, .dc-result a:active, .dc-result a:visited {
|
141
|
-
color: #
|
144
|
+
color: #666;
|
142
145
|
font-weight: bold;
|
143
146
|
text-decoration: none;
|
144
147
|
background: transparent;
|
@@ -147,10 +150,10 @@ background: transparent;
|
|
147
150
|
.dc-link a:hover, .dc-animate a:hover, .dc-result a:hover {
|
148
151
|
background: #f8f8f8;
|
149
152
|
transition: 0.3s;
|
150
|
-
color: #
|
153
|
+
color: #000;
|
151
154
|
}
|
152
155
|
|
153
|
-
a.dc-animate:hover { color: #
|
156
|
+
a.dc-animate:hover { color: #000; background: transparent;}
|
154
157
|
|
155
158
|
.dc-link a img { border: none; }
|
156
159
|
|
@@ -176,17 +179,17 @@ padding: 0px;
|
|
176
179
|
border-spacing: 0px;
|
177
180
|
border-radius: 1px;
|
178
181
|
background-color: #fafafa;
|
179
|
-
border-top:
|
180
|
-
border-left:
|
182
|
+
border-top: 2px solid #ddd;
|
183
|
+
border-left: 2px solid #ddd;
|
181
184
|
}
|
182
185
|
|
183
|
-
.dc-result tr:hover { background-color: #
|
186
|
+
.dc-result tr:hover { background-color: #ddd; }
|
184
187
|
|
185
188
|
.dc-result td {
|
186
|
-
padding:
|
189
|
+
padding: 4px;
|
187
190
|
line-height: 1.5em;
|
188
|
-
border-right:
|
189
|
-
border-bottom:
|
191
|
+
border-right: 2px solid #ddd;
|
192
|
+
border-bottom: 2px solid #ddd;
|
190
193
|
}
|
191
194
|
|
192
195
|
.dc-result i {
|
@@ -216,7 +219,7 @@ border: 1px solid #ddd;
|
|
216
219
|
}
|
217
220
|
|
218
221
|
.dc-link:hover a {
|
219
|
-
color: #
|
222
|
+
color: #000;
|
220
223
|
transition: 0.3s;
|
221
224
|
}
|
222
225
|
|
@@ -225,7 +228,7 @@ border: 1px solid #ddd;
|
|
225
228
|
font-weight: bold;
|
226
229
|
padding: 5px 8px;
|
227
230
|
border-radius: 5px;
|
228
|
-
color: #
|
231
|
+
color: #666;
|
229
232
|
background-color: #eee;
|
230
233
|
background: transparent linear-gradient(to bottom, #FFF 0%, #F2F2F2 100%) repeat scroll 0% 0%;
|
231
234
|
border: 1px solid #ddd;
|
@@ -239,7 +242,7 @@ transition: 0.3s;
|
|
239
242
|
}
|
240
243
|
|
241
244
|
.dc-link-ajax:hover a {
|
242
|
-
color: #
|
245
|
+
color: #000;
|
243
246
|
cursor: pointer;
|
244
247
|
transition: 0.3s;
|
245
248
|
}
|
@@ -320,10 +323,10 @@ background: transparent linear-gradient(to bottom, #eee 0%, #eee 100%) repeat sc
|
|
320
323
|
}
|
321
324
|
|
322
325
|
.dc-link-submit .fa {
|
323
|
-
color: #
|
326
|
+
color: #666;
|
324
327
|
}
|
325
328
|
.dc-link-submit:hover .fa {
|
326
|
-
color: #
|
329
|
+
color: #000;
|
327
330
|
transition: 0.3s;
|
328
331
|
}
|
329
332
|
.dc-link-submit:hover {
|
@@ -332,13 +335,13 @@ background: transparent linear-gradient(to bottom, #eee 0%, #eee 100%) repeat sc
|
|
332
335
|
transition: 0.3s;
|
333
336
|
}
|
334
337
|
.dc-link-submit:hover .dc-submit {
|
335
|
-
color: #
|
338
|
+
color: #000;
|
336
339
|
transition: 0.3s;
|
337
340
|
}
|
338
341
|
.dc-submit {
|
339
342
|
text-decoration: none;
|
340
343
|
border: 0px;
|
341
|
-
color: #
|
344
|
+
color: #666;
|
342
345
|
font-weight: bold;
|
343
346
|
box-shadow: none;
|
344
347
|
/* background: none;*/
|
@@ -351,7 +354,7 @@ background: transparent linear-gradient(to bottom, #eee 0%, #eee 100%) repeat sc
|
|
351
354
|
cursor: pointer;
|
352
355
|
text-decoration: none;
|
353
356
|
color: #fff;
|
354
|
-
background-color: #
|
357
|
+
background-color: #000;
|
355
358
|
}
|
356
359
|
|
357
360
|
/* Pagination */
|
@@ -368,7 +371,7 @@ background: transparent linear-gradient(to bottom, #eee 0%, #eee 100%) repeat sc
|
|
368
371
|
}
|
369
372
|
|
370
373
|
#result .pagination span:hover > a {
|
371
|
-
color: #
|
374
|
+
color: #000;
|
372
375
|
}
|
373
376
|
|
374
377
|
#result .pagination .current {
|
@@ -405,7 +408,7 @@ background: transparent linear-gradient(to bottom, #eee 0%, #eee 100%) repeat sc
|
|
405
408
|
width: 100%;
|
406
409
|
padding: 0px;
|
407
410
|
padding-top: 4px;
|
408
|
-
border: 1px solid #
|
411
|
+
border: 1px solid #ddd;
|
409
412
|
border-radius: 2px;
|
410
413
|
background-color: #fcfcfc;
|
411
414
|
}
|
@@ -475,7 +478,7 @@ background: transparent linear-gradient(to bottom, #eee 0%, #eee 100%) repeat sc
|
|
475
478
|
|
476
479
|
.dc-form-field {
|
477
480
|
text-align: left;
|
478
|
-
padding:
|
481
|
+
padding: 3px 2px;
|
479
482
|
/*
|
480
483
|
background-color: #f4f4f4;
|
481
484
|
border-bottom: 1px solid #eee;
|
@@ -484,11 +487,12 @@ background: transparent linear-gradient(to bottom, #eee 0%, #eee 100%) repeat sc
|
|
484
487
|
|
485
488
|
.dc-readonly {
|
486
489
|
font-weight: normal;
|
487
|
-
padding:
|
488
|
-
border:
|
490
|
+
padding: 6px 3px;
|
491
|
+
border: 2px solid #ddd;
|
489
492
|
background-color: #eee;
|
490
493
|
border-radius: 2px;
|
491
|
-
color: #
|
494
|
+
color: #222;
|
495
|
+
font-size: 14px;
|
492
496
|
}
|
493
497
|
|
494
498
|
.dc-color-odd {
|
@@ -522,7 +526,7 @@ border-bottom: 1px solid #eee;
|
|
522
526
|
text-align: center;
|
523
527
|
font-weight: bold;
|
524
528
|
|
525
|
-
padding:
|
529
|
+
padding:3px 15px;
|
526
530
|
border-radius: 4px 4px 0px 0px;
|
527
531
|
background: #eee;
|
528
532
|
margin-right: 2px;
|
@@ -532,6 +536,7 @@ border-bottom: 1px solid #eee;
|
|
532
536
|
cursor: pointer;
|
533
537
|
color: #fff;
|
534
538
|
background: #888;
|
539
|
+
padding:4px 15px 3px 15px;
|
535
540
|
}
|
536
541
|
|
537
542
|
.dc-odd {
|
@@ -540,7 +545,7 @@ border-bottom: 1px solid #eee;
|
|
540
545
|
|
541
546
|
.dc-separator {
|
542
547
|
padding: 0px;
|
543
|
-
border-top: 2px solid #
|
548
|
+
border-top: 2px solid #ddd;
|
544
549
|
}
|
545
550
|
|
546
551
|
#cmsedit-div {
|
@@ -663,9 +668,9 @@ display: none;
|
|
663
668
|
/****** jquery ui-autocomplete widget ***************/
|
664
669
|
.ui-autocomplete-input {
|
665
670
|
font-style: italic;
|
666
|
-
padding:
|
671
|
+
padding: 6px;
|
667
672
|
border-radius: 2px;
|
668
|
-
border: solid
|
673
|
+
border: solid 2px #9c9;
|
669
674
|
/* background: linear-gradient(#8d8 0%, #ffe 15%, #fff 80%); */
|
670
675
|
}
|
671
676
|
|
@@ -685,8 +690,17 @@ border: 1px solid #ddd;
|
|
685
690
|
color: #000;
|
686
691
|
}
|
687
692
|
|
688
|
-
.
|
689
|
-
|
693
|
+
.ui-autocomplete-border {
|
694
|
+
border-radius: 2px;
|
695
|
+
border: solid 2px #ddd;
|
696
|
+
padding: 8px;
|
697
|
+
background-color: #fff;
|
698
|
+
}
|
699
|
+
|
700
|
+
.dc-red { color: #d99;}
|
701
|
+
.dc-red:hover { color: #e66;}
|
702
|
+
.dc-green { color: #9c9;}
|
703
|
+
.dc-green:hover { color: #6a6;}
|
690
704
|
|
691
705
|
.aui-corner-all {
|
692
706
|
background-color: lightyellow;
|
@@ -784,7 +798,7 @@ overflow-x:hidden;
|
|
784
798
|
#dc-action-menu {
|
785
799
|
padding: 2px 0px 2px 0px;
|
786
800
|
font-weight: bold;
|
787
|
-
color: #
|
801
|
+
color: #666;
|
788
802
|
display: flex;
|
789
803
|
}
|
790
804
|
|
@@ -815,7 +829,7 @@ border: 1px solid #ddd;
|
|
815
829
|
|
816
830
|
.dc-action-menu li:hover {
|
817
831
|
border: 1px solid #ccc;
|
818
|
-
color: #
|
832
|
+
color: #000;
|
819
833
|
transition: 0.3s;
|
820
834
|
}
|
821
835
|
|
@@ -926,5 +940,5 @@ padding: 5px;
|
|
926
940
|
max-width: 50%;
|
927
941
|
background-color: #fff;
|
928
942
|
padding: 10px;
|
929
|
-
border:
|
943
|
+
border: 2px solid #ddd;
|
930
944
|
}
|
@@ -119,6 +119,7 @@ def dc_before_save()
|
|
119
119
|
v['readonly'] # fields with readonly option don't return value and would be wiped
|
120
120
|
# return value from form field definition
|
121
121
|
value = DrgcmsFormFields.const_get(v['type'].camelize).get_data(params, v['name'])
|
122
|
+
value = value.map {|e| e.to_s} if value.class == Array
|
122
123
|
# set to nil if blank
|
123
124
|
value = nil if value.blank?
|
124
125
|
data['settings'] ||= {}
|
data/app/forms/dc_page.yml
CHANGED
@@ -137,24 +137,24 @@ form:
|
|
137
137
|
html:
|
138
138
|
include_blank: true
|
139
139
|
|
140
|
+
70:
|
141
|
+
name: css
|
142
|
+
type: text_area
|
143
|
+
size: 100x20
|
144
|
+
|
140
145
|
3content:
|
141
146
|
10:
|
142
147
|
name: body
|
143
148
|
type: html_field
|
144
|
-
options: 'height:
|
145
|
-
|
146
|
-
20:
|
147
|
-
name: css
|
148
|
-
type: text_area
|
149
|
-
size: 100x20
|
150
|
-
|
149
|
+
options: 'height: 1000'
|
150
|
+
|
151
151
|
4parts:
|
152
152
|
10:
|
153
153
|
name: dc_parts
|
154
154
|
type: embedded
|
155
155
|
formname: dc_part
|
156
156
|
html:
|
157
|
-
height:
|
157
|
+
height: 600
|
158
158
|
|
159
159
|
5iframe:
|
160
160
|
10:
|
data/app/forms/dc_part.yml
CHANGED
data/app/forms/dc_piece.yml
CHANGED
@@ -1049,7 +1049,7 @@ def dc_user_can_view(ctrl, policy_id)
|
|
1049
1049
|
end
|
1050
1050
|
# permission defined by default policy
|
1051
1051
|
default_policy = Mongoid::QueryCache.cache { policies.find_by(is_default: true) }
|
1052
|
-
return false, 'Default
|
1052
|
+
return false, 'Default access policy not found for the site!' unless default_policy
|
1053
1053
|
#
|
1054
1054
|
permissions = {}
|
1055
1055
|
default_policy.dc_policy_rules.to_a.each { |v| permissions[v.dc_policy_role_id] = v.permission }
|
data/app/models/dc_menu.rb
CHANGED
@@ -117,13 +117,11 @@ end
|
|
117
117
|
def self.choices4_menu_as_tree(site_id=nil)
|
118
118
|
qry = where(active: true)
|
119
119
|
#
|
120
|
-
ar = [nil]
|
121
120
|
if site_id.class == BSON::ObjectId
|
122
|
-
|
121
|
+
qry.in( dc_site_id: [nil, site_id] )
|
123
122
|
elsif site_id.respond_to?(:id)
|
124
|
-
|
123
|
+
qry.in( dc_site_id: [nil, site_id.id] )
|
125
124
|
end
|
126
|
-
qry = qry.in(dc_site_id: ar)
|
127
125
|
#
|
128
126
|
result = []
|
129
127
|
qry.each do |menu|
|
@@ -483,8 +483,9 @@ def render
|
|
483
483
|
# put field to enter search data on form
|
484
484
|
@yaml['html'] ||= {}
|
485
485
|
@yaml['html']['value'] = '' # must be. Otherwise it will look into record and return error
|
486
|
+
@yaml['html']['placeholder'] = t('drgcms.search_placeholder')
|
486
487
|
_name = '_' + @yaml['name']
|
487
|
-
@html << '<table class="ui-autocomplete-table"><td>'
|
488
|
+
@html << '<table class="ui-autocomplete-table"><td><div class="ui-autocomplete-border">'
|
488
489
|
@html << @parent.link_to(@parent.fa_icon('plus-square lg', class: 'dc-animate dc-green'), '#',onclick: 'return false;') # dummy add. But it is usefull.
|
489
490
|
|
490
491
|
record = record_text_for(@yaml['name'])
|
@@ -506,18 +507,18 @@ def render
|
|
506
507
|
link = @parent.link_to(@parent.fa_icon('remove lg', class: 'dc-animate dc-red'), '#',
|
507
508
|
onclick: "$('##{rec.id}').hide(); var v = $('##{record}_#{@yaml['name']}_#{rec.id}'); v.val(\"-\" + v.val());return false;")
|
508
509
|
field = @parent.hidden_field(record, "#{@yaml['name']}_#{rec.id}", value: element)
|
509
|
-
"<div id=\"#{rec.id}\" style=\"padding:
|
510
|
+
"<div id=\"#{rec.id}\" style=\"padding:4px;\">#{link} #{rec.send(field_name)}<br>#{field}</div>"
|
510
511
|
else
|
511
512
|
'** error **'
|
512
513
|
end
|
513
514
|
end
|
514
515
|
end
|
515
|
-
@html << "</div></td></table>"
|
516
|
+
@html << "</div></div></td></table>"
|
516
517
|
# Create text for div to be added when new category is selected
|
517
518
|
link = @parent.link_to(@parent.fa_icon('remove lg', class: 'dc-animate dc-red'), '#',
|
518
519
|
onclick: "$('#rec_id').hide(); var v = $('##{record}_#{@yaml['name']}_rec_id'); v.val(\"-\" + v.val());return false;")
|
519
520
|
field = @parent.hidden_field(record, "#{@yaml['name']}_rec_id", value: 'rec_id')
|
520
|
-
one_div = "<div id=\"rec_id\" style=\"padding:
|
521
|
+
one_div = "<div id=\"rec_id\" style=\"padding:4px;\">#{link} rec_search<br>#{field}</div>"
|
521
522
|
|
522
523
|
# JS stuff
|
523
524
|
@js << <<EOJS
|
@@ -542,6 +543,7 @@ $(document).ready(function() {
|
|
542
543
|
div = div.replace('rec_search', ui.item.value)
|
543
544
|
$("##{record}#{@yaml['name']}").append(div);
|
544
545
|
$("##{record}_#{_name}").val('');
|
546
|
+
$("##{record}_#{_name}").focus();
|
545
547
|
},
|
546
548
|
minLength: 2
|
547
549
|
});
|
@@ -1193,7 +1195,7 @@ def render
|
|
1193
1195
|
ret_name = "#{ret_name}.#{method}" if method
|
1194
1196
|
@yaml['html'] ||= {}
|
1195
1197
|
@yaml['html']['value'] = value_displayed
|
1196
|
-
@yaml['html']['placeholder'] ||= t('drgcms.
|
1198
|
+
@yaml['html']['placeholder'] ||= t('drgcms.search_placeholder') || nil
|
1197
1199
|
#
|
1198
1200
|
_name = '_' + @yaml['name']
|
1199
1201
|
record = record_text_for(@yaml['name'])
|
@@ -1416,31 +1418,14 @@ class TreeSelect < Select
|
|
1416
1418
|
def make_tree(parent)
|
1417
1419
|
return '' unless @choices[parent.to_s]
|
1418
1420
|
@html << '<ul>'
|
1419
|
-
choices = if @choices[parent.to_s].first
|
1420
|
-
@choices[parent.to_s].sort_by {|e| e[3] } # sort by order if first is not 0
|
1421
|
+
choices = if @choices[parent.to_s].first[3] != 0
|
1422
|
+
@choices[parent.to_s].sort_by {|e| e[3].to_i } # sort by order if first is not 0
|
1421
1423
|
# @choices[parent.to_s].sort_alphabetical_by(&:first) # use UTF-8 sort
|
1422
1424
|
else
|
1423
1425
|
@choices[parent.to_s].sort_alphabetical_by(&:first) # use UTF-8 sort
|
1424
1426
|
end
|
1425
1427
|
choices.each do |choice|
|
1426
|
-
jstree = %Q[{"selected" : #{choice
|
1427
|
-
# data-jstree must be singe quoted
|
1428
|
-
@html << %Q[<li data-id="#{choice[1]}" data-jstree='#{jstree}'>#{choice.first}\n]
|
1429
|
-
# call recursively for children
|
1430
|
-
make_tree(choice[1]) if @choices[ choice[1].to_s ]
|
1431
|
-
@html << "</li>"
|
1432
|
-
end
|
1433
|
-
@html << '</ul>'
|
1434
|
-
end
|
1435
|
-
|
1436
|
-
###########################################################################
|
1437
|
-
# Prepare choices for tree data rendering.
|
1438
|
-
###########################################################################
|
1439
|
-
def _make_tree(parent)
|
1440
|
-
@html << '<ul>'
|
1441
|
-
choices = @choices[parent.to_s].sort_alphabetical_by(&:first) # use UTF-8 sort
|
1442
|
-
choices.each do |choice|
|
1443
|
-
jstree = %Q[{"selected" : #{choice[4] ? 'true' : 'false'} }]
|
1428
|
+
jstree = %Q[{"selected" : #{choice.last ? 'true' : 'false'} }]
|
1444
1429
|
# data-jstree must be singe quoted
|
1445
1430
|
@html << %Q[<li data-id="#{choice[1]}" data-jstree='#{jstree}'>#{choice.first}\n]
|
1446
1431
|
# call recursively for children
|
@@ -1472,13 +1457,15 @@ def render
|
|
1472
1457
|
@choices.keys.each do |key|
|
1473
1458
|
0.upto( @choices[key].size - 1 ) do |i|
|
1474
1459
|
choice = @choices[key][i]
|
1475
|
-
choice[
|
1460
|
+
choice[choice.size - 1] = true if current_values[ choice[1].to_s ]
|
1476
1461
|
end
|
1477
1462
|
end
|
1478
1463
|
make_tree(nil)
|
1479
1464
|
@html << '</ul></div>'
|
1480
1465
|
# add hidden communication field
|
1481
1466
|
@html << @parent.hidden_field(record, @yaml['name'], value: current.join(','))
|
1467
|
+
# save multiple indicator for data processing on return
|
1468
|
+
@html << @parent.hidden_field(record, "#{@yaml['name']}_multiple", value: 1) if @yaml['multiple']
|
1482
1469
|
# javascript to update hidden record field when tree looses focus
|
1483
1470
|
@js =<<EOJS
|
1484
1471
|
$(function(){
|
@@ -1508,7 +1495,15 @@ end
|
|
1508
1495
|
# Return value. Return nil if input field is empty
|
1509
1496
|
###########################################################################
|
1510
1497
|
def self.get_data(params, name)
|
1511
|
-
|
1498
|
+
return nil if params['record'][name].blank?
|
1499
|
+
#
|
1500
|
+
result = params['record'][name].split(',')
|
1501
|
+
result.delete_if {|e| e.blank? }
|
1502
|
+
return nil if result.size == 0
|
1503
|
+
# convert to BSON objects if is BSON object ID
|
1504
|
+
result = result.map{ |e| BSON::ObjectId.from_string(e) } if BSON::ObjectId.legal?(result.first)
|
1505
|
+
# return only first element if multiple values select was not alowed
|
1506
|
+
params['record']["#{name}_multiple"] == '1' ? result : result.first
|
1512
1507
|
end
|
1513
1508
|
|
1514
1509
|
end
|
@@ -53,7 +53,8 @@ sl:
|
|
53
53
|
updated_by_other: Dokument je spremenil drug uporabnik. Prosimo ponovite vpis podatkov.
|
54
54
|
not_id: Vsebina polja ni ključ ID!
|
55
55
|
cms_main: CMS tabele
|
56
|
-
cms_advanced: CMS napredne opcije
|
56
|
+
cms_advanced: CMS napredne opcije
|
57
|
+
search_placeholder: Vpišite pojem za iskanje
|
57
58
|
|
58
59
|
edit: Urejanje
|
59
60
|
show: Prikaz
|
data/lib/drg_cms/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: drg_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.52
|
4
|
+
version: 0.5.52.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Damjan Rems
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|