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

---
 src/java/de/uhilger/filecms/api/FileMgr.java |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/FileMgr.java b/src/java/de/uhilger/filecms/api/FileMgr.java
index f45497f..7995ba0 100644
--- a/src/java/de/uhilger/filecms/api/FileMgr.java
+++ b/src/java/de/uhilger/filecms/api/FileMgr.java
@@ -20,6 +20,8 @@
 
 import de.uhilger.filecms.data.Bild;
 import de.uhilger.filecms.data.FileRef;
+import de.uhilger.filecms.pub.AbstractComparator;
+import de.uhilger.filecms.pub.FileNameComparator;
 import java.awt.Container;
 import java.awt.Image;
 import java.awt.MediaTracker;
@@ -34,6 +36,7 @@
 import java.io.Reader;
 import java.security.Principal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
@@ -68,6 +71,26 @@
    * @return 
    */
   public List<FileRef> list(String relPath) {
+    return listInt(relPath, "name", AbstractComparator.ORDER_ASC);
+  }
+  
+  public List<FileRef> listOrdered(String relPath, String orderBy, String order) {
+    return listInt(relPath, orderBy, order);
+  }
+  
+  /**
+   * Inhalte der WebBox listen. Hier wird nur der relative Pfad 
+   * ausgehend von www oder home ausgegeben sowie zudem ausgehend 
+   * von $daten und $basis, sofern der Benutzer die Rolle wbxAdmin hat.
+   * 
+   * Andere Inhalte werden nicht ausgegeben.
+   * 
+   * @param relPath
+   * @param orderBy 'name'
+   * @param order AbstractComparator.ORDER_ASC oder AbstractComparator.ORDER_DESC
+   * @return 
+   */
+  private List<FileRef> listInt(String relPath, String orderBy, String order) {
     Bild bild = new Bild();
     List<FileRef> files = new ArrayList();
     if(relPath.length() == 0) {
@@ -75,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);
@@ -90,6 +116,11 @@
       File dir = new File(path);
       if(dir.exists()) {
         File[] fileArray = dir.listFiles();
+        if(orderBy != null && orderBy.equalsIgnoreCase("name")) {
+          Arrays.sort(fileArray, new FileNameComparator(order));
+        } else {
+          Arrays.sort(fileArray, new FileNameComparator(AbstractComparator.ORDER_ASC));          
+        }
         for(int i = 0; i < fileArray.length; i++) {
           logger.fine(fileArray[i].toURI().toString());
           String fname = fileArray[i].toURI().toString().replace("file:/", "");
@@ -106,6 +137,7 @@
     return files;
   }
   
+  
   public FileRef newFolder(String relPath, String folderName) {
     logger.finer(relPath);
     String targetPath = null;

--
Gitblit v1.9.3