fix search to search sub-sub folders r=alecf 50936

git-svn-id: svn://10.0.0.236/trunk@77824 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bienvenu%netscape.com
2000-09-01 01:27:48 +00:00
parent 0d83a1a3eb
commit 8623874b59

View File

@@ -138,32 +138,14 @@ function onSearch(event)
dump("setting up search..\n");
gSearchSession.clearScopes();
// tell the search session what the new scope is
gSearchSession.addScopeTerm(GetScopeForFolder(gCurrentFolder),
if (!gCurrentFolder.isServer)
gSearchSession.addScopeTerm(GetScopeForFolder(gCurrentFolder),
gCurrentFolder);
var searchSubfolders = document.getElementById("checkSearchSubFolders").checked;
if (gCurrentFolder && (searchSubfolders || gCurrentFolder.isServer) && gCurrentFolder.hasSubFolders)
if (gCurrentFolder && (searchSubfolders || gCurrentFolder.isServer))
{
var subFolderEnumerator = gCurrentFolder.GetSubFolders();
var done = false;
while (!done)
{
var next = subFolderEnumerator.currentItem();
if (next)
{
var nextFolder = next.QueryInterface(Components.interfaces.nsIMsgFolder);
if (nextFolder)
gSearchSession.addScopeTerm(GetScopeForFolder(nextFolder), nextFolder);
}
try
{
subFolderEnumerator.next();
}
catch (ex)
{
done = true;
}
}
AddSubFolders(gCurrentFolder);
}
// reflect the search widgets back into the search session
saveSearchTerms(gSearchSession.searchTerms, gSearchSession);
@@ -175,6 +157,34 @@ function onSearch(event)
dump("Kicking it off with " + gThreadTree.getAttribute("ref") + "\n");
}
function AddSubFolders(folder) {
if (folder.hasSubFolders)
{
var subFolderEnumerator = folder.GetSubFolders();
var done = false;
while (!done)
{
var next = subFolderEnumerator.currentItem();
if (next)
{
var nextFolder = next.QueryInterface(Components.interfaces.nsIMsgFolder);
if (nextFolder)
{
gSearchSession.addScopeTerm(GetScopeForFolder(nextFolder), nextFolder);
AddSubFolders(nextFolder);
}
}
try
{
subFolderEnumerator.next();
}
catch (ex)
{
done = true;
}
}
}
}
function GetScopeForFolder(folder) {
if (folder.server.type == "nntp")