mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
FolderFullNameRaw is gone due to UTF8
This commit is contained in:
parent
f743f0e27a
commit
d33ec54c1c
14 changed files with 181 additions and 184 deletions
|
|
@ -132,7 +132,7 @@ class AppUser extends AbstractApp {
|
|||
let iOffset = (MessageUserStore.listPage() - 1) * SettingsUserStore.messagesPerPage();
|
||||
|
||||
if (bDropCurrenFolderCache) {
|
||||
setFolderHash(FolderUserStore.currentFolderFullNameRaw(), '');
|
||||
setFolderHash(FolderUserStore.currentFolderFullName(), '');
|
||||
}
|
||||
|
||||
if (bDropPagePosition) {
|
||||
|
|
@ -167,7 +167,7 @@ class AppUser extends AbstractApp {
|
|||
MessageUserStore.listLoading(false);
|
||||
},
|
||||
{
|
||||
Folder: FolderUserStore.currentFolderFullNameRaw(),
|
||||
Folder: FolderUserStore.currentFolderFullName(),
|
||||
Offset: iOffset,
|
||||
Limit: SettingsUserStore.messagesPerPage(),
|
||||
Search: MessageUserStore.listSearch(),
|
||||
|
|
@ -198,12 +198,12 @@ class AppUser extends AbstractApp {
|
|||
this.moveCache = {};
|
||||
}
|
||||
|
||||
messagesMoveHelper(fromFolderFullNameRaw, toFolderFullNameRaw, uidsForMove) {
|
||||
const hash = '$$' + fromFolderFullNameRaw + '$$' + toFolderFullNameRaw + '$$';
|
||||
messagesMoveHelper(fromFolderFullName, toFolderFullName, uidsForMove) {
|
||||
const hash = '$$' + fromFolderFullName + '$$' + toFolderFullName + '$$';
|
||||
if (!this.moveCache[hash]) {
|
||||
this.moveCache[hash] = {
|
||||
From: fromFolderFullNameRaw,
|
||||
To: toFolderFullNameRaw,
|
||||
From: fromFolderFullName,
|
||||
To: toFolderFullName,
|
||||
Uid: []
|
||||
};
|
||||
}
|
||||
|
|
@ -212,44 +212,44 @@ class AppUser extends AbstractApp {
|
|||
this.messagesMoveTrigger();
|
||||
}
|
||||
|
||||
messagesCopyHelper(sFromFolderFullNameRaw, sToFolderFullNameRaw, aUidForCopy) {
|
||||
Remote.messagesCopy(this.moveOrDeleteResponseHelper, sFromFolderFullNameRaw, sToFolderFullNameRaw, aUidForCopy);
|
||||
messagesCopyHelper(sFromFolderFullName, sToFolderFullName, aUidForCopy) {
|
||||
Remote.messagesCopy(this.moveOrDeleteResponseHelper, sFromFolderFullName, sToFolderFullName, aUidForCopy);
|
||||
}
|
||||
|
||||
messagesDeleteHelper(sFromFolderFullNameRaw, aUidForRemove) {
|
||||
Remote.messagesDelete(this.moveOrDeleteResponseHelper, sFromFolderFullNameRaw, aUidForRemove);
|
||||
messagesDeleteHelper(sFromFolderFullName, aUidForRemove) {
|
||||
Remote.messagesDelete(this.moveOrDeleteResponseHelper, sFromFolderFullName, aUidForRemove);
|
||||
}
|
||||
|
||||
moveOrDeleteResponseHelper(iError, oData) {
|
||||
if (iError) {
|
||||
setFolderHash(FolderUserStore.currentFolderFullNameRaw(), '');
|
||||
setFolderHash(FolderUserStore.currentFolderFullName(), '');
|
||||
alert(getNotification(iError));
|
||||
} else if (FolderUserStore.currentFolder()) {
|
||||
if (2 === arrayLength(oData.Result)) {
|
||||
setFolderHash(oData.Result[0], oData.Result[1]);
|
||||
} else {
|
||||
setFolderHash(FolderUserStore.currentFolderFullNameRaw(), '');
|
||||
setFolderHash(FolderUserStore.currentFolderFullName(), '');
|
||||
}
|
||||
this.reloadMessageList(!MessageUserStore.list.length);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} sFromFolderFullNameRaw
|
||||
* @param {string} sFromFolderFullName
|
||||
* @param {Array} aUidForRemove
|
||||
*/
|
||||
deleteMessagesFromFolderWithoutCheck(sFromFolderFullNameRaw, aUidForRemove) {
|
||||
this.messagesDeleteHelper(sFromFolderFullNameRaw, aUidForRemove);
|
||||
MessageUserStore.removeMessagesFromList(sFromFolderFullNameRaw, aUidForRemove);
|
||||
deleteMessagesFromFolderWithoutCheck(sFromFolderFullName, aUidForRemove) {
|
||||
this.messagesDeleteHelper(sFromFolderFullName, aUidForRemove);
|
||||
MessageUserStore.removeMessagesFromList(sFromFolderFullName, aUidForRemove);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {number} iDeleteType
|
||||
* @param {string} sFromFolderFullNameRaw
|
||||
* @param {string} sFromFolderFullName
|
||||
* @param {Array} aUidForRemove
|
||||
* @param {boolean=} bUseFolder = true
|
||||
*/
|
||||
deleteMessagesFromFolder(iDeleteType, sFromFolderFullNameRaw, aUidForRemove, bUseFolder) {
|
||||
deleteMessagesFromFolder(iDeleteType, sFromFolderFullName, aUidForRemove, bUseFolder) {
|
||||
let oMoveFolder = null,
|
||||
nSetSystemFoldersNotification = null;
|
||||
|
||||
|
|
@ -288,32 +288,32 @@ class AppUser extends AbstractApp {
|
|||
} else if (
|
||||
!bUseFolder ||
|
||||
(FolderType.Trash === iDeleteType &&
|
||||
(sFromFolderFullNameRaw === FolderUserStore.spamFolder()
|
||||
|| sFromFolderFullNameRaw === FolderUserStore.trashFolder()))
|
||||
(sFromFolderFullName === FolderUserStore.spamFolder()
|
||||
|| sFromFolderFullName === FolderUserStore.trashFolder()))
|
||||
) {
|
||||
showScreenPopup(AskPopupView, [
|
||||
i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'),
|
||||
() => {
|
||||
this.messagesDeleteHelper(sFromFolderFullNameRaw, aUidForRemove);
|
||||
MessageUserStore.removeMessagesFromList(sFromFolderFullNameRaw, aUidForRemove);
|
||||
this.messagesDeleteHelper(sFromFolderFullName, aUidForRemove);
|
||||
MessageUserStore.removeMessagesFromList(sFromFolderFullName, aUidForRemove);
|
||||
}
|
||||
]);
|
||||
} else if (oMoveFolder) {
|
||||
this.messagesMoveHelper(sFromFolderFullNameRaw, oMoveFolder.fullName, aUidForRemove);
|
||||
MessageUserStore.removeMessagesFromList(sFromFolderFullNameRaw, aUidForRemove, oMoveFolder.fullName);
|
||||
this.messagesMoveHelper(sFromFolderFullName, oMoveFolder.fullName, aUidForRemove);
|
||||
MessageUserStore.removeMessagesFromList(sFromFolderFullName, aUidForRemove, oMoveFolder.fullName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} sFromFolderFullNameRaw
|
||||
* @param {string} sFromFolderFullName
|
||||
* @param {Array} aUidForMove
|
||||
* @param {string} sToFolderFullNameRaw
|
||||
* @param {string} sToFolderFullName
|
||||
* @param {boolean=} bCopy = false
|
||||
*/
|
||||
moveMessagesToFolder(sFromFolderFullNameRaw, aUidForMove, sToFolderFullNameRaw, bCopy) {
|
||||
if (sFromFolderFullNameRaw !== sToFolderFullNameRaw && arrayLength(aUidForMove)) {
|
||||
const oFromFolder = getFolderFromCacheList(sFromFolderFullNameRaw),
|
||||
oToFolder = getFolderFromCacheList(sToFolderFullNameRaw);
|
||||
moveMessagesToFolder(sFromFolderFullName, aUidForMove, sToFolderFullName, bCopy) {
|
||||
if (sFromFolderFullName !== sToFolderFullName && arrayLength(aUidForMove)) {
|
||||
const oFromFolder = getFolderFromCacheList(sFromFolderFullName),
|
||||
oToFolder = getFolderFromCacheList(sToFolderFullName);
|
||||
|
||||
if (oFromFolder && oToFolder) {
|
||||
if (undefined === bCopy ? false : !!bCopy) {
|
||||
|
|
@ -511,7 +511,7 @@ class AppUser extends AbstractApp {
|
|||
);
|
||||
|
||||
if (!hash || unreadCountChange || result.Hash !== hash) {
|
||||
if (folderFromCache.fullName === FolderUserStore.currentFolderFullNameRaw()) {
|
||||
if (folderFromCache.fullName === FolderUserStore.currentFolderFullName()) {
|
||||
this.reloadMessageList();
|
||||
} else if (getFolderInboxName() === folderFromCache.fullName) {
|
||||
Remote.messageList(null, {Folder: getFolderInboxName()}, true);
|
||||
|
|
@ -555,11 +555,11 @@ class AppUser extends AbstractApp {
|
|||
}
|
||||
|
||||
if (!hash || item.Hash !== hash) {
|
||||
if (folder.fullName === FolderUserStore.currentFolderFullNameRaw()) {
|
||||
if (folder.fullName === FolderUserStore.currentFolderFullName()) {
|
||||
this.reloadMessageList();
|
||||
}
|
||||
} else if (unreadCountChange
|
||||
&& folder.fullName === FolderUserStore.currentFolderFullNameRaw()
|
||||
&& folder.fullName === FolderUserStore.currentFolderFullName()
|
||||
&& MessageUserStore.list.length) {
|
||||
this.folderInformation(folder.fullName, MessageUserStore.list());
|
||||
}
|
||||
|
|
@ -575,11 +575,11 @@ class AppUser extends AbstractApp {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
* @param {number} iSetAction
|
||||
* @param {Array=} messages = null
|
||||
*/
|
||||
messageListAction(sFolderFullNameRaw, iSetAction, messages) {
|
||||
messageListAction(sFolderFullName, iSetAction, messages) {
|
||||
let folder = null,
|
||||
alreadyUnread = 0,
|
||||
rootUids = [];
|
||||
|
|
@ -591,48 +591,48 @@ class AppUser extends AbstractApp {
|
|||
rootUids = messages.map(oMessage => oMessage && oMessage.uid ? oMessage.uid : null)
|
||||
.validUnique();
|
||||
|
||||
if (sFolderFullNameRaw && rootUids.length) {
|
||||
if (sFolderFullName && rootUids.length) {
|
||||
switch (iSetAction) {
|
||||
case MessageSetAction.SetSeen:
|
||||
rootUids.forEach(sSubUid =>
|
||||
alreadyUnread += MessageFlagsCache.storeBySetAction(sFolderFullNameRaw, sSubUid, iSetAction)
|
||||
alreadyUnread += MessageFlagsCache.storeBySetAction(sFolderFullName, sSubUid, iSetAction)
|
||||
);
|
||||
|
||||
folder = getFolderFromCacheList(sFolderFullNameRaw);
|
||||
folder = getFolderFromCacheList(sFolderFullName);
|
||||
if (folder) {
|
||||
folder.messageCountUnread(folder.messageCountUnread() - alreadyUnread);
|
||||
}
|
||||
|
||||
Remote.messageSetSeen(null, sFolderFullNameRaw, rootUids, true);
|
||||
Remote.messageSetSeen(null, sFolderFullName, rootUids, true);
|
||||
break;
|
||||
|
||||
case MessageSetAction.UnsetSeen:
|
||||
rootUids.forEach(sSubUid =>
|
||||
alreadyUnread += MessageFlagsCache.storeBySetAction(sFolderFullNameRaw, sSubUid, iSetAction)
|
||||
alreadyUnread += MessageFlagsCache.storeBySetAction(sFolderFullName, sSubUid, iSetAction)
|
||||
);
|
||||
|
||||
folder = getFolderFromCacheList(sFolderFullNameRaw);
|
||||
folder = getFolderFromCacheList(sFolderFullName);
|
||||
if (folder) {
|
||||
folder.messageCountUnread(folder.messageCountUnread() - alreadyUnread + rootUids.length);
|
||||
}
|
||||
|
||||
Remote.messageSetSeen(null, sFolderFullNameRaw, rootUids, false);
|
||||
Remote.messageSetSeen(null, sFolderFullName, rootUids, false);
|
||||
break;
|
||||
|
||||
case MessageSetAction.SetFlag:
|
||||
rootUids.forEach(sSubUid =>
|
||||
MessageFlagsCache.storeBySetAction(sFolderFullNameRaw, sSubUid, iSetAction)
|
||||
MessageFlagsCache.storeBySetAction(sFolderFullName, sSubUid, iSetAction)
|
||||
);
|
||||
|
||||
Remote.messageSetFlagged(null, sFolderFullNameRaw, rootUids, true);
|
||||
Remote.messageSetFlagged(null, sFolderFullName, rootUids, true);
|
||||
break;
|
||||
|
||||
case MessageSetAction.UnsetFlag:
|
||||
rootUids.forEach(sSubUid =>
|
||||
MessageFlagsCache.storeBySetAction(sFolderFullNameRaw, sSubUid, iSetAction)
|
||||
MessageFlagsCache.storeBySetAction(sFolderFullName, sSubUid, iSetAction)
|
||||
);
|
||||
|
||||
Remote.messageSetFlagged(null, sFolderFullNameRaw, rootUids, false);
|
||||
Remote.messageSetFlagged(null, sFolderFullName, rootUids, false);
|
||||
break;
|
||||
// no default
|
||||
}
|
||||
|
|
@ -734,7 +734,7 @@ class AppUser extends AbstractApp {
|
|||
]);
|
||||
|
||||
setInterval(() => {
|
||||
const cF = FolderUserStore.currentFolderFullNameRaw(),
|
||||
const cF = FolderUserStore.currentFolderFullName(),
|
||||
iF = getFolderInboxName();
|
||||
this.folderInformation(iF);
|
||||
if (iF !== cF) {
|
||||
|
|
@ -751,7 +751,7 @@ class AppUser extends AbstractApp {
|
|||
this.accountsAndIdentities();
|
||||
|
||||
setTimeout(() => {
|
||||
const cF = FolderUserStore.currentFolderFullNameRaw();
|
||||
const cF = FolderUserStore.currentFolderFullName();
|
||||
if (getFolderInboxName() !== cF) {
|
||||
this.folderInformation(cF);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,11 +25,11 @@ export const
|
|||
},
|
||||
|
||||
/**
|
||||
* @param {string} folderFullNameRaw
|
||||
* @param {string} folderFullName
|
||||
* @param {string} uid
|
||||
* @returns {string}
|
||||
*/
|
||||
getMessageKey = (folderFullNameRaw, uid) => `${folderFullNameRaw}#${uid}`,
|
||||
getMessageKey = (folderFullName, uid) => `${folderFullName}#${uid}`,
|
||||
|
||||
/**
|
||||
* @param {string} folder
|
||||
|
|
@ -45,18 +45,18 @@ export const
|
|||
hasRequestedMessage = (folder, uid) => true === REQUESTED_MESSAGE_CACHE[getMessageKey(folder, uid)],
|
||||
|
||||
/**
|
||||
* @param {string} folderFullNameRaw
|
||||
* @param {string} folderFullName
|
||||
* @param {string} uid
|
||||
*/
|
||||
addNewMessageCache = (folderFullNameRaw, uid) => NEW_MESSAGE_CACHE[getMessageKey(folderFullNameRaw, uid)] = true,
|
||||
addNewMessageCache = (folderFullName, uid) => NEW_MESSAGE_CACHE[getMessageKey(folderFullName, uid)] = true,
|
||||
|
||||
/**
|
||||
* @param {string} folderFullNameRaw
|
||||
* @param {string} folderFullName
|
||||
* @param {string} uid
|
||||
*/
|
||||
hasNewMessageAndRemoveFromCache = (folderFullNameRaw, uid) => {
|
||||
if (NEW_MESSAGE_CACHE[getMessageKey(folderFullNameRaw, uid)]) {
|
||||
NEW_MESSAGE_CACHE[getMessageKey(folderFullNameRaw, uid)] = null;
|
||||
hasNewMessageAndRemoveFromCache = (folderFullName, uid) => {
|
||||
if (NEW_MESSAGE_CACHE[getMessageKey(folderFullName, uid)]) {
|
||||
NEW_MESSAGE_CACHE[getMessageKey(folderFullName, uid)] = null;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
@ -81,60 +81,60 @@ export const
|
|||
* @param {string} folderHash
|
||||
* @returns {string}
|
||||
*/
|
||||
getFolderFullNameRaw = folderHash =>
|
||||
getFolderFullName = folderHash =>
|
||||
folderHash && FOLDERS_NAME_CACHE[folderHash] ? FOLDERS_NAME_CACHE[folderHash] : '',
|
||||
|
||||
/**
|
||||
* @param {string} folderHash
|
||||
* @param {string} folderFullNameRaw
|
||||
* @param {string} folderFullName
|
||||
* @param {?FolderModel} folder
|
||||
*/
|
||||
setFolder = (folderHash, folderFullNameRaw, folder) => {
|
||||
FOLDERS_CACHE[folderFullNameRaw] = folder;
|
||||
FOLDERS_NAME_CACHE[folderHash] = folderFullNameRaw;
|
||||
setFolder = (folderHash, folderFullName, folder) => {
|
||||
FOLDERS_CACHE[folderFullName] = folder;
|
||||
FOLDERS_NAME_CACHE[folderHash] = folderFullName;
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {string} folderFullNameRaw
|
||||
* @param {string} folderFullName
|
||||
* @returns {string}
|
||||
*/
|
||||
getFolderHash = folderFullNameRaw =>
|
||||
folderFullNameRaw && FOLDERS_HASH_CACHE[folderFullNameRaw] ? FOLDERS_HASH_CACHE[folderFullNameRaw] : '',
|
||||
getFolderHash = folderFullName =>
|
||||
folderFullName && FOLDERS_HASH_CACHE[folderFullName] ? FOLDERS_HASH_CACHE[folderFullName] : '',
|
||||
|
||||
/**
|
||||
* @param {string} folderFullNameRaw
|
||||
* @param {string} folderFullName
|
||||
* @param {string} folderHash
|
||||
*/
|
||||
setFolderHash = (folderFullNameRaw, folderHash) =>
|
||||
folderFullNameRaw && (FOLDERS_HASH_CACHE[folderFullNameRaw] = folderHash),
|
||||
setFolderHash = (folderFullName, folderHash) =>
|
||||
folderFullName && (FOLDERS_HASH_CACHE[folderFullName] = folderHash),
|
||||
|
||||
/**
|
||||
* @param {string} folderFullNameRaw
|
||||
* @param {string} folderFullName
|
||||
* @returns {string}
|
||||
*/
|
||||
getFolderUidNext = folderFullNameRaw =>
|
||||
folderFullNameRaw && FOLDERS_UID_NEXT_CACHE[folderFullNameRaw]
|
||||
? FOLDERS_UID_NEXT_CACHE[folderFullNameRaw]
|
||||
getFolderUidNext = folderFullName =>
|
||||
folderFullName && FOLDERS_UID_NEXT_CACHE[folderFullName]
|
||||
? FOLDERS_UID_NEXT_CACHE[folderFullName]
|
||||
: '',
|
||||
|
||||
/**
|
||||
* @param {string} folderFullNameRaw
|
||||
* @param {string} folderFullName
|
||||
* @param {string} uidNext
|
||||
*/
|
||||
setFolderUidNext = (folderFullNameRaw, uidNext) =>
|
||||
FOLDERS_UID_NEXT_CACHE[folderFullNameRaw] = uidNext,
|
||||
setFolderUidNext = (folderFullName, uidNext) =>
|
||||
FOLDERS_UID_NEXT_CACHE[folderFullName] = uidNext,
|
||||
|
||||
/**
|
||||
* @param {string} folderFullNameRaw
|
||||
* @param {string} folderFullName
|
||||
* @returns {?FolderModel}
|
||||
*/
|
||||
getFolderFromCacheList = folderFullNameRaw =>
|
||||
folderFullNameRaw && FOLDERS_CACHE[folderFullNameRaw] ? FOLDERS_CACHE[folderFullNameRaw] : null,
|
||||
getFolderFromCacheList = folderFullName =>
|
||||
folderFullName && FOLDERS_CACHE[folderFullName] ? FOLDERS_CACHE[folderFullName] : null,
|
||||
|
||||
/**
|
||||
* @param {string} folderFullNameRaw
|
||||
* @param {string} folderFullName
|
||||
*/
|
||||
removeFolderFromCacheList = folderFullNameRaw => delete FOLDERS_CACHE[folderFullNameRaw];
|
||||
removeFolderFromCacheList = folderFullName => delete FOLDERS_CACHE[folderFullName];
|
||||
|
||||
export class MessageFlagsCache
|
||||
{
|
||||
|
|
|
|||
|
|
@ -67,9 +67,9 @@ export class FilterModel extends AbstractModel {
|
|||
|
||||
this.conditions = ko.observableArray();
|
||||
|
||||
const fGetRealFolderName = (folderFullNameRaw) => {
|
||||
const folder = getFolderFromCacheList(folderFullNameRaw);
|
||||
return folder ? folder.fullName.replace('.' === folder.delimiter ? /\./ : /[\\/]+/, ' / ') : folderFullNameRaw;
|
||||
const fGetRealFolderName = (folderFullName) => {
|
||||
const folder = getFolderFromCacheList(folderFullName);
|
||||
return folder ? folder.fullName.replace('.' === folder.delimiter ? /\./ : /[\\/]+/, ' / ') : folderFullName;
|
||||
};
|
||||
|
||||
this.addComputables({
|
||||
|
|
|
|||
|
|
@ -21,10 +21,10 @@ import { i18n, trigger as translatorTrigger } from 'Common/Translator';
|
|||
import { AbstractModel } from 'Knoin/AbstractModel';
|
||||
|
||||
const
|
||||
normalizeFolder = sFolderFullNameRaw => ('' === sFolderFullNameRaw
|
||||
|| UNUSED_OPTION_VALUE === sFolderFullNameRaw
|
||||
|| null !== Cache.getFolderFromCacheList(sFolderFullNameRaw))
|
||||
? sFolderFullNameRaw
|
||||
normalizeFolder = sFolderFullName => ('' === sFolderFullName
|
||||
|| UNUSED_OPTION_VALUE === sFolderFullName
|
||||
|| null !== Cache.getFolderFromCacheList(sFolderFullName))
|
||||
? sFolderFullName
|
||||
: '';
|
||||
|
||||
// index is FolderType value
|
||||
|
|
|
|||
|
|
@ -171,18 +171,18 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
*/
|
||||
messageList(fCallback, params, bSilent = false) {
|
||||
const
|
||||
sFolderFullNameRaw = pString(params.Folder),
|
||||
folderHash = getFolderHash(sFolderFullNameRaw);
|
||||
sFolderFullName = pString(params.Folder),
|
||||
folderHash = getFolderHash(sFolderFullName);
|
||||
|
||||
params = Object.assign({
|
||||
Offset: 0,
|
||||
Limit: SettingsUserStore.messagesPerPage(),
|
||||
Search: '',
|
||||
UidNext: getFolderInboxName() === sFolderFullNameRaw ? getFolderUidNext(sFolderFullNameRaw) : '',
|
||||
UidNext: getFolderInboxName() === sFolderFullName ? getFolderUidNext(sFolderFullName) : '',
|
||||
Sort: FolderUserStore.sortMode(),
|
||||
Hash: folderHash + SettingsGet('AccountHash')
|
||||
}, params);
|
||||
params.Folder = sFolderFullNameRaw;
|
||||
params.Folder = sFolderFullName;
|
||||
if (AppUserStore.threadsAllowed() && SettingsUserStore.useThreads()) {
|
||||
params.UseThreads = 1;
|
||||
} else {
|
||||
|
|
@ -226,15 +226,15 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
* @param {number} iUid
|
||||
* @returns {boolean}
|
||||
*/
|
||||
message(fCallback, sFolderFullNameRaw, iUid) {
|
||||
sFolderFullNameRaw = pString(sFolderFullNameRaw);
|
||||
message(fCallback, sFolderFullName, iUid) {
|
||||
sFolderFullName = pString(sFolderFullName);
|
||||
iUid = pInt(iUid);
|
||||
|
||||
if (getFolderFromCacheList(sFolderFullNameRaw) && 0 < iUid) {
|
||||
if (getFolderFromCacheList(sFolderFullName) && 0 < iUid) {
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'Message',
|
||||
|
|
@ -244,7 +244,7 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
SUB_QUERY_PREFIX +
|
||||
'/' +
|
||||
urlSafeJSON([
|
||||
sFolderFullNameRaw,
|
||||
sFolderFullName,
|
||||
iUid,
|
||||
AppUserStore.threadsAllowed() && SettingsUserStore.useThreads() ? 1 : 0,
|
||||
SettingsGet('AccountHash')
|
||||
|
|
@ -350,13 +350,13 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
* @param {Array} aUids
|
||||
* @param {boolean} bSetFlagged
|
||||
*/
|
||||
messageSetFlagged(fCallback, sFolderFullNameRaw, aUids, bSetFlagged) {
|
||||
messageSetFlagged(fCallback, sFolderFullName, aUids, bSetFlagged) {
|
||||
this.defaultRequest(fCallback, 'MessageSetFlagged', {
|
||||
Folder: sFolderFullNameRaw,
|
||||
Folder: sFolderFullName,
|
||||
Uids: aUids.join(','),
|
||||
SetAction: bSetFlagged ? 1 : 0
|
||||
});
|
||||
|
|
@ -364,13 +364,13 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
* @param {Array} aUids
|
||||
* @param {boolean} bSetSeen
|
||||
*/
|
||||
messageSetSeen(fCallback, sFolderFullNameRaw, aUids, bSetSeen) {
|
||||
messageSetSeen(fCallback, sFolderFullName, aUids, bSetSeen) {
|
||||
this.defaultRequest(fCallback, 'MessageSetSeen', {
|
||||
Folder: sFolderFullNameRaw,
|
||||
Folder: sFolderFullName,
|
||||
Uids: aUids.join(','),
|
||||
SetAction: bSetSeen ? 1 : 0
|
||||
});
|
||||
|
|
@ -378,13 +378,13 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
* @param {boolean} bSetSeen
|
||||
* @param {Array} aThreadUids = null
|
||||
*/
|
||||
messageSetSeenToAll(fCallback, sFolderFullNameRaw, bSetSeen, aThreadUids = null) {
|
||||
messageSetSeenToAll(fCallback, sFolderFullName, bSetSeen, aThreadUids = null) {
|
||||
this.defaultRequest(fCallback, 'MessageSetSeenToAll', {
|
||||
Folder: sFolderFullNameRaw,
|
||||
Folder: sFolderFullName,
|
||||
SetAction: bSetSeen ? 1 : 0,
|
||||
ThreadUids: aThreadUids ? aThreadUids.join(',') : ''
|
||||
});
|
||||
|
|
@ -453,34 +453,34 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
*/
|
||||
folderClear(fCallback, sFolderFullNameRaw) {
|
||||
folderClear(fCallback, sFolderFullName) {
|
||||
this.defaultRequest(fCallback, 'FolderClear', {
|
||||
Folder: sFolderFullNameRaw
|
||||
Folder: sFolderFullName
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
* @param {boolean} bSubscribe
|
||||
*/
|
||||
folderSetSubscribe(fCallback, sFolderFullNameRaw, bSubscribe) {
|
||||
folderSetSubscribe(fCallback, sFolderFullName, bSubscribe) {
|
||||
this.defaultRequest(fCallback, 'FolderSubscribe', {
|
||||
Folder: sFolderFullNameRaw,
|
||||
Folder: sFolderFullName,
|
||||
Subscribe: bSubscribe ? 1 : 0
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
* @param {boolean} bSubscribe
|
||||
*/
|
||||
folderSetMetadata(fCallback, sFolderFullNameRaw, sKey, sValue) {
|
||||
folderSetMetadata(fCallback, sFolderFullName, sKey, sValue) {
|
||||
this.defaultRequest(fCallback, 'FolderSetMetadata', {
|
||||
Folder: sFolderFullNameRaw,
|
||||
Folder: sFolderFullName,
|
||||
Key: sKey,
|
||||
Value: sValue
|
||||
});
|
||||
|
|
@ -488,12 +488,12 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
* @param {boolean} bCheckable
|
||||
*/
|
||||
folderSetCheckable(fCallback, sFolderFullNameRaw, bCheckable) {
|
||||
folderSetCheckable(fCallback, sFolderFullName, bCheckable) {
|
||||
this.defaultRequest(fCallback, 'FolderCheckable', {
|
||||
Folder: sFolderFullNameRaw,
|
||||
Folder: sFolderFullName,
|
||||
Checkable: bCheckable ? 1 : 0
|
||||
});
|
||||
}
|
||||
|
|
@ -662,9 +662,9 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
this.foldersTimeout = setTimeout(() => this.foldersReload(), 500);
|
||||
}
|
||||
|
||||
folderDelete(sFolderFullNameRaw) {
|
||||
folderDelete(sFolderFullName) {
|
||||
return this.postRequest('FolderDelete', FolderUserStore.foldersDeleting, {
|
||||
Folder: sFolderFullNameRaw
|
||||
Folder: sFolderFullName
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -675,16 +675,16 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
});
|
||||
}
|
||||
|
||||
folderMove(sPrevFolderFullNameRaw, sNewFolderFullName) {
|
||||
folderMove(sPrevFolderFullName, sNewFolderFullName) {
|
||||
return this.postRequest('FolderMove', FolderUserStore.foldersRenaming, {
|
||||
Folder: sPrevFolderFullNameRaw,
|
||||
Folder: sPrevFolderFullName,
|
||||
NewFolder: sNewFolderFullName
|
||||
});
|
||||
}
|
||||
|
||||
folderRename(sPrevFolderFullNameRaw, sNewFolderName) {
|
||||
folderRename(sPrevFolderFullName, sNewFolderName) {
|
||||
return this.postRequest('FolderRename', FolderUserStore.foldersRenaming, {
|
||||
Folder: sPrevFolderFullNameRaw,
|
||||
Folder: sPrevFolderFullName,
|
||||
NewFolderName: sNewFolderName
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { Layout, ClientSideKeyName } from 'Common/EnumsUser';
|
|||
import { doc, leftPanelDisabled, moveAction, Settings, elementById } from 'Common/Globals';
|
||||
import { pString, pInt } from 'Common/Utils';
|
||||
import { setLayoutResizer } from 'Common/UtilsUser';
|
||||
import { getFolderFromCacheList, getFolderFullNameRaw, getFolderInboxName } from 'Common/Cache';
|
||||
import { getFolderFromCacheList, getFolderFullName, getFolderInboxName } from 'Common/Cache';
|
||||
import { i18n } from 'Common/Translator';
|
||||
import { SettingsUserStore } from 'Stores/User/Settings';
|
||||
|
||||
|
|
@ -64,7 +64,7 @@ export class MailBoxUserScreen extends AbstractScreen {
|
|||
* @returns {void}
|
||||
*/
|
||||
onRoute(folderHash, page, search) {
|
||||
const folder = getFolderFromCacheList(getFolderFullNameRaw(folderHash.replace(/~([\d]+)$/, '')));
|
||||
const folder = getFolderFromCacheList(getFolderFullName(folderHash.replace(/~([\d]+)$/, '')));
|
||||
if (folder) {
|
||||
let threadUid = folderHash.replace(/^.+~(\d+)$/, '$1');
|
||||
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@ ContactUserStore.sync = fResultFunc => {
|
|||
&& !ContactUserStore.syncing()
|
||||
) {
|
||||
ContactUserStore.syncing(true);
|
||||
Remote.contactsSync((sResult, oData) => {
|
||||
Remote.contactsSync((iError, oData) => {
|
||||
ContactUserStore.syncing(false);
|
||||
fResultFunc && fResultFunc(sResult, oData);
|
||||
fResultFunc && fResultFunc(iError, oData);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
@ -44,8 +44,7 @@ ContactUserStore.init = () => {
|
|||
ContactUserStore.syncPass(SettingsGet('ContactsSyncPassword'));
|
||||
setTimeout(ContactUserStore.sync, 10000);
|
||||
value = pInt(SettingsGet('ContactsSyncInterval'));
|
||||
value = 5 <= value ? value : 20;
|
||||
value = 320 >= value ? value : 320;
|
||||
value = 5 <= value ? (320 >= value ? value : 320) : 20;
|
||||
setInterval(ContactUserStore.sync, value * 60000 + 5000);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -56,8 +56,6 @@ export const FolderUserStore = new class {
|
|||
|
||||
draftFolderNotEnabled: () => !self.draftFolder() || UNUSED_OPTION_VALUE === self.draftFolder(),
|
||||
|
||||
currentFolderFullNameRaw: () => (self.currentFolder() ? self.currentFolder().fullName : ''),
|
||||
|
||||
currentFolderFullName: () => (self.currentFolder() ? self.currentFolder().fullName : ''),
|
||||
currentFolderFullNameHash: () => (self.currentFolder() ? self.currentFolder().fullNameHash : ''),
|
||||
|
||||
|
|
|
|||
|
|
@ -267,12 +267,12 @@ export const MessageUserStore = new class {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {string} fromFolderFullNameRaw
|
||||
* @param {string} fromFolderFullName
|
||||
* @param {Array} uidForRemove
|
||||
* @param {string=} toFolderFullNameRaw = ''
|
||||
* @param {string=} toFolderFullName = ''
|
||||
* @param {boolean=} copy = false
|
||||
*/
|
||||
removeMessagesFromList(fromFolderFullNameRaw, uidForRemove, toFolderFullNameRaw = '', copy = false) {
|
||||
removeMessagesFromList(fromFolderFullName, uidForRemove, toFolderFullName = '', copy = false) {
|
||||
uidForRemove = uidForRemove.map(mValue => pInt(mValue));
|
||||
|
||||
let unseenCount = 0,
|
||||
|
|
@ -281,11 +281,10 @@ export const MessageUserStore = new class {
|
|||
|
||||
const trashFolder = FolderUserStore.trashFolder(),
|
||||
spamFolder = FolderUserStore.spamFolder(),
|
||||
fromFolder = getFolderFromCacheList(fromFolderFullNameRaw),
|
||||
toFolder = toFolderFullNameRaw ? getFolderFromCacheList(toFolderFullNameRaw) : null,
|
||||
currentFolderFullNameRaw = FolderUserStore.currentFolderFullNameRaw(),
|
||||
fromFolder = getFolderFromCacheList(fromFolderFullName),
|
||||
toFolder = toFolderFullName ? getFolderFromCacheList(toFolderFullName) : null,
|
||||
messages =
|
||||
currentFolderFullNameRaw === fromFolderFullNameRaw
|
||||
FolderUserStore.currentFolderFullName() === fromFolderFullName
|
||||
? messageList.filter(item => item && uidForRemove.includes(pInt(item.uid)))
|
||||
: [];
|
||||
|
||||
|
|
@ -339,12 +338,12 @@ export const MessageUserStore = new class {
|
|||
}
|
||||
}
|
||||
|
||||
if (fromFolderFullNameRaw) {
|
||||
setFolderHash(fromFolderFullNameRaw, '');
|
||||
if (fromFolderFullName) {
|
||||
setFolderHash(fromFolderFullName, '');
|
||||
}
|
||||
|
||||
if (toFolderFullNameRaw) {
|
||||
setFolderHash(toFolderFullNameRaw, '');
|
||||
if (toFolderFullName) {
|
||||
setFolderHash(toFolderFullName, '');
|
||||
}
|
||||
|
||||
if (this.listThreadUid()) {
|
||||
|
|
@ -635,7 +634,7 @@ export const MessageUserStore = new class {
|
|||
* @returns {string}
|
||||
*/
|
||||
calculateMessageListHash(list) {
|
||||
return list.map(message => '' + message.hash + '_' + message.threadsLen() + '_' + message.flagHash()).join(
|
||||
return list.map(message => message.hash + '_' + message.threadsLen() + '_' + message.flagHash()).join(
|
||||
'|'
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { SMAudio } from 'Common/Audio';
|
||||
import * as Links from 'Common/Links';
|
||||
import { addObservablesTo } from 'Common/Utils';
|
||||
|
||||
/**
|
||||
* Might not work due to the new ServiceWorkerRegistration.showNotification
|
||||
|
|
@ -36,11 +35,13 @@ if (WorkerNotifications && ServiceWorkerRegistration && ServiceWorkerRegistratio
|
|||
|
||||
export const NotificationUserStore = new class {
|
||||
constructor() {
|
||||
this.enableSoundNotification = ko.observable(false);
|
||||
addObservablesTo(this, {
|
||||
enableSoundNotification: false,
|
||||
|
||||
this.enableDesktopNotification = ko.observable(false)/*.extend({ notify: 'always' })*/;
|
||||
enableDesktopNotification: false,/*.extend({ notify: 'always' })*/
|
||||
|
||||
this.isDesktopNotificationAllowed = ko.observable(!NotificationsDenied());
|
||||
isDesktopNotificationAllowed: !NotificationsDenied()
|
||||
});
|
||||
|
||||
this.enableDesktopNotification.subscribe(value => {
|
||||
DesktopNotifications = !!value;
|
||||
|
|
|
|||
|
|
@ -571,7 +571,7 @@ class ComposePopupView extends AbstractViewPopup {
|
|||
const draftFolder = FolderUserStore.draftFolder();
|
||||
if (draftFolder && UNUSED_OPTION_VALUE !== draftFolder) {
|
||||
setFolderHash(draftFolder, '');
|
||||
if (FolderUserStore.currentFolderFullNameRaw() === draftFolder) {
|
||||
if (FolderUserStore.currentFolderFullName() === draftFolder) {
|
||||
rl.app.reloadMessageList(true);
|
||||
} else {
|
||||
rl.app.folderInformation(draftFolder);
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ export class MailFolderList extends AbstractViewLeft {
|
|||
if (moveAction()) {
|
||||
moveAction(false);
|
||||
rl.app.moveMessagesToFolder(
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageUserStore.listCheckedOrSelectedUidsWithSubMails(),
|
||||
folder.fullName,
|
||||
event.ctrlKey
|
||||
|
|
@ -96,7 +96,7 @@ export class MailFolderList extends AbstractViewLeft {
|
|||
MessageUserStore.message(null);
|
||||
}
|
||||
|
||||
if (folder.fullName === FolderUserStore.currentFolderFullNameRaw()) {
|
||||
if (folder.fullName === FolderUserStore.currentFolderFullName()) {
|
||||
setFolderHash(folder.fullName, '');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
|
||||
folderMenuForMove: () =>
|
||||
folderListOptionsBuilder(
|
||||
[FolderUserStore.currentFolderFullNameRaw()],
|
||||
[FolderUserStore.currentFolderFullName()],
|
||||
[],
|
||||
item => item ? item.localName() : ''
|
||||
),
|
||||
|
|
@ -279,7 +279,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
if (Settings.capa(Capa.DangerousActions)) {
|
||||
rl.app.deleteMessagesFromFolder(
|
||||
FolderType.Trash,
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageUserStore.listCheckedOrSelectedUidsWithSubMails(),
|
||||
false
|
||||
);
|
||||
|
|
@ -289,7 +289,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
deleteCommand() {
|
||||
rl.app.deleteMessagesFromFolder(
|
||||
FolderType.Trash,
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageUserStore.listCheckedOrSelectedUidsWithSubMails(),
|
||||
true
|
||||
);
|
||||
|
|
@ -298,7 +298,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
archiveCommand() {
|
||||
rl.app.deleteMessagesFromFolder(
|
||||
FolderType.Archive,
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageUserStore.listCheckedOrSelectedUidsWithSubMails(),
|
||||
true
|
||||
);
|
||||
|
|
@ -307,7 +307,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
spamCommand() {
|
||||
rl.app.deleteMessagesFromFolder(
|
||||
FolderType.Spam,
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageUserStore.listCheckedOrSelectedUidsWithSubMails(),
|
||||
true
|
||||
);
|
||||
|
|
@ -316,7 +316,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
notSpamCommand() {
|
||||
rl.app.deleteMessagesFromFolder(
|
||||
FolderType.NotSpam,
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageUserStore.listCheckedOrSelectedUidsWithSubMails(),
|
||||
true
|
||||
);
|
||||
|
|
@ -413,16 +413,16 @@ export class MailMessageList extends AbstractViewRight {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {string} sToFolderFullNameRaw
|
||||
* @param {string} sToFolderFullName
|
||||
* @param {boolean} bCopy
|
||||
* @returns {boolean}
|
||||
*/
|
||||
moveSelectedMessagesToFolder(sToFolderFullNameRaw, bCopy) {
|
||||
moveSelectedMessagesToFolder(sToFolderFullName, bCopy) {
|
||||
if (MessageUserStore.hasCheckedOrSelected()) {
|
||||
rl.app.moveMessagesToFolder(
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageUserStore.listCheckedOrSelectedUidsWithSubMails(),
|
||||
sToFolderFullNameRaw,
|
||||
sToFolderFullName,
|
||||
bCopy
|
||||
);
|
||||
}
|
||||
|
|
@ -437,37 +437,37 @@ export class MailMessageList extends AbstractViewRight {
|
|||
item && !uids.includes(item.uid) && uids.push(item.uid);
|
||||
return uids.length ? {
|
||||
copy: event.ctrlKey,
|
||||
folder: FolderUserStore.currentFolderFullNameRaw(),
|
||||
folder: FolderUserStore.currentFolderFullName(),
|
||||
uids: uids
|
||||
} : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
* @param {number} iSetAction
|
||||
* @param {Array=} aMessages = null
|
||||
* @returns {void}
|
||||
*/
|
||||
setAction(sFolderFullNameRaw, iSetAction, aMessages) {
|
||||
rl.app.messageListAction(sFolderFullNameRaw, iSetAction, aMessages);
|
||||
setAction(sFolderFullName, iSetAction, aMessages) {
|
||||
rl.app.messageListAction(sFolderFullName, iSetAction, aMessages);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} sFolderFullNameRaw
|
||||
* @param {string} sFolderFullName
|
||||
* @param {number} iSetAction
|
||||
* @param {number} iThreadUid = ''
|
||||
* @returns {void}
|
||||
*/
|
||||
setActionForAll(sFolderFullNameRaw, iSetAction, iThreadUid = 0) {
|
||||
if (sFolderFullNameRaw) {
|
||||
setActionForAll(sFolderFullName, iSetAction, iThreadUid = 0) {
|
||||
if (sFolderFullName) {
|
||||
let cnt = 0;
|
||||
const uids = [];
|
||||
|
||||
let folder = getFolderFromCacheList(sFolderFullNameRaw);
|
||||
let folder = getFolderFromCacheList(sFolderFullName);
|
||||
if (folder) {
|
||||
switch (iSetAction) {
|
||||
case MessageSetAction.SetSeen:
|
||||
folder = getFolderFromCacheList(sFolderFullNameRaw);
|
||||
folder = getFolderFromCacheList(sFolderFullName);
|
||||
if (folder) {
|
||||
MessageUserStore.list.forEach(message => {
|
||||
if (message.isUnseen()) {
|
||||
|
|
@ -487,13 +487,13 @@ export class MailMessageList extends AbstractViewRight {
|
|||
folder.messageCountUnread(0);
|
||||
}
|
||||
|
||||
MessageFlagsCache.clearFolder(sFolderFullNameRaw);
|
||||
MessageFlagsCache.clearFolder(sFolderFullName);
|
||||
}
|
||||
|
||||
Remote.messageSetSeenToAll(null, sFolderFullNameRaw, true, iThreadUid ? uids : null);
|
||||
Remote.messageSetSeenToAll(null, sFolderFullName, true, iThreadUid ? uids : null);
|
||||
break;
|
||||
case MessageSetAction.UnsetSeen:
|
||||
folder = getFolderFromCacheList(sFolderFullNameRaw);
|
||||
folder = getFolderFromCacheList(sFolderFullName);
|
||||
if (folder) {
|
||||
MessageUserStore.list.forEach(message => {
|
||||
if (!message.isUnseen()) {
|
||||
|
|
@ -513,10 +513,10 @@ export class MailMessageList extends AbstractViewRight {
|
|||
folder.messageCountUnread(folder.messageCountAll());
|
||||
}
|
||||
|
||||
MessageFlagsCache.clearFolder(sFolderFullNameRaw);
|
||||
MessageFlagsCache.clearFolder(sFolderFullName);
|
||||
}
|
||||
|
||||
Remote.messageSetSeenToAll(null, sFolderFullNameRaw, false, iThreadUid ? uids : null);
|
||||
Remote.messageSetSeenToAll(null, sFolderFullName, false, iThreadUid ? uids : null);
|
||||
break;
|
||||
// no default
|
||||
}
|
||||
|
|
@ -528,7 +528,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
|
||||
listSetSeen() {
|
||||
this.setAction(
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageSetAction.SetSeen,
|
||||
MessageUserStore.listCheckedOrSelected()
|
||||
);
|
||||
|
|
@ -536,7 +536,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
|
||||
listSetAllSeen() {
|
||||
this.setActionForAll(
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageSetAction.SetSeen,
|
||||
MessageUserStore.listEndThreadUid()
|
||||
);
|
||||
|
|
@ -544,7 +544,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
|
||||
listUnsetSeen() {
|
||||
this.setAction(
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageSetAction.UnsetSeen,
|
||||
MessageUserStore.listCheckedOrSelected()
|
||||
);
|
||||
|
|
@ -552,7 +552,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
|
||||
listSetFlags() {
|
||||
this.setAction(
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageSetAction.SetFlag,
|
||||
MessageUserStore.listCheckedOrSelected()
|
||||
);
|
||||
|
|
@ -560,7 +560,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
|
||||
listUnsetFlags() {
|
||||
this.setAction(
|
||||
FolderUserStore.currentFolderFullNameRaw(),
|
||||
FolderUserStore.currentFolderFullName(),
|
||||
MessageSetAction.UnsetFlag,
|
||||
MessageUserStore.listCheckedOrSelected()
|
||||
);
|
||||
|
|
@ -704,7 +704,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
name: 'AppendFile',
|
||||
limit: 1,
|
||||
hidden: {
|
||||
Folder: () => FolderUserStore.currentFolderFullNameRaw()
|
||||
Folder: () => FolderUserStore.currentFolderFullName()
|
||||
},
|
||||
dragAndDropElement: this.dragOverArea(),
|
||||
dragAndDropBodyElement: this.dragOverBodyArea()
|
||||
|
|
|
|||
|
|
@ -176,8 +176,8 @@ export class MailMessageView extends AbstractViewRight {
|
|||
return '';
|
||||
},
|
||||
|
||||
messageListAndMessageViewLoading:
|
||||
() => MessageUserStore.listCompleteLoading() || MessageUserStore.messageLoading()
|
||||
messageListOrViewLoading:
|
||||
() => MessageUserStore.listCompleteLoading() | MessageUserStore.messageLoading()
|
||||
});
|
||||
|
||||
this.addSubscribables({
|
||||
|
|
@ -258,8 +258,8 @@ export class MailMessageView extends AbstractViewRight {
|
|||
decorateKoCommands(this, {
|
||||
closeMessageCommand: 1,
|
||||
messageEditCommand: self => self.messageVisibility(),
|
||||
goUpCommand: self => !self.messageListAndMessageViewLoading(),
|
||||
goDownCommand: self => !self.messageListAndMessageViewLoading()
|
||||
goUpCommand: self => !self.messageListOrViewLoading(),
|
||||
goDownCommand: self => !self.messageListOrViewLoading()
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue