djmaze 2020-12-10 14:19:03 +01:00
parent 4321c11622
commit d34729a1ae
2 changed files with 8 additions and 8 deletions

View file

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

View file

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