diff --git a/dev/Model/FolderCollection.js b/dev/Model/FolderCollection.js index 5b59709de..dc3a0f928 100644 --- a/dev/Model/FolderCollection.js +++ b/dev/Model/FolderCollection.js @@ -37,7 +37,9 @@ export class FolderCollectionModel extends AbstractCollectionModel super(); this.CountRec this.FoldersHash + this.IsMetadataSupported this.IsThreadsSupported + this.IsSortSupported this.Namespace; this.Optimized this.SystemFolders @@ -144,6 +146,7 @@ export class FolderCollectionModel extends AbstractCollectionModel FolderUserStore.folderListOptimized(!!this.Optimized); FolderUserStore.sortSupported(!!this.IsSortSupported); + FolderUserStore.metadataSupported(!!this.IsMetadataSupported); FolderUserStore.sentFolder(normalizeFolder(SettingsGet('SentFolder'))); FolderUserStore.draftFolder(normalizeFolder(SettingsGet('DraftFolder'))); diff --git a/dev/Settings/User/Folders.js b/dev/Settings/User/Folders.js index 35ca9e681..7a4c1b4f2 100644 --- a/dev/Settings/User/Folders.js +++ b/dev/Settings/User/Folders.js @@ -24,9 +24,9 @@ import { FolderSystemPopupView } from 'View/Popup/FolderSystem'; export class FoldersUserSettings /*extends AbstractViewSettings*/ { constructor() { - this.showKolab = Settings.capa(Capa.Kolab); + this.showKolab = Settings.capa(Capa.Kolab) && FolderUserStore.metadataSupported(); this.defaultOptionsAfterRender = defaultOptionsAfterRender; - this.kolabTypeOptions = ko.observableArray() + this.kolabTypeOptions = ko.observableArray(); let i18nFilter = key => i18n('SETTINGS_FOLDERS/TYPE_' + key); initOnStartOrLangChange(()=>{ this.kolabTypeOptions([ diff --git a/dev/Stores/User/Folder.js b/dev/Stores/User/Folder.js index 802fd3df9..0c3a44dfe 100644 --- a/dev/Stores/User/Folder.js +++ b/dev/Stores/User/Folder.js @@ -20,9 +20,10 @@ export const FolderUserStore = new class { displaySpecSetting: false, /** - * If the IMAP server supports SORT + * If the IMAP server supports SORT, METADATA */ sortSupported: false, + metadataSupported: false, // sortMode: '', sentFolder: '', diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/FolderCollection.php b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/FolderCollection.php index e202505d0..055ba64b8 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/FolderCollection.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/FolderCollection.php @@ -27,6 +27,11 @@ class FolderCollection extends \MailSo\Base\Collection */ public $FoldersHash = ''; + /** + * @var bool + */ + public $IsMetadataSupported = false; + /** * @var bool */ @@ -153,6 +158,7 @@ class FolderCollection extends \MailSo\Base\Collection return \array_merge(parent::jsonSerialize(), array( 'Namespace' => $this->GetNamespace(), 'FoldersHash' => $this->FoldersHash ?: '', + 'IsMetadataSupported' => $this->IsMetadataSupported, 'IsThreadsSupported' => $this->IsThreadsSupported, 'IsSortSupported' => $this->IsSortSupported, 'Optimized' => $this->Optimized, diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php index 346c0d6c2..d4e4d8978 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php @@ -1995,6 +1995,7 @@ class MailClient } $oFolderCollection = new FolderCollection; + $oFolderCollection->IsMetadataSupported = $this->oImapClient->IsSupported('METADATA'); $oFolderCollection->IsThreadsSupported = $this->IsThreadsSupported(); $oFolderCollection->IsSortSupported = $this->oImapClient->IsSupported('SORT'); $oFolderCollection->Optimized = $iCount !== \count($aMailFoldersHelper);