diff --git a/dev/Model/FolderCollection.js b/dev/Model/FolderCollection.js index 59ef540ab..1fa00f381 100644 --- a/dev/Model/FolderCollection.js +++ b/dev/Model/FolderCollection.js @@ -43,8 +43,7 @@ export class FolderCollectionModel extends AbstractCollectionModel * @returns {FolderCollectionModel} */ static reviveFromJson(object) { - const expandedFolders = Local.get(ClientSideKeyName.ExpandedFolders), - bDisplaySpecSetting = FolderStore.displaySpecSetting(); + const expandedFolders = Local.get(ClientSideKeyName.ExpandedFolders); return super.reviveFromJson(object, (oFolder, self) => { let oCacheFolder = Cache.getFolderFromCacheList(oFolder.FullNameRaw); /* @@ -62,8 +61,6 @@ export class FolderCollectionModel extends AbstractCollectionModel } if (oCacheFolder) { - oCacheFolder.checkable(bDisplaySpecSetting ? !!oFolder.Checkable : true); - oCacheFolder.collapsed(!expandedFolders || !Array.isArray(expandedFolders) || !expandedFolders.includes(oCacheFolder.fullNameHash)); diff --git a/dev/Stores/User/Folder.js b/dev/Stores/User/Folder.js index 18caa4e93..d84b7a257 100644 --- a/dev/Stores/User/Folder.js +++ b/dev/Stores/User/Folder.js @@ -8,7 +8,11 @@ import { getFolderInboxName, getFolderFromCacheList } from 'Common/Cache'; class FolderUserStore { constructor() { ko.addObservablesTo(this, { - displaySpecSetting: true, + // To use "checkable" option in /#/settings/folders + // When true, getNextFolderNames only lists system and "checkable" folders + // and affects the update of unseen count + // Auto set to true when amount of folders > folderSpecLimit to prevent requests overload + displaySpecSetting: false, sentFolder: '', draftFolder: '', @@ -157,6 +161,7 @@ class FolderUserStore { timeout = utc - 60000 * 5, timeouts = [], inboxFolderName = getFolderInboxName(), + bDisplaySpecSetting = this.displaySpecSetting(), fSearchFunction = (list) => { list.forEach(folder => { if ( @@ -165,9 +170,7 @@ class FolderUserStore { folder.selectable && folder.exists && timeout > folder.interval && - // https://github.com/the-djmaze/snappymail/issues/47 -// (folder.isSystemFolder() || (folder.subscribed() && folder.checkable())) - (folder.isSystemFolder() || folder.subscribed()) + (folder.isSystemFolder() || (folder.subscribed() && (folder.checkable() || !bDisplaySpecSetting))) ) { timeouts.push([folder.interval, folder.fullNameRaw]); }