From 7eeed62b09dffab0dc986f0d22e8ac28be833a3e Mon Sep 17 00:00:00 2001 From: djmaze Date: Sat, 27 Mar 2021 00:57:04 +0100 Subject: [PATCH] Get sorting working for #67 --- dev/Styles/MessageList.less | 5 ++ dev/View/User/MailBox/MessageList.js | 20 ++++++- .../app/localization/webmail/_source.en.yml | 8 +++ .../templates/Views/User/MailMessageList.html | 53 +++++++++++++++++++ 4 files changed, 85 insertions(+), 1 deletion(-) diff --git a/dev/Styles/MessageList.less b/dev/Styles/MessageList.less index 2af0a7e51..8a73446de 100644 --- a/dev/Styles/MessageList.less +++ b/dev/Styles/MessageList.less @@ -6,6 +6,11 @@ html.rl-no-preview-pane { } } +#sort-list-dropdown-id { + padding-left: 6px; + padding-right: 6px; +} + .messageList { .toolbar { diff --git a/dev/View/User/MailBox/MessageList.js b/dev/View/User/MailBox/MessageList.js index b1b48ba62..3f6048952 100644 --- a/dev/View/User/MailBox/MessageList.js +++ b/dev/View/User/MailBox/MessageList.js @@ -74,6 +74,7 @@ export class MessageListMailBoxUserView extends AbstractViewRight { this.messageListDisableAutoSelect = MessageUserStore.listDisableAutoSelect; this.folderList = FolderUserStore.folderList; + this.sortSupported = FolderUserStore.sortSupported; this.composeInEdit = AppUserStore.composeInEdit; this.leftPanelDisabled = leftPanelDisabled; @@ -106,6 +107,7 @@ export class MessageListMailBoxUserView extends AbstractViewRight { this.addObservables({ moveDropdownTrigger: false, moreDropdownTrigger: false, + sortDropdownTrigger: false, dragOverArea: null, dragOverBodyArea: null, @@ -174,7 +176,18 @@ export class MessageListMailBoxUserView extends AbstractViewRight { mobileCheckedStateHide: () => ThemeStore.isMobile() ? !MessageUserStore.listChecked().length : true, - messageListFocused: () => Scope.MessageList === AppUserStore.focusedState() + messageListFocused: () => Scope.MessageList === AppUserStore.focusedState(), + + sortText: () => { + let mode = FolderUserStore.sortMode().split(/\s+/); + if ('' === mode[0]) { + return 'šŸ“…ā¬‡'; + } + return (mode.includes('SIZE') ? 'āœ‰' + : (mode.includes('FROM') ? '@' + : (mode.includes('SUBJECT') ? 'š’' : 'šŸ“…'))) + + (mode.includes('REVERSE') ? '⬇' : '⬆'); + } }); this.hasCheckedOrSelectedLines = MessageUserStore.hasCheckedOrSelected, @@ -246,6 +259,11 @@ export class MessageListMailBoxUserView extends AbstractViewRight { }); } + changeSort(self, event) { + FolderUserStore.sortMode(event.target.closest('li').dataset.sort); + this.reloadCommand(); + } + clearCommand() { if (Settings.capa(Capa.DangerousActions)) { showScreenPopup(FolderClearPopupView, [FolderUserStore.currentFolder()]); diff --git a/snappymail/v/0.0.0/app/localization/webmail/_source.en.yml b/snappymail/v/0.0.0/app/localization/webmail/_source.en.yml index 11a00960a..db0d833ff 100644 --- a/snappymail/v/0.0.0/app/localization/webmail/_source.en.yml +++ b/snappymail/v/0.0.0/app/localization/webmail/_source.en.yml @@ -101,6 +101,14 @@ en: YESTERDAY_AT: "yesterday at %TIME%" NEW_MESSAGE_NOTIFICATION: "You have %COUNT% new messages!" QUOTA_SIZE: "Using %SIZE% (%PROC%%) of your %LIMIT%" + SORT_DATE_DESC: "Date descending" + SORT_DATE_ASC: "Date ascending" + SORT_SIZE_DESC: "Size descending" + SORT_SIZE_ASC: "Size ascending" + SORT_SUBJECT_DESC: "Subject descending" + SORT_SUBJECT_ASC: "Subject ascending" + SORT_FROM_DESC: "From descending" + SORT_FROM_ASC: "From ascending" MESSAGE: BUTTON_EDIT: "Edit" BUTTON_UNSUBSCRIBE: "Unsubscribe from this list" diff --git a/snappymail/v/0.0.0/app/templates/Views/User/MailMessageList.html b/snappymail/v/0.0.0/app/templates/Views/User/MailMessageList.html index 62616d7fc..9f89d752d 100644 --- a/snappymail/v/0.0.0/app/templates/Views/User/MailMessageList.html +++ b/snappymail/v/0.0.0/app/templates/Views/User/MailMessageList.html @@ -101,6 +101,59 @@ +