src/java/de/uhilger/filecms/api/FileMgr.java | ●●●●● patch | view | raw | blame | history | |
web/WEB-INF/web.xml | ●●●●● patch | view | raw | blame | history | |
web/ui/index.html | ●●●●● patch | view | raw | blame | history | |
web/ui/ui.js | ●●●●● patch | view | raw | blame | history |
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; } 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> 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> 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) + '}'; };