From 78925f8f1a9afb9475a9cf9ad1b35daade23da85 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Thu, 17 Sep 2009 08:07:58 -0400 Subject: [PATCH] - Fix incorrect count of new messages in folder list when using multiple IMAP clients (#1485995) - Fix all folders checking for new messages with disabled caching (#1486128) --- program/steps/mail/check_recent.inc | 22 ++++++++++++++++++++-- 1 files changed, 20 insertions(+), 2 deletions(-) diff --git a/program/steps/mail/check_recent.inc b/program/steps/mail/check_recent.inc index 78b7fbb..d091d61 100644 --- a/program/steps/mail/check_recent.inc +++ b/program/steps/mail/check_recent.inc @@ -68,12 +68,30 @@ rcmail_js_message_list($result_h, true, false); } } + else { + send_unread_count($mbox_name); + } } - else if ($unseen = $IMAP->messagecount($mbox_name, 'UNSEEN', $check_all)) { - $OUTPUT->command('set_unread_count', $mbox_name, $unseen); + else if ($check_all) { + send_unread_count($mbox_name); } } $OUTPUT->send(); + +function send_unread_count($mbox_name) +{ + global $RCMAIL; + + $old_unseen = $_SESSION['unseen_count'][$mbox_name]; + $unseen = $RCMAIL->imap->messagecount($mbox_name, 'UNSEEN', true); + + if ($unseen != $old_unseen) + $RCMAIL->output->command('set_unread_count', $mbox_name, $unseen, ($mbox_name == 'INBOX')); + + // @TODO: this data is doubled (session and cache tables) if caching is enabled + $_SESSION['unseen_count'][$mbox_name] = $unseen; +} + ?> -- Gitblit v1.9.1