Vijayakrishnan 3 лет назад
Родитель
Сommit
0c72fd3a82
1 измененных файлов с 63 добавлено и 55 удалено
  1. 63 55
      resources/views/app/patient/note/segment_script.blade.php

+ 63 - 55
resources/views/app/patient/note/segment_script.blade.php

@@ -28,6 +28,68 @@
             }
         }
 
+        window.autoSaveSegment = function(_trigger) {
+            saveVisitForm(_trigger, true);
+        };
+
+        function saveVisitForm(_trigger, _silent = false) {
+            let form = $(_trigger).closest('form');
+
+            if (!_silent && !form[0].checkValidity()) {
+                form[0].reportValidity();
+                return false;
+            }
+
+            // add [data-name] values to payload
+            let dataField = form.find('[name="data"]').first();
+            let parsed = null;
+            if(dataField.val()) {
+                parsed = JSON.parse(dataField.val());
+            }
+            form.find('[data-name]').each(function() {
+                if(!parsed) parsed = {};
+
+                let keys = $(this).attr('data-name').split('->');
+                let currentNode = parsed;
+                for (let i = 0; i < keys.length; i++) {
+                    if(i !== keys.length - 1) {
+                        if(typeof currentNode[keys[i]] === 'undefined') {
+                            currentNode[keys[i]] = {};
+                        }
+                        currentNode = currentNode[keys[i]];
+                    }
+                    else {
+                        if($(this).is(':checkbox')) {
+                            currentNode[keys[i]] = $(this).prop('checked');
+                        }
+                        else {
+                            currentNode[keys[i]] = $(this).val();
+                        }
+                    }
+                }
+
+            });
+            if(parsed) {
+                dataField.val(JSON.stringify(parsed));
+            }
+
+            if(!_silent) showMask();
+
+            let closeOnSave = false, noteSection = form.closest('.note-section');
+            if($(_trigger).closest('[visit-moe]').is('[close-on-save]')) {
+                closeOnSave = true;
+            }
+
+            $.post(form.attr('url'), form.serialize(), _data => {
+                if(!_silent) hideMask();
+                updateAllSegmentsInResponse(_data);
+                if(!_silent && closeOnSave) {
+                    noteSection.removeClass('edit');
+                }
+            }, 'json');
+            return false;
+        }
+
         function initSegmentMoes(_parent) {
 
             $('body')
@@ -42,61 +104,7 @@
             _parent.find('[visit-moe] [submit]')
                 .off('click.visit-moe-submit')
                 .on('click.visit-moe-submit', function() {
-                    let form = $(this).closest('form');
-
-                    if (!form[0].checkValidity()) {
-                        form[0].reportValidity();
-                        return false;
-                    }
-
-                    // add [data-name] values to payload
-                    let dataField = form.find('[name="data"]').first();
-                    let parsed = null;
-                    if(dataField.val()) {
-                        parsed = JSON.parse(dataField.val());
-                    }
-                    form.find('[data-name]').each(function() {
-                        if(!parsed) parsed = {};
-
-                        let keys = $(this).attr('data-name').split('->');
-                        let currentNode = parsed;
-                        for (let i = 0; i < keys.length; i++) {
-                            if(i !== keys.length - 1) {
-                                if(typeof currentNode[keys[i]] === 'undefined') {
-                                    currentNode[keys[i]] = {};
-                                }
-                                currentNode = currentNode[keys[i]];
-                            }
-                            else {
-                                if($(this).is(':checkbox')) {
-                                    currentNode[keys[i]] = $(this).prop('checked');
-                                }
-                                else {
-                                    currentNode[keys[i]] = $(this).val();
-                                }
-                            }
-                        }
-
-                    });
-                    if(parsed) {
-                        dataField.val(JSON.stringify(parsed));
-                    }
-
-                    showMask();
-
-                    let closeOnSave = false, noteSection = form.closest('.note-section');
-                    if($(this).closest('[visit-moe]').is('[close-on-save]')) {
-                        closeOnSave = true;
-                    }
-
-                    $.post(form.attr('url'), form.serialize(), _data => {
-                        hideMask();
-                        updateAllSegmentsInResponse(_data);
-                        if(closeOnSave) {
-                            noteSection.removeClass('edit');
-                        }
-                    }, 'json');
-                    return false;
+                    saveVisitForm(this);
                 });
 
             _parent.find('[visit-moe]>a[start]')