summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kanat-Alexander <mkanat@bugzilla.org>2010-07-20 01:15:37 +0200
committerMax Kanat-Alexander <mkanat@bugzilla.org>2010-07-20 01:15:37 +0200
commitba3b4c64f7c3ebd8dceb5db90cef8df7df18232f (patch)
treed2b0d08551ba66b06560f55d0acce60f6dc8bd3a
parent1ba10751a624a0b94d01aa66c9747fe81cba3e39 (diff)
downloadbugzilla-ba3b4c64f7c3ebd8dceb5db90cef8df7df18232f.tar.gz
bugzilla-ba3b4c64f7c3ebd8dceb5db90cef8df7df18232f.tar.xz
Bug 576912: Make the automatic duplicate detection table appear onkeyup
instead of onblur, but give it a delay so that (a) we're not sending too many queries and (b) so that it doesn't appear at the exact same time as you click Submit Bug (making the "Submit Bug" click not work) r=timello, a=mkanat
-rw-r--r--js/bug.js24
1 files changed, 18 insertions, 6 deletions
diff --git a/js/bug.js b/js/bug.js
index 8cee68efc..baea5125f 100644
--- a/js/bug.js
+++ b/js/bug.js
@@ -54,6 +54,22 @@ YAHOO.bugzilla.dupTable = {
'bz_default_hidden');
dataTable.getDataSource().sendRequest(post_data, callback);
},
+ // This is the keyup event handler. It calls updateTable with a relatively
+ // long delay, to allow additional input. However, the delay is short
+ // enough that nobody could get from the summary field to the Submit
+ // Bug button before the table is shown (which is important, because
+ // the showing of the table causes the Submit Bug button to move, and
+ // if the table shows at the exact same time as the button is clicked,
+ // the click on the button won't register.)
+ doUpdateTable: function(e, args) {
+ var dt = args[0];
+ var product_name = args[1];
+ var summary = YAHOO.util.Event.getTarget(e);
+ clearTimeout(YAHOO.bugzilla.dupTable.lastTimeout);
+ YAHOO.bugzilla.dupTable.lastTimeout = setTimeout(function() {
+ YAHOO.bugzilla.dupTable.updateTable(dt, product_name, summary) },
+ 600);
+ },
formatBugLink: function(el, oRecord, oColumn, oData) {
el.innerHTML = '<a href="show_bug.cgi?id=' + oData + '">'
+ oData + '</a>';
@@ -107,11 +123,7 @@ YAHOO.bugzilla.dupTable = {
data.options.initialLoad = false;
var dt = new YAHOO.widget.DataTable(data.container, data.columns,
this.dataSource, data.options);
- YAHOO.util.Event.on(data.summary_field, 'blur',
- function(e) {
- YAHOO.bugzilla.dupTable.updateTable(dt, data.product_name,
- YAHOO.util.Event.getTarget(e))
- }
- );
+ YAHOO.util.Event.on(data.summary_field, 'keyup', this.doUpdateTable,
+ [dt, data.product_name]);
},
};