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