Improved message flags/keywords/tags #419

This commit is contained in:
the-djmaze 2022-06-08 14:54:51 +02:00
parent cc3486ab63
commit c2d6ee90ac
2 changed files with 28 additions and 21 deletions

View file

@ -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(' '),

View file

@ -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);
} }