summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2008-12-18 17:56:50 +0000
committerthomascube <thomas@roundcube.net>2008-12-18 17:56:50 +0000
commit1553b3c7019285a4b333531dcce2013f79c963c1 (patch)
tree6f7ca94e1d3d6aab99387502fa00b8f94a96470c
parent0456f83bcc274c30cb353f2c9bccd30aa3a32853 (diff)
Bugfix and improve auto-completion
-rw-r--r--program/js/app.js4
-rw-r--r--program/steps/mail/autocomplete.inc6
2 files changed, 7 insertions, 3 deletions
diff --git a/program/js/app.js b/program/js/app.js
index 7e9509ec2..a09a11c77 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -2535,7 +2535,7 @@ function rcube_webmail()
this.ksearch_display_results = function (a_results, a_result_ids, c)
{
// display search results
- if (c && a_results.length) {
+ if (c && a_results.length && this.ksearch_input) {
var p, ul, li;
// create results pane if not present
@@ -2554,7 +2554,7 @@ function rcube_webmail()
// add each result line to list
for (i=0; i<a_results.length; i++) {
li = document.createElement('LI');
- li.innerHTML = a_results[i].replace(/</, '&lt;').replace(/>/, '&gt;').replace(new RegExp('('+this.ksearch_value+')', 'ig'), '<b>$1</b>');
+ li.innerHTML = a_results[i].replace(new RegExp('('+this.ksearch_value+')', 'ig'), '##$1%%').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/##([^%]+)%%/g, '<b>$1</b>');
li.onmouseover = function(){ ref.ksearch_select(this); };
li.onmouseup = function(){ ref.ksearch_click(this) };
li._rcm_id = a_result_ids[i];
diff --git a/program/steps/mail/autocomplete.inc b/program/steps/mail/autocomplete.inc
index 4bc5dc263..fe011de0a 100644
--- a/program/steps/mail/autocomplete.inc
+++ b/program/steps/mail/autocomplete.inc
@@ -19,13 +19,14 @@
*/
+$MAXNUM = 15; // same limit as in app.js
$contacts = array();
if ($search = get_input_value('_search', RCUBE_INPUT_POST)) {
foreach ($RCMAIL->config->get('autocomplete_addressbooks', array('sql')) as $id) {
$abook = $RCMAIL->get_address_book($id);
- $abook->set_pagesize(20);
+ $abook->set_pagesize($MAXNUM);
if ($result = $abook->search(array('email','name'), $search)) {
while ($sql_arr = $result->iterate()) {
@@ -34,6 +35,9 @@ if ($search = get_input_value('_search', RCUBE_INPUT_POST)) {
}
}
}
+
+ if (count($contacts) >= $MAXNUM)
+ break;
}
sort($contacts);