summaryrefslogtreecommitdiff
path: root/program/steps
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2008-11-14 11:18:00 +0000
committeralecpl <alec@alec.pl>2008-11-14 11:18:00 +0000
commit697cc52cff43176edb809a0cba723ca4a27ba47d (patch)
tree36b7960df414e8f3cdd35e1ef1cefb6665adcad5 /program/steps
parent8abda59ce499bc0a68c15e225cae6df9702457f5 (diff)
- fixes for status filter
- don't call search second time if first call returns empty (array) result
Diffstat (limited to 'program/steps')
-rw-r--r--program/steps/mail/search.inc36
1 files changed, 16 insertions, 20 deletions
diff --git a/program/steps/mail/search.inc b/program/steps/mail/search.inc
index 18335ba15..0fc56bcf0 100644
--- a/program/steps/mail/search.inc
+++ b/program/steps/mail/search.inc
@@ -85,40 +85,36 @@ else if ($subject) {
$search_str = trim($search_str);
// execute IMAP search
-$result = $IMAP->search($mbox, $search_str, $imap_charset, $_SESSION['sort_col']);
-$count = 0;
+if ($search_str)
+ $result = $IMAP->search($mbox, $search_str, $imap_charset, $_SESSION['sort_col']);
-// Make sure our $result is legit..
-if (is_array($result) && $result[0] != '')
-{
- // Get the headers
- $result_h = $IMAP->list_headers($mbox, 1, $_SESSION['sort_col'], $_SESSION['sort_order']);
- $count = $IMAP->messagecount();
+// Get the headers
+$result_h = $IMAP->list_headers($mbox, 1, $_SESSION['sort_col'], $_SESSION['sort_order']);
+$count = $IMAP->messagecount();
- // save search results in session
- if (!is_array($_SESSION['search']))
- $_SESSION['search'] = array();
+// save search results in session
+if (!is_array($_SESSION['search']))
+ $_SESSION['search'] = array();
- // Make sure we got the headers
- if ($result_h != NULL)
- {
+// Make sure we got the headers
+if (!empty($result_h))
+{
+ if ($search_str) {
$_SESSION['search'][$search_request] = $IMAP->get_search_set();
$_SESSION['last_text_search'] = $str;
- rcmail_js_message_list($result_h);
- $OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $count));
}
+ rcmail_js_message_list($result_h);
+ $OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $count));
}
else
{
$OUTPUT->show_message('searchnomatch', 'notice');
- $search_request = -1;
}
// update message count display
-$pages = ceil($count/$IMAP->page_size);
-$OUTPUT->set_env('search_request', $search_request);
+$OUTPUT->set_env('search_request', $search_str ? $search_request : -1);
$OUTPUT->set_env('messagecount', $count);
-$OUTPUT->set_env('pagecount', $pages);
+$OUTPUT->set_env('pagecount', ceil($count/$IMAP->page_size));
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count, 1));
$OUTPUT->send();