From fbe54043cf598b19a753dc2b21a7ed558d23fd15 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Thu, 18 Aug 2011 13:40:07 -0400 Subject: [PATCH] Fix folders drop-down list: descend into root folder (e.g. INBOX) even if part of the exception list --- program/steps/mail/autocomplete.inc | 25 +++++++++++++++++++------ 1 files changed, 19 insertions(+), 6 deletions(-) diff --git a/program/steps/mail/autocomplete.inc b/program/steps/mail/autocomplete.inc index 85f3cf3..2968f03 100644 --- a/program/steps/mail/autocomplete.inc +++ b/program/steps/mail/autocomplete.inc @@ -19,9 +19,6 @@ */ -$MAXNUM = 15; -$book_types = (array) $RCMAIL->config->get('autocomplete_addressbooks', 'sql'); - if ($RCMAIL->action == 'group-expand') { $abook = $RCMAIL->get_address_book(get_input_value('_source', RCUBE_INPUT_GPC)); if ($gid = get_input_value('_gid', RCUBE_INPUT_GPC)) { @@ -36,8 +33,22 @@ $OUTPUT->command('replace_group_recipients', $gid, join(', ', $members)); } + + $OUTPUT->send(); } -else if ($book_types && $search = get_input_value('_search', RCUBE_INPUT_GPC, true)) { + + +$MAXNUM = (int)$RCMAIL->config->get('autocomplete_max', 15); +$search = get_input_value('_search', RCUBE_INPUT_GPC, true); +$source = get_input_value('_source', RCUBE_INPUT_GPC); +$sid = get_input_value('_id', RCUBE_INPUT_GPC); + +if (strlen($source)) + $book_types = array($source); +else + $book_types = (array) $RCMAIL->config->get('autocomplete_addressbooks', 'sql'); + +if (!empty($book_types) && strlen($search)) { $contacts = array(); $books_num = count($book_types); @@ -51,9 +62,11 @@ $email_arr = (array)$abook->get_col_values('email', $sql_arr, true); $email_cnt = count($email_arr); foreach ($email_arr as $email) { + if (empty($email)) + continue; $contact = format_email_recipient($email, $sql_arr['name']); // skip entries that don't match - if ($email_cnt > 1 && strpos($contact, $search) === false) { + if ($email_cnt > 1 && stripos($contact, $search) === false) { continue; } // when we've got more than one book, we need to skip duplicates @@ -85,7 +98,7 @@ usort($contacts, 'contact_results_sort'); } -$OUTPUT->command('ksearch_query_results', $contacts, $search); +$OUTPUT->command('ksearch_query_results', $contacts, $search, $sid); $OUTPUT->send(); -- Gitblit v1.9.1