src/java/de/uhilger/filecms/api/FileMgr.java | ●●●●● patch | view | raw | blame | history | |
web/ui/index.html | ●●●●● patch | view | raw | blame | history | |
web/ui/stile.css | ●●●●● patch | view | raw | blame | history | |
web/ui/ui.js | ●●●●● patch | view | raw | blame | history |
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()); 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> web/ui/stile.css
@@ -76,3 +76,7 @@ .datei-figure { width: 6em; } .datei-gewaehlt { color: gold; } 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; }