/**
* compose.php
*
- * Copyright (c) 1999-2005 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
* This code sends a mail.
*
* There are 4 modes of operation:
* - Send mail
* - Save As Draft
*
+ * @copyright © 1999-2005 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
*/
sqgetGlobalVar('ent_num',$ent_num);
sqgetGlobalVar('saved_draft',$saved_draft);
sqgetGlobalVar('delete_draft',$delete_draft);
-sqgetGlobalVar('startMessage',$startMessage);
+if ( sqgetGlobalVar('startMessage',$startMessage) ) {
+ $startMessage = (int)$startMessage;
+} else {
+ $startMessage = 1;
+}
+
/** POST VARS */
sqgetGlobalVar('sigappend', $sigappend, 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) )
function getReplyCitation($orig_from, $orig_date) {
global $reply_citation_style, $reply_citation_start, $reply_citation_end;
- // FIXME: why object is rewritten with string.
if (!is_object($orig_from)) {
- $orig_from = '';
+ $sOrig_from = '';
} else {
- $orig_from = decodeHeader($orig_from->getAddress(false),false,false,true);
+ $sOrig_from = decodeHeader($orig_from->getAddress(false),false,false,true);
}
// $from = decodeHeader($orig_header->getAddr_s('from',"\n$indent"),false,false);
}
/* Make sure our final value isn't an empty string. */
- if ($orig_from == '') {
+ if ($sOrig_from == '') {
return '';
}
/**
* To translators: %s is for author's name
*/
- $full_reply_citation = sprintf(_("%s wrote:"),$orig_from);
+ $full_reply_citation = sprintf(_("%s wrote:"),$sOrig_from);
break;
case 'quote_who':
// FIXME: do we have to translate xml formating?
$start = '<' . _("quote") . ' ' . _("who") . '="';
$end = '">';
- $full_reply_citation = $start . $orig_from . $end;
+ $full_reply_citation = $start . $sOrig_from . $end;
break;
case 'date_time_author':
/**
* If you have to put author's name in front of date string, check comments about
* argument swapping at http://www.php.net/sprintf
*/
- $full_reply_citation = sprintf(_("On %s, %s wrote:"), getLongDateString($orig_date), $orig_from);
+ $full_reply_citation = sprintf(_("On %s, %s wrote:"), getLongDateString($orig_date), $sOrig_from);
break;
case 'user-defined':
$start = $reply_citation_start .
($reply_citation_start == '' ? '' : ' ');
$end = $reply_citation_end;
- $full_reply_citation = $start . $orig_from . $end;
+ $full_reply_citation = $start . $sOrig_from . $end;
break;
default:
return '';
echo ' <br><br><center><a href="' . $location
. '/compose.php?saved_sent=yes&session=' . $composesession . '">'
. _("Return") . '</a></center>';
- }
+ }
exit();
} else {
if ( !isset($pageheader_sent) || !$pageheader_sent ) {
. '/right_main.php?mailbox=' . urlencode($draft_folder)
. '&startMessage=1&note=' . urlencode($draft_message) .'">'
. _("Return") . '</a></center>';
- }
+ }
exit();
}
}
}
}
+ // charset encoding in compose form stuff
if (isset($body_part_entity->header->parameters['charset'])) {
$actual = $body_part_entity->header->parameters['charset'];
} else {
if ( $actual && is_conversion_safe($actual) && $actual != $default_charset){
$bodypart = charset_convert($actual,$bodypart,$default_charset,false);
}
+ // end of charset encoding in compose
$body .= $bodypart;
}
$mailprio, $compose_new_win, $saved_draft, $mail_sent, $sig_first,
$username, $compose_messages, $composesession, $default_charset;
+ if (checkForJavascript()) {
+ $onfocus = ' onfocus="alreadyFocused=true;"';
+ $onfocus_array = array('onfocus' => 'alreadyFocused=true;');
+ }
+ else {
+ $onfocus = '';
+ $onfocus_array = array();
+ }
$composeMessage = $compose_messages[$session];
if ($values) {
if ($mail_sent == 'yes') {
echo '<br /><center><b>'. _("Your Message has been sent.").'</center></b>';
}
- echo '<table align="center" cellspacing="0" border="0">' . "\n";
if ($compose_new_win == '1') {
echo '<table align="center" bgcolor="'.$color[0].'" width="100%" border="0">'."\n" .
' <tr><td></td>'.html_tag( 'td', '', 'right' ).
'<input type="button" name="Close" onclick="return self.close()" value="'.
_("Close").'" /></td></tr>'."\n";
+ } else {
+ echo '<table align="center" cellspacing="0" border="0">' . "\n";
}
if ($location_of_buttons == 'top') {
showComposeButtonRow();
html_tag( 'td', '', 'right', $color[4], 'width="10%"' ) .
_("To") . ':</td>' . "\n" .
html_tag( 'td', '', 'left', $color[4], 'width="90%"' ) .
- addInput('send_to', $send_to, 60). '<br />' . "\n" .
+ addInput('send_to', $send_to, 60, 0, $onfocus_array). '<br />' . "\n" .
' </td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
html_tag( 'td', '', 'right', $color[4] ) .
_("Cc") . ':</td>' . "\n" .
html_tag( 'td', '', 'left', $color[4] ) .
- addInput('send_to_cc', $send_to_cc, 60). '<br />' . "\n" .
+ addInput('send_to_cc', $send_to_cc, 60, 0, $onfocus_array). '<br />' . "\n" .
' </td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
html_tag( 'td', '', 'right', $color[4] ) .
_("Bcc") . ':</td>' . "\n" .
html_tag( 'td', '', 'left', $color[4] ) .
- addInput('send_to_bcc', $send_to_bcc, 60).'<br />' . "\n" .
+ addInput('send_to_bcc', $send_to_bcc, 60, 0, $onfocus_array).'<br />' . "\n" .
' </td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
html_tag( 'td', '', 'right', $color[4] ) .
_("Subject") . ':</td>' . "\n" .
html_tag( 'td', '', 'left', $color[4] ) . "\n";
- echo ' '.addInput('subject', $subject, 60).
+ echo ' '.addInput('subject', $subject, 60, 0, $onfocus_array).
' </td>' . "\n" .
' </tr>' . "\n\n";
echo ' <tr>' . "\n" .
' <td bgcolor="' . $color[0] . '" colspan="2" align="center">' . "\n" .
' <textarea name="body" id="body" rows="' . (int)$editor_height .
- '" cols="' . (int)$editor_size . '" wrap="virtual">';
+ '" cols="' . (int)$editor_size . '" wrap="virtual"' . $onfocus . '>';
}
else {
echo ' <tr>' . "\n" .
' <td bgcolor="' . $color[4] . '" colspan="2">' . "\n" .
' <textarea name="body" id="body" rows="' . (int)$editor_height .
- '" cols="' . (int)$editor_size . '" wrap="virtual">';
+ '" cols="' . (int)$editor_size . '" wrap="virtual"' . $onfocus . '>';
}
if ($use_signature == true && $newmail == true && !isset($from_htmladdr_search)) {
' </tr>' . "\n";
} // End of file_uploads if-block
/* End of attachment code */
- if ($compose_new_win == '1') {
- echo '</table>'."\n";
- }
-
echo '</table>' . "\n" .
addHidden('username', $username).
addHidden('smaction', $action).
function saveAttachedFiles($session) {
global $_FILES, $attachment_dir, $attachments, $username,
$data_dir, $compose_messages;
+
/* get out of here if no file was attached at all */
if (! is_uploaded_file($_FILES['attachfile']['tmp_name']) ) {
return true;
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[$passed_id]['FLAGS'])) {
+ /**
+ * Only update the cached headers if the header is
+ * cached.
+ */
+ if (isset($aMailbox['MSG_HEADERS'][$passed_id])) {
+ $aMailbox['MSG_HEADERS'][$passed_id]['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);
}