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 |   37 ++++++++++++++++++++++++++++++++++---
 1 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/FileMgr.java b/src/java/de/uhilger/filecms/api/FileMgr.java
index 5937daa..7995ba0 100644
--- a/src/java/de/uhilger/filecms/api/FileMgr.java
+++ b/src/java/de/uhilger/filecms/api/FileMgr.java
@@ -18,8 +18,10 @@
 
 package de.uhilger.filecms.api;
 
+import de.uhilger.filecms.data.Bild;
 import de.uhilger.filecms.data.FileRef;
-import de.uhilger.wbx.Bild;
+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;
@@ -44,8 +47,7 @@
 import org.apache.commons.io.FileUtils;
 
 /**
- *
- * @author ulrich
+ * Methoden zur Verwaltung von Dateien
  */
 public class FileMgr extends Api {
   private static final Logger logger = Logger.getLogger(FileMgr.class.getName());
@@ -69,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) {
@@ -76,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);
@@ -91,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:/", "");
@@ -107,6 +137,7 @@
     return files;
   }
   
+  
   public FileRef newFolder(String relPath, String folderName) {
     logger.finer(relPath);
     String targetPath = null;

--
Gitblit v1.9.3