From 5dfab6ee05a6926a84c068ee0ebcabab1480c9c5 Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Mon, 20 Feb 2017 13:59:25 +0000
Subject: [PATCH] list in Arbeit

---
 web/ui/index.html                            |   17 +++++++-
 web/ui/stile.css                             |    4 ++
 src/java/de/uhilger/filecms/api/FileMgr.java |   37 ++++++++++++++++--
 web/ui/ui.js                                 |   53 ++++++++++++++++++++++++++
 4 files changed, 105 insertions(+), 6 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/FileMgr.java b/src/java/de/uhilger/filecms/api/FileMgr.java
index a985185..55fead9 100644
--- a/src/java/de/uhilger/filecms/api/FileMgr.java
+++ b/src/java/de/uhilger/filecms/api/FileMgr.java
@@ -20,11 +20,13 @@
 
 import de.uhilger.filecms.web.Initialiser;
 import de.uhilger.filesystem.FileRef;
+import de.uhilger.filesystem.LocalFileSystem;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.security.Principal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -52,23 +54,41 @@
   }
   
   public List<FileRef> list(String relPath) {
-    List<FileRef> files = null;
+    List<FileRef> files = new ArrayList();
     
     if(relPath.length() == 0) {
+      /*
       publicFolder = new FileRef(getUserPubDir().getAbsolutePath(), true);
       logger.info(publicFolder.getAbsolutePath());
       homeFolder = new FileRef(getUserHomeDir().getAbsolutePath(), true);
       logger.info(homeFolder.getAbsolutePath());
-    
+      */
       namedPublicFolder = new FileRef(PUB_DIR_NAME, true);
-      logger.info(namedPublicFolder.getAbsolutePath());
+      logger.finer(namedPublicFolder.getAbsolutePath());
       namedHomeFolder = new FileRef(HOME_DIR_NAME, true);
-      logger.info(namedHomeFolder.getAbsolutePath());
+      logger.finer(namedHomeFolder.getAbsolutePath());
       files = new ArrayList<FileRef>();
       files.add(namedHomeFolder);
       files.add(namedPublicFolder);
     } else {
+      logger.info(relPath);
+      String targetPath = null;
+      if(relPath.startsWith(PUB_DIR_NAME)) {
+        targetPath = PUB_DIR_PATH + getUserName() + "/" + relPath.substring(PUB_DIR_NAME.length());
+      } else if(relPath.startsWith(HOME_DIR_NAME)) {
+        targetPath = HOME_DIR_PATH + getUserName() + "/" + relPath.substring(HOME_DIR_NAME.length());
+      } else {
+        // kann eigentlich nicht sein..
+      }
+      logger.info(targetPath);
+      File targetDir = new File(getBase().getAbsolutePath(), targetPath);
       
+      LocalFileSystem fs = new LocalFileSystem();
+      FileRef[] fileRefs = fs.list(new FileRef(targetDir.getAbsolutePath(), true));
+      for(int i = 0; i < fileRefs.length; i++) {
+        files.add(fileRefs[i]);
+      }
+      //files = Arrays.asList(fileRefs);
     }
     
     return files;
@@ -93,6 +113,15 @@
     return userDir;
   }
   
+  private String getUserName() {
+    String userName = null;
+    Object p = getRequest().getUserPrincipal();
+    if(p instanceof Principal) {
+      userName = ((Principal) p).getName();
+    }
+    return userName;
+  }
+  
   private File getUserHomeDir() {
     File userDir = null;
     File daten = new File(getBase().getAbsolutePath());
diff --git a/web/ui/index.html b/web/ui/index.html
index bcd6555..fc650ef 100644
--- a/web/ui/index.html
+++ b/web/ui/index.html
@@ -12,11 +12,24 @@
     <script id="tpl-kacheln" type="x-tmpl-mustache">
       {{#files}}          
         <figure class="figure datei-figure text-center text-warning align-top">
-          <i class="fa {{ typeClass }} fa-folder fa-3x"></i>
+          <i class="fa {{ typeClass }} fa-3x"></i>
           <figcaption class="figure-caption">{{ fr.absolutePath }}</figcaption>
         </figure>   
       {{/files}}
           
+    </script>
+    <script id="tpl-bcr" type="x-tmpl-mustache">
+      {{#files}}
+          <a class="breadcrumb-item" href="{{ relPath }}">{{ fName }}</a>
+      {{/files}}
+    </script>
+    <script id="tpl-bcr2" type="x-tmpl-mustache">
+      <span class="breadcrumb-item active">Bootstrap</span>
+    </script>
+    <script id="tpl-bcr3" type="x-tmpl-mustache">
+      <div class="pull-right align-middle">
+        <i class="fa fa-th-large"></i>
+      </div>              
     </script>
   </head>
   <body>
@@ -104,7 +117,7 @@
         <div id="dateiansicht">
           <!-- Breadcrumb Start -->
           <div class="zentrum-bc">
-            <nav class="breadcrumb">
+            <nav class="breadcrumb" id="bcnav">
               <a class="breadcrumb-item" href="#">Home</a>
               <a class="breadcrumb-item" href="#">Library</a>
               <a class="breadcrumb-item" href="#">Data</a>
diff --git a/web/ui/stile.css b/web/ui/stile.css
index d49e4cc..f081f74 100644
--- a/web/ui/stile.css
+++ b/web/ui/stile.css
@@ -76,3 +76,7 @@
 .datei-figure {
   width: 6em;
 }
+
+.datei-gewaehlt {
+  color: gold;
+}
\ No newline at end of file
diff --git a/web/ui/ui.js b/web/ui/ui.js
index c2a6c42..b37ed2f 100644
--- a/web/ui/ui.js
+++ b/web/ui/ui.js
@@ -1,4 +1,5 @@
 var cm;
+var pfad = '';
 
 function fm_init() {
   $('.codeeditor-space').hide();
@@ -28,6 +29,25 @@
   $('#dateiansicht').show();  
 }
 
+function fm_dateiwahl() {
+  var elem = this;
+  //console.log('datei gewaehlt ' + $(elem).text().trim());
+  if($(elem).children(0).hasClass('fa-folder')) {
+    var ordner = $(elem).text().trim();
+    if(pfad.length > 0) {
+      pfad = pfad + '/' + ordner;
+    } else {
+      pfad = ordner;
+    }
+    fm_get_list(pfad);
+  } else if($(elem).children(0).hasClass('fa-file')) {
+    $('.datei-gewaehlt').removeClass('datei-gewaehlt');
+    $(elem).children(0).addClass('datei-gewaehlt');
+  } else {
+    //console.log('kein folder oder file...');
+  }
+}
+
 /* ----- API Calls ------------- */
 
 function fm_get_login() {
@@ -43,6 +63,7 @@
   var m = '?c=de.uhilger.filecms.api.FileMgr&m=list&p=' + relPath;
   var u = '../svc' + m;
   fm_get(u, "json", function(resp) {
+    //if(resp)
     var files = new Array();
     for(var i = 0; i < resp.List[0].FileRef.length; i++) {
       files.push(new FileRef(resp.List[0].FileRef[i]));
@@ -50,8 +71,31 @@
     var fl = new FileList(files);
     var template = $('#tpl-kacheln').html();
     Mustache.parse(template);   // optional, speeds up future uses
+    $('.figure').attr('onclick','').unbind('click');
     $('#dateien').empty();
     $('#dateien').html(Mustache.render(template, fl));
+    $('.figure').click(fm_dateiwahl);
+    
+    var dirList = new Array();
+    var rp = '';
+    var dirs = relPath.split('/');
+    dirList.push(new BcrFile(rp, 'Home'))
+    if(dirs.length > 0) {
+      for(var i = 0; i < dirs.length; i++) {
+        if(rp.length > 0 ) {
+          dirList.push(new BcrFile(rp + '/' + dirs[i], dirs[i]));
+        } else {
+          dirList.push(new BcrFile(dirs[i], dirs[i]));
+        }
+      }
+      var bl = new BcrFiles(dirList);
+      var template = $('#tpl-bcr').html();
+      Mustache.parse(template);   // optional, speeds up future uses
+      $('#bcnav').empty();
+      $('#bcnav').html(Mustache.render(template, bl));
+      $('#bcnav').append($('#tpl-bcr2').html());
+      $('#bcnav').append($('#tpl-bcr3').html());
+    }
   });  
 }
 
@@ -178,3 +222,12 @@
     }
   }
 }
+
+function BcrFiles(fl) {
+  this.files = fl;
+}
+
+function BcrFile(rp, n) {
+  this.relPath = rp;
+  this.fName = n;
+}

--
Gitblit v1.9.3