mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-06 07:57:02 +03:00
commit
b1f78361f6
2 changed files with 31 additions and 30 deletions
|
|
@ -68,13 +68,15 @@ export class FolderCollectionModel extends AbstractCollectionModel
|
||||||
|
|
||||||
return super.reviveFromJson(object, oFolder => {
|
return super.reviveFromJson(object, oFolder => {
|
||||||
let oCacheFolder = Cache.getFolderFromCacheList(oFolder.FullNameRaw);
|
let oCacheFolder = Cache.getFolderFromCacheList(oFolder.FullNameRaw);
|
||||||
/*
|
|
||||||
if (oCacheFolder) {
|
if (oCacheFolder) {
|
||||||
oFolder.SubFolders = FolderCollectionModel.reviveFromJson(oFolder.SubFolders);
|
oFolder.SubFolders = FolderCollectionModel.reviveFromJson(oFolder.SubFolders);
|
||||||
oFolder.SubFolders && oCacheFolder.subFolders(oFolder.SubFolders);
|
oFolder.SubFolders && oCacheFolder.subFolders(oFolder.SubFolders);
|
||||||
}
|
} else {
|
||||||
*/
|
oCacheFolder = FolderModel.reviveFromJson(oFolder);
|
||||||
if (!oCacheFolder && (oCacheFolder = FolderModel.reviveFromJson(oFolder))) {
|
if (!oCacheFolder)
|
||||||
|
return null;
|
||||||
|
|
||||||
if (1 == SystemFolders.indexOf(oFolder.FullNameRaw)) {
|
if (1 == SystemFolders.indexOf(oFolder.FullNameRaw)) {
|
||||||
oCacheFolder.type(FolderType.Inbox);
|
oCacheFolder.type(FolderType.Inbox);
|
||||||
Cache.setFolderInboxName(oFolder.FullNameRaw);
|
Cache.setFolderInboxName(oFolder.FullNameRaw);
|
||||||
|
|
@ -82,28 +84,26 @@ export class FolderCollectionModel extends AbstractCollectionModel
|
||||||
Cache.setFolder(oCacheFolder.fullNameHash, oFolder.FullNameRaw, oCacheFolder);
|
Cache.setFolder(oCacheFolder.fullNameHash, oFolder.FullNameRaw, oCacheFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oCacheFolder) {
|
let type = SystemFolders.indexOf(oFolder.FullNameRaw);
|
||||||
let type = SystemFolders.indexOf(oFolder.FullNameRaw);
|
if (1 < type) {
|
||||||
if (1 < type) {
|
oCacheFolder.type(type);
|
||||||
oCacheFolder.type(type);
|
}
|
||||||
|
|
||||||
|
oCacheFolder.collapsed(!expandedFolders
|
||||||
|
|| !isArray(expandedFolders)
|
||||||
|
|| !expandedFolders.includes(oCacheFolder.fullNameHash));
|
||||||
|
|
||||||
|
if (oFolder.Extended) {
|
||||||
|
if (oFolder.Extended.Hash) {
|
||||||
|
Cache.setFolderHash(oCacheFolder.fullNameRaw, oFolder.Extended.Hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
oCacheFolder.collapsed(!expandedFolders
|
if (null != oFolder.Extended.MessageCount) {
|
||||||
|| !isArray(expandedFolders)
|
oCacheFolder.messageCountAll(oFolder.Extended.MessageCount);
|
||||||
|| !expandedFolders.includes(oCacheFolder.fullNameHash));
|
}
|
||||||
|
|
||||||
if (oFolder.Extended) {
|
if (null != oFolder.Extended.MessageUnseenCount) {
|
||||||
if (oFolder.Extended.Hash) {
|
oCacheFolder.messageCountUnread(oFolder.Extended.MessageUnseenCount);
|
||||||
Cache.setFolderHash(oCacheFolder.fullNameRaw, oFolder.Extended.Hash);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (null != oFolder.Extended.MessageCount) {
|
|
||||||
oCacheFolder.messageCountAll(oFolder.Extended.MessageCount);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (null != oFolder.Extended.MessageUnseenCount) {
|
|
||||||
oCacheFolder.messageCountUnread(oFolder.Extended.MessageUnseenCount);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return oCacheFolder;
|
return oCacheFolder;
|
||||||
|
|
|
||||||
|
|
@ -2083,27 +2083,28 @@ class MailClient
|
||||||
*/
|
*/
|
||||||
public function FolderCreate(string $sFolderNameInUtf8, string $sFolderParentFullNameRaw = '', bool $bSubscribeOnCreation = true, string $sDelimiter = '') : self
|
public function FolderCreate(string $sFolderNameInUtf8, string $sFolderParentFullNameRaw = '', bool $bSubscribeOnCreation = true, string $sDelimiter = '') : self
|
||||||
{
|
{
|
||||||
if (!strlen(\trim($sFolderNameInUtf8)))
|
$sFolderNameInUtf8 = \trim($sFolderNameInUtf8);
|
||||||
|
$sFolderParentFullNameRaw = \trim($sFolderParentFullNameRaw);
|
||||||
|
|
||||||
|
if (0 === \strlen($sFolderNameInUtf8))
|
||||||
{
|
{
|
||||||
throw new \MailSo\Base\Exceptions\InvalidArgumentException;
|
throw new \MailSo\Base\Exceptions\InvalidArgumentException;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sFolderNameInUtf8 = \trim($sFolderNameInUtf8);
|
if (0 === \strlen($sDelimiter) || 0 < \strlen($sFolderParentFullNameRaw))
|
||||||
|
|
||||||
if (0 === \strlen($sDelimiter) || 0 < \strlen(\trim($sFolderParentFullNameRaw)))
|
|
||||||
{
|
{
|
||||||
$aFolders = $this->oImapClient->FolderList('', 0 === \strlen(\trim($sFolderParentFullNameRaw)) ? 'INBOX' : $sFolderParentFullNameRaw);
|
$aFolders = $this->oImapClient->FolderList('', 0 === \strlen($sFolderParentFullNameRaw) ? 'INBOX' : $sFolderParentFullNameRaw);
|
||||||
if (!$aFolders)
|
if (!$aFolders)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
throw new \MailSo\Mail\Exceptions\RuntimeException(
|
throw new \MailSo\Mail\Exceptions\RuntimeException(
|
||||||
0 === \strlen(trim($sFolderParentFullNameRaw))
|
0 === \strlen($sFolderParentFullNameRaw)
|
||||||
? 'Cannot get folder delimiter'
|
? 'Cannot get folder delimiter'
|
||||||
: 'Cannot create folder in non-existen parent folder');
|
: 'Cannot create folder in non-existen parent folder');
|
||||||
}
|
}
|
||||||
|
|
||||||
$sDelimiter = $aFolders[0]->Delimiter();
|
$sDelimiter = $aFolders[0]->Delimiter();
|
||||||
if (0 < \strlen($sDelimiter) && 0 < \strlen(\trim($sFolderParentFullNameRaw)))
|
if (0 < \strlen($sDelimiter) && 0 < \strlen($sFolderParentFullNameRaw))
|
||||||
{
|
{
|
||||||
$sFolderParentFullNameRaw .= $sDelimiter;
|
$sFolderParentFullNameRaw .= $sDelimiter;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue