Forward if METADATA is supported to JavaScript

This commit is contained in:
djmaze 2021-10-15 12:34:45 +02:00
parent 3da130d061
commit c039e813a6
5 changed files with 14 additions and 3 deletions

View file

@ -37,7 +37,9 @@ export class FolderCollectionModel extends AbstractCollectionModel
super(); super();
this.CountRec this.CountRec
this.FoldersHash this.FoldersHash
this.IsMetadataSupported
this.IsThreadsSupported this.IsThreadsSupported
this.IsSortSupported
this.Namespace; this.Namespace;
this.Optimized this.Optimized
this.SystemFolders this.SystemFolders
@ -144,6 +146,7 @@ export class FolderCollectionModel extends AbstractCollectionModel
FolderUserStore.folderListOptimized(!!this.Optimized); FolderUserStore.folderListOptimized(!!this.Optimized);
FolderUserStore.sortSupported(!!this.IsSortSupported); FolderUserStore.sortSupported(!!this.IsSortSupported);
FolderUserStore.metadataSupported(!!this.IsMetadataSupported);
FolderUserStore.sentFolder(normalizeFolder(SettingsGet('SentFolder'))); FolderUserStore.sentFolder(normalizeFolder(SettingsGet('SentFolder')));
FolderUserStore.draftFolder(normalizeFolder(SettingsGet('DraftFolder'))); FolderUserStore.draftFolder(normalizeFolder(SettingsGet('DraftFolder')));

View file

@ -24,9 +24,9 @@ import { FolderSystemPopupView } from 'View/Popup/FolderSystem';
export class FoldersUserSettings /*extends AbstractViewSettings*/ { export class FoldersUserSettings /*extends AbstractViewSettings*/ {
constructor() { constructor() {
this.showKolab = Settings.capa(Capa.Kolab); this.showKolab = Settings.capa(Capa.Kolab) && FolderUserStore.metadataSupported();
this.defaultOptionsAfterRender = defaultOptionsAfterRender; this.defaultOptionsAfterRender = defaultOptionsAfterRender;
this.kolabTypeOptions = ko.observableArray() this.kolabTypeOptions = ko.observableArray();
let i18nFilter = key => i18n('SETTINGS_FOLDERS/TYPE_' + key); let i18nFilter = key => i18n('SETTINGS_FOLDERS/TYPE_' + key);
initOnStartOrLangChange(()=>{ initOnStartOrLangChange(()=>{
this.kolabTypeOptions([ this.kolabTypeOptions([

View file

@ -20,9 +20,10 @@ export const FolderUserStore = new class {
displaySpecSetting: false, displaySpecSetting: false,
/** /**
* If the IMAP server supports SORT * If the IMAP server supports SORT, METADATA
*/ */
sortSupported: false, sortSupported: false,
metadataSupported: false,
// sortMode: '', // sortMode: '',
sentFolder: '', sentFolder: '',

View file

@ -27,6 +27,11 @@ class FolderCollection extends \MailSo\Base\Collection
*/ */
public $FoldersHash = ''; public $FoldersHash = '';
/**
* @var bool
*/
public $IsMetadataSupported = false;
/** /**
* @var bool * @var bool
*/ */
@ -153,6 +158,7 @@ class FolderCollection extends \MailSo\Base\Collection
return \array_merge(parent::jsonSerialize(), array( return \array_merge(parent::jsonSerialize(), array(
'Namespace' => $this->GetNamespace(), 'Namespace' => $this->GetNamespace(),
'FoldersHash' => $this->FoldersHash ?: '', 'FoldersHash' => $this->FoldersHash ?: '',
'IsMetadataSupported' => $this->IsMetadataSupported,
'IsThreadsSupported' => $this->IsThreadsSupported, 'IsThreadsSupported' => $this->IsThreadsSupported,
'IsSortSupported' => $this->IsSortSupported, 'IsSortSupported' => $this->IsSortSupported,
'Optimized' => $this->Optimized, 'Optimized' => $this->Optimized,

View file

@ -1995,6 +1995,7 @@ class MailClient
} }
$oFolderCollection = new FolderCollection; $oFolderCollection = new FolderCollection;
$oFolderCollection->IsMetadataSupported = $this->oImapClient->IsSupported('METADATA');
$oFolderCollection->IsThreadsSupported = $this->IsThreadsSupported(); $oFolderCollection->IsThreadsSupported = $this->IsThreadsSupported();
$oFolderCollection->IsSortSupported = $this->oImapClient->IsSupported('SORT'); $oFolderCollection->IsSortSupported = $this->oImapClient->IsSupported('SORT');
$oFolderCollection->Optimized = $iCount !== \count($aMailFoldersHelper); $oFolderCollection->Optimized = $iCount !== \count($aMailFoldersHelper);