From ed3d8aaf71c45cd4bf4885a1d8d388149aefb846 Mon Sep 17 00:00:00 2001 From: "bugzilla%arlen.demon.co.uk" Date: Wed, 9 Feb 2005 00:40:06 +0000 Subject: [PATCH] Bug 281563 Help Viewer search results should be updated with every keystroke (live search) - orginal patch for firefox by steffen.wilberg@web.de on bug 271299 p=me r=neil.parkwaycc.co.uk git-svn-id: svn://10.0.0.236/trunk@169025 18797224-902f-48f8-a5cc-f745e15eee43 --- .../extensions/help/resources/content/help.js | 25 +++++++++---------- .../help/resources/content/help.xul | 10 ++------ .../help/resources/locale/en-US/help.dtd | 1 - 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/mozilla/extensions/help/resources/content/help.js b/mozilla/extensions/help/resources/content/help.js index 1aac42b0af5..9d68a35b732 100644 --- a/mozilla/extensions/help/resources/content/help.js +++ b/mozilla/extensions/help/resources/content/help.js @@ -503,14 +503,19 @@ function doFind() { // clear any previous results. clearDatabases(searchTree.database); - // split search string into separate terms and compile into regexp's - RE = findText.value.split(/\s+/); - for (var i=0; i < RE.length; ++i) { - if (RE[i] == "") - continue; - RE[i] = new RegExp(RE[i], "i"); + // if the search string is empty or contains only whitespace, purge the results tree and return + RE = findText.value.match(/\S+/g); + if (!RE) { + searchTree.builder.rebuild(); + return; + } + + // compile the search string, which has already been split up above, into regexps + for (var i=0; i < RE.length; ++i) { + RE[i] = new RegExp(RE[i], "i"); } - emptySearch = true; + emptySearch = true; + // search TOC var resultsDS = Components.classes["@mozilla.org/rdf/datasource;1?name=in-memory-datasource"].createInstance(Components.interfaces.nsIRDFDataSource); var tree = document.getElementById("help-toc-panel"); @@ -545,12 +550,6 @@ function doFind() { searchTree.builder.rebuild(); } -function doEnabling() { - var findButton = document.getElementById("findButton"); - var findTextbox = document.getElementById("findText"); - findButton.disabled = !findTextbox.value; -} - function clearDatabases(compositeDataSource) { var enumDS = compositeDataSource.GetDataSources() while (enumDS.hasMoreElements()) { diff --git a/mozilla/extensions/help/resources/content/help.xul b/mozilla/extensions/help/resources/content/help.xul index b534a14ff08..b2a6507b5d7 100644 --- a/mozilla/extensions/help/resources/content/help.xul +++ b/mozilla/extensions/help/resources/content/help.xul @@ -209,14 +209,8 @@ accesskey="&searchtab.accesskey;"/>