From b30e02e6ea106de1196d3faae8d580f71e7554ad Mon Sep 17 00:00:00 2001 From: "alecf%netscape.com" Date: Mon, 15 May 2000 22:14:13 +0000 Subject: [PATCH] implement "less" to remove search terms --- .../search/resources/content/FilterEditor.js | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/mailnews/base/search/resources/content/FilterEditor.js b/mailnews/base/search/resources/content/FilterEditor.js index ad3dc883c511..43e0c87e52e4 100644 --- a/mailnews/base/search/resources/content/FilterEditor.js +++ b/mailnews/base/search/resources/content/FilterEditor.js @@ -35,6 +35,7 @@ var gActionTargetElement; var gTotalSearchTerms=0; var gSearchRowContainer; var gSearchTermContainer; +var gSearchRemovedTerms = new Array; var nsIMsgSearchValidityManager = Components.interfaces.nsIMsgSearchValidityManager; @@ -208,6 +209,40 @@ function constructRow(treeCellChildren) return treeitem; } +function removeSearchRow(index) +{ + dump("removing search term " + index + "\n"); + var searchTermElement = document.getElementById("searchTerm" + index); + if (!searchTermElement) { + dump("removeSearchRow: couldn't find search term " + index + "\n"); + return; + } + + // need to remove row from tree, so walk upwards from the + // searchattribute to find the first + var treeItemRow = searchTermElement.searchattribute; + while (treeItemRow) { + if (treeItemRow.tagName == "treeitem") break; + treeItemRow = treeItemRow.parentNode; + } + + if (!treeItemRow) { + dump("Error: couldn't find parent treeitem!\n"); + return; + } + + + if (searchTermElement.searchTerm) { + dump("That was a real row! queuing " + searchTermElement.searchTerm + " for disposal\n"); + gSearchRemovedTerms[gSearchRemovedTerms.length] = searchTermElement.searchTerm; + } else { + dump("That wasn't real. ignoring \n"); + } + + treeItemRow.parentNode.removeChild(treeItemRow); + searchTermElement.parentNode.removeChild(searchTermElement); +} + function saveFilter() { if (!gFilter) { @@ -240,6 +275,17 @@ function saveFilter() { } } + var searchTerms = gFilter.searchTerms; + // now remove the queued elements + dump("Removing " + gSearchRemovedTerms.length + "\n"); + for (var i=0; i