mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-11 00:14:50 +03:00
Bugfixes and improvements for Folderlist
This commit is contained in:
parent
327d6c32ca
commit
ef4d604f6d
8 changed files with 47 additions and 46 deletions
|
|
@ -39,7 +39,8 @@ normalizeFolder = sFolderFullNameRaw => ('' === sFolderFullNameRaw
|
|||
? sFolderFullNameRaw
|
||||
: '';
|
||||
|
||||
let SystemFolders = {};
|
||||
// index is FolderType value
|
||||
let SystemFolders = [];
|
||||
|
||||
export class FolderCollectionModel extends AbstractCollectionModel
|
||||
{
|
||||
|
|
@ -62,7 +63,14 @@ export class FolderCollectionModel extends AbstractCollectionModel
|
|||
static reviveFromJson(object) {
|
||||
const expandedFolders = Local.get(ClientSideKeyName.ExpandedFolders);
|
||||
if (object && object.SystemFolders) {
|
||||
SystemFolders = object.SystemFolders;
|
||||
let sf = object.SystemFolders;
|
||||
SystemFolders = [0,0,
|
||||
SettingsGet('SentFolder') || sf[ServerFolderType.SENT],
|
||||
SettingsGet('DraftFolder') || sf[ServerFolderType.DRAFTS],
|
||||
SettingsGet('SpamFolder') || sf[ServerFolderType.SPAM],
|
||||
SettingsGet('TrashFolder') || sf[ServerFolderType.TRASH],
|
||||
SettingsGet('ArchiveFolder') || sf[ServerFolderType.ARCHIVE]
|
||||
];
|
||||
}
|
||||
|
||||
return super.reviveFromJson(object, oFolder => {
|
||||
|
|
@ -82,23 +90,9 @@ export class FolderCollectionModel extends AbstractCollectionModel
|
|||
}
|
||||
|
||||
if (oCacheFolder) {
|
||||
switch (oFolder.FullNameRaw)
|
||||
{
|
||||
case (SettingsGet('SentFolder') || SystemFolders[ServerFolderType.SENT]):
|
||||
oCacheFolder.type(FolderType.Sent);
|
||||
break;
|
||||
case (SettingsGet('DraftFolder') || SystemFolders[ServerFolderType.DRAFTS]):
|
||||
oCacheFolder.type(FolderType.Drafts);
|
||||
break;
|
||||
case (SettingsGet('SpamFolder') || SystemFolders[ServerFolderType.SPAM]):
|
||||
oCacheFolder.type(FolderType.Spam);
|
||||
break;
|
||||
case (SettingsGet('TrashFolder') || SystemFolders[ServerFolderType.TRASH]):
|
||||
oCacheFolder.type(FolderType.Trash);
|
||||
break;
|
||||
case (SettingsGet('ArchiveFolder') || SystemFolders[ServerFolderType.ARCHIVE]):
|
||||
oCacheFolder.type(FolderType.Archive);
|
||||
break;
|
||||
let type = SystemFolders.indexOf(oFolder.FullNameRaw);
|
||||
if (1 < type) {
|
||||
oCacheFolder.type(type);
|
||||
}
|
||||
|
||||
oCacheFolder.collapsed(!expandedFolders
|
||||
|
|
@ -269,15 +263,17 @@ export class FolderModel extends AbstractModel {
|
|||
hasSubscribedSubfolders:
|
||||
() =>
|
||||
!!folder.subFolders().find(
|
||||
oFolder => (oFolder.subscribed() || oFolder.hasSubscribedSubfolders()) && !oFolder.isSystemFolder()
|
||||
oFolder => {
|
||||
const subscribed = oFolder.hasSubscriptions();
|
||||
return !oFolder.isSystemFolder() && subscribed;
|
||||
}
|
||||
),
|
||||
|
||||
hasSubscriptions: () => folder.subscribed() | folder.hasSubscribedSubfolders(),
|
||||
|
||||
canBeEdited: () => FolderType.User === folder.type() && folder.exists/* && folder.selectable*/,
|
||||
|
||||
visible: () => {
|
||||
const hasSubFolders = folder.hasSubscribedSubfolders();
|
||||
return folder.subscribed() || hasSubFolders;
|
||||
},
|
||||
visible: () => folder.hasSubscriptions() | !SettingsUserStore.hideUnsubscribed(),
|
||||
|
||||
isSystemFolder: () => FolderType.User !== folder.type(),
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue