fix setting answered and forwarded flags on answering/forwarding mails

This commit is contained in:
Klaus Leithoff 2014-01-23 11:56:34 +00:00
parent f0710fbecb
commit bc2689c3ae
3 changed files with 175 additions and 89 deletions

View File

@ -2693,21 +2693,19 @@ class mail_bo
$msglist = ''; $msglist = '';
$oldMailbox = ''; $oldMailbox = '';
if (is_null($_folder) || empty($_folder)) $_folder = $this->sessionData['mailbox']; if (is_null($_folder) || empty($_folder)) $_folder = $this->sessionData['mailbox'];
if(!is_array($_messageUID) || count($_messageUID) === 0) if (empty($_messageUID))
{ {
if ($_messageUID=='all') if (self::$debug) error_log(__METHOD__." no messages Message(s): ".implode(',',$_messageUID));
return false;
}
elseif ($_messageUID==='all')
{ {
$_messageUID= null; $_messageUID= null;
} }
else else
{
if (self::$debug) error_log(__METHOD__." no messages Message(s): ".implode(',',$_messageUID));
return false;
}
}
else
{ {
$uidsToDelete = new Horde_Imap_Client_Ids(); $uidsToDelete = new Horde_Imap_Client_Ids();
if (!(is_object($_messageUID) || is_array($_messageUID))) $_messageUID = (array)$_messageUID;
$uidsToDelete->add($_messageUID); $uidsToDelete->add($_messageUID);
} }
$deleteOptions = $_forceDeleteMethod; // use forceDeleteMethod if not "no", or unknown method $deleteOptions = $_forceDeleteMethod; // use forceDeleteMethod if not "no", or unknown method
@ -2724,10 +2722,11 @@ class mail_bo
$oldMailbox = $this->icServer->getCurrentMailbox(); $oldMailbox = $this->icServer->getCurrentMailbox();
$this->icServer->openMailbox($_folder); $this->icServer->openMailbox($_folder);
} }
//error_log(__METHOD__.__LINE__.'->'.array2string($_messageUID).','.$_folder.'/'.$this->sessionData['mailbox'].' Option:'.$deleteOptions);
$updateCache = false; $updateCache = false;
switch($deleteOptions) { switch($deleteOptions) {
case "move_to_trash": case "move_to_trash":
//error_log(__METHOD__.__LINE__);
$updateCache = true; $updateCache = true;
if(!empty($trashFolder)); { if(!empty($trashFolder)); {
if (self::$debug) error_log(__METHOD__.__LINE__.implode(' : ', $_messageUID)); if (self::$debug) error_log(__METHOD__.__LINE__.implode(' : ', $_messageUID));
@ -2738,6 +2737,7 @@ class mail_bo
break; break;
case "mark_as_deleted": case "mark_as_deleted":
//error_log(__METHOD__.__LINE__);
// mark messages as deleted // mark messages as deleted
if (is_null($_messageUID)) $_messageUID='all'; if (is_null($_messageUID)) $_messageUID='all';
foreach((array)$_messageUID as $key =>$uid) foreach((array)$_messageUID as $key =>$uid)
@ -2757,13 +2757,21 @@ class mail_bo
break; break;
case "remove_immediately": case "remove_immediately":
//error_log(__METHOD__.__LINE__);
$updateCache = true; $updateCache = true;
if (is_null($_messageUID)) $_messageUID='all'; if (is_null($_messageUID)) $_messageUID='all';
if (is_object($_messageUID))
{
$this->flagMessages('delete', $_messageUID, $_folder);
}
else
{
foreach((array)$_messageUID as $key =>$uid) foreach((array)$_messageUID as $key =>$uid)
{ {
//flag messages, that are flagged for deletion as seen too //flag messages, that are flagged for deletion as seen too
$this->flagMessages('delete', $uid, $_folder); $this->flagMessages('delete', $uid, $_folder);
} }
}
// delete the messages finaly // delete the messages finaly
$this->icServer->expunge($_folder); $this->icServer->expunge($_folder);
break; break;
@ -2785,7 +2793,8 @@ class mail_bo
function getFlags ($_messageUID) { function getFlags ($_messageUID) {
$uidsToFetch = new Horde_Imap_Client_Ids(); $uidsToFetch = new Horde_Imap_Client_Ids();
$uidsToFetch->add((array)$_messageUID); if (!(is_object($_messageUID) || is_array($_messageUID))) $_messageUID = (array)$_messageUID;
$uidsToFetch->add($_messageUID);
$_folderName = $this->icServer->getCurrentMailbox(); $_folderName = $this->icServer->getCurrentMailbox();
$fquery = new Horde_Imap_Client_Fetch_Query(); $fquery = new Horde_Imap_Client_Fetch_Query();
$fquery->flags(); $fquery->flags();
@ -2841,22 +2850,19 @@ class mail_bo
function flagMessages($_flag, $_messageUID,$_folder=NULL) function flagMessages($_flag, $_messageUID,$_folder=NULL)
{ {
//error_log(__METHOD__.__LINE__.'->' .$_flag." ".array2string($_messageUID).",$_folder /".$this->sessionData['mailbox']); //error_log(__METHOD__.__LINE__.'->' .$_flag." ".array2string($_messageUID).",$_folder /".$this->sessionData['mailbox']);
if(!is_array($_messageUID)) { if (empty($_messageUID))
#return false;
if ($_messageUID=='all')
{ {
//the empty array triggers the default for ctoring a flag for ALL messages if (self::$debug) error_log(__METHOD__." no messages Message(s): ".implode(',',$_messageUID));
$uidsToModify = null; return false;
} }
else elseif ($_messageUID==='all')
{ {
$uidsToModify = new Horde_Imap_Client_Ids(); $uidsToModify= null;
$uidsToModify->add($_messageUID);
}
} }
else else
{ {
$uidsToModify = new Horde_Imap_Client_Ids(); $uidsToModify = new Horde_Imap_Client_Ids();
if (!(is_object($_messageUID) || is_array($_messageUID))) $_messageUID = (array)$_messageUID;
$uidsToModify->add($_messageUID); $uidsToModify->add($_messageUID);
} }
@ -2967,21 +2973,19 @@ class mail_bo
$msglist = ''; $msglist = '';
$deleteOptions = $GLOBALS['egw_info']["user"]["preferences"]["mail"]["deleteOptions"]; $deleteOptions = $GLOBALS['egw_info']["user"]["preferences"]["mail"]["deleteOptions"];
if(!is_array($_messageUID) || count($_messageUID) === 0) if (empty($_messageUID))
{ {
if ($_messageUID=='all') if (self::$debug) error_log(__METHOD__." no messages Message(s): ".implode(',',$_messageUID));
return false;
}
elseif ($_messageUID==='all')
{ {
$uidsToMove= null; $uidsToMove= null;
} }
else else
{
if (self::$debug) error_log(__METHOD__." no messages Message(s): ".implode(',',$_messageUID));
return false;
}
}
else
{ {
$uidsToMove = new Horde_Imap_Client_Ids(); $uidsToMove = new Horde_Imap_Client_Ids();
if (!(is_object($_messageUID) || is_array($_messageUID))) $_messageUID = (array)$_messageUID;
$uidsToMove->add($_messageUID); $uidsToMove->add($_messageUID);
} }
$sourceFolder = (!empty($currentFolder)?$currentFolder: $this->sessionData['mailbox']); $sourceFolder = (!empty($currentFolder)?$currentFolder: $this->sessionData['mailbox']);
@ -3496,7 +3500,8 @@ class mail_bo
//error_log(__METHOD__.__LINE__.array2string($_folder).'/'.$this->icServer->getCurrentMailbox().'/'. $this->sessionData['mailbox']); //error_log(__METHOD__.__LINE__.array2string($_folder).'/'.$this->icServer->getCurrentMailbox().'/'. $this->sessionData['mailbox']);
// querying contents of body part // querying contents of body part
$uidsToFetch = new Horde_Imap_Client_Ids(); $uidsToFetch = new Horde_Imap_Client_Ids();
$uidsToFetch->add((array)$_uid); if (!(is_object($_uid) || is_array($_uid))) $_uid = (array)$_uid;
$uidsToFetch->add($_uid);
$fquery = new Horde_Imap_Client_Fetch_Query(); $fquery = new Horde_Imap_Client_Fetch_Query();
$fquery->bodyPart($_partID, array( $fquery->bodyPart($_partID, array(
@ -3986,7 +3991,8 @@ class mail_bo
//error_log(__METHOD__.__LINE__.":$_uid,$_partID,$decode,$_folder"); //error_log(__METHOD__.__LINE__.":$_uid,$_partID,$decode,$_folder");
if(empty($_partID)) { if(empty($_partID)) {
$uidsToFetch = new Horde_Imap_Client_Ids(); $uidsToFetch = new Horde_Imap_Client_Ids();
$uidsToFetch->add((array)$_uid); if (!(is_object($_uid) || is_array($_uid))) $_uid = (array)$_uid;
$uidsToFetch->add($_uid);
$fquery = new Horde_Imap_Client_Fetch_Query(); $fquery = new Horde_Imap_Client_Fetch_Query();
$envFields = new Horde_Mime_Headers(); $envFields = new Horde_Mime_Headers();
@ -4097,7 +4103,8 @@ class mail_bo
//error_log(__METHOD__.__LINE__.':'.$_uid.', '.$_partID.', '.$decode.', '.$preserveUnSeen.', '.$_folder); //error_log(__METHOD__.__LINE__.':'.$_uid.', '.$_partID.', '.$decode.', '.$preserveUnSeen.', '.$_folder);
if (empty($_folder)) $_folder = ($this->sessionData['mailbox']? $this->sessionData['mailbox'] : $this->icServer->getCurrentMailbox()); if (empty($_folder)) $_folder = ($this->sessionData['mailbox']? $this->sessionData['mailbox'] : $this->icServer->getCurrentMailbox());
$uidsToFetch = new Horde_Imap_Client_Ids(); $uidsToFetch = new Horde_Imap_Client_Ids();
$uidsToFetch->add((array)$_uid); if (!(is_object($_uid) || is_array($_uid))) $_uid = (array)$_uid;
$uidsToFetch->add($_uid);
$fquery = new Horde_Imap_Client_Fetch_Query(); $fquery = new Horde_Imap_Client_Fetch_Query();
$fquery->headerText(array('peek'=>$preserveUnSeen)); $fquery->headerText(array('peek'=>$preserveUnSeen));
@ -4153,7 +4160,8 @@ class mail_bo
return $rawHeaders[$this->icServer->ImapServerId][$_folder][$_uid][(empty($_partID)?'NIL':$_partID)]; return $rawHeaders[$this->icServer->ImapServerId][$_folder][$_uid][(empty($_partID)?'NIL':$_partID)];
} }
$uidsToFetch = new Horde_Imap_Client_Ids(); $uidsToFetch = new Horde_Imap_Client_Ids();
$uidsToFetch->add((array)$_uid); if (!(is_object($_uid) || is_array($_uid))) $_uid = (array)$_uid;
$uidsToFetch->add($_uid);
$fquery = new Horde_Imap_Client_Fetch_Query(); $fquery = new Horde_Imap_Client_Fetch_Query();
$fquery->headerText(array('peek'=>true)); $fquery->headerText(array('peek'=>true));
@ -4267,7 +4275,8 @@ class mail_bo
} }
$uidsToFetch = new Horde_Imap_Client_Ids(); $uidsToFetch = new Horde_Imap_Client_Ids();
$uidsToFetch->add((array)$_uid); if (!(is_object($_uid) || is_array($_uid))) $_uid = (array)$_uid;
$uidsToFetch->add($_uid);
$fquery = new Horde_Imap_Client_Fetch_Query(); $fquery = new Horde_Imap_Client_Fetch_Query();
$fquery->fullText(array('peek'=>true)); $fquery->fullText(array('peek'=>true));
@ -4297,7 +4306,8 @@ class mail_bo
} }
} }
$uidsToFetch = new Horde_Imap_Client_Ids(); $uidsToFetch = new Horde_Imap_Client_Ids();
$uidsToFetch->add((array)$_uid); if (!(is_object($_uid) || is_array($_uid))) $_uid = (array)$_uid;
$uidsToFetch->add($_uid);
$fquery = new Horde_Imap_Client_Fetch_Query(); $fquery = new Horde_Imap_Client_Fetch_Query();
$fquery->fullText(array('peek'=>true));//always do that as peek -> no seen flag set $fquery->fullText(array('peek'=>true));//always do that as peek -> no seen flag set
@ -4350,7 +4360,8 @@ class mail_bo
$_folder = ($this->sessionData['mailbox']? $this->sessionData['mailbox'] : $this->icServer->getCurrentMailbox()); $_folder = ($this->sessionData['mailbox']? $this->sessionData['mailbox'] : $this->icServer->getCurrentMailbox());
} }
$uidsToFetch = new Horde_Imap_Client_Ids(); $uidsToFetch = new Horde_Imap_Client_Ids();
$uidsToFetch->add((array)$_uid); if (!(is_object($_uid) || is_array($_uid))) $_uid = (array)$_uid;
$uidsToFetch->add($_uid);
try try
{ {
$_fquery = new Horde_Imap_Client_Fetch_Query(); $_fquery = new Horde_Imap_Client_Fetch_Query();
@ -4552,7 +4563,8 @@ class mail_bo
$_folder = ($this->sessionData['mailbox']? $this->sessionData['mailbox'] : $this->icServer->getCurrentMailbox()); $_folder = ($this->sessionData['mailbox']? $this->sessionData['mailbox'] : $this->icServer->getCurrentMailbox());
$uidsToFetch = new Horde_Imap_Client_Ids(); $uidsToFetch = new Horde_Imap_Client_Ids();
$uidsToFetch->add((array)$_uid); if (!(is_object($_uid) || is_array($_uid))) $_uid = (array)$_uid;
$uidsToFetch->add($_uid);
$fquery = new Horde_Imap_Client_Fetch_Query(); $fquery = new Horde_Imap_Client_Fetch_Query();
$fquery->structure(); $fquery->structure();

View File

@ -411,6 +411,7 @@ class mail_compose
try try
{ {
$_content['isDraft'] = 1; $_content['isDraft'] = 1;
$previouslyDrafted = $_content['lastdrafted'];
// save as draft // save as draft
$folder = $this->mail_bo->getDraftFolder(); $folder = $this->mail_bo->getDraftFolder();
$this->mail_bo->reopen($folder); $this->mail_bo->reopen($folder);
@ -425,14 +426,34 @@ class mail_compose
} }
// saving as draft, does not mean closing the message // saving as draft, does not mean closing the message
$messageUid = ($messageUid===true ? $uidNext : $messageUid); $messageUid = ($messageUid===true ? $uidNext : $messageUid);
if ($this->mail_bo->getMessageHeader($messageUid)) //error_log(__METHOD__.__LINE__.' (re)open drafted message with new UID: '.$messageUid.'/'.gettype($messageUid).' in folder:'.$folder);
if ($this->mail_bo->getMessageHeader($messageUid, '',false, false, $folder))
{ {
//error_log(__METHOD__.__LINE__.' (re)open drafted message with new UID: '.$messageUid.' in folder:'.$folder); $draft_id = mail_ui::createRowID($folder, $messageUid);
$draftContent = $this->bocompose->getDraftData($this->mail_bo->icServer, $folder, $messageUid); error_log(__METHOD__.__LINE__.' (re)open drafted message with new UID: '.$draft_id.'/'.$previouslyDrafted.' in folder:'.$folder);
if (isset($previouslyDrafted) && $previouslyDrafted!=$draft_id)
{
$dhA = mail_ui::splitRowID($previouslyDrafted);
$duid = $dhA['msgUID'];
$dmailbox = $dhA['folder'];
try
{
error_log(__METHOD__.__LINE__."->".print_r($duid,true).' folder:'.$dmailbox.' Method:'.'remove_immediately');
$this->mail_bo->deleteMessages($duid,$dmailbox,'remove_immediately');
}
catch (egw_exception $e)
{
$error = str_replace('"',"'",$e->getMessage());
error_log(__METHOD__.__LINE__.$error);
}
}
$_content['lastdrafted'] = $draft_id;
//$draftContent = $this->bocompose->getDraftData($this->mail_bo->icServer, $folder, $messageUid);
//$this->compose($draftContent,null,'to',true); //$this->compose($draftContent,null,'to',true);
//return true; //return true;
} }
} }
catch (egw_exception_wrong_userinput $e) catch (egw_exception_wrong_userinput $e)
{ {
@ -1254,6 +1275,9 @@ class mail_compose
$content['serverID'] = $this->mail_bo->profileID; $content['serverID'] = $this->mail_bo->profileID;
} }
$preserv['serverID'] = $content['serverID']; $preserv['serverID'] = $content['serverID'];
$preserv['lastdrafted'] = $content['lastdrafted'];
$preserv['processedmail_id'] = $content['processedmail_id'];
$preserv['mode'] = $content['mode'];
// convert it back to checkbox expectations // convert it back to checkbox expectations
if($content['mimeType'] == 'html') { if($content['mimeType'] == 'html') {
$content['mimeType']=1; $content['mimeType']=1;
@ -1312,7 +1336,8 @@ class mail_compose
case 'reply': case 'reply':
case 'reply_all': case 'reply_all':
$content = $this->getReplyData($from == 'reply' ? 'single' : 'all', $icServer, $folder, $msgUID, $part_id); $content = $this->getReplyData($from == 'reply' ? 'single' : 'all', $icServer, $folder, $msgUID, $part_id);
$content['processedmail_id'] = $mail_id;
$content['mode'] = 'reply';
$_focusElement = 'body'; $_focusElement = 'body';
$suppressSigOnTop = false; $suppressSigOnTop = false;
$isReply = true; $isReply = true;
@ -1328,6 +1353,8 @@ class mail_compose
$folder = $hA['folder']; $folder = $hA['folder'];
$content = $this->getForwardData($icServer, $folder, $msgUID, $part_id, $mode); $content = $this->getForwardData($icServer, $folder, $msgUID, $part_id, $mode);
} }
$content['processedmail_id'] = implode(',',$replyIds);
$content['mode'] = 'forward';
$isReply = ($mode?$mode=='inline':$this->preferencesArray['message_forwarding'] == 'inline'); $isReply = ($mode?$mode=='inline':$this->preferencesArray['message_forwarding'] == 'inline');
$suppressSigOnTop = false;// ($mode && $mode=='inline'?true:false);// may be a better solution $suppressSigOnTop = false;// ($mode && $mode=='inline'?true:false);// may be a better solution
$_focusElement = 'to'; $_focusElement = 'to';
@ -1625,9 +1652,10 @@ class mail_compose
//_debug_array($headers); exit; //_debug_array($headers); exit;
// check for Re: in subject header // check for Re: in subject header
$this->sessionData['subject'] = "[FWD] " . $mail_bo->decode_header($headers['SUBJECT']); $this->sessionData['subject'] = "[FWD] " . $mail_bo->decode_header($headers['SUBJECT']);
$this->sessionData['sourceFolder']=$_folder; // the three arrtibutes below are substituted by processedmail_id and mode
$this->sessionData['forwardFlag']='forwarded'; //$this->sessionData['sourceFolder']=$_folder;
$this->sessionData['forwardedUID']=$_uid; //$this->sessionData['forwardFlag']='forwarded';
//$this->sessionData['forwardedUID']=$_uid;
if ($this->preferencesArray['message_forwarding'] == 'asmail') { if ($this->preferencesArray['message_forwarding'] == 'asmail') {
$this->sessionData['mimeType'] = $this->preferencesArray['composeOptions']; $this->sessionData['mimeType'] = $this->preferencesArray['composeOptions'];
if($headers['SIZE']) if($headers['SIZE'])
@ -2271,6 +2299,33 @@ class mail_compose
$this->sessionData['mimeType'] = $_formData['mimeType']; $this->sessionData['mimeType'] = $_formData['mimeType'];
$this->sessionData['to_infolog'] = $_formData['to_infolog']; $this->sessionData['to_infolog'] = $_formData['to_infolog'];
$this->sessionData['to_tracker'] = $_formData['to_tracker']; $this->sessionData['to_tracker'] = $_formData['to_tracker'];
if (isset($_formData['lastdrafted']) && !empty($_formData['lastdrafted']))
{
$this->sessionData['lastdrafted'] = $_formData['lastdrafted'];
}
//error_log(__METHOD__.__LINE__.' Mode:'.$_formData['mode'].' PID:'.$_formData['processedmail_id']);
if (isset($_formData['mode']) && !empty($_formData['mode']))
{
if ($_formData['mode']=='forward' && !empty($_formData['processedmail_id']))
{
$this->sessionData['forwardFlag']='forwarded';
$_formData['processedmail_id'] = explode(',',$_formData['processedmail_id']);
$this->sessionData['uid']=array();
foreach ($_formData['processedmail_id'] as $k =>$rowid)
{
$fhA = mail_ui::splitRowID($rowid);
$this->sessionData['uid'][] = $fhA['msgUID'];
$this->sessionData['forwardedUID'][] = $fhA['msgUID'];
if (!empty($fhA['folder'])) $this->sessionData['sourceFolder'] = $fhA['folder'];
}
}
if ($_formData['mode']=='reply' && !empty($_formData['processedmail_id']))
{
$rhA = mail_ui::splitRowID($_formData['processedmail_id']);
$this->sessionData['uid'] = $rhA['msgUID'];
$this->sessionData['messageFolder'] = $rhA['folder'];
}
}
// if the body is empty, maybe someone pasted something with scripts, into the message body // if the body is empty, maybe someone pasted something with scripts, into the message body
// this should not happen anymore, unless you call send directly, since the check was introduced with the action command // this should not happen anymore, unless you call send directly, since the check was introduced with the action command
if(empty($this->sessionData['body'])) if(empty($this->sessionData['body']))
@ -2468,12 +2523,26 @@ class mail_compose
$lastDrafted = false; $lastDrafted = false;
if (isset($this->sessionData['lastDrafted'])) if (isset($this->sessionData['lastDrafted']))
{ {
$lastDrafted = $this->sessionData['lastDrafted']; $lastDrafted=array();
$dhA = mail_ui::splitRowID($this->sessionData['lastdrafted']);
$lastDrafted['uid'] = $dhA['msgUID'];
$lastDrafted['folder'] = $dhA['folder'];
if (isset($lastDrafted['uid']) && !empty($lastDrafted['uid'])) $lastDrafted['uid']=trim($lastDrafted['uid']); if (isset($lastDrafted['uid']) && !empty($lastDrafted['uid'])) $lastDrafted['uid']=trim($lastDrafted['uid']);
// manually drafted, do not delete
if (isset($lastDrafted['uid']) && (empty($lastDrafted['uid']) || $lastDrafted['uid'] == $this->sessionData['uid'])) $lastDrafted=false; if (isset($lastDrafted['uid']) && (empty($lastDrafted['uid']) || $lastDrafted['uid'] == $this->sessionData['uid'])) $lastDrafted=false;
//error_log(__METHOD__.__LINE__.array2string($lastDrafted)); //error_log(__METHOD__.__LINE__.array2string($lastDrafted));
} }
if ($lastDrafted && is_array($lastDrafted) && $mail_bo->isDraftFolder($lastDrafted['folder'])) $mail_bo->deleteMessages((array)$lastDrafted['uid'],$lastDrafted['folder'],"remove_immediately"); if ($lastDrafted && is_array($lastDrafted) && $mail_bo->isDraftFolder($lastDrafted['folder']))
{
try
{
$mail_bo->deleteMessages($lastDrafted['uid'],$lastDrafted['folder'],'remove_immediately');
}
catch (egw_exception $e)
{
$error = str_replace('"',"'",$e->getMessage());
}
}
unset($this->sessionData['lastDrafted']); unset($this->sessionData['lastDrafted']);
//error_log("handling draft messages, flagging and such"); //error_log("handling draft messages, flagging and such");
@ -2481,17 +2550,19 @@ class mail_compose
|| (isset($this->sessionData['forwardFlag']) && isset($this->sessionData['sourceFolder']))) { || (isset($this->sessionData['forwardFlag']) && isset($this->sessionData['sourceFolder']))) {
// mark message as answered // mark message as answered
$mail_bo->openConnection(); $mail_bo->openConnection();
$mail_bo->reopen($this->sessionData['messageFolder']); $mail_bo->reopen(($this->sessionData['messageFolder']?$this->sessionData['messageFolder']:$this->sessionData['sourceFolder']));
// if the draft folder is a starting part of the messages folder, the draft message will be deleted after the send // if the draft folder is a starting part of the messages folder, the draft message will be deleted after the send
// unless your templatefolder is a subfolder of your draftfolder, and the message is in there // unless your templatefolder is a subfolder of your draftfolder, and the message is in there
if ($mail_bo->isDraftFolder($this->sessionData['messageFolder']) && !$mail_bo->isTemplateFolder($this->sessionData['messageFolder'])) if ($mail_bo->isDraftFolder($this->sessionData['messageFolder']) && !$mail_bo->isTemplateFolder($this->sessionData['messageFolder']))
{ {
$mail_bo->deleteMessages(array($this->sessionData['uid']),$this->sessionData['messageFolder']); $mail_bo->deleteMessages(array($this->sessionData['uid']),$this->sessionData['messageFolder']);
} else { } else {
$mail_bo->flagMessages("answered", array($this->sessionData['uid'])); $mail_bo->flagMessages("answered", $this->sessionData['uid'],($this->sessionData['messageFolder']?$this->sessionData['messageFolder']:$this->sessionData['sourceFolder']));
//error_log(__METHOD__.__LINE__.array2string(array_keys($this->sessionData)).':'.array2string($this->sessionData['forwardedUID']).' F:'.$this->sessionData['sourceFolder']);
if (array_key_exists('forwardFlag',$this->sessionData) && $this->sessionData['forwardFlag']=='forwarded') if (array_key_exists('forwardFlag',$this->sessionData) && $this->sessionData['forwardFlag']=='forwarded')
{ {
$mail_bo->flagMessages("forwarded", array($this->sessionData['forwardedUID'])); //error_log(__METHOD__.__LINE__.':'.array2string($this->sessionData['forwardedUID']).' F:'.$this->sessionData['sourceFolder']);
$mail_bo->flagMessages("forwarded", $this->sessionData['forwardedUID'],$this->sessionData['sourceFolder']);
} }
} }
//$mail_bo->closeConnection(); //$mail_bo->closeConnection();

View File

@ -57,6 +57,9 @@
</menulist> </menulist>
<textbox class="mail-index_quotaDisplayNone" readonly="true" id="composeID"/> <textbox class="mail-index_quotaDisplayNone" readonly="true" id="composeID"/>
<textbox class="mail-index_quotaDisplayNone" readonly="true" id="serverID"/> <textbox class="mail-index_quotaDisplayNone" readonly="true" id="serverID"/>
<textbox class="mail-index_quotaDisplayNone" readonly="true" id="processedmail_id"/>
<textbox class="mail-index_quotaDisplayNone" readonly="true" id="mode"/>
<textbox class="mail-index_quotaDisplayNone" readonly="true" id="lastdrafted"/>
</hbox> </hbox>
<taglist-email id="replyto" empty_label="Reply to" width="100%" maxSelection="1" onclick="app.mail.address_click"/> <taglist-email id="replyto" empty_label="Reply to" width="100%" maxSelection="1" onclick="app.mail.address_click"/>
<description/> <description/>