From 1f0af5c0acda5ba2b86e5f893c89325b0c1acf41 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 7 Feb 2022 17:27:25 +0100 Subject: [PATCH] Hide some functions from rl.app. --- dev/App/User.js | 71 ++++++---------------------- dev/Remote/User/Fetch.js | 4 +- dev/Stores/User/Message.js | 6 +++ dev/View/Popup/Compose.js | 8 +++- dev/View/User/MailBox/FolderList.js | 28 ++++++++++- dev/View/User/MailBox/MessageList.js | 2 +- dev/View/User/MailBox/MessageView.js | 2 +- 7 files changed, 57 insertions(+), 64 deletions(-) diff --git a/dev/App/User.js b/dev/App/User.js index 6e6fda3d2..d8ac6a6f9 100644 --- a/dev/App/User.js +++ b/dev/App/User.js @@ -49,8 +49,6 @@ import { PgpUserStore } from 'Stores/User/Pgp'; import { MessageUserStore } from 'Stores/User/Message'; import { ThemeStore } from 'Stores/Theme'; -import * as Local from 'Storage/Client'; - import Remote from 'Remote/User/Fetch'; import { EmailModel } from 'Model/Email'; @@ -74,12 +72,12 @@ import { timeToNode } from 'Common/Momentor'; // Every 5 minutes const refreshFolders = 300000; +let moveCache = {}; + class AppUser extends AbstractApp { constructor() { super(Remote); - this.moveCache = {}; - this.moveOrDeleteResponseHelper = this.moveOrDeleteResponseHelper.bind(this); this.messagesMoveTrigger = this.messagesMoveTrigger.debounce(500); @@ -108,14 +106,6 @@ class AppUser extends AbstractApp { (Settings.app('inIframe') ? parent : window).location.reload(); } - reloadFlagsCurrentMessageListAndMessageFromCache() { - MessageUserStore.list.forEach(message => - MessageFlagsCache.initMessage(message) - ); - MessageFlagsCache.initMessage(MessageUserStore.message()); - MessageUserStore.messageViewTrigger(!MessageUserStore.messageViewTrigger()); - } - /** * @param {boolean=} bDropPagePosition = false * @param {boolean=} bDropCurrenFolderCache = false @@ -172,7 +162,7 @@ class AppUser extends AbstractApp { const sTrashFolder = FolderUserStore.trashFolder(), sSpamFolder = FolderUserStore.spamFolder(); - forEachObjectValue(this.moveCache, item => { + forEachObjectValue(moveCache, item => { const isSpam = sSpamFolder === item.To, isTrash = sTrashFolder === item.To, isHam = !isSpam && sSpamFolder === item.From && getFolderInboxName() === item.To; @@ -192,31 +182,23 @@ class AppUser extends AbstractApp { ); }); - this.moveCache = {}; + moveCache = {}; } messagesMoveHelper(fromFolderFullName, toFolderFullName, uidsForMove) { const hash = '$$' + fromFolderFullName + '$$' + toFolderFullName + '$$'; - if (!this.moveCache[hash]) { - this.moveCache[hash] = { + if (!moveCache[hash]) { + moveCache[hash] = { From: fromFolderFullName, To: toFolderFullName, Uid: [] }; } - this.moveCache[hash].Uid = this.moveCache[hash].Uid.concat(uidsForMove).unique(); + moveCache[hash].Uid = moveCache[hash].Uid.concat(uidsForMove).unique(); this.messagesMoveTrigger(); } - messagesCopyHelper(sFromFolderFullName, sToFolderFullName, aUidForCopy) { - Remote.request('MessageCopy', null, { - FromFolder: sFromFolderFullName, - ToFolder: sToFolderFullName, - Uids: aUidForCopy.join(',') - }); - } - messagesDeleteHelper(sFromFolderFullName, aUidForRemove) { Remote.request('MessageDelete', this.moveOrDeleteResponseHelper, @@ -244,15 +226,6 @@ class AppUser extends AbstractApp { } } - /** - * @param {string} sFromFolderFullName - * @param {Array} aUidForRemove - */ - deleteMessagesFromFolderWithoutCheck(sFromFolderFullName, aUidForRemove) { - this.messagesDeleteHelper(sFromFolderFullName, aUidForRemove); - MessageUserStore.removeMessagesFromList(sFromFolderFullName, aUidForRemove); - } - /** * @param {number} iDeleteType * @param {string} sFromFolderFullName @@ -327,7 +300,11 @@ class AppUser extends AbstractApp { if (oFromFolder && oToFolder) { if (undefined === bCopy ? false : !!bCopy) { - this.messagesCopyHelper(oFromFolder.fullName, oToFolder.fullName, aUidForMove); + Remote.request('MessageCopy', null, { + FromFolder: oFromFolder.fullName, + ToFolder: oToFolder.fullName, + Uids: aUidForMove.join(',') + }); } else { this.messagesMoveHelper(oFromFolder.fullName, oToFolder.fullName, aUidForMove); } @@ -424,7 +401,7 @@ class AppUser extends AbstractApp { MessageFlagsCache.setFor(folderFromCache.fullName, message.Uid.toString(), message.Flags) ); - this.reloadFlagsCurrentMessageListAndMessageFromCache(); + MessageUserStore.reloadFlagsAndCachedMessage(); } MessageUserStore.initUidNextAndNewMessages( @@ -549,7 +526,7 @@ class AppUser extends AbstractApp { // no default } - this.reloadFlagsCurrentMessageListAndMessageFromCache(); + MessageUserStore.reloadFlagsAndCachedMessage(); } } @@ -569,26 +546,6 @@ class AppUser extends AbstractApp { }, query); } - /** - * @param {string} sFullName - * @param {boolean} bExpanded - */ - setExpandedFolder(sFullName, bExpanded) { - let aExpandedList = Local.get(ClientSideKeyName.ExpandedFolders); - if (!isArray(aExpandedList)) { - aExpandedList = []; - } - - if (bExpanded) { - if (!aExpandedList.includes(sFullName)) - aExpandedList.push(sFullName); - } else { - aExpandedList = aExpandedList.filter(value => value !== sFullName); - } - - Local.set(ClientSideKeyName.ExpandedFolders, aExpandedList); - } - /** * @param {string} link * @returns {boolean} diff --git a/dev/Remote/User/Fetch.js b/dev/Remote/User/Fetch.js index d6484b5f2..ca70ad472 100644 --- a/dev/Remote/User/Fetch.js +++ b/dev/Remote/User/Fetch.js @@ -18,6 +18,8 @@ import { AbstractFetchRemote } from 'Remote/AbstractFetch'; import { FolderCollectionModel } from 'Model/FolderCollection'; +import { MessageUserStore } from 'Stores/User/Message'; + class RemoteUserFetch extends AbstractFetchRemote { /** @@ -130,7 +132,7 @@ class RemoteUserFetch extends AbstractFetchRemote { UidNext: getFolderUidNext(folder) // Used to check for new messages }); } else if (SettingsUserStore.useThreads()) { - rl.app.reloadFlagsCurrentMessageListAndMessageFromCache(); + MessageUserStore.reloadFlagsAndCachedMessage(); } } diff --git a/dev/Stores/User/Message.js b/dev/Stores/User/Message.js index 2c3818877..d070f1c4c 100644 --- a/dev/Stores/User/Message.js +++ b/dev/Stores/User/Message.js @@ -477,6 +477,12 @@ export const MessageUserStore = new class { ); } + reloadFlagsAndCachedMessage() { + this.list.forEach(message => MessageFlagsCache.initMessage(message)); + MessageFlagsCache.initMessage(this.message()); + this.messageViewTrigger(!this.messageViewTrigger()); + } + setMessageList(data, cached) { const collection = MessageCollectionModel.reviveFromJson(data.Result, cached); if (collection) { diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js index 10f4b2113..060b25a6c 100644 --- a/dev/View/Popup/Compose.js +++ b/dev/View/Popup/Compose.js @@ -484,7 +484,7 @@ class ComposePopupView extends AbstractViewPopup { if (isArray(flagsCache)) { flagsCache.push(('forward' === this.aDraftInfo[0]) ? '$forwarded' : '\\answered'); MessageFlagsCache.setFor(this.aDraftInfo[2], this.aDraftInfo[1], flagsCache); - rl.app.reloadFlagsCurrentMessageListAndMessageFromCache(); + MessageUserStore.reloadFlagsAndCachedMessage(); setFolderHash(this.aDraftInfo[2], ''); } } @@ -592,7 +592,11 @@ class ComposePopupView extends AbstractViewPopup { i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'), () => { if (this.modalVisibility()) { - rl.app.deleteMessagesFromFolderWithoutCheck(this.draftsFolder(), [this.draftUid()]); + const + sFromFolderFullName = this.draftsFolder(), + aUidForRemove = [this.draftUid()]; + rl.app.messagesDeleteHelper(sFromFolderFullName, aUidForRemove); + MessageUserStore.removeMessagesFromList(sFromFolderFullName, aUidForRemove); this.closeCommand(); } } diff --git a/dev/View/User/MailBox/FolderList.js b/dev/View/User/MailBox/FolderList.js index 46b9fda51..4ab0ff619 100644 --- a/dev/View/User/MailBox/FolderList.js +++ b/dev/View/User/MailBox/FolderList.js @@ -18,6 +18,30 @@ import { showMessageComposer } from 'Common/UtilsUser'; import { FolderCreatePopupView } from 'View/Popup/FolderCreate'; import { ContactsPopupView } from 'View/Popup/Contacts'; +import { isArray } from 'Common/Utils'; +import { ClientSideKeyName } from 'Common/EnumsUser'; +import * as Local from 'Storage/Client'; + +/** + * @param {string} sFullName + * @param {boolean} bExpanded + */ +function setExpandedFolder(sFullName, bExpanded) { + let aExpandedList = Local.get(ClientSideKeyName.ExpandedFolders); + if (!isArray(aExpandedList)) { + aExpandedList = []; + } + + if (bExpanded) { + if (!aExpandedList.includes(sFullName)) + aExpandedList.push(sFullName); + } else { + aExpandedList = aExpandedList.filter(value => value !== sFullName); + } + + Local.set(ClientSideKeyName.ExpandedFolders, aExpandedList); +} + export class MailFolderList extends AbstractViewLeft { constructor() { super('MailFolderList'); @@ -69,7 +93,7 @@ export class MailFolderList extends AbstractViewLeft { const folder = ko.dataFor(el); if (folder) { const collapsed = folder.collapsed(); - rl.app.setExpandedFolder(folder.fullName, collapsed); + setExpandedFolder(folder.fullName, collapsed); folder.collapsed(!collapsed); event.preventDefault(); @@ -151,7 +175,7 @@ export class MailFolderList extends AbstractViewLeft { folder = item && ko.dataFor(item); if (folder) { const collapsed = folder.collapsed(); - rl.app.setExpandedFolder(folder.fullName, collapsed); + setExpandedFolder(folder.fullName, collapsed); folder.collapsed(!collapsed); } diff --git a/dev/View/User/MailBox/MessageList.js b/dev/View/User/MailBox/MessageList.js index 56b41058e..44d4fd497 100644 --- a/dev/View/User/MailBox/MessageList.js +++ b/dev/View/User/MailBox/MessageList.js @@ -488,7 +488,7 @@ export class MailMessageList extends AbstractViewRight { Remote.messageSetSeenToAll(sFolderFullName, true, iThreadUid ? uids : null); - rl.app.reloadFlagsCurrentMessageListAndMessageFromCache(); + MessageUserStore.reloadFlagsAndCachedMessage(); } } } diff --git a/dev/View/User/MailBox/MessageView.js b/dev/View/User/MailBox/MessageView.js index 33edfb6f8..e34da2ac9 100644 --- a/dev/View/User/MailBox/MessageView.js +++ b/dev/View/User/MailBox/MessageView.js @@ -621,7 +621,7 @@ export class MailMessageView extends AbstractViewRight { MessageFlagsCache.store(oMessage); - rl.app.reloadFlagsCurrentMessageListAndMessageFromCache(); + MessageUserStore.reloadFlagsAndCachedMessage(); } }