mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 23:00:56 +01:00
implement saveAsDraft
This commit is contained in:
parent
43d73abbcd
commit
35a0132161
@ -389,6 +389,30 @@ class mail_compose
|
|||||||
$savedOK = true;
|
$savedOK = true;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
$_content['isDraft'] = 1;
|
||||||
|
// save as draft
|
||||||
|
$folder = $this->mail_bo->getDraftFolder();
|
||||||
|
$this->mail_bo->reopen($folder);
|
||||||
|
$status = $this->mail_bo->getFolderStatus($folder);
|
||||||
|
//error_log(__METHOD__.__LINE__.array2string(array('Folder'=>$folder,'Status'=>$status)));
|
||||||
|
$uidNext = $status['uidnext']; // we may need that, if the server does not return messageUIDs of saved/appended messages
|
||||||
|
$_content['body'] = ($_content['body'] ? $_content['body'] : $_content['mail_'.($_content['mimeType'] == 'html'?'html':'plain').'text']);
|
||||||
|
$messageUid = $this->saveAsDraft($_content,$folder); // folder may change
|
||||||
|
if (!$messageUid) {
|
||||||
|
//try to reopen the mail from session data
|
||||||
|
throw new egw_exception_wrong_userinput(lang("Error: Could not save Message as Draft")." ".lang("Trying to recover from session data"));
|
||||||
|
}
|
||||||
|
// saving as draft, does not mean closing the message
|
||||||
|
$messageUid = ($messageUid===true ? $uidNext : $messageUid);
|
||||||
|
if (!$this->mail_bo->icServer->_connected) $this->mail_bo->openConnection($this->mail_bo->profileID);
|
||||||
|
if ($this->mail_bo->getMessageHeader($messageUid))
|
||||||
|
{
|
||||||
|
//error_log(__METHOD__.__LINE__.' (re)open drafted message with new UID: '.$messageUid.' in folder:'.$folder);
|
||||||
|
$draftContent = $this->bocompose->getDraftData($this->mail_bo->icServer, $folder, $messageUid);
|
||||||
|
//$this->compose($draftContent,null,'to',true);
|
||||||
|
//return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (egw_exception_wrong_userinput $e)
|
catch (egw_exception_wrong_userinput $e)
|
||||||
{
|
{
|
||||||
@ -2024,7 +2048,7 @@ class mail_compose
|
|||||||
$this->sessionData['signatureID'] = $_formData['signatureID'];
|
$this->sessionData['signatureID'] = $_formData['signatureID'];
|
||||||
$this->sessionData['stationeryID'] = $_formData['stationeryID'];
|
$this->sessionData['stationeryID'] = $_formData['stationeryID'];
|
||||||
$this->sessionData['identity'] = $_formData['identity'];
|
$this->sessionData['identity'] = $_formData['identity'];
|
||||||
|
$this->sessionData['attachments'] = $_formData['attachments'];
|
||||||
$identity = $this->preferences->getIdentity((int)$this->sessionData['identity'],true);
|
$identity = $this->preferences->getIdentity((int)$this->sessionData['identity'],true);
|
||||||
|
|
||||||
$flags = '\\Seen \\Draft';
|
$flags = '\\Seen \\Draft';
|
||||||
@ -2083,7 +2107,7 @@ class mail_compose
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
error_log("mail_bo::saveAsDraft->".lang("folder")." ". $savingDestination." ".lang("does not exist on IMAP Server."));
|
error_log(__METHOD__.__LINE__."->".lang("folder")." ". $savingDestination." ".lang("does not exist on IMAP Server."));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$mail_bo->closeConnection();
|
$mail_bo->closeConnection();
|
||||||
|
Loading…
Reference in New Issue
Block a user