Bugfix: FolderList INBOX detection

This commit is contained in:
djmaze 2021-08-24 20:45:40 +02:00
parent e2a7d1f5f0
commit db1615f2ca

View file

@ -20,19 +20,6 @@ import { i18n, trigger as translatorTrigger } from 'Common/Translator';
import { AbstractModel } from 'Knoin/AbstractModel'; import { AbstractModel } from 'Knoin/AbstractModel';
const const
ServerFolderType = {
// USER: 0,
INBOX: 1,
SENT: 2,
DRAFTS: 3,
SPAM: 4, // JUNK
TRASH: 5,
// IMPORTANT: 10,
// FLAGGED: 11,
ARCHIVE: 12
// ,ALL: 13
},
normalizeFolder = sFolderFullNameRaw => ('' === sFolderFullNameRaw normalizeFolder = sFolderFullNameRaw => ('' === sFolderFullNameRaw
|| UNUSED_OPTION_VALUE === sFolderFullNameRaw || UNUSED_OPTION_VALUE === sFolderFullNameRaw
|| null !== Cache.getFolderFromCacheList(sFolderFullNameRaw)) || null !== Cache.getFolderFromCacheList(sFolderFullNameRaw))
@ -64,12 +51,17 @@ export class FolderCollectionModel extends AbstractCollectionModel
const expandedFolders = Local.get(ClientSideKeyName.ExpandedFolders); const expandedFolders = Local.get(ClientSideKeyName.ExpandedFolders);
if (object && object.SystemFolders) { if (object && object.SystemFolders) {
let sf = object.SystemFolders; let sf = object.SystemFolders;
SystemFolders = [0,0, SystemFolders = [
SettingsGet('SentFolder') || sf[ServerFolderType.SENT], /* USER */ 0,
SettingsGet('DraftFolder') || sf[ServerFolderType.DRAFTS], /* INBOX */ sf[1],
SettingsGet('SpamFolder') || sf[ServerFolderType.SPAM], SettingsGet('SentFolder') || sf[2],
SettingsGet('TrashFolder') || sf[ServerFolderType.TRASH], SettingsGet('DraftFolder') || sf[3],
SettingsGet('ArchiveFolder') || sf[ServerFolderType.ARCHIVE] SettingsGet('SpamFolder') || sf[4],
SettingsGet('TrashFolder') || sf[5],
SettingsGet('ArchiveFolder') || sf[12]
// IMPORTANT: sf[10],
// FLAGGED: sf[11],
// ALL: sf[13]
]; ];
} }
@ -82,7 +74,7 @@ export class FolderCollectionModel extends AbstractCollectionModel
} }
*/ */
if (!oCacheFolder && (oCacheFolder = FolderModel.reviveFromJson(oFolder))) { if (!oCacheFolder && (oCacheFolder = FolderModel.reviveFromJson(oFolder))) {
if (oFolder.FullNameRaw == SystemFolders[ServerFolderType.INBOX]) { if (1 == SystemFolders.indexOf(oFolder.FullNameRaw)) {
oCacheFolder.type(FolderType.Inbox); oCacheFolder.type(FolderType.Inbox);
Cache.setFolderInboxName(oFolder.FullNameRaw); Cache.setFolderInboxName(oFolder.FullNameRaw);
} }
@ -132,11 +124,11 @@ export class FolderCollectionModel extends AbstractCollectionModel
SettingsGet('ArchiveFolder')) SettingsGet('ArchiveFolder'))
) { ) {
FolderUserStore.saveSystemFolders({ FolderUserStore.saveSystemFolders({
SentFolder: SystemFolders[ServerFolderType.SENT] || null, SentFolder: SystemFolders[FolderType.SENT] || null,
DraftFolder: SystemFolders[ServerFolderType.DRAFTS] || null, DraftFolder: SystemFolders[FolderType.DRAFTS] || null,
SpamFolder: SystemFolders[ServerFolderType.SPAM] || null, SpamFolder: SystemFolders[FolderType.SPAM] || null,
TrashFolder: SystemFolders[ServerFolderType.TRASH] || null, TrashFolder: SystemFolders[FolderType.TRASH] || null,
ArchiveFolder: SystemFolders[ServerFolderType.ARCHIVE] || null ArchiveFolder: SystemFolders[FolderType.ARCHIVE] || null
}); });
} }
@ -261,8 +253,7 @@ export class FolderModel extends AbstractModel {
isInbox: () => FolderType.Inbox === folder.type(), isInbox: () => FolderType.Inbox === folder.type(),
hasSubscribedSubfolders: hasSubscribedSubfolders:
() => () => !!folder.subFolders().find(
!!folder.subFolders().find(
oFolder => { oFolder => {
const subscribed = oFolder.hasSubscriptions(); const subscribed = oFolder.hasSubscriptions();
return !oFolder.isSystemFolder() && subscribed; return !oFolder.isSystemFolder() && subscribed;