drg_cms 0.6.1.5 → 0.6.1.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +203 -24
- data/app/assets/fonts/ibm-plex-sans-300.woff2 +0 -0
- data/app/assets/fonts/ibm-plex-sans-400.woff2 +0 -0
- data/app/assets/fonts/ibm-plex-sans-500.woff2 +0 -0
- data/app/assets/fonts/ibm-plex-sans-600.woff2 +0 -0
- data/app/assets/fonts/ibm-plex-sans-700.woff2 +0 -0
- data/app/assets/fonts/ibm-plex-sans-italic.woff2 +0 -0
- data/app/assets/javascripts/drg_cms/drg_cms.js +253 -106
- data/app/assets/stylesheets/drg_cms/drg_cms.css +670 -521
- data/app/assets/stylesheets/drg_cms_application.css +1 -1
- data/app/assets/stylesheets/drg_cms_cms.css +1 -4
- data/app/controllers/cmsedit_controller.rb +33 -211
- data/app/controllers/dc_application_controller.rb +98 -22
- data/app/controllers/dc_common_controller.rb +9 -22
- data/app/controls/browse_models_control.rb +18 -27
- data/app/controls/cmsedit_control.rb +129 -0
- data/app/controls/dc_help_control.rb +1 -1
- data/app/controls/dc_page_control.rb +0 -1
- data/app/controls/dc_poll_result_control.rb +1 -1
- data/app/controls/dc_report.rb +2 -2
- data/app/controls/design_element_settings_control.rb +1 -1
- data/app/forms/all_options.yml +25 -7
- data/app/forms/cms_menu.yml +24 -24
- data/app/forms/dc_browse_fields.yml +13 -9
- data/app/forms/dc_browse_models.yml +24 -2
- data/app/forms/dc_poll_result_export.yml +1 -1
- data/app/forms/dc_site.yml +2 -5
- data/app/forms/dc_steps_template.yml +51 -0
- data/app/helpers/cms_common_helper.rb +73 -6
- data/app/helpers/cms_edit_helper.rb +275 -159
- data/app/helpers/cms_helper.rb +152 -59
- data/app/helpers/cms_index_helper.rb +220 -172
- data/app/helpers/dc_application_helper.rb +40 -67
- data/app/models/concerns/dc_page_concern.rb +1 -1
- data/app/models/concerns/dc_site_concern.rb +9 -3
- data/app/models/dc_filter.rb +30 -22
- data/app/models/dc_journal.rb +2 -2
- data/app/models/dc_json_ld.rb +19 -42
- data/app/models/dc_part.rb +19 -9
- data/app/models/dc_site.rb +0 -1
- data/app/models/drgcms_form_fields/drgcms_field.rb +10 -4
- data/app/models/drgcms_form_fields/link_to.rb +1 -1
- data/app/models/drgcms_form_fields/multitext_autocomplete.rb +5 -5
- data/app/models/drgcms_form_fields/readonly.rb +4 -1
- data/app/models/drgcms_form_fields/select.rb +10 -9
- data/app/models/drgcms_form_fields/text_autocomplete.rb +20 -12
- data/app/models/drgcms_form_fields/text_with_select.rb +1 -0
- data/app/renderers/dc_common_renderer.rb +20 -3
- data/app/renderers/dc_part_renderer.rb +1 -1
- data/app/renderers/dc_poll_renderer.rb +1 -1
- data/app/views/cmsedit/_edit_stuff.html.erb +12 -12
- data/app/views/cmsedit/_form.html.erb +19 -12
- data/app/views/cmsedit/edit.html.erb +10 -6
- data/app/views/cmsedit/index.html.erb +5 -3
- data/app/views/cmsedit/login.html.erb +1 -1
- data/app/views/cmsedit/new.html.erb +9 -5
- data/app/views/dc_common/_help.html.erb +1 -0
- data/app/views/dc_common/paste_clipboard.html.erb +1 -1
- data/app/views/layouts/cms.html.erb +3 -5
- data/config/locales/drgcms_en.yml +7 -1
- data/config/locales/drgcms_sl.yml +7 -1
- data/config/locales/kaminari.yml +1 -1
- data/drg_cms.gemspec +2 -2
- data/lib/drg_cms/version.rb +1 -1
- data/lib/drg_cms.rb +4 -4
- metadata +16 -10
- data/app/views/cmsedit/__remove_edit_stuff.js.erb +0 -6
- data/app/views/cmsedit/__show.html.erb +0 -21
@@ -67,7 +67,7 @@ update_embedded_on_tab_select = function(div_name) {
|
|
67
67
|
* Return false when confirmation is not required
|
68
68
|
*******************************************************************/
|
69
69
|
confirmation_is_cancled = function(object) {
|
70
|
-
|
70
|
+
let confirmation = object.getAttribute("data-confirm");
|
71
71
|
// if confirmation required
|
72
72
|
if (confirmation !== null) {
|
73
73
|
if (!confirm(confirmation)) {return true;}
|
@@ -81,8 +81,8 @@ confirmation_is_cancled = function(object) {
|
|
81
81
|
* methodname and depend field value to obtain new values for select field.
|
82
82
|
*******************************************************************/
|
83
83
|
update_select_depend = function(select_name, depend_name, method) {
|
84
|
-
|
85
|
-
|
84
|
+
let select_field = $('#' + select_name);
|
85
|
+
let depend_field = $('#' + depend_name);
|
86
86
|
|
87
87
|
$.ajax({
|
88
88
|
url: "/dc_common/autocomplete",
|
@@ -159,7 +159,7 @@ $(function() {
|
|
159
159
|
* record_name: will replace value of record[name] field on a form with supplied value
|
160
160
|
*
|
161
161
|
* msg_error: will display error message.
|
162
|
-
*
|
162
|
+
* msg_warning: will display warning message.
|
163
163
|
* msg_info: will display informational message.
|
164
164
|
*
|
165
165
|
* popup: will display popup message
|
@@ -199,15 +199,17 @@ process_json_result = function(json) {
|
|
199
199
|
|
200
200
|
/**** update fields on form ****/
|
201
201
|
case 'record':
|
202
|
-
let name = key.replace('record_','record[') + ']';
|
203
|
-
field = $('[name="' + name + '"]');
|
202
|
+
//let name = key.replace('record_','record[') + ']';
|
203
|
+
//field = $('[name="' + name + '"]');
|
204
|
+
field = $('#' + key);
|
205
|
+
// console.log(field);
|
204
206
|
// checkbox field
|
205
207
|
if (field.is(':checkbox')) {
|
206
208
|
field.prop('checked', value);
|
207
209
|
// select field
|
208
210
|
} else if (field.is('select')) {
|
209
211
|
// options for select field
|
210
|
-
if (
|
212
|
+
if (Array.isArray(value)) {
|
211
213
|
field.empty();
|
212
214
|
$.each(value, function(index, v) {
|
213
215
|
field.append( new Option(v[0], v[1]) );
|
@@ -246,11 +248,24 @@ process_json_result = function(json) {
|
|
246
248
|
/**** display popup message ****/
|
247
249
|
case 'popup':
|
248
250
|
if (selector == 'url') {
|
249
|
-
$('#popup').bPopup({ loadUrl: value
|
251
|
+
$('#popup').bPopup({ loadUrl: value,
|
252
|
+
transition: 'slideDown', transitionClose: 'slideDown', speed: 300,
|
253
|
+
opacity: 0, position: ['auto', 20],
|
254
|
+
closeClass: 'dc-link' });
|
250
255
|
}
|
251
256
|
else {
|
252
257
|
$('#popup').html(value);
|
253
|
-
$('#popup').bPopup({
|
258
|
+
$('#popup').bPopup( {
|
259
|
+
transition: 'slideDown', transitionClose: 'slideDown', speed: 300,
|
260
|
+
opacity: 0, position: ['auto', 20],
|
261
|
+
closeClass: 'dc-link' });
|
262
|
+
}
|
263
|
+
// resize parent iframe if smaller then 500px to ensure popup some space
|
264
|
+
let document_height = document.body.scrollHeight;
|
265
|
+
if (document_height < 500) {
|
266
|
+
let frame = window.frameElement
|
267
|
+
if (frame === null) frame = document.body;
|
268
|
+
frame.style.height = '500px';
|
254
269
|
}
|
255
270
|
break;
|
256
271
|
|
@@ -334,10 +349,12 @@ function dc_reload_window() {
|
|
334
349
|
/*******************************************************************
|
335
350
|
* Will open popup window
|
336
351
|
*******************************************************************/
|
337
|
-
function popup_window(url,
|
338
|
-
let y =
|
339
|
-
let x =
|
340
|
-
|
352
|
+
function popup_window(url, title, parent_win, w, h) {
|
353
|
+
let y = parent_win.top.outerHeight / 2 + parent_win.top.screenY - (h / 2);
|
354
|
+
let x = parent_win.top.outerWidth / 2 + parent_win.top.screenX - (w / 2);
|
355
|
+
let win = parent_win.open(url, 'dc_popup', `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=${w}, height=${h}, top=${y}, left=${x}`);
|
356
|
+
win.document.title = title;
|
357
|
+
return win;
|
341
358
|
}
|
342
359
|
|
343
360
|
/*******************************************************************
|
@@ -393,7 +410,7 @@ process_parent_form_updates = function(element) {
|
|
393
410
|
/*****************************************************************
|
394
411
|
* Toggle show and hide div
|
395
412
|
******************************************************************/
|
396
|
-
|
413
|
+
dc_div_toggle = function(div) {
|
397
414
|
if ($(div).is(":visible")) {
|
398
415
|
$(div).slideUp();
|
399
416
|
} else {
|
@@ -401,8 +418,55 @@ dc_toggle_div = function(div) {
|
|
401
418
|
}
|
402
419
|
};
|
403
420
|
|
421
|
+
/*****************************************************************
|
422
|
+
* Process simple ajax call
|
423
|
+
******************************************************************/
|
424
|
+
simple_ajax_call = function(url) {
|
425
|
+
$.ajax({
|
426
|
+
url: url,
|
427
|
+
success: function(data) { process_json_result(data); }
|
428
|
+
});
|
429
|
+
};
|
430
|
+
|
431
|
+
/*****************************************************************
|
432
|
+
* Return value of the input field on a form
|
433
|
+
******************************************************************/
|
434
|
+
function dc_field_get_value(field_name) {
|
435
|
+
field_name = field_name.replace('record_', '');
|
436
|
+
let field = $('[name="record[' + field_name + ']"]');
|
437
|
+
return field.val();
|
438
|
+
}
|
439
|
+
|
440
|
+
/*****************************************************************
|
441
|
+
* Will process data-fields attribute and add field values as parameters to url
|
442
|
+
******************************************************************/
|
443
|
+
function dc_url_add_params(form, url) {
|
444
|
+
// check if data-fields attribute present
|
445
|
+
let fields = form.getAttribute("data-fields");
|
446
|
+
if (fields === null) return url;
|
447
|
+
// url might already contain ?
|
448
|
+
let form_parms = '?';
|
449
|
+
if (url.match(/\?/)) form_parms = '';
|
450
|
+
|
451
|
+
fields.split(',').forEach( function(field) {
|
452
|
+
let value = dc_field_get_value(field);
|
453
|
+
if (value) form_parms += '&' + field + '=' + value;
|
454
|
+
});
|
455
|
+
return url + form_parms;
|
456
|
+
}
|
457
|
+
|
404
458
|
/*******************************************************************
|
405
|
-
*
|
459
|
+
* Copy div text to clipboard
|
460
|
+
*******************************************************************/
|
461
|
+
function dc_copy_to_clipboard(div) {
|
462
|
+
let copyText = document.getElementById(div).innerText;
|
463
|
+
console.log(copyText);
|
464
|
+
/* Copy the text inside the text field */
|
465
|
+
navigator.clipboard.writeText(copyText);
|
466
|
+
}
|
467
|
+
|
468
|
+
/*******************************************************************
|
469
|
+
* Events start here
|
406
470
|
*******************************************************************/
|
407
471
|
$(document).ready( function() {
|
408
472
|
/* This could be the way to focus on first input field on document open
|
@@ -465,7 +529,7 @@ $(document).ready( function() {
|
|
465
529
|
* Popup CMS edit menu option clicked
|
466
530
|
*******************************************************************/
|
467
531
|
$('.drgcms_popmenu_item').on('click',function(e) {
|
468
|
-
url = e.target.getAttribute("data-url");
|
532
|
+
let url = e.target.getAttribute("data-url");
|
469
533
|
$('#iframe_cms').attr('src', url);
|
470
534
|
// $('#iframe_cms').width(1000).height(1000);
|
471
535
|
// scroll to top of page and hide menu
|
@@ -476,13 +540,22 @@ $(document).ready( function() {
|
|
476
540
|
/*******************************************************************
|
477
541
|
* Sort action clicked on cmsedit
|
478
542
|
*******************************************************************/
|
479
|
-
$('.
|
543
|
+
$('.dc-sort-select').change( function(e) {
|
480
544
|
let table = e.target.getAttribute("data-table");
|
481
545
|
let form = e.target.getAttribute("data-form");
|
482
546
|
if (form === null) form = table;
|
483
547
|
let sort = e.target.value;
|
484
|
-
e.target.value = null;
|
485
|
-
|
548
|
+
// e.target.value = null;
|
549
|
+
let url = "/cmsedit/run?control=cmsedit.sort&sort=" + sort + "&table=" + table + "&form_name=" + form;
|
550
|
+
simple_ajax_call(url);
|
551
|
+
});
|
552
|
+
|
553
|
+
/*******************************************************************
|
554
|
+
* Click on field name in result header perform sort action
|
555
|
+
*******************************************************************/
|
556
|
+
$('.dc-result-header span').on('click',function(e) {
|
557
|
+
let url = e.target.getAttribute("data-url");
|
558
|
+
simple_ajax_call(url);
|
486
559
|
});
|
487
560
|
|
488
561
|
/*******************************************************************
|
@@ -490,20 +563,20 @@ $(document).ready( function() {
|
|
490
563
|
*******************************************************************/
|
491
564
|
$('.dc-check-all').on('click',function(e) {
|
492
565
|
let checkboxes = $('.dc-check');
|
493
|
-
if ($(this).hasClass('
|
566
|
+
if ($(this).hasClass('mi-check_box')) {
|
494
567
|
// check all checkboxes
|
495
568
|
checkboxes.each( function() {
|
496
569
|
$(this).prop('checked', true);
|
497
570
|
$(this).parent().closest('div').addClass('dc-checked');
|
498
571
|
});
|
499
|
-
$(this).removeClass('
|
572
|
+
$(this).removeClass('mi-check_box').addClass('mi-check_square');
|
500
573
|
} else {
|
501
574
|
// uncheck all checkboxes
|
502
575
|
checkboxes.each( function() {
|
503
576
|
$(this).prop('checked', false);
|
504
577
|
$(this).parent().closest('div').removeClass('dc-checked');
|
505
578
|
});
|
506
|
-
$(this).removeClass('
|
579
|
+
$(this).removeClass('mi-check_square').addClass('mi-check_box');
|
507
580
|
}
|
508
581
|
});
|
509
582
|
|
@@ -603,11 +676,22 @@ $(document).ready( function() {
|
|
603
676
|
if (url.length < 5) return false;
|
604
677
|
|
605
678
|
// check HTML5 validations
|
606
|
-
|
607
|
-
|
608
|
-
|
679
|
+
let validate = this.getAttribute("data-validate");
|
680
|
+
if (validate == null || validate == true) {
|
681
|
+
if ($("form")[0] && !$("form")[0].checkValidity()) {
|
682
|
+
$("form")[0].reportValidity();
|
683
|
+
return false;
|
684
|
+
}
|
609
685
|
}
|
610
686
|
|
687
|
+
// update html editor fields before data serialization
|
688
|
+
let cke_elements = document.querySelectorAll(`div[id^="cke_record"]`);
|
689
|
+
cke_elements.forEach(e => {
|
690
|
+
let field_id = e.id.replace('cke_', '');
|
691
|
+
let text = CKEDITOR.instances[field_id].getData();
|
692
|
+
$('#' + field_id).val(text);
|
693
|
+
});
|
694
|
+
|
611
695
|
let data = {};
|
612
696
|
let request = this.getAttribute("data-request");
|
613
697
|
switch (request) {
|
@@ -628,7 +712,7 @@ $(document).ready( function() {
|
|
628
712
|
if (checkboxes.length > 0) {
|
629
713
|
let checked = [];
|
630
714
|
checkboxes.each( function() {
|
631
|
-
if ($(this).prop('checked')) checked.push($(this).attr("id"));
|
715
|
+
if ($(this).prop('checked')) checked.push($(this).attr("id").replace('check-', ''));
|
632
716
|
})
|
633
717
|
data['checked'] = checked;
|
634
718
|
}
|
@@ -642,9 +726,21 @@ $(document).ready( function() {
|
|
642
726
|
success: function(data) {
|
643
727
|
process_json_result(data);
|
644
728
|
$('.dc-spinner').hide();
|
729
|
+
},
|
730
|
+
error: function (request, status, error) {
|
731
|
+
$('.dc-spinner').css('color','red');
|
732
|
+
alert(request.responseText);
|
645
733
|
}
|
646
734
|
});
|
647
735
|
});
|
736
|
+
|
737
|
+
/*******************************************************************
|
738
|
+
* Click on filter off
|
739
|
+
*******************************************************************/
|
740
|
+
$('.mi-filter_alt_off').on('click', function(e) {
|
741
|
+
let url = $(this).parents('.dc-filter').attr("data-url");
|
742
|
+
if (url.length > 5) simple_ajax_call(url);
|
743
|
+
});
|
648
744
|
|
649
745
|
/*******************************************************************
|
650
746
|
* Process action submit button click.
|
@@ -665,24 +761,44 @@ $(document).ready( function() {
|
|
665
761
|
form.setAttribute('action', url);
|
666
762
|
form.setAttribute('method', "post");
|
667
763
|
form.submit();
|
668
|
-
});
|
669
|
-
|
670
|
-
/*******************************************************************
|
671
|
-
|
672
|
-
********************************************************************/
|
673
|
-
$('.dc-window-open').on('click', function(e) {
|
674
|
-
|
675
|
-
if (confirmation_is_cancled(this))
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
764
|
+
});
|
765
|
+
|
766
|
+
/*******************************************************************
|
767
|
+
Will open a new window with URL specified.
|
768
|
+
********************************************************************/
|
769
|
+
$('.dc-window-open').on('click', function(e) {
|
770
|
+
// confirmation if required
|
771
|
+
if (confirmation_is_cancled(this)) return false;
|
772
|
+
|
773
|
+
let url = this.getAttribute("data-url");
|
774
|
+
let title = this.getAttribute("title");
|
775
|
+
let w = this.getAttribute("data-x") || 1000;
|
776
|
+
let h = this.getAttribute("data-y") || 800;
|
777
|
+
|
778
|
+
url = dc_url_add_params(this, url)
|
779
|
+
let win = popup_window(url, title, window, w, h);
|
684
780
|
win.focus();
|
685
|
-
});
|
781
|
+
});
|
782
|
+
|
783
|
+
/*******************************************************************
|
784
|
+
Will open a new popup with URL specified.
|
785
|
+
********************************************************************/
|
786
|
+
$('.dc-popup-open').on('click', function(e) {
|
787
|
+
// confirmation if required
|
788
|
+
if (confirmation_is_cancled(this)) return false;
|
789
|
+
|
790
|
+
let url = this.getAttribute("data-url");
|
791
|
+
let title = this.getAttribute("title");
|
792
|
+
let w = this.getAttribute("data-x") || 1000;
|
793
|
+
let h = this.getAttribute("data-y") || 800;
|
794
|
+
|
795
|
+
url = dc_url_add_params(this, url)
|
796
|
+
$('#popup').bPopup({ loadUrl: url,
|
797
|
+
transition: 'slideDown', transitionClose: 'slideDown', speed: 300,
|
798
|
+
opacity: 0, position: ['auto', 20],
|
799
|
+
closeClass: 'dc-link'
|
800
|
+
});
|
801
|
+
});
|
686
802
|
|
687
803
|
/*******************************************************************
|
688
804
|
* Animate button on click
|
@@ -698,20 +814,7 @@ $(document).ready( function() {
|
|
698
814
|
$(this).toggleClass('dc-animate-button');
|
699
815
|
});
|
700
816
|
*/
|
701
|
-
|
702
|
-
* Animate button on click
|
703
|
-
*******************************************************************/
|
704
|
-
$('.dc-animate').mousedown( function() {
|
705
|
-
$(this).toggleClass('dc-animate-button');
|
706
|
-
});
|
707
|
-
|
708
|
-
/*******************************************************************
|
709
|
-
* Animate button on click
|
710
|
-
*******************************************************************/
|
711
|
-
$('.dc-animate').mouseup( function() {
|
712
|
-
$(this).toggleClass('dc-animate-button');
|
713
|
-
});
|
714
|
-
|
817
|
+
|
715
818
|
/*******************************************************************
|
716
819
|
* App menu option clicked
|
717
820
|
*******************************************************************/
|
@@ -732,28 +835,40 @@ $(document).ready( function() {
|
|
732
835
|
/*******************************************************************
|
733
836
|
* Display spinner on link with spinner, submit link
|
734
837
|
*******************************************************************/
|
735
|
-
$('.dc-link
|
838
|
+
$('.dc-link.spin').on('click', function(e) {
|
736
839
|
$('.dc-spinner').show();
|
737
840
|
});
|
738
841
|
|
739
842
|
$('.dc-link-submit').on('click', function(e) {
|
740
843
|
$('.dc-spinner').show();
|
741
|
-
});
|
844
|
+
});
|
845
|
+
|
846
|
+
/*******************************************************************
|
847
|
+
* Hide spinner when validation error occured
|
848
|
+
*******************************************************************/
|
849
|
+
$(':input').on("invalid", function(event) {
|
850
|
+
$('.dc-spinner').hide();
|
851
|
+
});
|
742
852
|
|
743
853
|
/*******************************************************************
|
744
854
|
* Add button clicked while in edit. Create window dialog for adding new record
|
745
855
|
* into required table. This is helper scenario, when user is selecting
|
746
856
|
* data from with text_autocomplete and data doesn't exist in belongs_to table.
|
747
857
|
*******************************************************************/
|
748
|
-
$('.in-edit-add').on('click', function(e) {
|
749
|
-
let
|
858
|
+
$('.in-edit-add').on('click', function(e) {
|
859
|
+
let id = this.getAttribute("data-id");
|
860
|
+
let table = this.getAttribute("data-table");
|
861
|
+
let url = '/cmsedit/new?window_close=0&table=' + table;
|
862
|
+
if (id) {
|
863
|
+
url = '/cmsedit/' + id + '/edit?window_close=0&table=' + table;
|
864
|
+
}
|
750
865
|
let w = popup_window(url, '', window, 1000, 800);
|
751
866
|
w.focus();
|
752
867
|
});
|
753
868
|
|
754
869
|
/**********************************************************************
|
755
870
|
* When filter_field (field name) is selected on filter subform this routine finds
|
756
|
-
* and displays
|
871
|
+
* and displays appropriate span with input field.
|
757
872
|
**********************************************************************/
|
758
873
|
$('#filter_field').on('change', function() {
|
759
874
|
if (this.value.length > 0) {
|
@@ -891,11 +1006,10 @@ $(document).ready( function() {
|
|
891
1006
|
*******************************************************************/
|
892
1007
|
$('#_record__filter_field').keydown( function(e) {
|
893
1008
|
if (e.which == '13' || e.which == '9') {
|
894
|
-
|
1009
|
+
let url = $(this).parents('span').attr("data-url");
|
895
1010
|
url = url + "&filter_value=" + this.value;
|
896
|
-
|
897
|
-
|
898
|
-
}
|
1011
|
+
simple_ajax_call(url);
|
1012
|
+
};
|
899
1013
|
});
|
900
1014
|
|
901
1015
|
/*******************************************************************
|
@@ -913,7 +1027,7 @@ $(document).ready( function() {
|
|
913
1027
|
value = field.val();
|
914
1028
|
}
|
915
1029
|
url = url + "&filter_value=" + value;
|
916
|
-
|
1030
|
+
simple_ajax_call(url);
|
917
1031
|
});
|
918
1032
|
|
919
1033
|
/*******************************************************************
|
@@ -921,47 +1035,77 @@ $(document).ready( function() {
|
|
921
1035
|
*******************************************************************/
|
922
1036
|
$('#open_drgcms_filter').on('click', function(e) {
|
923
1037
|
$('#drgcms_filter').bPopup({
|
924
|
-
speed:
|
925
|
-
|
926
|
-
|
1038
|
+
transition: 'slideDown', transitionClose: 'slideDown', speed: 300,
|
1039
|
+
opacity: 0, position: ['auto', 20],
|
1040
|
+
closeClass: 'dc-link' });
|
927
1041
|
});
|
928
1042
|
|
929
1043
|
/*******************************************************************
|
930
1044
|
* Click on preview selected image
|
931
1045
|
*******************************************************************/
|
932
1046
|
$('.dc-image-preview').on('click', function(e) {
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
1047
|
+
let img = $(this).children(":first").attr('src');
|
1048
|
+
$('#dc-image-preview').bPopup({
|
1049
|
+
content: 'image', //'ajax', 'iframe' or 'image'
|
1050
|
+
contentContainer: '#dc-image-preview',
|
1051
|
+
loadUrl: img,
|
1052
|
+
opacity: 0
|
1053
|
+
});
|
940
1054
|
});
|
941
1055
|
|
942
1056
|
/*******************************************************************
|
943
|
-
*
|
1057
|
+
* Set new filter
|
944
1058
|
*******************************************************************/
|
945
|
-
$('.
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
// Still opening in new window
|
952
|
-
// iframe = parent.document.getElementsByTagName("iframe")[0].getAttribute("id");
|
953
|
-
// loc = url + '&filter_field=' + field + '&filter_oper=' + oper
|
954
|
-
// $('#'+iframe).attr('src', loc);
|
955
|
-
// parent.document.getElementById(iframe).src = loc
|
1059
|
+
$('.dc-filter-set').on('click', function(e) {
|
1060
|
+
let url = $(this).attr( 'data-url' );
|
1061
|
+
let field = $('select#filter_field1').val();
|
1062
|
+
let operation = $('select#filter_oper').val();
|
1063
|
+
url = url + '&filter_field=' + field + '&filter_oper=' + operation
|
1064
|
+
simple_ajax_call(url);
|
956
1065
|
});
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
1066
|
+
|
1067
|
+
/*******************************************************************
|
1068
|
+
* Toggle one cmsedit menu level
|
1069
|
+
*******************************************************************/
|
1070
|
+
$('.cmsedit-top-level-menu div').on('click', function(e) {
|
1071
|
+
$(e.target).siblings('ul').toggle('fast');
|
1072
|
+
$(e.target).toggleClass('expanded');
|
1073
|
+
});
|
1074
|
+
|
1075
|
+
/*******************************************************************
|
1076
|
+
* Toggle result set record menu
|
1077
|
+
*
|
1078
|
+
* This and additional two event hadlers provide expected behavior of submenus popup and close.
|
1079
|
+
*******************************************************************/
|
1080
|
+
$('.dc-result-submenu .mi-more_vert').on('click', function(e) {
|
1081
|
+
let ul = $(e.target).siblings('ul');
|
1082
|
+
// hide last selected menu if not the same
|
1083
|
+
if (typeof dc_last_menu_selected !== 'undefined') { dc_last_menu_selected.hide(); }
|
1084
|
+
// if menu is past the bottom fix it to bottom
|
1085
|
+
let menu_bottom = ul.height() + ul.parent().position().top + 20;
|
1086
|
+
if (menu_bottom > $(document).height()) ul.css('bottom', 0);
|
1087
|
+
ul.show();
|
1088
|
+
dc_last_menu_selected = ul;
|
963
1089
|
});
|
964
|
-
|
1090
|
+
|
1091
|
+
/*******************************************************************
|
1092
|
+
* Result record menu has lost focus. Hide menu.
|
1093
|
+
*******************************************************************/
|
1094
|
+
$('.dc-result-submenu ul').hover(function(e) {
|
1095
|
+
},
|
1096
|
+
function(e) {
|
1097
|
+
dc_last_menu_selected.hide();
|
1098
|
+
dc_last_menu_selected = undefined;
|
1099
|
+
});
|
1100
|
+
|
1101
|
+
/*******************************************************************
|
1102
|
+
* Result set record menu is left open if action is canceled. Ex. delete confirm. This will hide menu.
|
1103
|
+
*******************************************************************/
|
1104
|
+
$('.dc-result-submenu ul li').on('click', function(e) {
|
1105
|
+
console.log('ups');
|
1106
|
+
if (typeof dc_last_menu_selected !== 'undefined') dc_last_menu_selected.hide();
|
1107
|
+
});
|
1108
|
+
|
965
1109
|
/*******************************************************************
|
966
1110
|
* Resize result table columns. For now an idea.
|
967
1111
|
*******************************************************************/
|
@@ -1009,9 +1153,10 @@ $(document).ready( function() {
|
|
1009
1153
|
} else {
|
1010
1154
|
sign = '';
|
1011
1155
|
}
|
1012
|
-
// save value to
|
1156
|
+
// save value to field holding return value and trigger change event
|
1013
1157
|
var field = '#' + $(this).attr("id").slice(0,-1);
|
1014
1158
|
$(field).val(val);
|
1159
|
+
$(field).trigger("change")
|
1015
1160
|
|
1016
1161
|
// decimal part
|
1017
1162
|
if (decimals == 0) separator = '';
|
@@ -1093,14 +1238,14 @@ $(document).ready( function() {
|
|
1093
1238
|
*******************************************************************/
|
1094
1239
|
$('.dc-result-header .th i').hover( function() {
|
1095
1240
|
old_sort_icon = '';
|
1096
|
-
// save old sort icon and replace it with filter icon
|
1241
|
+
// save old sort icon and replace it with filter icon
|
1097
1242
|
$.each( $(this).attr("class").split(/\s+/),
|
1098
1243
|
function(index, item) { if (item.match('sort')) { old_sort_icon = item}; }
|
1099
1244
|
);
|
1100
|
-
$(this).removeClass(old_sort_icon).addClass('
|
1101
|
-
// bring back old sort icon
|
1102
|
-
}, function(){
|
1103
|
-
$(this).removeClass('
|
1245
|
+
$(this).removeClass(old_sort_icon).addClass('mi-ads_click');
|
1246
|
+
// bring back old sort icon
|
1247
|
+
}, function() {
|
1248
|
+
$(this).removeClass('mi-ads_click').addClass(old_sort_icon);
|
1104
1249
|
});
|
1105
1250
|
|
1106
1251
|
/*******************************************************************
|
@@ -1108,6 +1253,8 @@ $(document).ready( function() {
|
|
1108
1253
|
*******************************************************************/
|
1109
1254
|
$('.dc-result-header .th i').click( function(e) {
|
1110
1255
|
e.preventDefault();
|
1256
|
+
if ($(this).hasClass('no-filter')) return;
|
1257
|
+
|
1111
1258
|
// additional click will close dialog when visible
|
1112
1259
|
if ($('.filter-popup').is(':visible')) {
|
1113
1260
|
$('.filter-popup').hide();
|
@@ -1118,7 +1265,7 @@ $(document).ready( function() {
|
|
1118
1265
|
let field_name = header.attr("data-name");
|
1119
1266
|
$('.filter-popup').attr('data-name', field_name);
|
1120
1267
|
// change popup position and show
|
1121
|
-
$('.filter-popup').css({'top':e.pageY+5,'left':e.pageX, 'position':'absolute'});
|
1268
|
+
$('.filter-popup').css({'top': e.pageY + 5, 'left': e.pageX, 'position': 'absolute'});
|
1122
1269
|
$('.filter-popup').show();
|
1123
1270
|
});
|
1124
1271
|
|
@@ -1133,7 +1280,7 @@ $(document).ready( function() {
|
|
1133
1280
|
let field_name = parent.data("name");
|
1134
1281
|
|
1135
1282
|
url = url + '&filter_field=' + field_name + '&filter_oper=' + operator;
|
1136
|
-
|
1283
|
+
simple_ajax_call(url);
|
1137
1284
|
});
|
1138
1285
|
|
1139
1286
|
/*****************************************************************
|
@@ -1141,14 +1288,14 @@ $(document).ready( function() {
|
|
1141
1288
|
******************************************************************/
|
1142
1289
|
$(".dc-handle").click(function() {
|
1143
1290
|
let div = this.getAttribute("data-div");
|
1144
|
-
|
1291
|
+
dc_div_toggle(div);
|
1145
1292
|
});
|
1146
1293
|
|
1147
1294
|
/*******************************************************************
|
1148
1295
|
* Show-Hide CMS menu on hamburger click
|
1149
1296
|
*******************************************************************/
|
1150
1297
|
$('#menu-hamburger').on('click', function(e) {
|
1151
|
-
$('.cmsedit-container #menu').toggleClass('visible');
|
1298
|
+
$('.cmsedit-container #cms-menu').toggleClass('visible');
|
1152
1299
|
});
|
1153
1300
|
|
1154
1301
|
});
|