mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Cleanup some MessageFlagsCache handling
This commit is contained in:
parent
42fe9ae1ba
commit
78a3b1a5be
3 changed files with 10 additions and 17 deletions
|
|
@ -128,16 +128,12 @@ export class MessageFlagsCache
|
||||||
}
|
}
|
||||||
|
|
||||||
if (thread.length) {
|
if (thread.length) {
|
||||||
const unseenSubUid = thread.find(iSubUid =>
|
message.hasUnseenSubMessage(!!thread.find(iSubUid =>
|
||||||
(uid !== iSubUid) && !this.hasFlag(message.folder, iSubUid, '\\seen')
|
(uid !== iSubUid) && !this.hasFlag(message.folder, iSubUid, '\\seen')
|
||||||
);
|
));
|
||||||
|
message.hasFlaggedSubMessage(!!thread.find(iSubUid =>
|
||||||
const flaggedSubUid = thread.find(iSubUid =>
|
|
||||||
(uid !== iSubUid) && this.hasFlag(message.folder, iSubUid, '\\flagged')
|
(uid !== iSubUid) && this.hasFlag(message.folder, iSubUid, '\\flagged')
|
||||||
);
|
));
|
||||||
|
|
||||||
message.hasUnseenSubMessage(!!unseenSubUid);
|
|
||||||
message.hasFlaggedSubMessage(!!flaggedSubUid);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import { AbstractModel } from 'Knoin/AbstractModel';
|
||||||
|
|
||||||
import PreviewHTML from 'Html/PreviewMessage.html';
|
import PreviewHTML from 'Html/PreviewMessage.html';
|
||||||
|
|
||||||
|
//import { MessageFlagsCache } from 'Common/Cache';
|
||||||
import Remote from 'Remote/User/Fetch';
|
import Remote from 'Remote/User/Fetch';
|
||||||
|
|
||||||
const
|
const
|
||||||
|
|
@ -44,6 +45,7 @@ const
|
||||||
} else {
|
} else {
|
||||||
message.flags.push(lower);
|
message.flags.push(lower);
|
||||||
}
|
}
|
||||||
|
// MessageFlagsCache.setFor(message.folder, message.uid, message.flags());
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
Folder: message.folder,
|
Folder: message.folder,
|
||||||
|
|
|
||||||
|
|
@ -260,27 +260,25 @@ MessagelistUserStore.reload = (bDropPagePosition = false, bDropCurrentFolderCach
|
||||||
MessagelistUserStore.setAction = (sFolderFullName, iSetAction, messages) => {
|
MessagelistUserStore.setAction = (sFolderFullName, iSetAction, messages) => {
|
||||||
messages = messages || MessagelistUserStore.listChecked();
|
messages = messages || MessagelistUserStore.listChecked();
|
||||||
|
|
||||||
let folder = null,
|
let folder,
|
||||||
alreadyUnread = 0,
|
alreadyUnread = 0,
|
||||||
rootUids = messages.map(oMessage => oMessage && oMessage.uid ? oMessage.uid : null)
|
rootUids = messages.map(oMessage => oMessage && oMessage.uid ? oMessage.uid : null)
|
||||||
.validUnique(),
|
.validUnique(),
|
||||||
length = rootUids.length;
|
length = rootUids.length;
|
||||||
|
|
||||||
if (sFolderFullName && length) {
|
if (sFolderFullName && length) {
|
||||||
|
rootUids.forEach(sSubUid =>
|
||||||
|
alreadyUnread += MessageFlagsCache.storeBySetAction(sFolderFullName, sSubUid, iSetAction)
|
||||||
|
);
|
||||||
switch (iSetAction) {
|
switch (iSetAction) {
|
||||||
case MessageSetAction.SetSeen:
|
case MessageSetAction.SetSeen:
|
||||||
length = 0;
|
length = 0;
|
||||||
// fallthrough is intentionally
|
// fallthrough is intentionally
|
||||||
case MessageSetAction.UnsetSeen:
|
case MessageSetAction.UnsetSeen:
|
||||||
rootUids.forEach(sSubUid =>
|
|
||||||
alreadyUnread += MessageFlagsCache.storeBySetAction(sFolderFullName, sSubUid, iSetAction)
|
|
||||||
);
|
|
||||||
|
|
||||||
folder = getFolderFromCacheList(sFolderFullName);
|
folder = getFolderFromCacheList(sFolderFullName);
|
||||||
if (folder) {
|
if (folder) {
|
||||||
folder.unreadEmails(folder.unreadEmails() - alreadyUnread + length);
|
folder.unreadEmails(folder.unreadEmails() - alreadyUnread + length);
|
||||||
}
|
}
|
||||||
|
|
||||||
Remote.request('MessageSetSeen', null, {
|
Remote.request('MessageSetSeen', null, {
|
||||||
Folder: sFolderFullName,
|
Folder: sFolderFullName,
|
||||||
Uids: rootUids.join(','),
|
Uids: rootUids.join(','),
|
||||||
|
|
@ -290,9 +288,6 @@ MessagelistUserStore.setAction = (sFolderFullName, iSetAction, messages) => {
|
||||||
|
|
||||||
case MessageSetAction.SetFlag:
|
case MessageSetAction.SetFlag:
|
||||||
case MessageSetAction.UnsetFlag:
|
case MessageSetAction.UnsetFlag:
|
||||||
rootUids.forEach(sSubUid =>
|
|
||||||
MessageFlagsCache.storeBySetAction(sFolderFullName, sSubUid, iSetAction)
|
|
||||||
);
|
|
||||||
Remote.request('MessageSetFlagged', null, {
|
Remote.request('MessageSetFlagged', null, {
|
||||||
Folder: sFolderFullName,
|
Folder: sFolderFullName,
|
||||||
Uids: rootUids.join(','),
|
Uids: rootUids.join(','),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue