mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-08 17:07:03 +03:00
parent
28d09c1a5d
commit
612aff4b27
3 changed files with 43 additions and 15 deletions
|
|
@ -800,6 +800,13 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
folderMove(sPrevFolderFullNameRaw, sNewFolderFullName) {
|
||||||
|
return this.postRequest('FolderMove', FolderUserStore.foldersRenaming, {
|
||||||
|
Folder: sPrevFolderFullNameRaw,
|
||||||
|
NewFolder: sNewFolderFullName
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
folderRename(sPrevFolderFullNameRaw, sNewFolderName) {
|
folderRename(sPrevFolderFullNameRaw, sNewFolderName) {
|
||||||
return this.postRequest('FolderRename', FolderUserStore.foldersRenaming, {
|
return this.postRequest('FolderRename', FolderUserStore.foldersRenaming, {
|
||||||
Folder: sPrevFolderFullNameRaw,
|
Folder: sPrevFolderFullNameRaw,
|
||||||
|
|
|
||||||
|
|
@ -2088,7 +2088,7 @@ class MailClient
|
||||||
/**
|
/**
|
||||||
* @throws \MailSo\Base\Exceptions\InvalidArgumentException
|
* @throws \MailSo\Base\Exceptions\InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function folderModify(string $sPrevFolderFullNameRaw, string $sNextFolderNameInUtf, bool $bRenameOrMove, bool $bSubscribeOnModify) : self
|
protected function folderModify(string $sPrevFolderFullNameRaw, string $sNextFolderNameInUtf, bool $bRename, bool $bSubscribeOnModify) : self
|
||||||
{
|
{
|
||||||
if (0 === \strlen($sPrevFolderFullNameRaw) || 0 === \strlen($sNextFolderNameInUtf))
|
if (0 === \strlen($sPrevFolderFullNameRaw) || 0 === \strlen($sNextFolderNameInUtf))
|
||||||
{
|
{
|
||||||
|
|
@ -2099,7 +2099,7 @@ class MailClient
|
||||||
if (!$aFolders)
|
if (!$aFolders)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
throw new \MailSo\Mail\Exceptions\RuntimeException('Cannot rename non-existen folder');
|
throw new \MailSo\Mail\Exceptions\RuntimeException('Cannot '.($bRename?'rename':'move').' non-existen folder');
|
||||||
}
|
}
|
||||||
|
|
||||||
$sDelimiter = $aFolders[0]->Delimiter();
|
$sDelimiter = $aFolders[0]->Delimiter();
|
||||||
|
|
@ -2119,7 +2119,7 @@ class MailClient
|
||||||
\MailSo\Base\Enumerations\Charset::UTF_8,
|
\MailSo\Base\Enumerations\Charset::UTF_8,
|
||||||
\MailSo\Base\Enumerations\Charset::UTF_7_IMAP);
|
\MailSo\Base\Enumerations\Charset::UTF_7_IMAP);
|
||||||
|
|
||||||
if ($bRenameOrMove)
|
if ($bRename)
|
||||||
{
|
{
|
||||||
if (0 < \strlen($sDelimiter) && false !== \strpos($sNewFolderFullNameRaw, $sDelimiter))
|
if (0 < \strlen($sDelimiter) && false !== \strpos($sNewFolderFullNameRaw, $sDelimiter))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -239,6 +239,29 @@ trait Folders
|
||||||
$this->SettingsProvider(true)->Save($oAccount, $oSettingsLocal));
|
$this->SettingsProvider(true)->Save($oAccount, $oSettingsLocal));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws \MailSo\Base\Exceptions\Exception
|
||||||
|
*/
|
||||||
|
public function DoFolderMove() : array
|
||||||
|
{
|
||||||
|
$oAccount = $this->initMailClientConnection();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$this->MailClient()->FolderMove(
|
||||||
|
$this->GetActionParam('Folder', ''),
|
||||||
|
$this->GetActionParam('NewFolder', ''),
|
||||||
|
!!$this->Config()->Get('labs', 'use_imap_list_subscribe', true)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
catch (\Throwable $oException)
|
||||||
|
{
|
||||||
|
throw new ClientException(Notifications::CantRenameFolder, $oException);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->TrueResponse(__FUNCTION__);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws \MailSo\Base\Exceptions\Exception
|
* @throws \MailSo\Base\Exceptions\Exception
|
||||||
*/
|
*/
|
||||||
|
|
@ -246,13 +269,13 @@ trait Folders
|
||||||
{
|
{
|
||||||
$oAccount = $this->initMailClientConnection();
|
$oAccount = $this->initMailClientConnection();
|
||||||
|
|
||||||
$sPrevFolderFullNameRaw = $this->GetActionParam('Folder', '');
|
|
||||||
$sNewTopFolderNameInUtf = $this->GetActionParam('NewFolderName', '');
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$this->MailClient()->FolderRename($sPrevFolderFullNameRaw, $sNewTopFolderNameInUtf,
|
$this->MailClient()->FolderRename(
|
||||||
!!$this->Config()->Get('labs', 'use_imap_list_subscribe', true));
|
$this->GetActionParam('Folder', ''),
|
||||||
|
$this->GetActionParam('NewFolderName', ''),
|
||||||
|
!!$this->Config()->Get('labs', 'use_imap_list_subscribe', true)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
catch (\Throwable $oException)
|
catch (\Throwable $oException)
|
||||||
{
|
{
|
||||||
|
|
@ -269,12 +292,12 @@ trait Folders
|
||||||
{
|
{
|
||||||
$oAccount = $this->initMailClientConnection();
|
$oAccount = $this->initMailClientConnection();
|
||||||
|
|
||||||
$sFolderFullNameRaw = $this->GetActionParam('Folder', '');
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$this->MailClient()->FolderDelete($sFolderFullNameRaw,
|
$this->MailClient()->FolderDelete(
|
||||||
!!$this->Config()->Get('labs', 'use_imap_list_subscribe', true));
|
$this->GetActionParam('Folder', ''),
|
||||||
|
!!$this->Config()->Get('labs', 'use_imap_list_subscribe', true)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
catch (\MailSo\Mail\Exceptions\NonEmptyFolder $oException)
|
catch (\MailSo\Mail\Exceptions\NonEmptyFolder $oException)
|
||||||
{
|
{
|
||||||
|
|
@ -295,11 +318,9 @@ trait Folders
|
||||||
{
|
{
|
||||||
$this->initMailClientConnection();
|
$this->initMailClientConnection();
|
||||||
|
|
||||||
$sFolderFullNameRaw = $this->GetActionParam('Folder', '');
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$this->MailClient()->FolderClear($sFolderFullNameRaw);
|
$this->MailClient()->FolderClear($this->GetActionParam('Folder', ''));
|
||||||
}
|
}
|
||||||
catch (\Throwable $oException)
|
catch (\Throwable $oException)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue