Improved reviveFromJson() for *Model

This commit is contained in:
djmaze 2020-10-23 15:15:54 +02:00
parent f4b2fddf5e
commit 76c4f62186
18 changed files with 226 additions and 341 deletions

View file

@ -643,7 +643,7 @@ class ComposePopupView extends AbstractViewNext {
if (this.bFromDraft) {
const message = MessageStore.message();
if (message && this.draftFolder() === message.folderFullNameRaw && this.draftUid() === message.uid) {
if (message && this.draftFolder() === message.folder && this.draftUid() === message.uid) {
MessageStore.message(null);
}
}
@ -905,7 +905,7 @@ class ComposePopupView extends AbstractViewNext {
this.to(this.emailArrayToStringLineHelper(message.replyEmails(excludeEmail)));
this.subject(replySubjectAdd('Re', sSubject));
this.prepareMessageAttachments(message, lineComposeType);
this.aDraftInfo = ['reply', message.uid, message.folderFullNameRaw];
this.aDraftInfo = ['reply', message.uid, message.folder];
this.sInReplyTo = message.sMessageId;
this.sReferences = (this.sInReplyTo + ' ' + message.sReferences).trim();
break;
@ -916,15 +916,15 @@ class ComposePopupView extends AbstractViewNext {
this.cc(this.emailArrayToStringLineHelper(resplyAllParts[1]));
this.subject(replySubjectAdd('Re', sSubject));
this.prepareMessageAttachments(message, lineComposeType);
this.aDraftInfo = ['reply', message.uid, message.folderFullNameRaw];
this.aDraftInfo = ['reply', message.uid, message.folder];
this.sInReplyTo = message.sMessageId;
this.sReferences = (this.sInReplyTo + ' ' + message.references()).trim();
this.sReferences = (this.sInReplyTo + ' ' + message.references).trim();
break;
case ComposeType.Forward:
this.subject(replySubjectAdd('Fwd', sSubject));
this.prepareMessageAttachments(message, lineComposeType);
this.aDraftInfo = ['forward', message.uid, message.folderFullNameRaw];
this.aDraftInfo = ['forward', message.uid, message.folder];
this.sInReplyTo = message.sMessageId;
this.sReferences = (this.sInReplyTo + ' ' + message.sReferences).trim();
break;
@ -932,7 +932,7 @@ class ComposePopupView extends AbstractViewNext {
case ComposeType.ForwardAsAttachment:
this.subject(replySubjectAdd('Fwd', sSubject));
this.prepareMessageAttachments(message, lineComposeType);
this.aDraftInfo = ['forward', message.uid, message.folderFullNameRaw];
this.aDraftInfo = ['forward', message.uid, message.folder];
this.sInReplyTo = message.sMessageId;
this.sReferences = (this.sInReplyTo + ' ' + message.sReferences).trim();
break;
@ -945,7 +945,7 @@ class ComposePopupView extends AbstractViewNext {
this.bFromDraft = true;
this.draftFolder(message.folderFullNameRaw);
this.draftFolder(message.folder);
this.draftUid(message.uid);
this.subject(sSubject);

View file

@ -230,7 +230,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
const sFolder = e.detail.Folder, sUid = e.detail.Uid;
const message = this.messageList().find(
item => item && sFolder === item.folderFullNameRaw && sUid === item.uid
item => item && sFolder === item.folder && sUid === item.uid
);
if ('INBOX' === sFolder) {
@ -503,11 +503,11 @@ class MessageListMailBoxUserView extends AbstractViewNext {
folder = getFolderFromCacheList(sFolderFullNameRaw);
if (folder) {
MessageStore.messageList().forEach(message => {
if (message.unseen()) {
if (message.isUnseen()) {
++cnt;
}
message.unseen(false);
message.isUnseen(false);
uids.push(message.uid);
});
@ -529,11 +529,11 @@ class MessageListMailBoxUserView extends AbstractViewNext {
folder = getFolderFromCacheList(sFolderFullNameRaw);
if (folder) {
MessageStore.messageList().forEach(message => {
if (!message.unseen()) {
if (!message.isUnseen()) {
++cnt;
}
message.unseen(true);
message.isUnseen(true);
uids.push(message.uid);
});
@ -605,14 +605,14 @@ class MessageListMailBoxUserView extends AbstractViewNext {
const checkedUids = checked.map(message => message.uid);
if (checkedUids.includes(currentMessage.uid)) {
this.setAction(
currentMessage.folderFullNameRaw,
currentMessage.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
currentMessage.folder,
currentMessage.isFlagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
checked
);
} else {
this.setAction(
currentMessage.folderFullNameRaw,
currentMessage.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
currentMessage.folder,
currentMessage.isFlagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
[currentMessage]
);
}
@ -623,15 +623,15 @@ class MessageListMailBoxUserView extends AbstractViewNext {
const checked = this.messageListCheckedOrSelected();
if (checked.length) {
if (undefined === bFlag) {
const flagged = checked.filter(message => message.flagged());
const flagged = checked.filter(message => message.isFlagged());
this.setAction(
checked[0].folderFullNameRaw,
checked[0].folder,
checked.length === flagged.length ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
checked
);
} else {
this.setAction(
checked[0].folderFullNameRaw,
checked[0].folder,
!bFlag ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
checked
);
@ -643,15 +643,15 @@ class MessageListMailBoxUserView extends AbstractViewNext {
const checked = this.messageListCheckedOrSelected();
if (checked.length) {
if (undefined === seen) {
const unseen = checked.filter(message => message.unseen());
const unseen = checked.filter(message => message.isUnseen());
this.setAction(
checked[0].folderFullNameRaw,
checked[0].folder,
unseen.length ? MessageSetAction.SetSeen : MessageSetAction.UnsetSeen,
checked
);
} else {
this.setAction(
checked[0].folderFullNameRaw,
checked[0].folder,
seen ? MessageSetAction.SetSeen : MessageSetAction.UnsetSeen,
checked
);
@ -875,12 +875,12 @@ class MessageListMailBoxUserView extends AbstractViewNext {
prefetchNextTick() {
if (ifvisible && !this.bPrefetch && !ifvisible.now() && this.viewModelVisible) {
const message = this.messageList().find(
item => item && !hasRequestedMessage(item.folderFullNameRaw, item.uid)
item => item && !hasRequestedMessage(item.folder, item.uid)
);
if (message) {
this.bPrefetch = true;
addRequestedMessage(message.folderFullNameRaw, message.uid);
addRequestedMessage(message.folder, message.uid);
Remote.message(
(result, data) => {
@ -890,7 +890,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
next && this.prefetchNextTick();
}, 1000);
},
message.folderFullNameRaw,
message.folder,
message.uid
);
}

View file

@ -60,7 +60,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
const message = this.message();
if (message && this.allowMessageListActions) {
this.message(null);
rl.app.deleteMessagesFromFolder(folderType, message.folderFullNameRaw, [message.uid], useFolder);
rl.app.deleteMessagesFromFolder(folderType, message.folder, [message.uid], useFolder);
}
}, this.messageVisibility);
@ -226,7 +226,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
this.scrollMessageToTop();
}
this.viewFolder = message.folderFullNameRaw;
this.viewFolder = message.folder;
this.viewUid = message.uid;
this.viewHash = message.hash;
this.viewSubject(message.subject());
@ -245,7 +245,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
this.viewUnsubscribeLink(message.getFirstUnsubsribeLink());
this.viewDownloadLink(message.downloadLink());
this.viewIsImportant(message.isImportant());
this.viewIsFlagged(message.flagged());
this.viewIsFlagged(message.isFlagged());
} else {
this.viewFolder = '';
this.viewUid = '';
@ -257,7 +257,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
this.message.viewTrigger.subscribe(() => {
const message = this.message();
message ? this.viewIsFlagged(message.flagged()) : this.viewIsFlagged(false);
message ? this.viewIsFlagged(message.isFlagged()) : this.viewIsFlagged(false);
});
this.fullScreenMode.subscribe(value => $htmlCL.toggle('rl-message-fullscreen', value));
@ -467,8 +467,8 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
// eslint-disable-line prefer-arrow-callback
const message = this.message();
message && rl.app.messageListAction(
message.folderFullNameRaw,
message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
message.folder,
message.isFlagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
[message]
);
}
@ -479,7 +479,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
const message = ko.dataFor(el); // eslint-disable-line no-invalid-this
message && message.folder && message.uid && rl.app.messageListAction(
message.folder,
message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
message.isFlagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
[message]
);
@ -639,21 +639,21 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
* @returns {boolean}
*/
isDraftFolder() {
return MessageStore.message() && FolderStore.draftFolder() === MessageStore.message().folderFullNameRaw;
return MessageStore.message() && FolderStore.draftFolder() === MessageStore.message().folder;
}
/**
* @returns {boolean}
*/
isSentFolder() {
return MessageStore.message() && FolderStore.sentFolder() === MessageStore.message().folderFullNameRaw;
return MessageStore.message() && FolderStore.sentFolder() === MessageStore.message().folder;
}
/**
* @returns {boolean}
*/
isSpamFolder() {
return MessageStore.message() && FolderStore.spamFolder() === MessageStore.message().folderFullNameRaw;
return MessageStore.message() && FolderStore.spamFolder() === MessageStore.message().folder;
}
/**
@ -667,7 +667,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
* @returns {boolean}
*/
isArchiveFolder() {
return MessageStore.message() && FolderStore.archiveFolder() === MessageStore.message().folderFullNameRaw;
return MessageStore.message() && FolderStore.archiveFolder() === MessageStore.message().folder;
}
/**
@ -762,7 +762,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
if (oMessage && oMessage.readReceipt()) {
Remote.sendReadReceiptMessage(
()=>{},
oMessage.folderFullNameRaw,
oMessage.folder,
oMessage.uid,
oMessage.readReceipt(),
i18n('READ_RECEIPT/SUBJECT', { 'SUBJECT': oMessage.subject() }),