mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Improved message flags/keywords/tags #419
This commit is contained in:
parent
cc3486ab63
commit
c2d6ee90ac
2 changed files with 28 additions and 21 deletions
|
|
@ -35,6 +35,24 @@ const
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
ignoredTags = [
|
||||||
|
'$forwarded',
|
||||||
|
// Mailo
|
||||||
|
'sent',
|
||||||
|
// KMail
|
||||||
|
'$sent',
|
||||||
|
'$signed',
|
||||||
|
'$error',
|
||||||
|
'$queued',
|
||||||
|
// GMail
|
||||||
|
'$replied',
|
||||||
|
'$attachment',
|
||||||
|
'$notphishing',
|
||||||
|
'$phishing',
|
||||||
|
'junk',
|
||||||
|
'nonjunk'
|
||||||
|
],
|
||||||
|
|
||||||
toggleTag = (message, keyword) => {
|
toggleTag = (message, keyword) => {
|
||||||
const lower = keyword.toLowerCase(),
|
const lower = keyword.toLowerCase(),
|
||||||
isSet = message.flags().includes(lower);
|
isSet = message.flags().includes(lower);
|
||||||
|
|
@ -114,24 +132,6 @@ export class MessageModel extends AbstractModel {
|
||||||
this.unsubsribeLinks = ko.observableArray();
|
this.unsubsribeLinks = ko.observableArray();
|
||||||
this.flags = ko.observableArray();
|
this.flags = ko.observableArray();
|
||||||
|
|
||||||
const ignoredTags = [
|
|
||||||
'$forwarded',
|
|
||||||
// Mailo
|
|
||||||
'sent',
|
|
||||||
// KMail
|
|
||||||
'$sent',
|
|
||||||
'$signed',
|
|
||||||
'$error',
|
|
||||||
'$queued',
|
|
||||||
// GMail
|
|
||||||
'$replied',
|
|
||||||
'$attachment',
|
|
||||||
'$notphishing',
|
|
||||||
'$phishing',
|
|
||||||
'junk',
|
|
||||||
'nonjunk'
|
|
||||||
];
|
|
||||||
|
|
||||||
this.addComputables({
|
this.addComputables({
|
||||||
attachmentIconClass: () => FileInfo.getAttachmentsIconClass(this.attachments()),
|
attachmentIconClass: () => FileInfo.getAttachmentsIconClass(this.attachments()),
|
||||||
threadsLen: () => this.threads().length,
|
threadsLen: () => this.threads().length,
|
||||||
|
|
@ -145,7 +145,7 @@ export class MessageModel extends AbstractModel {
|
||||||
// isPhishing: () => this.flags().includes('$phishing'),
|
// isPhishing: () => this.flags().includes('$phishing'),
|
||||||
|
|
||||||
tagsToHTML: () => this.flags().map(value =>
|
tagsToHTML: () => this.flags().map(value =>
|
||||||
('\\' == value[0] || '$forwarded' == value)
|
('\\' == value[0] || ignoredTags.includes(value))
|
||||||
? ''
|
? ''
|
||||||
: '<span class="focused msgflag-'+value+'">' + i18n('MESSAGE_TAGS/'+value,0,value) + '</span>'
|
: '<span class="focused msgflag-'+value+'">' + i18n('MESSAGE_TAGS/'+value,0,value) + '</span>'
|
||||||
).join(' '),
|
).join(' '),
|
||||||
|
|
|
||||||
|
|
@ -200,12 +200,19 @@ MessagelistUserStore.reload = (bDropPagePosition = false, bDropCurrentFolderCach
|
||||||
}
|
}
|
||||||
|
|
||||||
folder.flags(folderInfo.Flags);
|
folder.flags(folderInfo.Flags);
|
||||||
folderInfo.PermanentFlags.sort((a, b) => {
|
let flags = folderInfo.PermanentFlags;
|
||||||
|
if (flags.includes('\\*')) {
|
||||||
|
let i = 6;
|
||||||
|
while (--i) {
|
||||||
|
flags.includes('$label'+i) || flags.push('$label'+i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
flags.sort((a, b) => {
|
||||||
a = a.toUpperCase();
|
a = a.toUpperCase();
|
||||||
b = b.toUpperCase();
|
b = b.toUpperCase();
|
||||||
return (a < b) ? -1 : ((a > b) ? 1 : 0);
|
return (a < b) ? -1 : ((a > b) ? 1 : 0);
|
||||||
});
|
});
|
||||||
folder.permanentFlags(folderInfo.PermanentFlags);
|
folder.permanentFlags(flags);
|
||||||
|
|
||||||
MessagelistUserStore.notifyNewMessages(folder.fullName, collection.NewMessages);
|
MessagelistUserStore.notifyNewMessages(folder.fullName, collection.NewMessages);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue