summaryrefslogtreecommitdiff
path: root/program/steps
diff options
context:
space:
mode:
Diffstat (limited to 'program/steps')
-rw-r--r--program/steps/mail/check_recent.inc19
-rw-r--r--program/steps/mail/func.inc48
-rw-r--r--program/steps/mail/list.inc10
-rw-r--r--program/steps/mail/mark.inc8
-rw-r--r--program/steps/mail/move_del.inc7
5 files changed, 32 insertions, 60 deletions
diff --git a/program/steps/mail/check_recent.inc b/program/steps/mail/check_recent.inc
index d091d611b..58a8e7ea5 100644
--- a/program/steps/mail/check_recent.inc
+++ b/program/steps/mail/check_recent.inc
@@ -69,29 +69,14 @@ foreach ($a_mailboxes as $mbox_name) {
}
}
else {
- send_unread_count($mbox_name);
+ rcmail_send_unread_count($mbox_name, true);
}
}
else if ($check_all) {
- send_unread_count($mbox_name);
+ rcmail_send_unread_count($mbox_name, true);
}
}
$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;
-}
-
?>
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 4cb2f8176..35354eb28 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -489,9 +489,6 @@ function rcmail_messagecontent_frame($attrib)
}
-/**
- *
- */
function rcmail_messagecount_display($attrib)
{
global $IMAP, $OUTPUT;
@@ -505,9 +502,6 @@ function rcmail_messagecount_display($attrib)
}
-/**
- *
- */
function rcmail_quota_display($attrib)
{
global $OUTPUT, $COMM_PATH;
@@ -524,9 +518,6 @@ function rcmail_quota_display($attrib)
}
-/**
- *
- */
function rcmail_quota_content($quota=NULL, $attrib=NULL)
{
global $IMAP, $COMM_PATH, $RCMAIL;
@@ -579,9 +570,6 @@ function rcmail_quota_content($quota=NULL, $attrib=NULL)
}
-/**
- *
- */
function rcmail_get_messagecount_text($count=NULL, $page=NULL)
{
global $IMAP, $MESSAGE;
@@ -610,26 +598,42 @@ function rcmail_get_messagecount_text($count=NULL, $page=NULL)
return Q($out);
}
-/**
- *
- */
+
function rcmail_mailbox_name_display($attrib)
{
- global $RCMAIL;
+ global $RCMAIL;
- if (!$attrib['id'])
- $attrib['id'] = 'rcmmailboxname';
+ if (!$attrib['id'])
+ $attrib['id'] = 'rcmmailboxname';
- $RCMAIL->output->add_gui_object('mailboxname', $attrib['id']);
+ $RCMAIL->output->add_gui_object('mailboxname', $attrib['id']);
- return html::span($attrib, rcmail_get_mailbox_name_text());
+ return html::span($attrib, rcmail_get_mailbox_name_text());
}
function rcmail_get_mailbox_name_text()
{
- global $RCMAIL;
- return rcmail_localize_foldername($RCMAIL->imap->get_mailbox_name());
+ global $RCMAIL;
+ return rcmail_localize_foldername($RCMAIL->imap->get_mailbox_name());
+}
+
+
+function rcmail_send_unread_count($mbox_name, $force=false)
+{
+ global $RCMAIL;
+
+ $old_unseen = $_SESSION['unseen_count'][$mbox_name];
+ $unseen = $RCMAIL->imap->messagecount($mbox_name, 'UNSEEN', $force);
+
+ 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;
+
+ return $unseen;
}
+
/**
* Sets message is_safe flag according to 'show_images' option value
diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc
index a40fce679..57bb91979 100644
--- a/program/steps/mail/list.inc
+++ b/program/steps/mail/list.inc
@@ -60,14 +60,8 @@ if ($_SESSION['search_filter'] && $_SESSION['search_filter'] != 'ALL')
if ($count = $IMAP->messagecount($mbox_name, 'ALL', !empty($_REQUEST['_refresh'])))
$a_headers = $IMAP->list_headers($mbox_name, NULL, $sort_col, $sort_order);
-// count UNSEEN messages...
-$old_unseen = $_SESSION['unseen_count'][$mbox_name];
-$unseen = $count ? $IMAP->messagecount($mbox_name, 'UNSEEN', !empty($_REQUEST['_refresh'])) : 0;
-$_SESSION['unseen_count'][$mbox_name] = $unseen;
-
-// ...and update mailboxlist
-if ($unseen != $old_unseen)
- $OUTPUT->command('set_unread_count', $mbox_name, $unseen, ($mbox_name == 'INBOX'));
+// update mailboxlist
+rcmail_send_unread_count($mbox_name, !empty($_REQUEST['_refresh']));
// update message count display
$pages = ceil($count/$IMAP->page_size);
diff --git a/program/steps/mail/mark.inc b/program/steps/mail/mark.inc
index c065b3f92..014108ffc 100644
--- a/program/steps/mail/mark.inc
+++ b/program/steps/mail/mark.inc
@@ -61,13 +61,7 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va
}
if ($flag == 'SEEN' || $flag == 'UNSEEN' || ($flag == 'DELETED' && !$CONFIG['skip_deleted'])) {
- $mbox_name = $IMAP->get_mailbox_name();
- $unseen = $IMAP->messagecount($mbox_name, 'UNSEEN');
- $old_unseen = $_SESSION['unseen_count'][$mbox_name];
- if ($old_unseen != $unseen) {
- $OUTPUT->command('set_unread_count', $mbox_name, $unseen, ($mbox_name == 'INBOX'));
- $_SESSION['unseen_count'][$mbox_name] = $unseen;
- }
+ rcmail_send_unread_count($IMAP->get_mailbox_name());
}
else if ($flag == 'DELETED' && $CONFIG['skip_deleted']) {
if ($_POST['_from'] == 'show') {
diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc
index 2a8cee633..30102d9d5 100644
--- a/program/steps/mail/move_del.inc
+++ b/program/steps/mail/move_del.inc
@@ -110,12 +110,7 @@ else
}
if ($RCMAIL->action=='moveto' && $target) {
- $unseen_count = $IMAP->messagecount($target, 'UNSEEN', true);
- $old_unseen = $_SESSION['unseen_count'][$target];
- if ($old_unseen != $unseen_count) {
- $OUTPUT->command('set_unread_count', $target, $unseen_count);
- $_SESSION['unseen_count'][$target] = $unseen_count;
- }
+ rcmail_send_unread_count($target, true);
}
$OUTPUT->command('set_quota', rcmail_quota_content($IMAP->get_quota()));