From 8ab30552232786458824fd6e5ae5670ed78ced33 Mon Sep 17 00:00:00 2001 From: Sergey Mosin Date: Fri, 11 Aug 2023 21:08:05 -0400 Subject: [PATCH] fix: unseen indicator is not shown in thread view when 'listGrouped' settings is false + show unseen message count when the message list is threaded --- dev/Model/Message.js | 5 +++++ dev/Stores/User/Messagelist.js | 22 ++++++++++++++----- .../templates/Views/User/MailMessageList.html | 4 ++-- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/dev/Model/Message.js b/dev/Model/Message.js index 8e9e97bc7..9f2c54b49 100644 --- a/dev/Model/Message.js +++ b/dev/Model/Message.js @@ -128,6 +128,11 @@ export class MessageModel extends AbstractModel { threadsLen: () => rl.app.messageList.threadUid() ? 0 : this.threads().length, threadUnseenLen: () => rl.app.messageList.threadUid() ? 0 : this.threadUnseen().length, + threadsLenText: () => { + const unseenLen = this.threadUnseenLen(); + return this.threadsLen() + (unseenLen > 0 ? '/' + unseenLen : ''); + }, + isUnseen: () => !this.flags().includes('\\seen'), isFlagged: () => this.flags().includes('\\flagged'), // isJunk: () => this.flags().includes('$junk') && !this.flags().includes('$nonjunk'), diff --git a/dev/Stores/User/Messagelist.js b/dev/Stores/User/Messagelist.js index c9ada4545..025ea728b 100644 --- a/dev/Stores/User/Messagelist.js +++ b/dev/Stores/User/Messagelist.js @@ -344,13 +344,23 @@ MessagelistUserStore.setAction = (sFolderFullName, iSetAction, messages) => { length; if (iSetAction == MessageSetAction.SetSeen) { - messages.forEach(oMessage => - oMessage.isUnseen() && rootUids.push(oMessage.uid) && oMessage.flags.push('\\seen') - ); + messages.forEach(oMessage => { + if (oMessage.isUnseen() && rootUids.push(oMessage.uid)) { + oMessage.flags.push('\\seen'); + if (oMessage.threads().length > 0 && oMessage.threadUnseen().includes(oMessage.uid)) { + oMessage.threadUnseen.remove(oMessage.uid); + } + } + }); } else if (iSetAction == MessageSetAction.UnsetSeen) { - messages.forEach(oMessage => - !oMessage.isUnseen() && rootUids.push(oMessage.uid) && oMessage.flags.remove('\\seen') - ); + messages.forEach(oMessage => { + if (!oMessage.isUnseen() && rootUids.push(oMessage.uid)) { + oMessage.flags.remove('\\seen'); + if (oMessage.threads().length > 0 && !oMessage.threadUnseen().includes(oMessage.uid)) { + oMessage.threadUnseen.push(oMessage.uid); + } + } + }); } else if (iSetAction == MessageSetAction.SetFlag) { messages.forEach(oMessage => !oMessage.isFlagged() && rootUids.push(oMessage.uid) && oMessage.flags.push('\\flagged') 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 4a4dd3701..a5bd63588 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 @@ -139,7 +139,7 @@
-
+
@@ -159,7 +159,7 @@
-
+