From: stekkel Date: Wed, 2 Nov 2005 20:45:00 +0000 (+0000) Subject: Update the cached flag info in the mailbox cache in case of an reply (set X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=8780308f86c35bb6fb54a713685573f7dd6cc23e;p=squirrelmail.git Update the cached flag info in the mailbox cache in case of an reply (set the reply flag in the cache) git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@10232 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- diff --git a/src/compose.php b/src/compose.php index aaf4592e..f2b5a4b4 100644 --- a/src/compose.php +++ b/src/compose.php @@ -82,6 +82,7 @@ if ( sqgetGlobalVar('startMessage',$startMessage) ) { $startMessage = 1; } + /** POST VARS */ sqgetGlobalVar('sigappend', $sigappend, SQ_POST); sqgetGlobalVar('from_htmladdr_search', $from_htmladdr_search, SQ_POST); @@ -96,6 +97,12 @@ if ( sqgetGlobalVar('return', $temp, SQ_POST) ) { /** GET VARS */ sqgetGlobalVar('attachedmessages', $attachedmessages, SQ_GET); +if ( sqgetGlobalVar('account', $temp, SQ_GET) ) { + $iAccount = (int) $temp; +} else { + $iAccount = 0; +} + /** get smaction */ if ( !sqgetGlobalVar('smaction',$action) ) @@ -1657,12 +1664,29 @@ function deliverMessage($composeMessage, $draft=false) { sqimap_append_done ($imap_stream, $sent_folder); unset ($imap_deliver); } - global $passed_id, $mailbox, $action; + + global $passed_id, $mailbox, $action, $what, $iAccount,$startMessage; + ClearAttachments($composeMessage); if ($action == 'reply' || $action == 'reply_all') { - sqimap_mailbox_select ($imap_stream, $mailbox); - sqimap_toggle_flag($imap_stream, array($passed_id), '\\Answered', true, false); + $aMailbox = sqm_api_mailbox_select($imap_stream, $iAccount, $mailbox,array('setindex' => $what, 'offset' => $startMessage),array()); + //sqimap_mailbox_select ($imap_stream, $mailbox); + $aUpdatedMsgs = sqimap_toggle_flag($imap_stream, array($passed_id), '\\Answered', true, false); + if (isset($aUpdatedMsgs[$iUid]['FLAGS'])) { + /** + * Only update the cached headers if the header is + * cached. + */ + if (isset($aMailbox['MSG_HEADERS'][$iUid])) { + $aMailbox['MSG_HEADERS'][$iUid]['FLAGS'] = $aMsg['FLAGS']; + } + } } + /** + * Write mailbox with updated seen flag information back to cache. + */ + $mailbox_cache[$iAccount.'_'.$aMailbox['NAME']] = $aMailbox; + sqsession_register($mailbox_cache,'mailbox_cache'); sqimap_logout($imap_stream); } return $succes;