thomascube
2011-12-16 f94e442469deca30b39f3fa08aade83cbd0ede70
program/steps/mail/compose.inc
@@ -56,7 +56,7 @@
  $_SESSION['compose_data_'.$COMPOSE_ID] = array(
    'id'      => $COMPOSE_ID,
    'param'   => request2param(RCUBE_INPUT_GET),
    'mailbox' => $IMAP->get_mailbox_name(),
    'mailbox' => $RCMAIL->imap->get_mailbox_name(),
  );
  $COMPOSE =& $_SESSION['compose_data_'.$COMPOSE_ID];
@@ -124,7 +124,7 @@
$OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubjectwarning', 'cancel',
    'nobodywarning', 'notsentwarning', 'notuploadedwarning', 'savingmessage', 'sendingmessage', 
    'messagesaved', 'converting', 'editorwarning', 'searching', 'uploading', 'uploadingmany',
    'fileuploaderror');
    'fileuploaderror', 'sendmessage');
$OUTPUT->set_env('compose_id', $COMPOSE['id']);
@@ -134,10 +134,19 @@
  $OUTPUT->set_env('draft_autosave', $CONFIG['draft_autosave']);
}
// set current mailbox in client environment
$OUTPUT->set_env('mailbox', $IMAP->get_mailbox_name());
$OUTPUT->set_env('mailbox', $RCMAIL->imap->get_mailbox_name());
$OUTPUT->set_env('sig_above', $RCMAIL->config->get('sig_above', false));
$OUTPUT->set_env('top_posting', $RCMAIL->config->get('top_posting', false));
$OUTPUT->set_env('recipients_separator', trim($RCMAIL->config->get('recipients_separator', ',')));
// use jquery UI for showing prompt() dialogs
$RCMAIL->plugins->load_plugin('jqueryui');
// default font for HTML editor
$font = rcube_fontdefs($RCMAIL->config->get('default_font', 'Verdana'));
if ($font && !is_array($font)) {
  $OUTPUT->set_env('default_font', $font);
}
// get reference message and set compose mode
if ($msg_uid = $COMPOSE['param']['draft_uid']) {
@@ -173,10 +182,10 @@
  // make sure message is marked as read
  if ($MESSAGE && $MESSAGE->headers && empty($MESSAGE->headers->flags['SEEN']))
    $IMAP->set_flag($msg_uid, 'SEEN');
    $RCMAIL->imap->set_flag($msg_uid, 'SEEN');
  if (!empty($MESSAGE->headers->charset))
    $IMAP->set_charset($MESSAGE->headers->charset);
    $RCMAIL->imap->set_charset($MESSAGE->headers->charset);
  if ($compose_mode == RCUBE_COMPOSE_REPLY)
  {
@@ -236,7 +245,7 @@
$MESSAGE->compose = array();
// get user's identities
$MESSAGE->identities = $USER->list_identities();
$MESSAGE->identities = $RCMAIL->user->list_identities();
if (count($MESSAGE->identities))
{
  foreach ($MESSAGE->identities as $idx => $ident) {
@@ -262,7 +271,7 @@
  // extract all recipients of the reply-message
  if (is_object($MESSAGE->headers) && in_array($compose_mode, array(RCUBE_COMPOSE_REPLY, RCUBE_COMPOSE_FORWARD)))
  {
    $a_to = $IMAP->decode_address_list($MESSAGE->headers->to);
    $a_to = $RCMAIL->imap->decode_address_list($MESSAGE->headers->to);
    foreach ($a_to as $addr) {
      if (!empty($addr['mailto'])) {
        $a_recipients[] = strtolower($addr['mailto']);
@@ -271,7 +280,7 @@
    }
    if (!empty($MESSAGE->headers->cc)) {
      $a_cc = $IMAP->decode_address_list($MESSAGE->headers->cc);
      $a_cc = $RCMAIL->imap->decode_address_list($MESSAGE->headers->cc);
      foreach ($a_cc as $addr) {
        if (!empty($addr['mailto'])) {
          $a_recipients[] = strtolower($addr['mailto']);
@@ -346,10 +355,14 @@
  // we have a set of recipients stored is session
  if ($header == 'to' && ($mailto_id = $COMPOSE['param']['mailto'])
      && $COMPOSE[$mailto_id]
      && $_SESSION['mailto'][$mailto_id]
  ) {
    $fvalue = urldecode($COMPOSE[$mailto_id]);
    $fvalue = urldecode($_SESSION['mailto'][$mailto_id]);
    $decode_header = false;
    // make session to not grow up too much
    unset($_SESSION['mailto'][$mailto_id]);
    $COMPOSE['param']['to'] = $fvalue;
  }
  else if (!empty($_POST['_'.$header])) {
    $fvalue = get_input_value('_'.$header, RCUBE_INPUT_POST, TRUE);
@@ -410,7 +423,7 @@
  // split recipients and put them back together in a unique way
  if (!empty($fvalue) && in_array($header, array('to', 'cc', 'bcc'))) {
    $to_addresses = $IMAP->decode_address_list($fvalue, null, $decode_header);
    $to_addresses = $RCMAIL->imap->decode_address_list($fvalue, null, $decode_header);
    $fvalue = array();
    foreach ($to_addresses as $addr_part) {
@@ -1220,16 +1233,16 @@
    else
      $button = Q(rcube_label('delete'));
    foreach ($COMPOSE['attachments'] as $id => $a_prop)
    {
    foreach ($COMPOSE['attachments'] as $id => $a_prop) {
      if (empty($a_prop))
        continue;
      $out .= html::tag('li', array('id' => 'rcmfile'.$id),
      $out .= html::tag('li', array('id' => 'rcmfile'.$id, 'class' => rcmail_filetype2classname($a_prop['mimetype'], $a_prop['name'])),
        html::a(array(
            'href' => "#delete",
            'title' => rcube_label('delete'),
            'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%s', this)", JS_OBJECT_NAME, $id)),
            'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%s', this)", JS_OBJECT_NAME, $id),
            'class' => 'delete'),
          $button) . Q($a_prop['name']));
        
        $jslist['rcmfile'.$id] = array('name' => $a_prop['name'], 'complete' => true, 'mimetype' => $a_prop['mimetype']);
@@ -1254,9 +1267,8 @@
{
  global $RCMAIL, $OUTPUT;
  // add ID if not given
  if (!$attrib['id'])
    $attrib['id'] = 'rcmUploadbox';
  // set defaults
  $attrib += array('id' => 'rcmUploadbox', 'buttons' => 'yes');
  // Get filesize, enable upload progress bar
  $max_filesize = rcube_upload_init();
@@ -1267,14 +1279,14 @@
    $OUTPUT->form_tag(array('name' => 'uploadform', 'method' => 'post', 'enctype' => 'multipart/form-data'),
      html::div(null, rcmail_compose_attachment_field(array('size' => $attrib['attachmentfieldsize']))) .
      html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) .
      html::div('buttons',
      (get_boolean($attrib['buttons']) ? html::div('buttons',
        $button->show(rcube_label('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' .
        $button->show(rcube_label('upload'), array('class' => 'button mainaction', 'onclick' => JS_OBJECT_NAME . ".command('send-attachment', this.form)"))
      )
      ) : '')
    )
  );
  $OUTPUT->add_gui_object('uploadbox', $attrib['id']);
  $OUTPUT->add_gui_object('uploadform', $attrib['id']);
  return $out;
}
@@ -1419,18 +1431,18 @@
function rcmail_check_sent_folder($folder, $create=false)
{
  global $IMAP;
  global $RCMAIL;
  if ($IMAP->mailbox_exists($folder, true)) {
  if ($RCMAIL->imap->mailbox_exists($folder, true)) {
    return true;
  }
  // folder may exist but isn't subscribed (#1485241)
  if ($create) {
    if (!$IMAP->mailbox_exists($folder))
      return $IMAP->create_mailbox($folder, true);
    if (!$RCMAIL->imap->mailbox_exists($folder))
      return $RCMAIL->imap->create_mailbox($folder, true);
    else
      return $IMAP->subscribe($folder);
      return $RCMAIL->imap->subscribe($folder);
  }
  return false;