summaryrefslogtreecommitdiff
path: root/program/steps/mail/list.inc
diff options
context:
space:
mode:
Diffstat (limited to 'program/steps/mail/list.inc')
-rw-r--r--program/steps/mail/list.inc24
1 files changed, 17 insertions, 7 deletions
diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc
index 391c05b73..40cd652df 100644
--- a/program/steps/mail/list.inc
+++ b/program/steps/mail/list.inc
@@ -22,8 +22,6 @@
$REMOTE_REQUEST = TRUE;
$OUTPUT_TYPE = 'js';
-$unseen = $IMAP->messagecount($mbox, 'UNSEEN', !empty($_GET['_refresh']) ? TRUE : FALSE);
-$count = $IMAP->messagecount();
$sort = isset($_GET['_sort']) ? $_GET['_sort'] : false;
// is there a sort type for this request?
@@ -37,13 +35,28 @@ if ($sort)
$_SESSION['sort_order'] = $sort_order;
}
else
- {
+ {
// use session settings if set, defaults if not
$sort_col = isset($_SESSION['sort_col']) ? $_SESSION['sort_col'] : $CONFIG['message_sort_col'];
$sort_order = isset($_SESSION['sort_order']) ? $_SESSION['sort_order'] : $CONFIG['message_sort_order'];
}
+// we have a saved search request
+if (!empty($_GET['_search']) && isset($_SESSION['search'][$_GET['_search']]))
+ {
+ $a_msgs = split(',', $_SESSION['search'][$_GET['_search']]);
+ $a_headers = $IMAP->list_header_set($mbox, $a_msgs, NULL, $sort_col, $sort_order);
+ $count = count($a_msgs);
+ }
+else
+ {
+ if ($count = $IMAP->messagecount())
+ $a_headers = $IMAP->list_headers($mbox, NULL, $sort_col, $sort_order);
+ }
+
+$unseen = $IMAP->messagecount($mbox, 'UNSEEN', !empty($_GET['_refresh']) ? TRUE : FALSE);
+
// update message count display
$pages = ceil($count/$IMAP->page_size);
$commands = sprintf("this.set_env('messagecount', %d);\n", $count);
@@ -56,11 +69,8 @@ $commands .= sprintf("this.set_unread_count('%s', %d);\n", addslashes($mbox), $u
// add message rows
-if ($count)
- {
- $a_headers = $IMAP->list_headers($mbox, null, $sort_col, $sort_order);
+if (isset($a_headers) && count($a_headers))
$commands .= rcmail_js_message_list($a_headers);
- }
// send response