From 968b07dace8f64519eaf2455729d87b66678d958 Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Sat, 03 Mar 2018 17:57:21 +0000
Subject: [PATCH] Ordner dav als Austausch-Ort hinzugefuegt

---
 web/META-INF/daten/dav/WEB-INF/web.xml           |   44 ++++++++++++++++++++++
 src/java/de/uhilger/filecms/web/Initialiser.java |    7 ++-
 web/ui/index.html                                |    2 
 src/java/de/uhilger/filecms/api/FileMgr.java     |    4 +
 web/ui/ui.js                                     |    4 +-
 src/java/de/uhilger/filecms/api/Api.java         |    8 ++++
 6 files changed, 63 insertions(+), 6 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/Api.java b/src/java/de/uhilger/filecms/api/Api.java
index 507c2ae..b26537e 100644
--- a/src/java/de/uhilger/filecms/api/Api.java
+++ b/src/java/de/uhilger/filecms/api/Api.java
@@ -46,13 +46,18 @@
   public static final String WBX_DATA_PATH = "daten/";
   public static final String PUB_DIR_PATH = "www/";
   public static final String HOME_DIR_PATH = "home/";
+  public static final String DAV_DIR_PATH = "dav/";
+
   public static final String PUB_DIR_NAME = "Oeffentlich";
   //public static final String HOME_DIR_NAME = "Persoenlicher Ordner";
   public static final String HOME_DIR_NAME = "Persoenlich";
+  public static final String DAV_DIR_NAME = "Austausch";
+
   public static final String WBX_ADMIN_ROLE = "wbxAdmin";
   
   public static final String WBX_BASE = "$basis";
   public static final String WBX_DATA = "$daten";
+  public static final String DAV_DATA = "$dav";
     
   /**
    * Einen relativen Pfad in einen absoluten Pfad der WebBox 
@@ -78,6 +83,9 @@
     } else if(relPath.startsWith(HOME_DIR_NAME)) {
       targetPath = HOME_DIR_PATH + getUserName() + relPath.substring(HOME_DIR_NAME.length());
       targetDir = new File(getBase().getAbsolutePath(), targetPath);
+    } else if(relPath.startsWith(DAV_DIR_NAME)) {
+      targetPath = DAV_DIR_PATH + /* getUserName() +*/ relPath.substring(DAV_DIR_NAME.length());
+      targetDir = new File(getBase().getAbsolutePath(), targetPath);
     } else if(getRequest().isUserInRole(WBX_ADMIN_ROLE)) {
       logger.fine("in admin role");
       if(relPath.startsWith(WBX_BASE)) {
diff --git a/src/java/de/uhilger/filecms/api/FileMgr.java b/src/java/de/uhilger/filecms/api/FileMgr.java
index 48d67b5..7995ba0 100644
--- a/src/java/de/uhilger/filecms/api/FileMgr.java
+++ b/src/java/de/uhilger/filecms/api/FileMgr.java
@@ -21,7 +21,6 @@
 import de.uhilger.filecms.data.Bild;
 import de.uhilger.filecms.data.FileRef;
 import de.uhilger.filecms.pub.AbstractComparator;
-import de.uhilger.filecms.pub.FileDateComparator;
 import de.uhilger.filecms.pub.FileNameComparator;
 import java.awt.Container;
 import java.awt.Image;
@@ -99,9 +98,12 @@
       logger.finer(namedPublicFolder.getAbsolutePath());
       FileRef namedHomeFolder = new FileRef(HOME_DIR_NAME, true);
       logger.finer(namedHomeFolder.getAbsolutePath());
+      FileRef namedDavFolder = new FileRef(DAV_DIR_NAME, true);
+      logger.finer(namedDavFolder.getAbsolutePath());
       files = new ArrayList();
       files.add(namedHomeFolder);
       files.add(namedPublicFolder);      
+      files.add(namedDavFolder);      
       if(getRequest().isUserInRole(WBX_ADMIN_ROLE)) {
         FileRef namedBaseFolder = new FileRef(WBX_BASE, true);
         FileRef namedDataFolder = new FileRef(WBX_DATA, true);
diff --git a/src/java/de/uhilger/filecms/web/Initialiser.java b/src/java/de/uhilger/filecms/web/Initialiser.java
index f6ced07..cda0ec7 100644
--- a/src/java/de/uhilger/filecms/web/Initialiser.java
+++ b/src/java/de/uhilger/filecms/web/Initialiser.java
@@ -111,10 +111,13 @@
       if(!dataDir.exists()) {
         String srcPath = ctx.getRealPath("/"); // file-cms in webapps
         File srcDir = new File(srcPath, "/META-INF/daten/www");
+        dataDir = new File(targetDirName);
         try {
-          FileUtils.copyDirectoryToDirectory(srcDir, new File(targetDirName));
+          FileUtils.copyDirectoryToDirectory(srcDir, dataDir);
           srcDir = new File(srcPath, "/META-INF/daten/home");
-          FileUtils.copyDirectoryToDirectory(srcDir, new File(targetDirName));
+          FileUtils.copyDirectoryToDirectory(srcDir, dataDir);
+          srcDir = new File(srcPath, "/META-INF/daten/dav");
+          FileUtils.copyDirectoryToDirectory(srcDir, dataDir);          
         } catch (IOException ex) {
           logger.log(Level.SEVERE, null, ex);
         }
diff --git a/web/META-INF/daten/dav/WEB-INF/web.xml b/web/META-INF/daten/dav/WEB-INF/web.xml
new file mode 100644
index 0000000..cc4549e
--- /dev/null
+++ b/web/META-INF/daten/dav/WEB-INF/web.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
+    <description>WebDav-Verzeichnis der WebBox</description>
+    <display-name>dav</display-name>
+    <servlet>
+        <servlet-name>webdav</servlet-name>
+        <servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class>
+        <init-param>
+            <param-name>debug</param-name>
+            <param-value>0</param-value>
+        </init-param>
+        <init-param>
+            <param-name>listings</param-name>
+            <param-value>true</param-value>
+        </init-param>
+        <init-param>
+            <param-name>readonly</param-name>
+            <param-value>false</param-value>
+        </init-param>
+    </servlet>
+    <servlet-mapping>
+        <servlet-name>webdav</servlet-name>
+        <url-pattern>/*</url-pattern>
+    </servlet-mapping>
+    <security-constraint>
+        <display-name>davConstraint</display-name>
+        <web-resource-collection>
+            <web-resource-name>dav</web-resource-name>
+            <description/>
+            <url-pattern>/*</url-pattern>
+        </web-resource-collection>
+        <auth-constraint>
+            <description>davNutzerConstraint</description>
+            <role-name>davNutzer</role-name>
+        </auth-constraint>
+    </security-constraint>
+    <login-config>
+        <auth-method>BASIC</auth-method>
+    </login-config>
+    <security-role>
+        <description/>
+        <role-name>davNutzer</role-name>
+    </security-role>
+</web-app>
diff --git a/web/ui/index.html b/web/ui/index.html
index 237f3d9..c9dec27 100644
--- a/web/ui/index.html
+++ b/web/ui/index.html
@@ -127,7 +127,7 @@
               <a class="dropdown-item disabled" href="/file-cms/ui">Dateien verwalten</a>
               <a class="dropdown-item" href="/wbx-dbcon/ui">Datenbanken verwalten</a>
               <div class="dropdown-divider"></div>
-              <a id="m-toggle-slideshow" class="dropdown-item" href="#">Diashow nicht zeigen</a>
+              <a id="m-toggle-slideshow" class="dropdown-item" href="#">Diashow einschalten</a>
               <a id="m-test" class="dropdown-item" href="#">Test</a>
               <a id="m-test-2" class="dropdown-item" href="#">Compile</a>
               <a id="m-test-3" class="dropdown-item" href="#">Compile all</a>
diff --git a/web/ui/ui.js b/web/ui/ui.js
index ca6a3f8..855adeb 100644
--- a/web/ui/ui.js
+++ b/web/ui/ui.js
@@ -90,10 +90,10 @@
 
 function fm_toggle_show_slideshow() {
   if(fm_slideshow) {
-    $('#m-toggle-slideshow').text('Diashow nicht zeigen');
+    $('#m-toggle-slideshow').text('Diashow einschalten');
     fm_slideshow = false;
   } else {
-    $('#m-toggle-slideshow').text('Diashow zeigen');
+    $('#m-toggle-slideshow').text('Diashow ausschalten');
     fm_slideshow = true;
   }
 }

--
Gitblit v1.9.3