From 3003b268510225922f0774bbd6c665b87582f2db Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Sun, 12 Mar 2017 17:13:01 +0000 Subject: [PATCH] Dialog 'vor dem Schliessen speichern' wenn Aenderungen gemacht wurden auch fuer CodeMirror --- web/ui/ui.js | 70 +++++++++++++++++++++------------- 1 files changed, 43 insertions(+), 27 deletions(-) diff --git a/web/ui/ui.js b/web/ui/ui.js index 5b30784..6e52b6a 100644 --- a/web/ui/ui.js +++ b/web/ui/ui.js @@ -307,34 +307,46 @@ } function fm_menu_datei_schliessen() { - if(tinymce.activeEditor.undoManager.hasUndo()) { - // hier Abfrage ob gespeichert werden soll - $('#confirmOk').click(function() { - $('#confirmOk').attr('onclick','').unbind('click'); - fm_menu_datei_speichern(function() { - fm_do_close(); - }); - }); - $('#confirmCancel').click(function() { - $('#confirmCancel').attr('onclick','').unbind('click'); - }); - $('#confirmClose').show(); - $('#confirmClose').click(function() { - $('#confirmClose').attr('onclick','').unbind('click'); + if(openEditor === 'text') { + if(!cm.getDoc().isClean()) { + fm_ask_for_save(); + } else { + fm_do_close(); + } + } else { + if(tinymce.activeEditor.undoManager.hasUndo()) { + fm_ask_for_save(); + } else { + fm_do_close(); + } + } +} + +function fm_ask_for_save() { + // hier Abfrage ob gespeichert werden soll + $('#confirmOk').click(function() { + $('#confirmOk').attr('onclick','').unbind('click'); + fm_menu_datei_speichern(function() { fm_do_close(); }); - $('#confirmOk').text("Speichern"); - $('#confirmOk').addClass('btn-primary'); - $('#confirmOk').removeClass('btn-danger'); - $('#confirmModalTitle').text("Schliessen"); - $('#confirmModalBody').text("Speichern vor dem Schliessen?"); - $('#confirmModal').modal({ - keyboard: false, - show: true - }); - } else { + }); + $('#confirmCancel').click(function() { + $('#confirmCancel').attr('onclick','').unbind('click'); + }); + $('#confirmClose').show(); + $('#confirmClose').click(function() { + $('#confirmClose').attr('onclick','').unbind('click'); fm_do_close(); - } + }); + $('#confirmOk').text("Speichern"); + $('#confirmOk').addClass('btn-primary'); + $('#confirmOk').removeClass('btn-danger'); + $('#confirmModalTitle').text("Schliessen"); + $('#confirmModalBody').text("Speichern vor dem Schliessen?"); + $('#confirmModal').modal({ + keyboard: false, + show: true + }); } function fm_do_close() { @@ -759,17 +771,20 @@ var content; if(openEditor === 'text') { content = cm.getValue(); + cm.getDoc().markClean(); } else { content = ed.getContent(); + tinymce.activeEditor.undoManager.clear(); } var m = '?c=de.uhilger.filecms.api.FileMgr&m=' + method; var u = '../svc' + m; fm_post(u, {p1: pfad, p2: saveFileName, p3: content}, function(resp) { // hier scheint nichts zurueckzukommen.. }); - tinymce.activeEditor.undoManager.clear(); openFileName = saveFileName; - if(callback !== undefined) { + if(typeof (callback) !== 'function') { + + } else { callback(); } } @@ -830,6 +845,7 @@ //cm.setValue(htmlDecode(content)); //cm.setValue(content); cm.setValue(unescapeHtml(content)); + cm.getDoc().markClean(); } -- Gitblit v1.9.3