]> git.donarmstrong.com Git - roundcube.git/blob - program/steps/mail/folders.inc
Imported Upstream version 0.2~stable
[roundcube.git] / program / steps / mail / folders.inc
1 <?php
2
3 /*
4  +-----------------------------------------------------------------------+
5  | program/steps/mail/folders.inc                                        |
6  |                                                                       |
7  | This file is part of the RoundCube Webmail client                     |
8  | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 |
9  | Licensed under the GNU GPL                                            |
10  |                                                                       |
11  | PURPOSE:                                                              |
12  |   Implement folder operations line EXPUNGE and Clear                  |
13  |                                                                       |
14  +-----------------------------------------------------------------------+
15  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
16  +-----------------------------------------------------------------------+
17
18  $Id: folders.inc 1570 2008-06-24 13:04:57Z alec $
19 */
20
21 $mbox_name = $IMAP->get_mailbox_name();
22
23 // send EXPUNGE command
24 if ($RCMAIL->action=='expunge' && ($mbox = get_input_value('_mbox', RCUBE_INPUT_POST)))
25 {
26   $success = $IMAP->expunge($mbox);
27
28   // reload message list if current mailbox  
29   if ($success && !empty($_REQUEST['_reload']))
30   {
31     $OUTPUT->command('message_list.clear');
32     $RCMAIL->action = 'list';
33     return;
34   }
35   else
36     $commands = "// expunged: $success\n";
37 }
38
39 // clear mailbox
40 else if ($RCMAIL->action=='purge' && ($mbox = get_input_value('_mbox', RCUBE_INPUT_POST)))
41 {
42   $delimiter = $IMAP->get_hierarchy_delimiter();
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))
49   {
50     $success = $IMAP->clear_mailbox($mbox);
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";
62   }
63 }
64
65 $OUTPUT->send($commands);
66 ?>