* This contains functions that display mailbox information, such as the
* table row that has sender, date, subject, etc...
*
- * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @copyright © 1999-2007 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
// $onclick, $link_extra, $title, and so forth)
// plugins are responsible for sharing nicely (such as for
// setting the target, etc)
- do_hook('subject_link', $temp=array(&$iPageOffset, &$sSearch, &$aSearch));
+ do_hook('subject_link', $temp=array(&$iPageOffset, &$sSearch, &$aSearch, $aMsg));
}
$value = (trim($value)) ? $value : _("(no subject)");
/* add thread indentation */
$thread_name = _("Thread View");
$newsort = $aMailbox['SORT'] + SQSORT_THREAD;
}
- $thread_link_str = '<small>[<a href="' . $baseurl . '&srt='
- . $newsort . '&startMessage=1">' . $thread_name
- . '</a>]</small>';
+ $thread_link_uri = $baseurl . '&srt=' . $newsort
+ . '&startMessage=1';
} else {
- $thread_link_str ='';
+ $thread_link_uri ='';
+ $thread_name = '';
}
$sort = $aMailbox['SORT'];
$aTemplate['trash_folder'] = $trash_folder;
$aTemplate['sent_folder'] = $sent_folder;
$aTemplate['draft_folder'] = $draft_folder;
- $aTemplate['thread_link_str'] = $thread_link_str;
+ $aTemplate['thread_link_uri'] = $thread_link_uri;
+ $aTemplate['thread_name'] = $thread_name;
$aTemplate['php_self'] = str_replace('&','&',$php_self);
$aTemplate['mailbox'] = $sMailbox;
//FIXME: javascript_on is always assigned to the template object in places like init.php; is there some reason to reassign it here? is there some chance that it was changed? if not, please remove this line!
*/
function handleMessageListForm($imapConnection,&$aMailbox,$sButton='',$aUid = array()) {
/* incoming formdata */
- $sButton = (sqgetGlobalVar('moveButton', $sTmp, SQ_POST)) ? 'move' : $sButton;
- $sButton = (sqgetGlobalVar('copyButton', $sTmp, SQ_POST)) ? 'copy' : $sButton;
- $sButton = (sqgetGlobalVar('expungeButton', $sTmp, SQ_POST)) ? 'expunge' : $sButton;
- $sButton = (sqgetGlobalVar('forward', $sTmp, SQ_POST)) ? 'forward' : $sButton;
- $sButton = (sqgetGlobalVar('delete', $sTmp, SQ_POST)) ? 'setDeleted' : $sButton;
- $sButton = (sqgetGlobalVar('undeleteButton', $sTmp, SQ_POST)) ? 'unsetDeleted' : $sButton;
- $sButton = (sqgetGlobalVar('markRead', $sTmp, SQ_POST)) ? 'setSeen' : $sButton;
- $sButton = (sqgetGlobalVar('markUnread', $sTmp, SQ_POST)) ? 'unsetSeen' : $sButton;
- $sButton = (sqgetGlobalVar('markFlagged', $sTmp, SQ_POST)) ? 'setFlagged' : $sButton;
- $sButton = (sqgetGlobalVar('markUnflagged', $sTmp, SQ_POST)) ? 'unsetFlagged' : $sButton;
- sqgetGlobalVar('targetMailbox', $targetMailbox, SQ_POST);
- sqgetGlobalVar('bypass_trash', $bypass_trash, SQ_POST);
- sqgetGlobalVar('msg', $msg, SQ_POST);
- if (sqgetGlobalVar('account', $iAccount, SQ_POST) === false) {
+ $sButton = (sqgetGlobalVar('moveButton', $sTmp, SQ_FORM)) ? 'move' : $sButton;
+ $sButton = (sqgetGlobalVar('copyButton', $sTmp, SQ_FORM)) ? 'copy' : $sButton;
+ $sButton = (sqgetGlobalVar('expungeButton', $sTmp, SQ_FORM)) ? 'expunge' : $sButton;
+ $sButton = (sqgetGlobalVar('forward', $sTmp, SQ_FORM)) ? 'forward' : $sButton;
+ $sButton = (sqgetGlobalVar('delete', $sTmp, SQ_FORM)) ? 'setDeleted' : $sButton;
+ $sButton = (sqgetGlobalVar('undeleteButton', $sTmp, SQ_FORM)) ? 'unsetDeleted' : $sButton;
+ $sButton = (sqgetGlobalVar('markRead', $sTmp, SQ_FORM)) ? 'setSeen' : $sButton;
+ $sButton = (sqgetGlobalVar('markUnread', $sTmp, SQ_FORM)) ? 'unsetSeen' : $sButton;
+ $sButton = (sqgetGlobalVar('markFlagged', $sTmp, SQ_FORM)) ? 'setFlagged' : $sButton;
+ $sButton = (sqgetGlobalVar('markUnflagged', $sTmp, SQ_FORM)) ? 'unsetFlagged' : $sButton;
+ sqgetGlobalVar('targetMailbox', $targetMailbox, SQ_FORM);
+ sqgetGlobalVar('bypass_trash', $bypass_trash, SQ_FORM);
+ sqgetGlobalVar('msg', $msg, SQ_FORM);
+ if (sqgetGlobalVar('account', $iAccount, SQ_FORM) === false) {
$iAccount = 0;
}
$sError = '';
break;
}
/**
- * Updates messages is an array containing the result of the untagged
+ * $aUpdatedMsgs is an array containing the result of the untagged
* fetch responses send by the imap server due to a flag change. That
- * response is parsed in a array with msg arrays by the parseFetch function
+ * response is parsed in an array with msg arrays by the parseFetch function
*/
if ($aUpdatedMsgs) {
// Update the message headers cache
if (isset($aMailbox['MSG_HEADERS'][$iUid])) {
$aMailbox['MSG_HEADERS'][$iUid]['FLAGS'] = $aMsg['FLAGS'];
}
+ /**
+ * Also update flags in message object
+ */
+//FIXME: WHY are we keeping flags in TWO places?!? This is error-prone and some core code uses the is_xxxx message object values while other code uses the flags array above. That's a mess.
+ if (isset($aMailbox['MSG_HEADERS'][$iUid]['MESSAGE_OBJECT'])) {
+ $message = $aMailbox['MSG_HEADERS'][$iUid]['MESSAGE_OBJECT'];
+ $message->is_seen = false;
+ $message->is_answered = false;
+ $message->is_deleted = false;
+ $message->is_flagged = false;
+ $message->is_mdnsent = false;
+ foreach ($aMsg['FLAGS'] as $flag => $value) {
+ if (strtolower($flag) == '\\seen' && $value)
+ $message->is_seen = true;
+ else if (strtolower($flag) == '\\answered' && $value)
+ $message->is_answered = true;
+ else if (strtolower($flag) == '\\deleted' && $value)
+ $message->is_deleted = true;
+ else if (strtolower($flag) == '\\flagged' && $value)
+ $message->is_flagged = true;
+ else if (strtolower($flag) == '$mdnsent' && $value)
+ $message->is_mdnsent = true;
+ }
+ $aMailbox['MSG_HEADERS'][$iUid]['MESSAGE_OBJECT'] = $message;
+ }
/**
* Count the messages with the \Delete flag set so we can determine
* if the number of expunged messages equals the number of flagged