diff --git a/dev/Model/FolderCollection.js b/dev/Model/FolderCollection.js index dc3a0f928..73681b096 100644 --- a/dev/Model/FolderCollection.js +++ b/dev/Model/FolderCollection.js @@ -236,9 +236,11 @@ export class FolderModel extends AbstractModel { if (folder) { folder.deep = json.FullNameRaw.split(folder.delimiter).length - 1; - let type = folder.metadata[FolderMetadataKeys.KolabFolderType] - || folder.metadata[FolderMetadataKeys.KolabFolderTypeShared]; - type && !type.includes('mail.') && folder.kolabType(type); + let type = (folder.metadata[FolderMetadataKeys.KolabFolderType] + || folder.metadata[FolderMetadataKeys.KolabFolderTypeShared] + || '' + ).split('.')[0]; + type && 'mail' != type && folder.kolabType(type); folder.messageCountAll = ko.computed({ read: folder.privateMessageCountAll, diff --git a/dev/Settings/User/Folders.js b/dev/Settings/User/Folders.js index 7a4c1b4f2..cf48eb545 100644 --- a/dev/Settings/User/Folders.js +++ b/dev/Settings/User/Folders.js @@ -139,6 +139,7 @@ export class FoldersUserSettings /*extends AbstractViewSettings*/ { toggleFolderKolabType(folder, event) { let type = event.target.value; + // TODO: append '.default' ? Remote.folderSetMetadata(()=>0, folder.fullNameRaw, FolderMetadataKeys.KolabFolderType, type); folder.kolabType(type); } diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/FolderInformation.php b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/FolderInformation.php index d2d87fb41..e081c7169 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/FolderInformation.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/FolderInformation.php @@ -38,11 +38,13 @@ class FolderInformation public $PermanentFlags = array(); /** + * https://datatracker.ietf.org/doc/html/rfc3501#section-7.3.1 * @var int */ public $Exists = null; /** + * https://datatracker.ietf.org/doc/html/rfc3501#section-7.3.2 * @var int */ public $Recent = null; diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/ResponseCollection.php b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/ResponseCollection.php index 932433203..20b85354f 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/ResponseCollection.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/ResponseCollection.php @@ -320,27 +320,33 @@ class ResponseCollection extends \MailSo\Base\Collection $oResult->Flags = $oResponse->ResponseList[2]; } - if (is_array($oResponse->OptionalResponse) && \count($oResponse->OptionalResponse) > 1) { - if ('PERMANENTFLAGS' === $oResponse->OptionalResponse[0] - && is_array($oResponse->OptionalResponse[1])) - { - $oResult->PermanentFlags = $oResponse->OptionalResponse[1]; - } - else if ('UIDVALIDITY' === $oResponse->OptionalResponse[0]) - { - $oResult->Uidvalidity = (int) $oResponse->OptionalResponse[1]; - } - else if ('UNSEEN' === $oResponse->OptionalResponse[0]) - { - $oResult->Unread = (int) $oResponse->OptionalResponse[1]; - } - else if ('UIDNEXT' === $oResponse->OptionalResponse[0]) - { - $oResult->Uidnext = (int) $oResponse->OptionalResponse[1]; - } - else if ('HIGHESTMODSEQ' === $oResponse->OptionalResponse[0]) - { - $oResult->HighestModSeq = (int) $oResponse->OptionalResponse[1]; + if (\is_array($oResponse->OptionalResponse)) { + if (\count($oResponse->OptionalResponse) > 1) { + if ('PERMANENTFLAGS' === $oResponse->OptionalResponse[0] + && is_array($oResponse->OptionalResponse[1])) + { + $oResult->PermanentFlags = $oResponse->OptionalResponse[1]; + } + else if ('UIDVALIDITY' === $oResponse->OptionalResponse[0]) + { + $oResult->Uidvalidity = (int) $oResponse->OptionalResponse[1]; + } + else if ('UNSEEN' === $oResponse->OptionalResponse[0]) + { + $oResult->Unread = (int) $oResponse->OptionalResponse[1]; + } + else if ('UIDNEXT' === $oResponse->OptionalResponse[0]) + { + $oResult->Uidnext = (int) $oResponse->OptionalResponse[1]; + } + else if ('HIGHESTMODSEQ' === $oResponse->OptionalResponse[0]) + { + $oResult->HighestModSeq = (int) $oResponse->OptionalResponse[1]; + } + } else if ('READ-ONLY' === $oResponse->OptionalResponse[0]) { +// $oResult->IsWritable = false; + } else if ('READ-WRITE' === $oResponse->OptionalResponse[0]) { +// $oResult->IsWritable = true; } }