94 lines
2.6 KiB
JavaScript
94 lines
2.6 KiB
JavaScript
|
|
var gDatasourceName = "";
|
|
var gMatchName = "";
|
|
var gMethodName = "";
|
|
var gTextName = "";
|
|
|
|
function doFind()
|
|
{
|
|
gDatasourceName = "";
|
|
gMatchName = "";
|
|
gMethodName = "";
|
|
gTextName = "";
|
|
|
|
// get RDF datasource to query
|
|
var datasourceNode = document.getElementById("datasource");
|
|
if (!datasourceNode) return(false);
|
|
var x = datasourceNode.selectedIndex;
|
|
if (x < 0) return(false);
|
|
var datasource = datasourceNode.options[x].value;
|
|
if (!datasource) return(false);
|
|
gDatasourceName = datasourceNode.options[x].text;
|
|
dump("Datasource: " + gDatasourceName + "\n");
|
|
|
|
// get match
|
|
var matchNode = document.getElementById("match");
|
|
if (!matchNode) return(false);
|
|
x = matchNode.selectedIndex;
|
|
if (x < 0) return(false);
|
|
var match = matchNode.options[x].value;
|
|
if (!match) return(false);
|
|
gMatchName = matchNode.options[x].text;
|
|
dump("Match: " + gMatchName + "\n");
|
|
|
|
// get method
|
|
var methodNode = document.getElementById("method");
|
|
if (!methodNode) return(false);
|
|
x = methodNode.selectedIndex;
|
|
if (x < 0) return(false);
|
|
var method = methodNode.options[x].value;
|
|
if (!method) return(false);
|
|
gMethodName = methodNode.options[x].text;
|
|
dump("Method: " + method + "\n");
|
|
|
|
// get user text to find
|
|
var textNode = document.getElementById("findtext");
|
|
if (!textNode) return(false);
|
|
var text = textNode.value;
|
|
if (!text) return(false);
|
|
gTextName = text;
|
|
dump("Find text: " + text + "\n");
|
|
|
|
// construct find URL
|
|
var url = "find:datasource=" + datasource;
|
|
url += "&match=" + match;
|
|
url += "&method=" + method;
|
|
url += "&text=" + text;
|
|
dump("Find URL: " + url + "\n");
|
|
|
|
// load find URL into results pane
|
|
var resultsTree = parent.frames[1].document.getElementById("findresultstree");
|
|
if (!resultsTree) return(false);
|
|
resultsTree.setAttribute("ref", url);
|
|
|
|
// enable "Save Search" button
|
|
var searchButton = document.getElementById("SaveSearch");
|
|
if (searchButton)
|
|
{
|
|
searchButton.removeAttribute("disabled", "false");
|
|
}
|
|
|
|
dump("doFind done.\n");
|
|
return(true);
|
|
}
|
|
|
|
|
|
|
|
function saveSearch()
|
|
{
|
|
var resultsTree = parent.frames[1].document.getElementById("findresultstree");
|
|
if (!resultsTree) return(false);
|
|
var searchURL = resultsTree.getAttribute("ref");
|
|
if ((!searchURL) || (searchURL == "")) return(false);
|
|
|
|
dump("Bookmark search URL: " + searchURL + "\n");
|
|
var searchTitle = "Search: " + gMatchName + " " + gMethodName + " '" + gTextName + "' in " + gDatasourceName;
|
|
dump("Title: " + searchTitle + "\n\n");
|
|
|
|
var bmks = Components.classes["component://netscape/browser/bookmarks-service"].getService();
|
|
if (bmks) bmks = bmks.QueryInterface(Components.interfaces.nsIBookmarksService);
|
|
if (bmks) bmks.AddBookmark(searchURL, searchTitle);
|
|
|
|
return(true);
|
|
}
|