Optimized loading time; added periodic mail check; added EXPUNGE command
parent
977a295eb1
commit
15a9d1ce67
@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
+-----------------------------------------------------------------------+
|
||||
| program/steps/mail/check_recent.inc |
|
||||
| |
|
||||
| This file is part of the RoundCube Webmail client |
|
||||
| Copyright (C) 2005, RoundCube Dev. - Switzerland |
|
||||
| Licensed under the GNU GPL |
|
||||
| |
|
||||
| PURPOSE: |
|
||||
| Check for recent messages |
|
||||
| |
|
||||
+-----------------------------------------------------------------------+
|
||||
| Author: Thomas Bruederli <roundcube@gmail.com> |
|
||||
+-----------------------------------------------------------------------+
|
||||
|
||||
$Id$
|
||||
|
||||
*/
|
||||
|
||||
$REMOTE_REQUEST = TRUE;
|
||||
$mbox = $IMAP->get_mailbox_name();
|
||||
|
||||
if ($recent_count = $IMAP->messagecount(NULL, 'RECENT'))
|
||||
{
|
||||
$count = $IMAP->messagecount();
|
||||
$unread_count = $IMAP->messagecount(NULL, 'UNSEEN');
|
||||
|
||||
$commands = sprintf("this.set_unread_count('%s', %d, true);\n", addslashes($mbox), $unread_count);
|
||||
$commands .= sprintf("this.set_env('messagecount', %d);\n", $count);
|
||||
$commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_messagecount_text());
|
||||
|
||||
// add new message headers to list
|
||||
$a_headers = array();
|
||||
for ($i=$recent_count, $id=$count-$recent_count+1; $i>0; $i--, $id++)
|
||||
$a_headers[] = $IMAP->get_headers($id, NULL, FALSE);
|
||||
|
||||
$commands .= rcmail_js_message_list($a_headers, TRUE);
|
||||
}
|
||||
|
||||
if (strtoupper($mbox)!='INBOX' && $IMAP->messagecount('INBOX', 'RECENT'))
|
||||
$commands = sprintf("this.set_unread_count('INBOX', %d);\n", $IMAP->messagecount('INBOX', 'UNSEEN'));
|
||||
|
||||
|
||||
rcube_remote_response($commands);
|
||||
?>
|
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
+-----------------------------------------------------------------------+
|
||||
| program/steps/mail/folders.inc |
|
||||
| |
|
||||
| This file is part of the RoundCube Webmail client |
|
||||
| Copyright (C) 2005, RoundCube Dev. - Switzerland |
|
||||
| Licensed under the GNU GPL |
|
||||
| |
|
||||
| PURPOSE: |
|
||||
| Implement folder operations line EXPUNGE and Clear |
|
||||
| |
|
||||
+-----------------------------------------------------------------------+
|
||||
| Author: Thomas Bruederli <roundcube@gmail.com> |
|
||||
+-----------------------------------------------------------------------+
|
||||
|
||||
$Id$
|
||||
|
||||
*/
|
||||
|
||||
$REMOTE_REQUEST = TRUE;
|
||||
$mbox = $IMAP->get_mailbox_name();
|
||||
|
||||
|
||||
// send EXPUNGE command
|
||||
if ($_action=='expunge')
|
||||
{
|
||||
$success = $IMAP->expunge();
|
||||
|
||||
// reload message list if current mailbox
|
||||
if ($success && $_GET['_reload'])
|
||||
{
|
||||
rcube_remote_response('this.clear_message_list();', TRUE);
|
||||
$_action = 'list';
|
||||
return;
|
||||
}
|
||||
else
|
||||
$commands = "// expunged: $success\n";
|
||||
}
|
||||
|
||||
// clear mailbox
|
||||
else if ($_action=='purge')
|
||||
{
|
||||
$success = $IMAP->clear_mailbox();
|
||||
|
||||
if ($success && $_GET['_reload'])
|
||||
{
|
||||
$commands = "this.set_env('messagecount', 0);\n";
|
||||
$commands .= "this.set_env('pagecount', 0);\n";
|
||||
$commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_messagecount_text());
|
||||
$commands .= sprintf("this.set_unread_count('%s', 0);\n", addslashes($mbox));
|
||||
}
|
||||
else
|
||||
$commands = "// purged: $success";
|
||||
}
|
||||
|
||||
|
||||
|
||||
rcube_remote_response($commands);
|
||||
?>
|
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
+-----------------------------------------------------------------------+
|
||||
| program/steps/mail/getunread.inc |
|
||||
| |
|
||||
| This file is part of the RoundCube Webmail client |
|
||||
| Copyright (C) 2005, RoundCube Dev. - Switzerland |
|
||||
| Licensed under the GNU GPL |
|
||||
| |
|
||||
| PURPOSE: |
|
||||
| Check all mailboxes for unread messages and update GUI |
|
||||
| |
|
||||
+-----------------------------------------------------------------------+
|
||||
| Author: Thomas Bruederli <roundcube@gmail.com> |
|
||||
+-----------------------------------------------------------------------+
|
||||
|
||||
$Id$
|
||||
|
||||
*/
|
||||
|
||||
$REMOTE_REQUEST = TRUE;
|
||||
|
||||
$a_folders = $IMAP->list_mailboxes();
|
||||
|
||||
if (!empty($a_folders))
|
||||
{
|
||||
foreach ($a_folders as $mbox)
|
||||
{
|
||||
$commands = sprintf("this.set_unread_count('%s', %d);\n", $mbox, $IMAP->messagecount($mbox, 'UNSEEN'));
|
||||
rcube_remote_response($commands, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
exit;
|
||||
?>
|
Loading…
Reference in New Issue