Aleksander Machniak
2013-10-30 691cbc276d06fd3e4827e8b650471b243cbc6ff4
Fix archive action for all messages in a folder (#1489405)
2 files modified
22 ■■■■ changed files
plugins/archive/archive.js 12 ●●●● patch | view | raw | blame | history
plugins/archive/archive.php 10 ●●●●● patch | view | raw | blame | history
plugins/archive/archive.js
@@ -1,6 +1,6 @@
/*
 * Archive plugin script
 * @version 2.0
 * @version 2.1
 */
function rcmail_archive(prop)
@@ -15,15 +15,7 @@
    }
    else {
      // let the server sort the messages to the according subfolders
      var post_data = { _uid: rcmail.env.uid ? rcmail.env.uid : rcmail.message_list.get_selection().join(','), _mbox: rcmail.env.mailbox };
      if (rcmail.env.display_next && rcmail.env.next_uid)
        post_data._next_uid = rcmail.env.next_uid;
      if (rcmail.env.action)
        post_data._from = rcmail.env.action;
      rcmail.http_post('plugin.move2archive', post_data);
      rcmail.http_post('plugin.move2archive', rcmail.selection_post_data());
    }
  }
}
plugins/archive/archive.php
@@ -121,8 +121,16 @@
    $storage->set_folder(($current_mbox = rcube_utils::get_input_value('_mbox', RCUBE_INPUT_POST)));
    $result  = array('reload' => false, 'update' => false, 'errors' => array());
    $uids    = explode(',', rcube_utils::get_input_value('_uid', RCUBE_INPUT_POST));
    $folders = array();
    $uids    = rcube_utils::get_input_value('_uid', RCUBE_INPUT_POST);
    if ($uids == '*') {
      $index = $storage->index(null, rcmail_sort_column(), rcmail_sort_order());
      $uids  = $index->get();
    }
    else {
      $uids = explode(',', $uids);
    }
    foreach ($uids as $uid) {
      if (!$archive_folder || !($message = $rcmail->storage->get_message($uid))) {