From fab80c872af697d61f200fd410a7ecc64ca0a537 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Mon, 06 Mar 2017 22:59:47 +0000 Subject: [PATCH] dekodieren fuer Codemirror --- web/ui/ui.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 48 insertions(+), 8 deletions(-) diff --git a/web/ui/ui.js b/web/ui/ui.js index fdaf273..a05b1bb 100644 --- a/web/ui/ui.js +++ b/web/ui/ui.js @@ -24,6 +24,7 @@ var openEditor; var userid; var tmo; +var tmo2; var cutCopySrcDir; var cutCopyFiles; var cutCopyOperation; @@ -128,7 +129,7 @@ selector: "textarea.text-editor", statusbar: false, menubar: false, - plugins: 'advlist charmap code image link lists media print preview save table textcolor', + plugins: 'advlist charmap code image link lists media print preview save table textcolor importcss', toolbar: 'undo redo | styleselect | image | link unlink | bullist numlist | outdent indent | code', /* menu: { @@ -138,6 +139,7 @@ }, */ resize: 'both', + importcss_append: true, width: "100%", height: '100%', document_base_url : base + "/", @@ -379,8 +381,15 @@ fm_filectls_hide(); fm_dok_editor_init(userid); $("#mce-editor").show(); - ed.setContent(content); - openEditor = 'dok'; + + window.clearTimeout(tmo2); + tmo2 = window.setTimeout(function () { + try { + ed.setContent(content); + openEditor = 'dok'; + } catch (err) { + } + }, 200); } function fm_filectls_hide() { @@ -680,20 +689,20 @@ //var fname = $('.datei-gewaehlt').text(); var fname = openFileName; if(fname !== undefined && fname !== '') { - fm_save_file(fname); + fm_save_file(fname, 'saveTextFile'); } else { fm_menu_datei_speichern_unter(); } } -function fm_save_file(saveFileName) { +function fm_save_file(saveFileName, method) { var content; if(openEditor === 'text') { content = cm.getValue(); } else { content = ed.getContent(); } - var m = '?c=de.uhilger.filecms.api.FileMgr&m=saveTextFile'; + 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) { openFileName = saveFileName; @@ -703,7 +712,7 @@ function fm_menu_datei_speichern_unter() { $('#modal_ok').click(function() { // hier speichern - fm_save_file($('#dateiname').val()); + fm_save_file($('#dateiname').val(), 'saveTextFileAs'); }); $('#saveModalTitle').text('Datei speichern'); $('#dialogfrage').text("Dateiname?"); @@ -734,6 +743,10 @@ /* ---- codemirror editor handling -------- */ +function htmlDecode(value){ + return $('<div/>').html(value).text(); +} + function fm_code_edit(content, m) { cm = CodeMirror.fromTextArea(document.getElementById("editspace"), { lineNumbers: true, @@ -748,7 +761,9 @@ } } }); - cm.setValue(content); + //cm.setValue(htmlDecode(content)); + //cm.setValue(content); + cm.setValue(unescapeHtml(content)); } @@ -791,6 +806,31 @@ return '{"' + obj.constructor.name + '":' + JSON.stringify(obj) + '}'; } +function escapeHtml(text) { + text = text.replace(/\u228/g,'ä'); + text = text.replace(/\u246/g,'ö'); + text = text.replace(/\u252/g,'ü'); + text = text.replace(/\u196/g,'Ä'); + text = text.replace(/\u214/g,'Ö'); + text = text.replace(/\u220/g,'Ü'); + text = text.replace(/\u223/g,'ß'); + text = text.replace(/\u26/g,'&'); + return text; +} + +function unescapeHtml(text) { + text = text.replace(/ä/g, String.fromCharCode(228)); + text = text.replace(/ö/g, String.fromCharCode(246)); + text = text.replace(/ü/g, String.fromCharCode(252)); + text = text.replace(/Ä/g, String.fromCharCode(196)); + text = text.replace(/Ö/g, String.fromCharCode(214)); + text = text.replace(/Ü/g, String.fromCharCode(220)); + text = text.replace(/ß/g, String.fromCharCode(223)); + text = text.replace(/&/g, String.fromCharCode(26)); + return text; +} + + /* ----- Objekte ----- */ function FileList(fl) { -- Gitblit v1.9.3