diff --git a/enhanced-file-server.go b/enhanced-file-server.go
index 0166d08..d8fa291 100644
--- a/enhanced-file-server.go
+++ b/enhanced-file-server.go
@@ -57,37 +57,42 @@ func dirList(w http.ResponseWriter, r *http.Request, f http.File) {
http.Error(w, "Error reading directory", http.StatusInternalServerError)
return
}
+ key := ""
// Check for sort parameters
- key, ok := r.URL.Query()["key"]
- if !ok || (key[0] != "filename" && key[0] != "date" && key[0] != "size") {
- key[0] = "filename"
+ k, ok := r.URL.Query()["key"]
+ if !ok || (k[0] != "filename" && k[0] != "date" && k[0] != "size") {
+ key = "filename"
+ } else {
+ key = k[0]
}
-
- order, ok := r.URL.Query()["key"]
- if !ok || (order[0] != "asc" && order[0] != "desc") {
- order[0] = "asc"
+ order := ""
+ o, ok := r.URL.Query()["key"]
+ if !ok || (order != "asc" && order != "desc") {
+ order = "asc"
+ } else {
+ order = o[0]
}
switch {
- case (key[0] == "filename" && order[0] == "asc"):
+ case (key == "filename" && order == "asc"):
sort.Slice(dirs, func(i, j int) bool { return dirs[i].Name() < dirs[j].Name() })
tableheader = "
Filename | Size | Date | "
- case (key[0] == "filename" && order[0] == "desc"):
+ case (key == "filename" && order == "desc"):
sort.Slice(dirs, func(i, j int) bool { return dirs[i].Name() > dirs[j].Name() })
tableheader = "Filename | Size | Date | "
- case (key[0] == "size" && order[0] == "asc"):
+ case (key == "size" && order == "asc"):
sort.Slice(dirs, func(i, j int) bool { return dirs[i].Size() < dirs[j].Size() })
tableheader = "Filename | Size | Date | "
- case (key[0] == "size" && order[0] == "desc"):
+ case (key == "size" && order == "desc"):
sort.Slice(dirs, func(i, j int) bool { return dirs[i].Size() > dirs[j].Size() })
tableheader = "Filename | Size | Date | "
- case (key[0] == "date" && order[0] == "asc"):
+ case (key == "date" && order == "asc"):
sort.Slice(dirs, func(i, j int) bool { return dirs[i].ModTime().UnixNano() < dirs[j].ModTime().UnixNano() })
tableheader = "Filename | Size | Date | "
- case (key[0] == "date" && order[0] == "desc"):
+ case (key == "date" && order == "desc"):
sort.Slice(dirs, func(i, j int) bool { return dirs[i].ModTime().UnixNano() > dirs[j].ModTime().UnixNano() })
tableheader = "Filename | Size | Date | "