thomascube
2008-09-18 7dfb1fba5001299300736e6b5d95d9400575e3e7
commit | author | age
15a9d1 1 <?php
T 2
3 /*
4  +-----------------------------------------------------------------------+
5  | program/steps/mail/folders.inc                                        |
6  |                                                                       |
7  | This file is part of the RoundCube Webmail client                     |
5349b7 8  | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 |
15a9d1 9  | Licensed under the GNU GPL                                            |
T 10  |                                                                       |
11  | PURPOSE:                                                              |
12  |   Implement folder operations line EXPUNGE and Clear                  |
13  |                                                                       |
14  +-----------------------------------------------------------------------+
15  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
16  +-----------------------------------------------------------------------+
17
18  $Id$
19 */
20
c5ac07 21 $mbox_name = $IMAP->get_mailbox_name();
15a9d1 22
T 23 // send EXPUNGE command
197601 24 if ($RCMAIL->action=='expunge' && ($mbox = get_input_value('_mbox', RCUBE_INPUT_POST)))
f11541 25 {
8d0758 26   $success = $IMAP->expunge($mbox);
15a9d1 27
T 28   // reload message list if current mailbox  
8d0758 29   if ($success && !empty($_REQUEST['_reload']))
f11541 30   {
T 31     $OUTPUT->command('message_list.clear');
197601 32     $RCMAIL->action = 'list';
15a9d1 33     return;
f11541 34   }
15a9d1 35   else
T 36     $commands = "// expunged: $success\n";
f11541 37 }
15a9d1 38
T 39 // clear mailbox
197601 40 else if ($RCMAIL->action=='purge' && ($mbox = get_input_value('_mbox', RCUBE_INPUT_POST)))
f11541 41 {
ddd776 42   $delimiter = $IMAP->get_hierarchy_delimiter();
A 43   $trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/';
44   $junk_regexp = '/^' . preg_quote($CONFIG['junk_mbox'] . $delimiter, '/') . '/';              
45
46   // we should only be purging trash and junk (or their subfolders)
47   if ($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox']
48     || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox))
f11541 49   {
a02d48 50     $success = $IMAP->clear_mailbox($mbox);
T 51   
52     if ($success && !empty($_REQUEST['_reload']))
53     {
54       $OUTPUT->set_env('messagecount', 0);
55       $OUTPUT->set_env('pagecount', 0);
56       $OUTPUT->command('message_list.clear');
57       $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text());
58       $OUTPUT->command('set_unread_count', $mbox_name, 0);
59     }
60     else
61       $commands = "// purged: $success";
f11541 62   }
T 63 }
15a9d1 64
f11541 65 $OUTPUT->send($commands);
5349b7 66 ?>