Thomas Bruederli
2014-04-08 aafbe8efdca6dfef736e623dd5da83d64ae10aef
Fix forwarding all ('*') messages of a search set
2 files modified
11 ■■■■ changed files
program/js/app.js 2 ●●● patch | view | raw | blame | history
program/steps/mail/compose.inc 9 ●●●● patch | view | raw | blame | history
program/js/app.js
@@ -1113,7 +1113,7 @@
      case 'forward':
        var uids = this.env.uid ? [this.env.uid] : (this.message_list ? this.message_list.get_selection() : []);
        if (uids.length) {
          url = { _forward_uid: this.uids_to_list(uids), _mbox: this.env.mailbox };
          url = { _forward_uid: this.uids_to_list(uids), _mbox: this.env.mailbox, _search: this.env.search_request };
          if (command == 'forward-attachment' || (!props && this.env.forward_attachment) || uids.length > 1)
            url._attachment = 1;
          this.open_compose_step(url);
program/steps/mail/compose.inc
@@ -463,6 +463,11 @@
        }
    }
    // resolve _forward_uid=* to an absolute list of messages from a search result
    if ($COMPOSE['param']['forward_uid'] == '*' && is_object($_SESSION['search'][1])) {
        $COMPOSE['param']['forward_uid'] = $_SESSION['search'][1]->get();
    }
    // clean HTML message body which can be submitted by URL
    if (!empty($COMPOSE['param']['body'])) {
        $COMPOSE['param']['body'] = rcmail_wash_html($COMPOSE['param']['body'], array('safe' => false, 'inline_html' => true), array());
@@ -1259,10 +1264,10 @@
        $index = $storage->index(null, rcmail_sort_column(), rcmail_sort_order());
        $COMPOSE['forward_uid'] = $index->get();
    }
    else if (strpos($COMPOSE['forward_uid'], ':')) {
    else if (!is_array($COMPOSE['forward_uid']) && strpos($COMPOSE['forward_uid'], ':')) {
        $COMPOSE['forward_uid'] = rcube_imap_generic::uncompressMessageSet($COMPOSE['forward_uid']);
    }
    else {
    else if (is_string($COMPOSE['forward_uid'])) {
        $COMPOSE['forward_uid'] = explode(',', $COMPOSE['forward_uid']);
    }