Selaa lähdekoodia

Autosave for segments silent mode fix

Vijayakrishnan 3 vuotta sitten
vanhempi
commit
973b7627fb
2 muutettua tiedostoa jossa 24 lisäystä ja 17 poistoa
  1. 1 1
      public/js/mc.js
  2. 23 16
      resources/views/app/patient/note/segment_script.blade.php

+ 1 - 1
public/js/mc.js

@@ -483,7 +483,7 @@ window.saveVisitForm = function(_trigger, _silent = false, _close = false, _done
     $.post(form.attr('url'), form.serialize(), _data => {
         if(!hasResponseError(_data)) {
             if(typeof window.updateAllSegmentsInResponse !== 'undefined' && noteSection.length) {
-                window.updateAllSegmentsInResponse(_data);
+                window.updateAllSegmentsInResponse(_data, true, _silent);
             }
             if(!_silent) {
                 hideMask();

+ 23 - 16
resources/views/app/patient/note/segment_script.blade.php

@@ -1,12 +1,12 @@
 <script>
     (function() {
 
-        window.updateAllSegmentsInResponse = function(_response, _updateListeners = true) {
+        window.updateAllSegmentsInResponse = function(_response, _updateListeners = true, _updateOnlySummary = false) {
             if(!hasResponseError(_response)) {
 
                 // refresh primary segment (where uid is _response.data.uid)
                 if(_response.data && _response.data.uid) {
-                    updateSegmentByUid(_response.data.uid, _response.data.summaryHtml, _response.data.editHtml);
+                    updateSegmentByUid(_response.data.uid, _response.data.summaryHtml, _response.data.editHtml, _updateOnlySummary);
                 }
 
                 // refresh listening segments
@@ -19,7 +19,7 @@
                                 $.post('/api/visit/updateSegmentHtml', {
                                     segmentUid: _response.data.listenerSegmentUids[i]
                                 }, _data => {
-                                    updateAllSegmentsInResponse(_data, false);
+                                    updateAllSegmentsInResponse(_data, false, _updateOnlySummary);
 
                                     // ugly hack!
                                     if(listenerSegmentTemplateName === 'medrisk_vigilence') {
@@ -37,11 +37,11 @@
             }
         }
 
-        window.updateSegmentByUid = function(_uid, _summaryHtml, _editHtml) {
+        window.updateSegmentByUid = function(_uid, _summaryHtml, _editHtml, _updateOnlySummary) {
             let segment = $('.note-section[data-segment-uid="' + _uid + '"]');
             if(segment && segment.length) {
                 segment.find('.summary-container').html(_summaryHtml);
-                segment.find('.edit-container').html(_editHtml);
+                if(!_updateOnlySummary) segment.find('.edit-container').html(_editHtml);
 
                 // special case for lifestyle
                 let popupContainer = $('[stag-popup-key="segment-popup-' + segment.attr('data-segment-template-name') + '"] .ls-segment-edit-html');
@@ -49,15 +49,17 @@
                     popupContainer.html(_editHtml);
                 }
 
-                initRTEs(segment);
-                initSegmentMoes(segment);
-                initMoes();
-                initStagSuggest();
-                if(window.segmentInitializers) {
-                    let internalName = segment.attr('data-segment-template-name');
-                    if(window.segmentInitializers.hasOwnProperty(internalName) &&
-                        typeof window.segmentInitializers[internalName] === 'function') {
-                        window.segmentInitializers[internalName].call(window);
+                if(!_updateOnlySummary) {
+                    initRTEs(segment);
+                    initSegmentMoes(segment);
+                    initMoes();
+                    initStagSuggest();
+                    if(window.segmentInitializers) {
+                        let internalName = segment.attr('data-segment-template-name');
+                        if(window.segmentInitializers.hasOwnProperty(internalName) &&
+                            typeof window.segmentInitializers[internalName] === 'function') {
+                            window.segmentInitializers[internalName].call(window);
+                        }
                     }
                 }
             }
@@ -122,7 +124,7 @@
 
                 quill.root.innerHTML = existingContent;
 
-                let onTextChange = function(delta, oldDelta, source) {
+                let setValue = function(delta, oldDelta, source) {
                     var content = quill.root.innerHTML;
                     let dataObject = {};
                     dataObject[fieldName] = content;
@@ -148,6 +150,11 @@
                     pElem.find('input[name=data]').val(v);
                 }
 
+                let onTextChange = function(delta, oldDelta, source) {
+                    setValue(delta, oldDelta, source);
+                    $(el).trigger('rich-text-input');
+                }
+
                 quill.on('text-change', onTextChange);
 
                 $(quill.container)
@@ -157,7 +164,7 @@
                     .attr('with-shortcuts', 1);
 
                 // set value initially
-                onTextChange();
+                setValue();
             });
         }