From f8ca748ab84ed267aef9a95da5bc709da96af3cd Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 23 Sep 2011 03:48:21 -0400
Subject: [PATCH] - Fix check if new search value contains old one and previous search was empty in autocomplete
---
program/js/app.js | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/program/js/app.js b/program/js/app.js
index 74c602e..40aa76f 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -3615,7 +3615,8 @@
var cpos = this.get_caret_pos(this.ksearch_input),
p = inp_value.lastIndexOf(',', cpos-1),
q = inp_value.substring(p+1, cpos),
- min = this.env.autocomplete_min_length;
+ min = this.env.autocomplete_min_length,
+ ac = this.ksearch_data;
// trim query string
q = $.trim(q);
@@ -3641,8 +3642,8 @@
if (!q.length)
return;
- // ...new search value contains old one and previous search result was empty
- if (old_value && old_value.length && this.env.contacts && !this.env.contacts.length && q.indexOf(old_value) == 0)
+ // ...new search value contains old one and previous search was not finished or its result was empty
+ if (old_value && old_value.length && q.indexOf(old_value) == 0 && (!ac || !ac.num) && this.env.contacts && !this.env.contacts.length)
return;
var i, lock, source, xhr, reqid = new Date().getTime(),
@@ -3650,7 +3651,8 @@
sources = props && props.sources ? props.sources : [],
action = props && props.action ? props.action : 'mail/autocomplete';
- this.ksearch_data = {id: reqid, sources: sources.slice(), action: action, locks: [], requests: []};
+ this.ksearch_data = {id: reqid, sources: sources.slice(), action: action,
+ locks: [], requests: [], num: sources.length};
for (i=0; i<threads; i++) {
source = this.ksearch_data.sources.shift();
@@ -3735,6 +3737,7 @@
// run next parallel search
if (data.id == reqid) {
+ data.num--;
if (maxlen > 0 && data.sources.length) {
var lock, xhr, source = data.sources.shift();
if (source) {
--
Gitblit v1.9.1