diff options
Diffstat (limited to 'program')
-rw-r--r-- | program/include/main.inc | 2 | ||||
-rw-r--r-- | program/js/app.js | 38 | ||||
-rw-r--r-- | program/localization/en_US/messages.inc | 1 |
3 files changed, 25 insertions, 16 deletions
diff --git a/program/include/main.inc b/program/include/main.inc index 452505f07..28556df5e 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -2384,5 +2384,5 @@ function rcube_autocomplete_init() $RCMAIL->output->set_env('autocomplete_max', (int)$RCMAIL->config->get('autocomplete_max', 15)); $RCMAIL->output->set_env('autocomplete_min_length', $RCMAIL->config->get('autocomplete_min_length')); - $RCMAIL->output->add_label('autocompletechars'); + $RCMAIL->output->add_label('autocompletechars', 'autocompletemore'); } diff --git a/program/js/app.js b/program/js/app.js index f9233eb21..4b88958d9 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -3620,19 +3620,15 @@ function rcube_webmail() return; if (q.length && q.length < min) { - if (!this.env.acinfo) { - this.env.acinfo = this.display_message( + if (!this.ksearch_info) { + this.ksearch_info = this.display_message( this.get_label('autocompletechars').replace('$min', min)); } return; } - else if (this.env.acinfo) { - this.hide_message(this.env.acinfo); - } var old_value = this.ksearch_value; this.ksearch_value = q; - this.ksearch_destroy(); // ...string is empty @@ -3730,16 +3726,20 @@ function rcube_webmail() this.env.contacts = this.env.contacts.concat(results); // run next parallel search - if (maxlen > 0 && this.ksearch_data.id == reqid && this.ksearch_data.sources.length) { - var lock, xhr, props = this.ksearch_data, source = props.sources.shift(); - if (source) { - lock = this.display_message(this.get_label('searching'), 'loading'); - xhr = this.http_post(props.action, '_search='+urlencode(s_val)+'&_id='+reqid - +'&_source='+urlencode(source), lock); - - this.ksearch_data.locks.push(lock); - this.ksearch_data.requests.push(xhr); + if (this.ksearch_data.id == reqid) { + if (maxlen > 0 && this.ksearch_data.sources.length) { + var lock, xhr, props = this.ksearch_data, source = props.sources.shift(); + if (source) { + lock = this.display_message(this.get_label('searching'), 'loading'); + xhr = this.http_post(props.action, '_search='+urlencode(s_val)+'&_id='+reqid + +'&_source='+urlencode(source), lock); + + this.ksearch_data.locks.push(lock); + this.ksearch_data.requests.push(xhr); + } } + else if (!maxlen && !this.ksearch_msg) + this.ksearch_msg = this.display_message(this.get_label('autocompletemore')); } }; @@ -3783,7 +3783,15 @@ function rcube_webmail() for (i=0, len=ac.locks.length; i<len; i++) this.abort_request({request: ac.requests[i], lock: ac.locks[i]}); + if (this.ksearch_info) + this.hide_message(this.ksearch_info); + + if (this.ksearch_msg) + this.hide_message(this.ksearch_msg); + this.ksearch_data = null; + this.ksearch_info = null; + this.ksearch_msg = null; } /*********************************************************/ diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc index 8ca06a67a..5572a7622 100644 --- a/program/localization/en_US/messages.inc +++ b/program/localization/en_US/messages.inc @@ -149,6 +149,7 @@ $messages['messagemoved'] = 'Message(s) moved successfully.'; $messages['messagecopied'] = 'Message(s) copied successfully.'; $messages['messagemarked'] = 'Message(s) marked successfully.'; $messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.'; +$messages['autocompletemore'] = 'More matching entries found. Please type more characters.'; $messages['namecannotbeempty'] = 'Name cannot be empty.'; $messages['nametoolong'] = 'Name is too long.'; $messages['folderupdated'] = 'Folder updated successfully.'; |