Kaynağa Gözat

Fixed sort by last mod time bug

Toby Chui 2 yıl önce
ebeveyn
işleme
ce9804be21

+ 14 - 3
mod/filesystem/fssort/fssort.go

@@ -17,7 +17,7 @@ type sortBufferedStructure struct {
 var ValidSortModes = []string{"default", "reverse", "smallToLarge", "largeToSmall", "mostRecent", "leastRecent", "smart", "fileTypeAsce", "fileTypeDesc"}
 
 /*
-	Quick utilties to sort file list according to different modes
+Quick utilties to sort file list according to different modes
 */
 func SortFileList(filelistRealpath []string, fileInfos []fs.FileInfo, sortMode string) []string {
 	//Build a filelist with information based on the given filelist
@@ -57,9 +57,20 @@ func SortFileList(filelistRealpath []string, fileInfos []fs.FileInfo, sortMode s
 	} else if sortMode == "largeToSmall" {
 		sort.Slice(parsedFilelist, func(i, j int) bool { return parsedFilelist[i].Filesize > parsedFilelist[j].Filesize })
 	} else if sortMode == "mostRecent" {
-		sort.Slice(parsedFilelist, func(i, j int) bool { return parsedFilelist[i].ModTime > parsedFilelist[j].ModTime })
+		sort.Slice(parsedFilelist, func(i, j int) bool {
+			if parsedFilelist[i].ModTime == parsedFilelist[j].ModTime {
+				return strings.ToLower(parsedFilelist[i].Filename) < strings.ToLower(parsedFilelist[j].Filename)
+			}
+			return parsedFilelist[i].ModTime > parsedFilelist[j].ModTime
+
+		})
 	} else if sortMode == "leastRecent" {
-		sort.Slice(parsedFilelist, func(i, j int) bool { return parsedFilelist[i].ModTime < parsedFilelist[j].ModTime })
+		sort.Slice(parsedFilelist, func(i, j int) bool {
+			if parsedFilelist[i].ModTime == parsedFilelist[j].ModTime {
+				return strings.ToLower(parsedFilelist[i].Filename) > strings.ToLower(parsedFilelist[j].Filename)
+			}
+			return parsedFilelist[i].ModTime < parsedFilelist[j].ModTime
+		})
 	} else if sortMode == "smart" {
 		parsedFilelist = SortNaturalFilelist(parsedFilelist)
 	} else if sortMode == "fileTypeAsce" {

+ 1 - 0
web/SystemAO/file_system/file_explorer.css

@@ -312,6 +312,7 @@ body.darkTheme .ui.icon.button{
 .ui.selection.dropdown{
     background-color: var(--dropdown_bg) !important;
     color: var(--dropdown_txt) !important;
+    min-width: 13em !important;
 }
 
 /* special case when using in mobile sidebar */

+ 4 - 4
web/SystemAO/locale/file_explorer.json

@@ -861,15 +861,15 @@
             "strings": {
                 "title/title": "File Manager",
                 "menu/button/download": "Download Selected",
-                "menu/sort/asc": "File Name (ASC)",
-                "menu/sort/desc": "File Name (DESC)",
+                "menu/sort/asc": "Filename (Asc)",
+                "menu/sort/desc": "Fileame (Desc)",
                 "menu/sort/small": "File Size (Smallest)",
                 "menu/sort/large": "File Size (Largest)",
                 "menu/sort/mostrecent": "Most Recent",
                 "menu/sort/leastrecent": "Least Recent",
                 "menu/sort/smart": "Natural order",
-                "menu/sort/typeAsc": "Extension (ASC)",
-                "menu/sort/typeDes": "Extension (DESC)",
+                "menu/sort/typeAsc": "Extension (Asc)",
+                "menu/sort/typeDes": "Extension (Desc)",
 
                 "fileopr/Back": "Back",
                 "fileopr/Parent Folder": "Parent",