Browse Source

Fixed minor desktop icon set bug

TC pushbot 5 4 years ago
parent
commit
4382e2eee4
4 changed files with 65 additions and 36 deletions
  1. 11 26
      mod/share/share.go
  2. 0 0
      subservice/WsTTY/.disabled
  3. 52 8
      system/share/downloadPageFolder.html
  4. 2 2
      web/desktop.system

+ 11 - 26
mod/share/share.go

@@ -277,29 +277,8 @@ func (s *Manager) HandleShareAccess(w http.ResponseWriter, r *http.Request) {
 				//Get file size
 				fsize, fcount := filesystem.GetDirctorySize(shareOption.FileRealPath, false)
 
-				//Build the filelist of the root folder
-				rawFilelist, _ := filesystem.WGlob(filepath.Clean(shareOption.FileRealPath) + "/*")
-
-				rootVisableFiles := []File{}
-				for _, file := range rawFilelist {
-					if filepath.Base(file)[:1] != "." {
-						//Not hidden folder.
-						fileSize := filesystem.GetFileSize(file)
-						if filesystem.IsDir(file) {
-							fileSize, _ = filesystem.GetDirctorySize(file, false)
-						}
-
-						rootVisableFiles = append(rootVisableFiles, File{
-							Filename: filepath.Base(file),
-							RelPath:  "/",
-							Filesize: filesystem.GetFileDisplaySize(fileSize, 2),
-							IsDir:    filesystem.IsDir(file),
-						})
-					}
-				}
-
 				//Build the tree list of the folder
-				treeList := []File{}
+				treeList := map[string][]File{}
 				err = filepath.Walk(filepath.Clean(shareOption.FileRealPath), func(file string, info os.FileInfo, err error) error {
 					if err != nil {
 						//If error skip this
@@ -313,10 +292,18 @@ func (s *Manager) HandleShareAccess(w http.ResponseWriter, r *http.Request) {
 
 						relPath, err := filepath.Rel(shareOption.FileRealPath, file)
 						if err != nil {
-							relPath = "/"
+							relPath = ""
+						}
+
+						relPath = filepath.ToSlash(filepath.Clean(relPath))
+						relDir := filepath.ToSlash(filepath.Dir(relPath))
+
+						if relPath == "." {
+							//The root file object. Skip this
+							return nil
 						}
 
-						treeList = append(treeList, File{
+						treeList[relDir] = append(treeList[relDir], File{
 							Filename: filepath.Base(file),
 							RelPath:  filepath.ToSlash(relPath),
 							Filesize: filesystem.GetFileDisplaySize(fileSize, 2),
@@ -326,7 +313,6 @@ func (s *Manager) HandleShareAccess(w http.ResponseWriter, r *http.Request) {
 					return nil
 				})
 
-				js, _ := json.Marshal(rootVisableFiles)
 				tl, _ := json.Marshal(treeList)
 
 				//Get modification time
@@ -344,7 +330,6 @@ func (s *Manager) HandleShareAccess(w http.ResponseWriter, r *http.Request) {
 					"downloadurl": "/share?id=" + id + "&download=true",
 					"filename":    filepath.Base(shareOption.FileRealPath),
 					"reqtime":     strconv.Itoa(int(time.Now().Unix())),
-					"filelist":    js,
 					"treelist":    tl,
 				})
 

+ 0 - 0
subservice/WsTTY/.disabled


+ 52 - 8
system/share/downloadPageFolder.html

@@ -77,7 +77,7 @@
                     <p>Request File ID: {{reqid}}</p>
                     <p>Request Timestamp: {{reqtime}}</p>
                 </div>
-                <div class="one-half column" id="filelistWrapper" style="overflow-y: auto; padding-right: 5px;">
+                <div class="one-half column" id="filelistWrapper" style="overflow-y: auto; padding-right: 0.5em;">
                   <table class="u-full-width">
                     <thead>
                       <tr>
@@ -88,6 +88,7 @@
                     </thead>
                     <tbody id="folderList">
                      
+                    </tbody>
                   </table>
                 </div>
             </div>
@@ -99,12 +100,21 @@
             </div>
         </div>
     <script>
-      var rootFileList = {{filelist}};
       var treeFileList = {{treelist}};
-      renderFileList(rootFileList);
+      var currentViewingRoot = ".";
+      renderFileList(treeFileList["."]);
+
+      console.log(treeFileList);
 
       function renderFileList(filelist){
         $("#folderList").html("");
+        if (currentViewingRoot != "."){
+          $("#folderList").append(`<tr class="fileobject" ondblclick="event.preventDefault(); parentdir();">
+              <td style="padding-left: 8px;" colspan="3" > ↩ Back</td>
+            </tr>`);
+          
+        }
+
         filelist.forEach(file => {
           var filetype = "File";
           var displayName = "";
@@ -122,25 +132,59 @@
           });
       }
 
+      //Went up one level
+      function parentdir(){
+        if (currentViewingRoot == "."){
+            //Root dir. Do nothing
+            
+        }else{
+            //Subdirs. travel up
+            var dirinfo = currentViewingRoot.split("/");
+            var nextDir = ".";
+            if (currentViewingRoot.indexOf("/") < 0){
+              //Parent dir will be root
+            }else{
+              dirinfo.pop();
+              nextDir = dirinfo.join("/");
+            }
+
+            
+            //Load the filelist
+            if (treeFileList[nextDir] != undefined){
+              currentViewingRoot = nextDir;
+              renderFileList(treeFileList[nextDir]);
+            }else{
+              //Back to root on error
+              currentViewingRoot = ".";
+              renderFileList(treeFileList["."]);
+            }
+        }
+      }
+
       function openThis(object){
         var targetFilename = $(object).attr("filename");
         var targetType = $(object).attr("type");
         var targetRelPath = $(object).attr("relpath");
-        var fileRelPathToShareRoot = targetRelPath + targetFilename;
         
-        alert("WIP");
         if (targetType == "folder"){
-          //Folder. Travel it
-         
+          //Folder. Build a new root file list for this
+          var targetRenderList = treeFileList[targetRelPath];
+          if (targetRenderList != undefined){
+            currentViewingRoot = targetRelPath;
+            renderFileList(targetRenderList);
+          }
+          
+          
         }else{
           //File. Download it
+
         }
       }
 
       resizeDOMElement();
       function resizeDOMElement(){
         $("#filelistWrapper").css({
-          height: window.innerHeight - 300,
+          height: window.innerHeight - $("#filelistWrapper").offset().top - 100,
         })
       }
 

+ 2 - 2
web/desktop.system

@@ -2677,8 +2677,8 @@
                         method: "POST",
                         data: {"set": thisFile.Filename, "x": current[0], "y": current[1]},
                         success: function(data) {
-                            if (data.includes("Error")) {
-                                console.log(data);
+                            if (data.error !== undefined) {
+                                console.log(data.error);
                             }
                         }
                     });