thomascube
2008-09-18 7dfb1fba5001299300736e6b5d95d9400575e3e7
program/steps/mail/mark.inc
@@ -1,11 +1,10 @@
<?php
/*
 +-----------------------------------------------------------------------+
 | program/steps/mail/mark.inc                                           |
 |                                                                       |
 | This file is part of the RoundCube Webmail client                     |
 | Copyright (C) 2005, RoundCube Dev. - Switzerland                      |
 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 | PURPOSE:                                                              |
@@ -19,24 +18,35 @@
*/
$REMOTE_REQUEST = TRUE;
$a_flags_map = array(
  'undelete' => 'UNDELETED',
  'delete' => 'DELETED',
  'read' => 'SEEN',
  'unread' => 'UNSEEN',
  'flagged' => 'FLAGGED',
  'unflagged' => 'UNFLAGGED');
$a_flags_map = array('undelete' => 'UNDELETED',
                     'delete' => 'DELETED',
                     'read' => 'SEEN',
                     'unread' => 'UNSEEN');
if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_value('_flag', RCUBE_INPUT_POST)))
{
  $flag = $a_flags_map[$flag] ? $a_flags_map[$flag] : strtoupper($flag);
  $marked = $IMAP->set_flag($uids, $flag);
if ($_GET['_uid'] && $_GET['_flag'])
  {
  $flag = $a_flags_map[$_GET['_flag']] ? $a_flags_map[$_GET['_flag']] : strtoupper($_GET['_flag']);
  $marked = $IMAP->set_flag($_GET['_uid'], $flag);
  if ($marked != -1)
  if($flag == 'DELETED' && $CONFIG['read_when_deleted'] && !empty($_POST['_ruid']))
    {
    $mbox = $IMAP->get_mailbox_name();
    $commands = sprintf("this.set_unread_count('%s', %d);\n", $mbox, $IMAP->messagecount($mbox, 'UNSEEN'));
    rcube_remote_response($commands);
    $uids = get_input_value('_ruid', RCUBE_INPUT_POST);
    $read = $IMAP->set_flag($uids, 'SEEN');
    if ($read != -1)
      $OUTPUT->command('flag_deleted_as_read', $uids);
    }
  if ($marked != -1)
  {
    $mbox_name = $IMAP->get_mailbox_name();
    $OUTPUT->command('set_unread_count', $mbox_name, $IMAP->messagecount($mbox_name, 'UNSEEN'), ($mbox_name == 'INBOX'));
    $OUTPUT->send();
  }
}
  
exit;
?>