mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-08 22:18:28 +03:00
CollectionModels reviveFromJson
This commit is contained in:
parent
d747de7649
commit
7d89de2fdb
3 changed files with 69 additions and 71 deletions
|
|
@ -34,30 +34,22 @@ export class MessageCollectionModel extends AbstractCollectionModel
|
|||
* @returns {MessageCollectionModel}
|
||||
*/
|
||||
static reviveFromJson(object, cached) {
|
||||
const collection = this.getFromJSON(object, 'MessageCollection');
|
||||
if (collection) {
|
||||
const result = new MessageCollectionModel(object);
|
||||
|
||||
let newCount = 0;
|
||||
collection.forEach(message => {
|
||||
if (message && 'Object/Message' === message['@Object']) {
|
||||
message = MessageModel.newInstanceFromJson(message);
|
||||
if (message) {
|
||||
if (hasNewMessageAndRemoveFromCache(message.folderFullNameRaw, message.uid) && 5 >= newCount) {
|
||||
++newCount;
|
||||
message.newForAnimation(true);
|
||||
}
|
||||
|
||||
message.deleted(false);
|
||||
|
||||
cached ? initMessageFlagsFromCache(message) : storeMessageFlagsToCache(message);
|
||||
|
||||
result.push(message);
|
||||
let newCount = 0;
|
||||
return super.reviveFromJson(object, message => {
|
||||
if (message && 'Object/Message' === message['@Object']) {
|
||||
message = MessageModel.newInstanceFromJson(message);
|
||||
if (message) {
|
||||
if (hasNewMessageAndRemoveFromCache(message.folderFullNameRaw, message.uid) && 5 >= newCount) {
|
||||
++newCount;
|
||||
message.newForAnimation(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
message.deleted(false);
|
||||
|
||||
cached ? initMessageFlagsFromCache(message) : storeMessageFlagsToCache(message);
|
||||
return message;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue