Dateiverwaltung für die WebBox
ulrich
2017-02-18 e5ff423d0b1b1ff57410c7efeb6ac97f42b07d35
Dateiverwaltung ins Menue aufgenommen und Login-Info eingebaut 
4 files modified
62 ■■■■■ changed files
src/java/de/uhilger/filecms/api/FileMgr.java 24 ●●●●● patch | view | raw | blame | history
web/WEB-INF/web.xml 4 ●●●● patch | view | raw | blame | history
web/ui/index.html 3 ●●●● patch | view | raw | blame | history
web/ui/ui.js 31 ●●●●● 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) + '}';
};