зеркало из https://github.com/mozilla/gecko-dev.git
fix for search in mail, allow search to run in an existing navigator window. partial fix for 32034
This commit is contained in:
Родитель
7c72322237
Коммит
3c52bd48ff
|
@ -57,21 +57,6 @@ function debug(msg)
|
|||
// dump(msg+"\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
// get the click count pref
|
||||
try
|
||||
{
|
||||
pref = Components.classes["component://netscape/preferences"];
|
||||
if (pref) pref = pref.getService(nsIPref);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
debug("Exception " + e + " trying to get prefs.\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
RDF_observer =
|
||||
{
|
||||
onAssert : function(ds, src, prop, target)
|
||||
|
@ -116,8 +101,7 @@ function rememberSearchText(target)
|
|||
{
|
||||
if (target) target = target.QueryInterface(nsIRDFLiteral);
|
||||
if (target) target = target.Value;
|
||||
if (target && (target != ""))
|
||||
{
|
||||
if (target) {
|
||||
var textNode = document.getElementById("sidebar-search-text");
|
||||
if (!textNode) return(false);
|
||||
|
||||
|
@ -126,7 +110,7 @@ function rememberSearchText(target)
|
|||
|
||||
textNode.value = unescape(target);
|
||||
|
||||
doEnabling();
|
||||
doEnabling();
|
||||
}
|
||||
// show the results tab
|
||||
switchTab(0);
|
||||
|
@ -136,30 +120,17 @@ function rememberSearchText(target)
|
|||
|
||||
function updateSearchMode()
|
||||
{
|
||||
var searchMode = 0;
|
||||
try
|
||||
{
|
||||
if (pref) searchMode = pref.GetIntPref("browser.search.mode");
|
||||
|
||||
var categoryBox = document.getElementById("categoryBox");
|
||||
if (categoryBox)
|
||||
{
|
||||
if (searchMode == 0)
|
||||
{
|
||||
categoryBox.setAttribute("collapsed", "true");
|
||||
switchTab(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
categoryBox.removeAttribute("collapsed");
|
||||
switchTab(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(ex)
|
||||
{
|
||||
}
|
||||
return(searchMode);
|
||||
var searchMode = nsPreferences.getIntPref("browser.search.mode", 0);
|
||||
var categoryBox = document.getElementById("categoryBox");
|
||||
if (!searchMode) {
|
||||
categoryBox.setAttribute("collapsed", "true");
|
||||
switchTab(0);
|
||||
}
|
||||
else {
|
||||
categoryBox.removeAttribute("collapsed");
|
||||
switchTab(1);
|
||||
}
|
||||
return searchMode;
|
||||
}
|
||||
|
||||
|
||||
|
@ -210,28 +181,13 @@ function SearchPanelStartup()
|
|||
}
|
||||
|
||||
// try and determine last category name used
|
||||
var lastCategoryName = "";
|
||||
try
|
||||
{
|
||||
if (pref) lastCategoryName = pref.CopyCharPref( "browser.search.last_search_category" );
|
||||
|
||||
if (lastCategoryName != "")
|
||||
{
|
||||
// strip off the prefix if necessary
|
||||
var prefix="NC:SearchCategory?category=";
|
||||
if (lastCategoryName.indexOf(prefix) == 0)
|
||||
{
|
||||
lastCategoryName = lastCategoryName.substr(prefix.length);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch( e )
|
||||
{
|
||||
debug("Exception in SearchPanelStartup\n");
|
||||
lastCategoryName = "";
|
||||
}
|
||||
debug("\nSearchPanelStartup: lastCategoryName = '" + lastCategoryName + "'\n");
|
||||
var lastCategoryName = nsPreferences.copyUnicharPref("browser.search.last_search_category", "");
|
||||
if (lastCategoryName) {
|
||||
// strip off the prefix if necessary
|
||||
var prefix = "NC:SearchCategory?category=";
|
||||
if (lastCategoryName.indexOf(prefix) == 0)
|
||||
lastCategoryName = lastCategoryName.substr(prefix.length);
|
||||
}
|
||||
|
||||
// select the appropriate category
|
||||
var categoryList = document.getElementById( "categoryList" );
|
||||
|
@ -331,15 +287,11 @@ function chooseCategory( aNode )
|
|||
var category = !aNode.id ? "NC:SearchEngineRoot" :
|
||||
"NC:SearchCategory?category=" + aNode.getAttribute("id");
|
||||
|
||||
if (pref)
|
||||
pref.SetUnicharPref("browser.search.last_search_category", category);
|
||||
nsPreferences.setUnicharPref("browser.search.last_search_category", category);
|
||||
|
||||
var treeNode = document.getElementById("searchengines");
|
||||
if (treeNode)
|
||||
{
|
||||
debug("chooseCategory: ref='" + category + "'\n");
|
||||
treeNode.setAttribute("ref", category);
|
||||
}
|
||||
treeNode.setAttribute("ref", category);
|
||||
|
||||
loadEngines(category);
|
||||
return(true);
|
||||
}
|
||||
|
@ -507,13 +459,11 @@ function doStop()
|
|||
// show appropriate column(s)
|
||||
if ((rdf) && (internetSearch))
|
||||
{
|
||||
var navWindow = getNavigatorWindow();
|
||||
var resultsTree = navWindow._content.document.getElementById("internetresultstree");
|
||||
if( !resultsTree )
|
||||
return(false);
|
||||
var navWindow = getNavigatorWindow(false);
|
||||
var resultsTree = navWindow ? navWindow._content.document.getElementById("internetresultstree") : null;
|
||||
if (!resultsTree) return false;
|
||||
var searchURL = resultsTree.getAttribute("ref");
|
||||
if( !searchURL )
|
||||
return(false);
|
||||
if (!searchURL) return false;
|
||||
|
||||
var searchResource = rdf.GetResource(searchURL, true);
|
||||
var priceProperty = rdf.GetResource("http://home.netscape.com/NC-rdf#Price", true);
|
||||
|
@ -527,39 +477,39 @@ function doStop()
|
|||
var hasRelevanceFlag = internetSearch.HasAssertion(searchResource, relevanceProperty, trueProperty, true);
|
||||
var hasDateFlag = internetSearch.HasAssertion(searchResource, dateProperty, trueProperty, true);
|
||||
|
||||
var navWindow = getNavigatorWindow();
|
||||
if(hasPriceFlag == true)
|
||||
var navWindow = getNavigatorWindow(false);
|
||||
if(hasPriceFlag)
|
||||
{
|
||||
var colNode = navWindow._content.document.getElementById("PriceColumn");
|
||||
if (colNode)
|
||||
{
|
||||
colNode.removeAttribute("style", "width: 0; visibility: collapse;");
|
||||
if (sortSetFlag == false)
|
||||
if (!sortSetFlag)
|
||||
{
|
||||
top._content.setInitialSort(colNode, "ascending");
|
||||
sortSetFlag = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hasAvailabilityFlag == true)
|
||||
if (hasAvailabilityFlag)
|
||||
{
|
||||
colNode = navWindow._content.document.getElementById("AvailabilityColumn");
|
||||
if (colNode)
|
||||
colNode.removeAttribute("style", "width: 0; visibility: collapse;");
|
||||
}
|
||||
if (hasDateFlag == true)
|
||||
if (hasDateFlag)
|
||||
{
|
||||
colNode = navWindow._content.document.getElementById("DateColumn");
|
||||
if (colNode)
|
||||
colNode.removeAttribute("style", "width: 0; visibility: collapse;");
|
||||
}
|
||||
if (hasRelevanceFlag == true)
|
||||
if (hasRelevanceFlag)
|
||||
{
|
||||
colNode = navWindow._content.document.getElementById("RelevanceColumn");
|
||||
if (colNode)
|
||||
{
|
||||
colNode.removeAttribute("style", "width: 0; visibility: collapse;");
|
||||
if (sortSetFlag == false)
|
||||
if (!sortSetFlag)
|
||||
{
|
||||
navWindow._content.setInitialSort(colNode, "descending");
|
||||
sortSetFlag = true;
|
||||
|
@ -568,7 +518,7 @@ function doStop()
|
|||
}
|
||||
}
|
||||
|
||||
if (sortSetFlag == false)
|
||||
if (!sortSetFlag)
|
||||
{
|
||||
colNode = navWindow._content.document.getElementById("PageRankColumn");
|
||||
if (colNode)
|
||||
|
@ -582,58 +532,35 @@ function doStop()
|
|||
function doSearch()
|
||||
{
|
||||
var searchButton = document.getElementById("searchbutton");
|
||||
if ( searchButton.getAttribute("disabled") )
|
||||
{
|
||||
var sidebarSearchText = document.getElementById("sidebar-search-text");
|
||||
sidebarSearchText.focus();
|
||||
return;
|
||||
if (searchButton.disabled) {
|
||||
var sidebarSearchText = document.getElementById("sidebar-search-text");
|
||||
sidebarSearchText.focus();
|
||||
return;
|
||||
}
|
||||
|
||||
//get click count pref for later
|
||||
//and set tree attribute to cause proper results appearance (like links) to happen
|
||||
//when user set pref to single click
|
||||
var searchMode = 0;
|
||||
var mClickCount = 1;
|
||||
var prefvalue = false;
|
||||
var searchMode = nsPreferences.getIntPref("browser.search.mode", 0);
|
||||
var mClickCount = nsPreferences.getBoolPref("browser.search.use_double_clicks", false) ? 2 : 1;
|
||||
|
||||
try
|
||||
{
|
||||
if( pref )
|
||||
{
|
||||
searchMode = pref.GetIntPref("browser.search.mode");
|
||||
prefvalue = pref.GetBoolPref( "browser.search.use_double_clicks" );
|
||||
mClickCount = prefvalue ? 2 : 1;
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
searchMode = 0;
|
||||
mClickCount = 1;
|
||||
prefvalue = false;
|
||||
}
|
||||
// hack hack hack hack
|
||||
var tree = document.getElementById("Tree");
|
||||
if (mClickCount == 1)
|
||||
tree.setAttribute("singleclick","true");
|
||||
else
|
||||
tree.removeAttribute("singleclick");
|
||||
|
||||
var tree = document.getElementById("Tree");
|
||||
if (mClickCount == 1)
|
||||
{
|
||||
tree.setAttribute("singleclick","true");
|
||||
}
|
||||
else
|
||||
{
|
||||
tree.removeAttribute("singleclick");
|
||||
}
|
||||
|
||||
// hide various columns
|
||||
var navWindow = getNavigatorWindow();
|
||||
dump("*** navWindow = " + navWindow + "\n");
|
||||
if( navWindow._content.isMozillaSearchWindow )
|
||||
{
|
||||
colNode = navWindow._content.document.getElementById("RelevanceColumn");
|
||||
if (colNode) colNode.setAttribute("style", "width: 0; visibility: collapse;");
|
||||
colNode = navWindow._content.document.getElementById("PriceColumn");
|
||||
if (colNode) colNode.setAttribute("style", "width: 0; visibility: collapse;");
|
||||
colNode = navWindow._content.document.getElementById("AvailabilityColumn");
|
||||
if (colNode) colNode.setAttribute("style", "width: 0; visibility: collapse;");
|
||||
}
|
||||
// hide various columns
|
||||
var navWindow = getNavigatorWindow(false);
|
||||
if (navWindow && navWindow._content && navWindow._content.isMozillaSearchWindow) {
|
||||
colNode = navWindow._content.document.getElementById("RelevanceColumn");
|
||||
if (colNode) colNode.setAttribute("style", "width: 0; visibility: collapse;");
|
||||
colNode = navWindow._content.document.getElementById("PriceColumn");
|
||||
if (colNode) colNode.setAttribute("style", "width: 0; visibility: collapse;");
|
||||
colNode = navWindow._content.document.getElementById("AvailabilityColumn");
|
||||
if (colNode) colNode.setAttribute("style", "width: 0; visibility: collapse;");
|
||||
}
|
||||
|
||||
// get user text to find
|
||||
var textNode = document.getElementById("sidebar-search-text");
|
||||
|
@ -650,8 +577,8 @@ function doSearch()
|
|||
|
||||
if (searchMode > 0)
|
||||
{
|
||||
// in advanced search mode, get selected search engines
|
||||
// (for the current search category)
|
||||
// in advanced search mode, get selected search engines
|
||||
// (for the current search category)
|
||||
var engineBox = document.getElementById("engineKids");
|
||||
if (!engineBox) return(false);
|
||||
|
||||
|
@ -665,7 +592,7 @@ function doSearch()
|
|||
|
||||
if ( checkboxNode.checked == true || checkboxNode.checked == "true")
|
||||
{
|
||||
var engineURI = treeitemNode.getAttribute("id");
|
||||
var engineURI = treeitemNode.id;
|
||||
if (!engineURI) continue;
|
||||
engineURIs[engineURIs.length] = engineURI;
|
||||
foundEngine = true;
|
||||
|
@ -676,13 +603,13 @@ function doSearch()
|
|||
if( getNumEngines() == 1 ) {
|
||||
// only one engine in this category, check it
|
||||
var treeitemNode = engineBox.firstChild;
|
||||
engineURIs[engineURIs.length] = treeitemNode.getAttribute("id");
|
||||
engineURIs[engineURIs.length] = treeitemNode.id;
|
||||
}
|
||||
else {
|
||||
for( var i = 0; i < engineBox.childNodes.length; i++ )
|
||||
{
|
||||
var treeitemNode = engineBox.childNodes[i];
|
||||
var theID = treeitemNode.getAttribute("id");
|
||||
var theID = treeitemNode.id;
|
||||
if( theID.indexOf("NetscapeSearch.src") != -1 )
|
||||
{
|
||||
engineURIs[engineURIs.length] = theID;
|
||||
|
@ -690,10 +617,9 @@ function doSearch()
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (foundEngine == false)
|
||||
{
|
||||
alert(bundle.GetStringFromName("enterstringandlocation") );
|
||||
return(false);
|
||||
if (!foundEngine) {
|
||||
alert(bundle.GetStringFromName("enterstringandlocation") );
|
||||
return(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -724,49 +650,34 @@ function doSearch()
|
|||
function checkSearchProgress()
|
||||
{
|
||||
var activeSearchFlag = false;
|
||||
var navWindow = getNavigatorWindow();
|
||||
var resultsTree = navWindow._content.document.getElementById("internetresultstree");
|
||||
if(resultsTree)
|
||||
{
|
||||
var treeref = resultsTree.getAttribute("ref");
|
||||
var ds = resultsTree.database;
|
||||
if (ds && treeref)
|
||||
{
|
||||
try
|
||||
{
|
||||
var rdf = Components.classes[RDFSERVICE_PROGID].getService(nsIRDFService);
|
||||
if (rdf)
|
||||
{
|
||||
var source = rdf.GetResource(treeref, true);
|
||||
var loadingProperty = rdf.GetResource("http://home.netscape.com/NC-rdf#loading", true);
|
||||
var target = ds.GetTarget(source, loadingProperty, true);
|
||||
if (target) target = target.QueryInterface(nsIRDFLiteral);
|
||||
if (target) target = target.Value;
|
||||
if (target == "true")
|
||||
{
|
||||
activeSearchFlag = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
activeSearchFlag = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(ex)
|
||||
{
|
||||
activeSearchFlag = false;
|
||||
}
|
||||
}
|
||||
var navWindow = getNavigatorWindow(false);
|
||||
if (navWindow)
|
||||
var resultsTree = navWindow._content.document.getElementById("internetresultstree");
|
||||
if(resultsTree) {
|
||||
var treeref = resultsTree.getAttribute("ref");
|
||||
var ds = resultsTree.database;
|
||||
if (ds && treeref) {
|
||||
try {
|
||||
var rdf = nsJSComponentManager.getService(RDFSERVICE_PROGID, "nsIRDFService");
|
||||
if (rdf) {
|
||||
var source = rdf.GetResource(treeref, true);
|
||||
var loadingProperty = rdf.GetResource("http://home.netscape.com/NC-rdf#loading", true);
|
||||
var target = ds.GetTarget(source, loadingProperty, true);
|
||||
if (target) target = target.QueryInterface(nsIRDFLiteral);
|
||||
if (target) target = target.Value;
|
||||
activeSearchFlag = target == "true" ? true : false;
|
||||
}
|
||||
}
|
||||
catch(ex) {
|
||||
activeSearchFlag = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( activeSearchFlag )
|
||||
{
|
||||
setTimeout("checkSearchProgress()", 1000);
|
||||
}
|
||||
else
|
||||
{
|
||||
doStop();
|
||||
}
|
||||
if (activeSearchFlag)
|
||||
setTimeout("checkSearchProgress()", 1000);
|
||||
else
|
||||
doStop();
|
||||
|
||||
return(activeSearchFlag);
|
||||
}
|
||||
|
@ -775,17 +686,7 @@ function checkSearchProgress()
|
|||
|
||||
function sidebarOpenURL(event, treeitem, root)
|
||||
{
|
||||
try {
|
||||
if( pref ) {
|
||||
var prefvalue = pref.GetBoolPref( "browser.search.use_double_clicks" );
|
||||
mClickCount = prefvalue ? 2 : 1;
|
||||
}
|
||||
else
|
||||
mClickCount = 1;
|
||||
}
|
||||
catch(e) {
|
||||
mClickCount = 1;
|
||||
}
|
||||
mClickCount = nsPreferences.getBoolPref("browser.search.use_double_clicks", false) ? 2 : 1;
|
||||
|
||||
if ((event.button != 1) || (event.detail != mClickCount))
|
||||
return(false);
|
||||
|
@ -796,7 +697,7 @@ function sidebarOpenURL(event, treeitem, root)
|
|||
if (treeitem.getAttribute("type") == "http://home.netscape.com/NC-rdf#BookmarkSeparator")
|
||||
return(false);
|
||||
|
||||
var id = treeitem.getAttribute('id');
|
||||
var id = treeitem.id;
|
||||
if (!id)
|
||||
return(false);
|
||||
|
||||
|
@ -810,7 +711,8 @@ function sidebarOpenURL(event, treeitem, root)
|
|||
{
|
||||
ds = theRootNode.database;
|
||||
}
|
||||
var rdf = Components.classes[RDFSERVICE_PROGID].getService(nsIRDFService);
|
||||
|
||||
var rdf = nsJSComponentManager.getService(RDFSERVICE_PROGID, "nsIRDFService");
|
||||
if (rdf)
|
||||
{
|
||||
if (ds)
|
||||
|
@ -828,122 +730,77 @@ function sidebarOpenURL(event, treeitem, root)
|
|||
{
|
||||
}
|
||||
|
||||
loadURLInContent(id);
|
||||
loadURLInContent(id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function OpenSearch( aSearchStr, engineURIs )
|
||||
{
|
||||
var searchEngineURI = null;
|
||||
var autoOpenSearchPanel = false;
|
||||
var defaultSearchURL = null;
|
||||
var searchEngineURI = nsPreferences.copyUnicharPref("browser.search.defaultengine", null);
|
||||
var autoOpenSearchPanel = nsPreferences.getBoolPref("browser.search.opensidebarsearchpanel", false);
|
||||
var defaultSearchURL = nsPreferences.getLocalizedUnicharPref("browser.search.defaulturl", null);
|
||||
|
||||
try
|
||||
{
|
||||
if (pref)
|
||||
{
|
||||
autoOpenSearchPanel = pref.GetBoolPref("browser.search.opensidebarsearchpanel");
|
||||
searchEngineURI = pref.CopyCharPref("browser.search.defaultengine");
|
||||
debug("From prefs, searchEngineURI = '" + searchEngineURI + "'\n");
|
||||
defaultSearchURL = pref.getLocalizedUnicharPref("browser.search.defaulturl");
|
||||
}
|
||||
}
|
||||
catch(ex)
|
||||
{
|
||||
}
|
||||
|
||||
if ( !defaultSearchURL )
|
||||
{
|
||||
if (!defaultSearchURL)
|
||||
defaultSearchURL = bundle.GetStringFromName("defaultSearchURL");
|
||||
}
|
||||
|
||||
var searchDS = Components.classes[ISEARCH_PROGID].getService(nsIInternetSearchService);
|
||||
if( searchDS )
|
||||
{
|
||||
if(!aSearchStr)
|
||||
{
|
||||
return(false);
|
||||
var searchDS = Components.classes[ISEARCH_PROGID].getService(nsIInternetSearchService);
|
||||
if (searchDS)
|
||||
{
|
||||
if(!aSearchStr)
|
||||
return(false);
|
||||
|
||||
var escapedSearchStr = escape( aSearchStr );
|
||||
searchDS.RememberLastSearchText( escapedSearchStr );
|
||||
|
||||
try {
|
||||
if( !engineURIs || ( engineURIs && engineURIs.length <= 1 ) )
|
||||
{
|
||||
// not called from sidebar or only one engine selected
|
||||
if (engineURIs && engineURIs.length == 1) {
|
||||
debug("Got one engine: " + engineURIs[0] + "\n");
|
||||
searchEngineURI = engineURIs[0];
|
||||
gURL = "internetsearch:engine=" + searchEngineURI + "&text=" + escapedSearchStr;
|
||||
}
|
||||
|
||||
var escapedSearchStr = escape( aSearchStr );
|
||||
searchDS.RememberLastSearchText( escapedSearchStr );
|
||||
if (!searchEngineURI)
|
||||
searchEngineURI = bundle.GetStringFromName("defaultSearchURL");
|
||||
|
||||
try
|
||||
{
|
||||
if( !engineURIs || ( engineURIs && engineURIs.length <= 1 ) )
|
||||
{
|
||||
debug("searchEngineURI = '" + searchEngineURI + "'\n");
|
||||
// not called from sidebar or only one engine selected
|
||||
if (engineURIs && engineURIs.length == 1)
|
||||
{
|
||||
debug("Got one engine: " + engineURIs[0] + "\n");
|
||||
searchEngineURI = engineURIs[0];
|
||||
gURL = "internetsearch:engine=" + searchEngineURI + "&text=" + escapedSearchStr;
|
||||
}
|
||||
else
|
||||
{
|
||||
debug("No engines, default to '" + searchEngineURI + "'\n");
|
||||
}
|
||||
// look up the correct search URL format for the given engine
|
||||
try {
|
||||
var searchURL = searchDS.GetInternetSearchURL( searchEngineURI, escapedSearchStr );
|
||||
}
|
||||
catch(ex) {
|
||||
searchURL = "";
|
||||
}
|
||||
|
||||
if ((!searchEngineURI) || (searchEngineURI == ""))
|
||||
{
|
||||
searchEngineURI = bundle.GetStringFromName("defaultSearchURL");
|
||||
}
|
||||
defaultSearchURL = searchURL ? searchURL : defaultSearchURL + escapedSearchStr;
|
||||
if (!searchURL) gURL = "";
|
||||
|
||||
// look up the correct search URL format for the given engine
|
||||
try
|
||||
{
|
||||
var searchURL = searchDS.GetInternetSearchURL( searchEngineURI, escapedSearchStr );
|
||||
// load the results page of selected or default engine in the content area
|
||||
if (defaultSearchURL)
|
||||
loadURLInContent(defaultSearchURL);
|
||||
}
|
||||
else {
|
||||
// multiple providers
|
||||
searchURL = "";
|
||||
for( var i = 0; i < engineURIs.length; i++ ) {
|
||||
searchURL += !searchURL ? "internetsearch:" : "&";
|
||||
searchURL += "engine=" + engineURIs[i];
|
||||
}
|
||||
searchURL += ( "&text=" + escapedSearchStr );
|
||||
gURL = searchURL;
|
||||
dump("*** about to attempt to load internetresults into the content window\n");
|
||||
loadURLInContent("chrome://communicator/content/search/internetresults.xul?" + searchURL);
|
||||
}
|
||||
}
|
||||
catch(ex)
|
||||
{
|
||||
searchURL = "";
|
||||
}
|
||||
|
||||
if (searchURL)
|
||||
{
|
||||
defaultSearchURL = searchURL;
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultSearchURL = defaultSearchURL + escapedSearchStr;
|
||||
gURL = "";
|
||||
}
|
||||
|
||||
// load the results page of selected or default engine in the content area
|
||||
if (defaultSearchURL)
|
||||
{
|
||||
loadURLInContent(defaultSearchURL);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// multiple providers
|
||||
searchURL = "";
|
||||
for( var i = 0; i < engineURIs.length; i++ )
|
||||
{
|
||||
if( searchURL == "" )
|
||||
searchURL = "internetsearch:";
|
||||
else
|
||||
searchURL += "&";
|
||||
searchURL += "engine=" + engineURIs[i];
|
||||
}
|
||||
searchURL += ( "&text=" + escapedSearchStr );
|
||||
gURL = searchURL;
|
||||
loadURLInContent("chrome://communicator/content/search/internetresults.xul?" + searchURL);
|
||||
}
|
||||
}
|
||||
catch(ex)
|
||||
{
|
||||
}
|
||||
|
||||
setTimeout("checkSearchProgress()", 1000);
|
||||
}
|
||||
setTimeout("checkSearchProgress()", 1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function switchTab( aPageIndex )
|
||||
{
|
||||
var deck = document.getElementById( "advancedDeck" );
|
||||
|
@ -962,37 +819,22 @@ function switchTab( aPageIndex )
|
|||
|
||||
var haveSearchRef = false;
|
||||
|
||||
var rdf = Components.classes[RDFSERVICE_PROGID].getService(nsIRDFService);
|
||||
if (rdf)
|
||||
{
|
||||
var source = rdf.GetResource( "NC:LastSearchRoot", true);
|
||||
var childProperty;
|
||||
var target;
|
||||
|
||||
var rdf = nsJSComponentManager.getService(RDFSERVICE_PROGID, "nsIRDFService");
|
||||
if (rdf) {
|
||||
// look for last search URI
|
||||
childProperty = rdf.GetResource("http://home.netscape.com/NC-rdf#ref", true);
|
||||
target = ds.GetTarget(source, childProperty, true);
|
||||
var source = rdf.GetResource( "NC:LastSearchRoot", true);
|
||||
var childProperty = rdf.GetResource("http://home.netscape.com/NC-rdf#ref", true);
|
||||
var target = ds.GetTarget(source, childProperty, true);
|
||||
if (target) target = target.QueryInterface(nsIRDFLiteral);
|
||||
if (target) target = target.Value;
|
||||
if (target && target != "")
|
||||
{
|
||||
haveSearchRef = true;
|
||||
}
|
||||
if (target) haveSearchRef = true;
|
||||
}
|
||||
|
||||
if (haveSearchRef == true)
|
||||
{
|
||||
saveQueryButton.removeAttribute("disabled", "true");
|
||||
}
|
||||
else
|
||||
{
|
||||
saveQueryButton.setAttribute("disabled", "true");
|
||||
}
|
||||
return(true);
|
||||
saveQueryButton.disabled = haveSearchRef ? false : true;
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function saveSearch()
|
||||
{
|
||||
var resultsTree = document.getElementById("Tree");
|
||||
|
@ -1003,30 +845,23 @@ function saveSearch()
|
|||
var lastSearchURI="";
|
||||
var lastSearchText="";
|
||||
|
||||
var rdf = Components.classes[RDFSERVICE_PROGID].getService(nsIRDFService);
|
||||
var rdf = nsJSComponentManager.getService(RDFSERVICE_PROGID, "nsIRDFService");
|
||||
if (rdf)
|
||||
{
|
||||
var source = rdf.GetResource( "NC:LastSearchRoot", true);
|
||||
var childProperty;
|
||||
var target;
|
||||
|
||||
// look for last search URI
|
||||
childProperty = rdf.GetResource("http://home.netscape.com/NC-rdf#ref", true);
|
||||
target = ds.GetTarget(source, childProperty, true);
|
||||
var source = rdf.GetResource( "NC:LastSearchRoot", true);
|
||||
var childProperty = rdf.GetResource("http://home.netscape.com/NC-rdf#ref", true);
|
||||
var target = ds.GetTarget(source, childProperty, true);
|
||||
if (target) target = target.QueryInterface(nsIRDFLiteral);
|
||||
if (target) target = target.Value;
|
||||
if (target && target != "")
|
||||
{
|
||||
lastSearchURI = target;
|
||||
debug("Bookmark search URL: '" + lastSearchURI + "'\n");
|
||||
}
|
||||
if (target) lastSearchURI = target;
|
||||
|
||||
// look for last search text
|
||||
childProperty = rdf.GetResource("http://home.netscape.com/NC-rdf#LastText", true);
|
||||
target = ds.GetTarget(source, childProperty, true);
|
||||
if (target) target = target.QueryInterface(nsIRDFLiteral);
|
||||
if (target) target = target.Value;
|
||||
if (target && target != "")
|
||||
if (target)
|
||||
{
|
||||
// convert pluses (+) back to spaces
|
||||
target = target.replace(/+/i, " ");
|
||||
|
@ -1037,7 +872,7 @@ function saveSearch()
|
|||
}
|
||||
|
||||
|
||||
if ((lastSearchURI == null) || (lastSearchURI == "")) return(false);
|
||||
if (!lastSearchURI) return(false);
|
||||
|
||||
// rjc says: if lastSearchText is empty/null, that's still OK, synthesize the text
|
||||
if ((lastSearchText == null) || (lastSearchText == ""))
|
||||
|
@ -1066,24 +901,24 @@ function saveSearch()
|
|||
return(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function doCustomize()
|
||||
{
|
||||
window.openDialog("chrome://communicator/content/search/search-editor.xul", "_blank", "centerscreen,chrome,resizable");
|
||||
}
|
||||
|
||||
|
||||
|
||||
function loadURLInContent(url)
|
||||
{
|
||||
var appCore = getNavigatorWindowAppCore();
|
||||
if (appCore)
|
||||
appCore.loadUrl(url);
|
||||
var appCore = getNavigatorWindowAppCore();
|
||||
if (appCore)
|
||||
appCore.loadUrl(url);
|
||||
else {
|
||||
var navWindow = getNavigatorWindow(true);
|
||||
navWindow._content.location.href = url;
|
||||
}
|
||||
}
|
||||
|
||||
// retrieves the most recent navigator window
|
||||
function getNavigatorWindow()
|
||||
function getNavigatorWindow(aOpenFlag)
|
||||
{
|
||||
const WM_PROGID = "component://netscape/rdf/datasource?name=window-mediator";
|
||||
var wm;
|
||||
|
@ -1094,38 +929,38 @@ function getNavigatorWindow()
|
|||
return top;
|
||||
else {
|
||||
wm = nsJSComponentManager.getService(WM_PROGID, "nsIWindowMediator");
|
||||
return wm ? wm.getMostRecentWindow("navigator:browser") : openNewNavigator();
|
||||
var mostRecentNavigator = wm.getMostRecentWindow("navigator:browser");
|
||||
return mostRecentNavigator ? mostRecentNavigator : aOpenFlag ? openNewNavigator() : null;
|
||||
}
|
||||
}
|
||||
else {
|
||||
wm = nsJSComponentManager.getService(WM_PROGID, "nsIWindowMediator");
|
||||
return wm ? wm.getMostRecentWindow("navigator:browser") : openNewNavigator();
|
||||
var mostRecentNavigator = wm.getMostRecentWindow("navigator:browser");
|
||||
return mostRecentNavigator ? mostRecentNavigator : aOpenFlag ? openNewNavigator() : null;
|
||||
}
|
||||
}
|
||||
|
||||
// retrieves the most recent navigator window's crap core.
|
||||
function getNavigatorWindowAppCore()
|
||||
{
|
||||
var navigatorWindow = getNavigatorWindow();
|
||||
var navigatorWindow = getNavigatorWindow(true);
|
||||
return navigatorWindow.appCore;
|
||||
}
|
||||
|
||||
function openNewNavigator()
|
||||
{
|
||||
var newNavigator = open(search_getBrowserURL(), "_blank", "chrome,all,dialog=no");
|
||||
dump("*** newNavigator - " + newNavigator + "\n");
|
||||
return newNavigator;
|
||||
var navURL = search_getBrowserURL();
|
||||
var newNavigator = openDialog(navURL, "_blank", "chrome,all,dialog=no");
|
||||
|
||||
const WM_PROGID = "component://netscape/rdf/datasource?name=window-mediator";
|
||||
var wm = nsJSComponentManager.getService(WM_PROGID, "nsIWindowMediator");
|
||||
var mostRecentNavigator = wm.getMostRecentWindow("navigator:browser");
|
||||
return mostRecentNavigator ? mostRecentNavigator : newNavigator;
|
||||
}
|
||||
|
||||
function search_getBrowserURL()
|
||||
{
|
||||
var url = "chrome://navigator/content/navigator.xul";
|
||||
|
||||
if (pref) {
|
||||
var temp = pref.CopyCharPref("browser.chromeURL");
|
||||
if (temp) url = temp;
|
||||
}
|
||||
return url;
|
||||
return nsPreferences.copyUnicharPref("browser.chromeURL", "chrome://navigator/content/navigator.xul");
|
||||
}
|
||||
|
||||
|
||||
|
@ -1135,17 +970,13 @@ function doEnabling()
|
|||
var searchButton = document.getElementById("searchbutton");
|
||||
var sidebarSearchText = document.getElementById("sidebar-search-text");
|
||||
|
||||
if ( sidebarSearchText.value == "" )
|
||||
{
|
||||
// No input, disable search button if enabled.
|
||||
if ( !searchButton.getAttribute("disabled") )
|
||||
searchButton.setAttribute("disabled","true");
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( searchButton.getAttribute("disabled") == "true")
|
||||
{
|
||||
searchButton.removeAttribute("disabled");
|
||||
}
|
||||
}
|
||||
if (!sidebarSearchText.value) {
|
||||
// No input, disable search button if enabled.
|
||||
if (!searchButton.disabled)
|
||||
searchButton.disabled = true;
|
||||
}
|
||||
else if (searchButton.disabled)
|
||||
searchButton.disabled = false;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
|
||||
<script language="Javascript" src="chrome://global/content/strres.js"></script>
|
||||
<script language="Javascript" src="chrome://global/content/nsJSComponentManager.js"></script>
|
||||
<script language="Javascript" src="chrome://global/content/nsUserSettings.js"></script>
|
||||
<script language="Javascript" src="chrome://communicator/content/search/search-panel.js"></script>
|
||||
<script language="Javascript" src="chrome://communicator/content/search/shared.js"></script>
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче