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

---
 src/java/de/uhilger/filecms/web/Initialiser.java |   39 ++-----------------
 src/java/de/uhilger/filecms/api/FileMgr.java     |    8 +++
 web/ui/ui.js                                     |   29 ++++++++++++++
 3 files changed, 39 insertions(+), 37 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/FileMgr.java b/src/java/de/uhilger/filecms/api/FileMgr.java
index cb4ca87..840a223 100644
--- a/src/java/de/uhilger/filecms/api/FileMgr.java
+++ b/src/java/de/uhilger/filecms/api/FileMgr.java
@@ -21,10 +21,13 @@
 import de.uhilger.filecms.data.FileRef;
 import de.uhilger.filecms.web.Initialiser;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
 import java.security.Principal;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -104,9 +107,12 @@
     
     Object p = getRequest().getUserPrincipal();
     if(p instanceof Principal) {
-      FileReader reader = null;
+      Reader reader = null;
       try {
         File targetFile = new File(getTargetDir(relPath), fileName);
+        
+        //reader = new InputStreamReader(new FileInputStream(targetFile), "UTF8");
+        
         reader = new FileReader(targetFile);
         StringBuffer buf = new StringBuffer();
         char[] readBuffer = new char[1024];
diff --git a/src/java/de/uhilger/filecms/web/Initialiser.java b/src/java/de/uhilger/filecms/web/Initialiser.java
index 30e3d56..ac25f00 100644
--- a/src/java/de/uhilger/filecms/web/Initialiser.java
+++ b/src/java/de/uhilger/filecms/web/Initialiser.java
@@ -18,6 +18,7 @@
 
 package de.uhilger.filecms.web;
 
+import de.uhilger.wbx.WbxUtils;
 import java.io.File;
 import java.util.logging.Logger;
 import javax.servlet.ServletContext;
@@ -62,48 +63,16 @@
           ctx.setAttribute(FILE_BASE, pfad);
           logger.fine("Basis: " + pfad);
         } else {
-          ctx.setAttribute(FILE_BASE, getWbxDataDir(ctx).getAbsolutePath());  
+          ctx.setAttribute(FILE_BASE, WbxUtils.getWbxDataDir(ctx).getAbsolutePath());  
         }
       } else {
-        ctx.setAttribute(FILE_BASE, getWbxDataDir(ctx).getAbsolutePath());      
+        ctx.setAttribute(FILE_BASE, WbxUtils.getWbxDataDir(ctx).getAbsolutePath());      
       }    
     } catch(Exception ex) {
-      ctx.setAttribute(FILE_BASE, getWbxDataDir(ctx).getAbsolutePath());
+      ctx.setAttribute(FILE_BASE, WbxUtils.getWbxDataDir(ctx).getAbsolutePath());
     }
   }
   
-  /**
-   * Bei der WebBox ist das Datenverzeichnis relativ zum Verzeichnis 
-   * $CATALINA_BASE/webapps untergebracht. 
-   * Die Abfrage ServletContext.getRealPath 
-   * liefert das Verzeichnis des Context dieser Webanwendung, also 
-   * $CATALINA_BASE/webapps/file-cms
-   * oder
-   * $WBX/sys/base/webapps/file-cms
-   * 
-   * Unter Windows z.B.
-   * C:\Users\fred\Documents\srv\wbx\sys\base\webapps\file-cms
-   * Unter Linux oder Mac OS z.B.
-   * /home/fred/srv/wbx/sys/base/webapps/file-cms
-   * 
-   * Das Datenverzeichis liegt dann auf 
-   * $WBX/daten
-   * 
-   * Mit dem Verzeichnis des Context dieser Webanwendung ist das 
-   * Datenverzeichnis der WebBox hart kodierbar mit dieser Methode
-   * 
-   * @return Verzeichnis 'daten' der WebBox
-   */
-  private File getWbxDataDir(ServletContext ctx) {
-    String path = ctx.getRealPath("/");
-    logger.fine("getRealPath: " + path); // file-cms in webapps
-    File file = new File(path);
-    file = file.getParentFile().getParentFile().getParentFile().getParentFile();    
-    file = new File(file, "daten/");
-    logger.fine("Basis: " + file.getAbsolutePath());
-    return file;
-  }
-
   @Override
   public void contextDestroyed(ServletContextEvent sce) {
     // hier wird alles wieder aufgeraeumt
diff --git a/web/ui/ui.js b/web/ui/ui.js
index ddf9e16..a05b1bb 100644
--- a/web/ui/ui.js
+++ b/web/ui/ui.js
@@ -761,7 +761,9 @@
       }
     }
   });
-  cm.setValue(htmlDecode(content));
+  //cm.setValue(htmlDecode(content));
+  //cm.setValue(content);
+  cm.setValue(unescapeHtml(content));
 }
 
 
@@ -804,6 +806,31 @@
   return '{"' + obj.constructor.name + '":' + JSON.stringify(obj) + '}';
 }
 
+function escapeHtml(text) {
+  text = text.replace(/\u228/g,'&auml;');
+  text = text.replace(/\u246/g,'&ouml;');
+  text = text.replace(/\u252/g,'&uuml;');
+  text = text.replace(/\u196/g,'&Auml;');
+  text = text.replace(/\u214/g,'&Ouml;');
+  text = text.replace(/\u220/g,'&Uuml;');
+  text = text.replace(/\u223/g,'&szlig;');
+  text = text.replace(/\u26/g,'&amp;');
+  return text;
+}
+
+function unescapeHtml(text) {
+  text = text.replace(/&auml;/g, String.fromCharCode(228));
+  text = text.replace(/&ouml;/g, String.fromCharCode(246));
+  text = text.replace(/&uuml;/g, String.fromCharCode(252));
+  text = text.replace(/&Auml;/g, String.fromCharCode(196));
+  text = text.replace(/&Ouml;/g, String.fromCharCode(214));
+  text = text.replace(/&Uuml;/g, String.fromCharCode(220));
+  text = text.replace(/&szlig;/g, String.fromCharCode(223));
+  text = text.replace(/&amp;/g, String.fromCharCode(26));
+  return text;
+}
+
+
 /* ----- Objekte ----- */
 
 function FileList(fl) {

--
Gitblit v1.9.3