drg_cms 0.5.52 → 0.5.52.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/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
|