diff --git a/dev/Model/FolderCollection.js b/dev/Model/FolderCollection.js index 3fd1cd792..769768dfb 100644 --- a/dev/Model/FolderCollection.js +++ b/dev/Model/FolderCollection.js @@ -21,15 +21,16 @@ import { AbstractModel } from 'Knoin/AbstractModel'; const ServerFolderType = { - USER: 0, +// USER: 0, INBOX: 1, SENT: 2, DRAFTS: 3, JUNK: 4, TRASH: 5, - IMPORTANT: 10, - FLAGGED: 11, - ALL: 12 +// IMPORTANT: 10, +// FLAGGED: 11, + ARCHIVE: 12 +// ,ALL: 13 }, normalizeFolder = sFolderFullNameRaw => ('' === sFolderFullNameRaw @@ -129,7 +130,7 @@ export class FolderCollectionModel extends AbstractCollectionModel Settings.set('DraftFolder', this.SystemFolders[ServerFolderType.DRAFTS] || null); Settings.set('SpamFolder', this.SystemFolders[ServerFolderType.JUNK] || null); Settings.set('TrashFolder', this.SystemFolders[ServerFolderType.TRASH] || null); - Settings.set('ArchiveFolder', this.SystemFolders[ServerFolderType.ALL] || null); + Settings.set('ArchiveFolder', this.SystemFolders[ServerFolderType.ARCHIVE] || null); update = true; } diff --git a/dev/Stores/User/Folder.js b/dev/Stores/User/Folder.js index f796348e7..dc709e897 100644 --- a/dev/Stores/User/Folder.js +++ b/dev/Stores/User/Folder.js @@ -75,29 +75,10 @@ export const FolderUserStore = new class { this.folderListSystemNames = ko.computed(() => { const list = [getFolderInboxName()], - sentFolder = this.sentFolder(), - draftFolder = this.draftFolder(), - spamFolder = this.spamFolder(), - trashFolder = this.trashFolder(), - archiveFolder = this.archiveFolder(); + others = [this.sentFolder(), this.draftFolder(), this.spamFolder(), this.trashFolder(), this.archiveFolder()]; - if (this.folderList.length) { - if (sentFolder && UNUSED_OPTION_VALUE !== sentFolder) { - list.push(sentFolder); - } - if (draftFolder && UNUSED_OPTION_VALUE !== draftFolder) { - list.push(draftFolder); - } - if (spamFolder && UNUSED_OPTION_VALUE !== spamFolder) { - list.push(spamFolder); - } - if (trashFolder && UNUSED_OPTION_VALUE !== trashFolder) { - list.push(trashFolder); - } - if (archiveFolder && UNUSED_OPTION_VALUE !== archiveFolder) { - list.push(archiveFolder); - } - } + this.folderList().length && + others.forEach(name => name && UNUSED_OPTION_VALUE !== name && list.push(name)); return list; }); @@ -109,15 +90,11 @@ export const FolderUserStore = new class { const fRemoveSystemFolderType = (observable) => () => { const folder = getFolderFromCacheList(observable()); - if (folder) { - folder.type(FolderType.User); - } + folder && folder.type(FolderType.User); }, fSetSystemFolderType = type => value => { const folder = getFolderFromCacheList(value); - if (folder) { - folder.type(type); - } + folder && folder.type(type); }; this.sentFolder.subscribe(fRemoveSystemFolderType(this.sentFolder), this, 'beforeChange'); diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Enumerations/FolderType.php b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Enumerations/FolderType.php index 4fe09c7c4..10628b3f0 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Enumerations/FolderType.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Enumerations/FolderType.php @@ -26,5 +26,6 @@ abstract class FolderType const TRASH = 5; const IMPORTANT = 10; const FLAGGED = 11; - const ALL = 12; + const ARCHIVE = 12; + const ALL = 13; } diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Folder.php b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Folder.php index 3b9e2fbeb..029e5d78d 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Folder.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Folder.php @@ -216,9 +216,11 @@ class Folder implements \JsonSerializable case \in_array('\\starred', $aFlags): return \MailSo\Imap\Enumerations\FolderType::FLAGGED; + case \in_array('\\archive', $aFlags): + return \MailSo\Imap\Enumerations\FolderType::ARCHIVE; + case \in_array('\\all', $aFlags): case \in_array('\\allmail', $aFlags): - case \in_array('\\archive', $aFlags): return \MailSo\Imap\Enumerations\FolderType::ALL; } diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php index ea9a9864f..10dec34cd 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php @@ -70,7 +70,7 @@ trait Folders if ('' === $oSettingsLocal->GetConf('ArchiveFolder', '')) { - $aList[] = FolderType::ALL; + $aList[] = FolderType::ARCHIVE; } $this->Plugins()->RunHook('filter.folders-system-types', array($oAccount, &$aList)); @@ -479,7 +479,7 @@ trait Folders FolderType::DRAFTS, FolderType::JUNK, FolderType::TRASH, - FolderType::ALL + FolderType::ARCHIVE ))) { $aResult[$iFolderType] = $oFolder->FullNameRaw(); @@ -511,7 +511,7 @@ trait Folders FolderType::DRAFTS, FolderType::JUNK, FolderType::TRASH, - FolderType::ALL + FolderType::ARCHIVE ))) { $aResult[$iFolderType] = $oFolder->FullNameRaw(); @@ -578,8 +578,8 @@ trait Folders 'Deleted' => FolderType::TRASH, 'Bin' => FolderType::TRASH, - 'Archive' => FolderType::ALL, - 'Archives' => FolderType::ALL, + 'Archive' => FolderType::ARCHIVE, + 'Archives' => FolderType::ARCHIVE, 'All' => FolderType::ALL, 'All Mail' => FolderType::ALL,