From e5ff423d0b1b1ff57410c7efeb6ac97f42b07d35 Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Sat, 18 Feb 2017 15:13:41 +0000
Subject: [PATCH] Dateiverwaltung ins Menue aufgenommen und Login-Info eingebaut 

---
 web/WEB-INF/web.xml                          |    4 ++
 web/ui/index.html                            |    3 +
 src/java/de/uhilger/filecms/api/FileMgr.java |   24 ++++++++++++
 web/ui/ui.js                                 |   31 +++++++++++++++
 4 files changed, 61 insertions(+), 1 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/FileMgr.java b/src/java/de/uhilger/filecms/api/FileMgr.java
index b8151d8..31e1ac1 100644
--- a/src/java/de/uhilger/filecms/api/FileMgr.java
+++ b/src/java/de/uhilger/filecms/api/FileMgr.java
@@ -4,6 +4,10 @@
 import de.uhilger.transit.web.RequestKontext;
 import de.uhilger.transit.web.WebKontext;
 import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.security.Principal;
+import java.util.logging.Level;
 import java.util.logging.Logger;
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
@@ -89,6 +93,26 @@
   
   public FileRef saveTextFile(String relPath, String fileName, String contents) {
     FileRef savedFile = null;
+    try {
+      FileRef datenRef = getBase();
+      File daten = new File(datenRef.getAbsolutePath());
+      Object p = getRequest().getUserPrincipal();
+      if(p instanceof Principal) {
+        File userDir = new File(daten, "www/" + ((Principal) p).getName());
+        File saveDir = new File(userDir, relPath);
+        File targetFile = new File(saveDir, fileName);
+        if(!targetFile.exists()) {
+          targetFile.mkdirs();
+          targetFile.createNewFile();
+          FileWriter w = new FileWriter(targetFile);
+          w.write(contents);
+          w.flush();
+          w.close();
+        }
+      }
+    } catch (IOException ex) {
+      logger.log(Level.SEVERE, null, ex);
+    }
     return savedFile;
   }
   
diff --git a/web/WEB-INF/web.xml b/web/WEB-INF/web.xml
index 65df464..dc82706 100644
--- a/web/WEB-INF/web.xml
+++ b/web/WEB-INF/web.xml
@@ -23,4 +23,8 @@
             30
         </session-timeout>
     </session-config>
+    <welcome-file-list>
+        <welcome-file>index.jsp</welcome-file>
+        <welcome-file>index.html</welcome-file>
+    </welcome-file-list>
 </web-app>
diff --git a/web/ui/index.html b/web/ui/index.html
index 02cbd66..9831d98 100644
--- a/web/ui/index.html
+++ b/web/ui/index.html
@@ -28,7 +28,7 @@
               <a class="dropdown-item" href="#">Bearbeiten als Code</a>
               <a class="dropdown-item" href="#">Bearbeiten als Dokument</a>
               <div class="dropdown-divider"></div>
-              <a class="dropdown-item" href="#">Speichern</a>
+              <a id="saveFile" class="dropdown-item" href="#">Speichern</a>
               <div class="dropdown-divider"></div>
               <a id="closeFile" class="dropdown-item" href="#">Schliessen</a>
             </div>
@@ -40,6 +40,7 @@
               <div class="dropdown-divider"></div>
               <a class="dropdown-item" href="/wbx/mng">Apps verwalten</a>
               <a class="dropdown-item" href="/um/ui">Benutzer verwalten</a>
+              <a class="dropdown-item disabled" href="/file-cms/ui">Dateien verwalten</a>
               <div class="dropdown-divider"></div>
               <a id="logout" class="dropdown-item" href="#">Abmelden</a>
             </div>
diff --git a/web/ui/ui.js b/web/ui/ui.js
index 3e80f3c..10cf3fc 100644
--- a/web/ui/ui.js
+++ b/web/ui/ui.js
@@ -4,7 +4,9 @@
   $('.codeeditor-space').hide();
   $('.code-editor-container').hide();
   $('#newTextFile').on('click', fm_menu_neue_textdatei);
+  $('#saveFile').on('click', fm_menu_datei_speichern);
   $('#closeFile').on('click', fm_menu_datei_schliessen);
+  fm_get_login();
 }
 
 function fm_menu_neue_textdatei() {
@@ -19,6 +21,31 @@
   $('.code-editor-container').hide();
   cm.toTextArea();
   $('#dateiansicht').show();  
+}
+
+function fm_get_login() {
+  var m = '?c=de.uhilger.um.pub.SessionManager&m=getSessionUser';
+  var u = '../../um/pub' + m;
+  fm_get(u, function(resp) {
+    $('#userMenu').text(resp.UserData.firstName);
+  });  
+}
+
+function fm_menu_datei_speichern() {
+  // FileRef saveTextFile(String relPath, String fileName, String contents)
+  
+  
+  
+  /*
+  var t = new Template(-2, $('#filename').val(), self.cm.getValue(), 3);
+  var u = '../api/tr/?c=de.uhilger.webbox.api.ContentApi&m=newTemplate';
+  self.post(u, {p: self.serialise(t)}, function (resp) {
+    self.isnew = false;
+    self.editid = resp.Template.id;
+    $('#contlist').append(self.buildContListItem(3, resp.Template.name, resp.Template.id));
+    $('#templateeditor').addClass('hidden');
+  });
+  */
 }
 
 /* ---- codemirror editor handling -------- */
@@ -84,3 +111,7 @@
   });
 };
 
+function fm_serialise(obj) {
+  return '{"' + obj.constructor.name + '":' + JSON.stringify(obj) + '}';
+};
+

--
Gitblit v1.9.3