mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Improved tags #419
This commit is contained in:
parent
c0994b38e8
commit
9e4edd8843
5 changed files with 42 additions and 6 deletions
|
|
@ -263,11 +263,17 @@ export class FolderModel extends AbstractModel {
|
||||||
|
|
||||||
kolabType: null,
|
kolabType: null,
|
||||||
|
|
||||||
collapsed: true
|
collapsed: true,
|
||||||
|
|
||||||
|
tagsAllowed: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.flags = ko.observableArray();
|
||||||
|
this.permanentFlags = ko.observableArray();
|
||||||
|
|
||||||
this.addSubscribables({
|
this.addSubscribables({
|
||||||
kolabType: sValue => this.metadata[FolderMetadataKeys.KolabFolderType] = sValue
|
kolabType: sValue => this.metadata[FolderMetadataKeys.KolabFolderType] = sValue,
|
||||||
|
permanentFlags: aValue => this.tagsAllowed(aValue.includes('\\*'))
|
||||||
});
|
});
|
||||||
|
|
||||||
this.subFolders = ko.observableArray(new FolderCollectionModel);
|
this.subFolders = ko.observableArray(new FolderCollectionModel);
|
||||||
|
|
@ -296,9 +302,20 @@ export class FolderModel extends AbstractModel {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.extend({ notify: 'always' });
|
.extend({ notify: 'always' });
|
||||||
|
/*
|
||||||
this.flags = ko.observableArray();
|
https://www.rfc-editor.org/rfc/rfc8621.html#section-2
|
||||||
this.permanentFlags = ko.observableArray();
|
"myRights": {
|
||||||
|
"mayAddItems": true,
|
||||||
|
"mayRename": false,
|
||||||
|
"maySubmit": true,
|
||||||
|
"mayDelete": false,
|
||||||
|
"maySetKeywords": true,
|
||||||
|
"mayRemoveItems": true,
|
||||||
|
"mayCreateChild": true,
|
||||||
|
"maySetSeen": true,
|
||||||
|
"mayReadItems": true
|
||||||
|
},
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -113,11 +113,21 @@ export class MessageModel extends AbstractModel {
|
||||||
this.flags = ko.observableArray();
|
this.flags = ko.observableArray();
|
||||||
|
|
||||||
const ignoredTags = [
|
const ignoredTags = [
|
||||||
|
'$forwarded',
|
||||||
|
// Mailo
|
||||||
|
'sent',
|
||||||
|
// KMail
|
||||||
'$sent',
|
'$sent',
|
||||||
'$signed',
|
'$signed',
|
||||||
'$error',
|
'$error',
|
||||||
'$queued',
|
'$queued',
|
||||||
'$forwarded'
|
// GMail
|
||||||
|
'$replied',
|
||||||
|
'$attachment',
|
||||||
|
'$notphishing',
|
||||||
|
'$phishing',
|
||||||
|
'junk',
|
||||||
|
'nonjunk'
|
||||||
];
|
];
|
||||||
|
|
||||||
this.addComputables({
|
this.addComputables({
|
||||||
|
|
|
||||||
|
|
@ -206,6 +206,11 @@ MessagelistUserStore.reload = (bDropPagePosition = false, bDropCurrenFolderCache
|
||||||
}
|
}
|
||||||
|
|
||||||
folder.flags(folderInfo.Flags);
|
folder.flags(folderInfo.Flags);
|
||||||
|
folderInfo.PermanentFlags.sort((a, b) => {
|
||||||
|
a = a.toUpperCase();
|
||||||
|
b = b.toUpperCase();
|
||||||
|
return (a < b) ? -1 : ((a > b) ? 1 : 0);
|
||||||
|
});
|
||||||
folder.permanentFlags(folderInfo.PermanentFlags);
|
folder.permanentFlags(folderInfo.PermanentFlags);
|
||||||
|
|
||||||
MessagelistUserStore.initUidNextAndNewMessages(folder.fullName, folderInfo.UidNext, collection.NewMessages);
|
MessagelistUserStore.initUidNextAndNewMessages(folder.fullName, folderInfo.UidNext, collection.NewMessages);
|
||||||
|
|
|
||||||
|
|
@ -147,6 +147,8 @@ export class MailMessageView extends AbstractViewRight {
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
tagsAllowed: () => FolderUserStore.currentFolder() ? FolderUserStore.currentFolder().tagsAllowed() : false,
|
||||||
|
|
||||||
messageVisibility: () => !MessageUserStore.loading() && !!currentMessage(),
|
messageVisibility: () => !MessageUserStore.loading() && !!currentMessage(),
|
||||||
|
|
||||||
canBeRepliedOrForwarded: () => !this.isDraftFolder() && this.messageVisibility(),
|
canBeRepliedOrForwarded: () => !this.isDraftFolder() && this.messageVisibility(),
|
||||||
|
|
|
||||||
|
|
@ -195,6 +195,7 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="hasVirus" data-bind="visible: message().hasVirus()" data-i18n="MESSAGE/HAS_VIRUS_WARNING"></div>
|
<div class="hasVirus" data-bind="visible: message().hasVirus()" data-i18n="MESSAGE/HAS_VIRUS_WARNING"></div>
|
||||||
|
<!-- ko if: tagsAllowed -->
|
||||||
<div class="messageTags">
|
<div class="messageTags">
|
||||||
<span data-i18n="MESSAGE/TAGS"></span>:
|
<span data-i18n="MESSAGE/TAGS"></span>:
|
||||||
<span data-bind="html: message().tagsToHTML()"></span>
|
<span data-bind="html: message().tagsToHTML()"></span>
|
||||||
|
|
@ -207,6 +208,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- /ko -->
|
||||||
</div>
|
</div>
|
||||||
<div id="messageItem" data-bind="css: message().lineAsCss()">
|
<div id="messageItem" data-bind="css: message().lineAsCss()">
|
||||||
<div tabindex="0" data-bind="hasfocus: messageDomFocused">
|
<div tabindex="0" data-bind="hasfocus: messageDomFocused">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue