Aleksander Machniak
2013-12-31 f5d2eef55c89b7f1a5549704705c25fd7f0c0185
program/steps/mail/mark.inc
@@ -4,7 +4,7 @@
 | program/steps/mail/mark.inc                                           |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2005-2009, The Roundcube Dev Team                       |
 | Copyright (C) 2005-2013, The Roundcube Dev Team                       |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
@@ -19,8 +19,13 @@
*/
// only process ajax requests
if (!$OUTPUT->ajax_call)
if (!$OUTPUT->ajax_call) {
  return;
}
$threading    = (bool) $RCMAIL->storage->get_threading();
$skip_deleted = (bool) $RCMAIL->config->get('skip_deleted');
$read_deleted = (bool) $RCMAIL->config->get('read_when_deleted');
$a_flags_map = array(
  'undelete' => 'UNDELETED',
@@ -28,15 +33,15 @@
  'read' => 'SEEN',
  'unread' => 'UNSEEN',
  'flagged' => 'FLAGGED',
  'unflagged' => 'UNFLAGGED');
    'unflagged' => 'UNFLAGGED',
);
$threading = (bool) $RCMAIL->storage->get_threading();
if (($uids = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST)) && ($flag = rcube_utils::get_input_value('_flag', rcube_utils::INPUT_POST)))
{
if (($uids = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST))
    && ($flag = rcube_utils::get_input_value('_flag', rcube_utils::INPUT_POST))
) {
  $flag = $a_flags_map[$flag] ? $a_flags_map[$flag] : strtoupper($flag);
  if ($flag == 'DELETED' && $CONFIG['skip_deleted'] && $_POST['_from'] != 'show') {
    if ($flag == 'DELETED' && $skip_deleted && $_POST['_from'] != 'show') {
    // count messages before changing anything
    $old_count = $RCMAIL->storage->count(NULL, $threading ? 'THREADS' : 'ALL');
    $old_pages = ceil($old_count / $RCMAIL->storage->get_pagesize());
@@ -47,8 +52,10 @@
  if (!$marked) {
    // send error message
    if ($_POST['_from'] != 'show')
        if ($_POST['_from'] != 'show') {
      $OUTPUT->command('list_mailbox');
        }
    $RCMAIL->display_server_error('errormarking');
    $OUTPUT->send();
    exit;
@@ -57,25 +64,28 @@
    $OUTPUT->show_message('messagemarked', 'confirmation');
  }
  if ($flag == 'DELETED' && $CONFIG['read_when_deleted'] && !empty($_POST['_ruid'])) {
    if ($flag == 'DELETED' && $read_deleted && !empty($_POST['_ruid'])) {
    $ruids = rcube_utils::get_input_value('_ruid', rcube_utils::INPUT_POST);
    $read = $RCMAIL->storage->set_flag($ruids, 'SEEN');
    if ($read && !$CONFIG['skip_deleted'])
        if ($read && !$skip_deleted) {
      $OUTPUT->command('flag_deleted_as_read', $ruids);
  }
    }
  if ($flag == 'SEEN' || $flag == 'UNSEEN' || ($flag == 'DELETED' && !$CONFIG['skip_deleted'])) {
    if ($flag == 'SEEN' || $flag == 'UNSEEN' || ($flag == 'DELETED' && !$skip_deleted)) {
    rcmail_send_unread_count($RCMAIL->storage->get_folder());
  }
  else if ($flag == 'DELETED' && $CONFIG['skip_deleted']) {
    else if ($flag == 'DELETED' && $skip_deleted) {
    if ($_POST['_from'] == 'show') {
      if ($next = rcube_utils::get_input_value('_next_uid', rcube_utils::INPUT_GPC))
        $OUTPUT->command('show_message', $next);
      else
        $OUTPUT->command('command', 'list');
    } else {
        }
        else {
      $search_request = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC);
      // refresh saved search set after moving some messages
      if ($search_request && $RCMAIL->storage->get_search_set()) {
        $_SESSION['search'] = $RCMAIL->storage->refresh_search();
@@ -110,6 +120,7 @@
        $OUTPUT->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX'));
        rcmail_set_unseen_count($mbox, $unseen_count);
      }
      $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox);
      if ($threading) {