Hide some functions from rl.app.

This commit is contained in:
the-djmaze 2022-02-07 17:27:25 +01:00
parent ab149b5ec9
commit 1f0af5c0ac
7 changed files with 57 additions and 64 deletions

View file

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

View file

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

View file

@ -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) {

View file

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

View file

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

View file

@ -488,7 +488,7 @@ export class MailMessageList extends AbstractViewRight {
Remote.messageSetSeenToAll(sFolderFullName, true, iThreadUid ? uids : null);
rl.app.reloadFlagsCurrentMessageListAndMessageFromCache();
MessageUserStore.reloadFlagsAndCachedMessage();
}
}
}

View file

@ -621,7 +621,7 @@ export class MailMessageView extends AbstractViewRight {
MessageFlagsCache.store(oMessage);
rl.app.reloadFlagsCurrentMessageListAndMessageFromCache();
MessageUserStore.reloadFlagsAndCachedMessage();
}
}