Fix mailbox UI sorting and target layout

This commit is contained in:
DonVoo 2026-07-15 00:14:54 +02:00
parent 8e8c651eaa
commit e63a513cff
6 changed files with 196 additions and 46 deletions

View file

@ -223,6 +223,12 @@ func archiveFolderInfos(paths []string) []archiveFolderInfo {
func archiveFolderLabel(name string) string {
name = strings.TrimSpace(name)
if label := folderRoleLabel(RoleFromName(name, ".")); label != "" {
return label
}
if label := folderRoleLabel(RoleFromName(name, "/")); label != "" {
return label
}
switch strings.ToLower(name) {
case "", "inbox":
return "Posteingang"
@ -238,7 +244,7 @@ func archiveFolderLabel(name string) string {
return "Spam"
}
parts := strings.FieldsFunc(name, func(r rune) bool {
return r == '/' || r == '\\'
return r == '/' || r == '\\' || r == '.'
})
if len(parts) == 0 {
parts = strings.Split(name, "_")
@ -250,8 +256,43 @@ func archiveFolderLabel(name string) string {
return label
}
func folderRoleLabel(role FolderRole) string {
switch role {
case RoleInbox:
return "Posteingang"
case RoleSent:
return "Gesendet"
case RoleDrafts:
return "Entwürfe"
case RoleTrash:
return "Papierkorb"
case RoleJunk:
return "Spam"
case RoleArchive:
return "Archiv"
case RoleOutbox:
return "Postausgang"
default:
return ""
}
}
func archiveFolderSortKey(name string) string {
lc := strings.ToLower(strings.TrimSpace(name))
switch RoleFromName(name, ".") {
case RoleInbox:
return "00:" + lc
case RoleDrafts:
return "01:" + lc
case RoleSent:
return "02:" + lc
case RoleJunk:
return "03:" + lc
case RoleTrash:
return "04:" + lc
case RoleArchive:
return "05:" + lc
}
switch lc {
case "inbox":
return "00:" + lc