mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-29 20:19:22 +03:00
Better mail message handling
* Cleanup HTML parsing * Drop useless Microsoft 'Sensitivity' MIME Header * Revamp Flags handling
This commit is contained in:
parent
ddbcb4bfa4
commit
d734a3e415
17 changed files with 175 additions and 478 deletions
|
|
@ -452,75 +452,6 @@ export class MailMessageList extends AbstractViewRight {
|
|||
rl.app.messageListAction(sFolderFullName, iSetAction, aMessages);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} sFolderFullName
|
||||
* @param {number} iSetAction
|
||||
* @param {number} iThreadUid = ''
|
||||
* @returns {void}
|
||||
*/
|
||||
setActionForAll(sFolderFullName, iSetAction, iThreadUid = 0) {
|
||||
if (sFolderFullName) {
|
||||
let cnt = 0;
|
||||
const uids = [];
|
||||
|
||||
let folder = getFolderFromCacheList(sFolderFullName);
|
||||
if (folder) {
|
||||
switch (iSetAction) {
|
||||
case MessageSetAction.SetSeen:
|
||||
MessageUserStore.list.forEach(message => {
|
||||
if (message.isUnseen()) {
|
||||
++cnt;
|
||||
}
|
||||
|
||||
message.isUnseen(false);
|
||||
uids.push(message.uid);
|
||||
});
|
||||
|
||||
if (iThreadUid) {
|
||||
folder.messageCountUnread(folder.messageCountUnread() - cnt);
|
||||
if (0 > folder.messageCountUnread()) {
|
||||
folder.messageCountUnread(0);
|
||||
}
|
||||
} else {
|
||||
folder.messageCountUnread(0);
|
||||
}
|
||||
|
||||
MessageFlagsCache.clearFolder(sFolderFullName);
|
||||
|
||||
Remote.messageSetSeenToAll(null, sFolderFullName, true, iThreadUid ? uids : null);
|
||||
break;
|
||||
|
||||
case MessageSetAction.UnsetSeen:
|
||||
MessageUserStore.list.forEach(message => {
|
||||
if (!message.isUnseen()) {
|
||||
++cnt;
|
||||
}
|
||||
|
||||
message.isUnseen(true);
|
||||
uids.push(message.uid);
|
||||
});
|
||||
|
||||
if (iThreadUid) {
|
||||
folder.messageCountUnread(folder.messageCountUnread() + cnt);
|
||||
if (folder.messageCountAll() < folder.messageCountUnread()) {
|
||||
folder.messageCountUnread(folder.messageCountAll());
|
||||
}
|
||||
} else {
|
||||
folder.messageCountUnread(folder.messageCountAll());
|
||||
}
|
||||
|
||||
MessageFlagsCache.clearFolder(sFolderFullName);
|
||||
|
||||
Remote.messageSetSeenToAll(null, sFolderFullName, false, iThreadUid ? uids : null);
|
||||
break;
|
||||
// no default
|
||||
}
|
||||
|
||||
rl.app.reloadFlagsCurrentMessageListAndMessageFromCache();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
listSetSeen() {
|
||||
this.setAction(
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
|
|
@ -530,11 +461,37 @@ export class MailMessageList extends AbstractViewRight {
|
|||
}
|
||||
|
||||
listSetAllSeen() {
|
||||
this.setActionForAll(
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageSetAction.SetSeen,
|
||||
MessageUserStore.listEndThreadUid()
|
||||
);
|
||||
let sFolderFullName = FolderUserStore.currentFolderFullName(),
|
||||
iThreadUid = MessageUserStore.listEndThreadUid();
|
||||
if (sFolderFullName) {
|
||||
let cnt = 0;
|
||||
const uids = [];
|
||||
|
||||
let folder = getFolderFromCacheList(sFolderFullName);
|
||||
if (folder) {
|
||||
MessageUserStore.list.forEach(message => {
|
||||
if (message.isUnseen()) {
|
||||
++cnt;
|
||||
}
|
||||
|
||||
message.flags.push('\\seen');
|
||||
// message.flags.valueHasMutated();
|
||||
uids.push(message.uid);
|
||||
});
|
||||
|
||||
if (iThreadUid) {
|
||||
folder.messageCountUnread(Math.max(0, folder.messageCountUnread() - cnt));
|
||||
} else {
|
||||
folder.messageCountUnread(0);
|
||||
}
|
||||
|
||||
MessageFlagsCache.clearFolder(sFolderFullName);
|
||||
|
||||
Remote.messageSetSeenToAll(sFolderFullName, true, iThreadUid ? uids : null);
|
||||
|
||||
rl.app.reloadFlagsCurrentMessageListAndMessageFromCache();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
listUnsetSeen() {
|
||||
|
|
|
|||
|
|
@ -606,7 +606,8 @@ export class MailMessageView extends AbstractViewRight {
|
|||
Text: i18n('READ_RECEIPT/BODY', { 'READ-RECEIPT': AccountUserStore.email() })
|
||||
});
|
||||
|
||||
oMessage.isReadReceipt(true);
|
||||
oMessage.flags.push('$mdnsent');
|
||||
// oMessage.flags.valueHasMutated();
|
||||
|
||||
MessageFlagsCache.store(oMessage);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue