summaryrefslogtreecommitdiff
path: root/program/steps/mail/move_del.inc
diff options
context:
space:
mode:
Diffstat (limited to 'program/steps/mail/move_del.inc')
-rw-r--r--program/steps/mail/move_del.inc82
1 files changed, 82 insertions, 0 deletions
diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc
new file mode 100644
index 000000000..e090d305b
--- /dev/null
+++ b/program/steps/mail/move_del.inc
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/mail/move_del.inc |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2005, RoundCube Dev. - Switzerland |
+ | All rights reserved. |
+ | |
+ | PURPOSE: |
+ | Move the submitted messages to a specific mailbox or delete them |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com> |
+ +-----------------------------------------------------------------------+
+
+ $Id$
+
+*/
+
+$REMOTE_REQUEST = TRUE;
+
+// move messages
+if ($_action=='moveto' && $_GET['_uid'] && $_GET['_target_mbox'])
+ {
+ $count = sizeof(explode(',', $_GET['_uid']));
+ $moved = $IMAP->move_message($_GET['_uid'], $_GET['_target_mbox'], $_GET['_mbox']);
+
+ if (!$moved)
+ {
+ // send error message
+ exit;
+ }
+ }
+
+// delete messages
+else if ($_action=='delete' && $_GET['_uid'])
+ {
+ $count = sizeof(explode(',', $_GET['_uid']));
+ $del = $IMAP->delete_message($_GET['_uid'], $_GET['_mbox']);
+
+ if (!$del)
+ {
+ // send error message
+ exit;
+ }
+ }
+
+// unknown action or missing query param
+else
+ {
+ exit;
+ }
+
+
+// update message count display
+$pages = ceil($IMAP->messagecount()/$IMAP->page_size);
+$commands = sprintf("this.set_rowcount('%s');\n", rcmail_get_messagecount_text());
+$commands .= sprintf("this.set_env('pagecount', %d);\n", $pages);
+
+
+// update mailboxlist
+$mbox = $IMAP->get_mailbox_name();
+$commands .= sprintf("this.set_unread_count('%s', %d);\n", $mbox, $IMAP->messagecount($mbox, 'UNSEEN'));
+$commands .= sprintf("this.set_unread_count('%s', %d);\n", $_GET['_target_mbox'], $IMAP->messagecount($_GET['_target_mbox'], 'UNSEEN'));
+
+
+// add new rows from next page (if any)
+if ($_GET['_from']!='show' && $pages>1 && $IMAP->list_page < $pages)
+ {
+ $a_headers = $IMAP->list_headers($mbox);
+ $a_headers = array_slice($a_headers, -$count, $count);
+ $commands .= rcmail_js_message_list($a_headers);
+ }
+
+
+// send response
+rcube_remote_response($commands);
+
+exit;
+?> \ No newline at end of file