diff --git a/xpfe/components/search/resources/internetresults.xul b/xpfe/components/search/resources/internetresults.xul index b5ef79e048fb..e65a4ae66d6e 100644 --- a/xpfe/components/search/resources/internetresults.xul +++ b/xpfe/components/search/resources/internetresults.xul @@ -103,35 +103,35 @@ + onclick="return doSort('NameColumn', null);" /> + onclick="return doSort('PageRankColumn', null);" /> + onclick="return doSort('RelevanceColumn', null);" /> + onclick="return doSort('PriceColumn', null);" /> + onclick="return doSort('AvailabilityColumn', null);" /> + onclick="return doSort('DateColumn', null);" /> + onclick="return doSort('SiteColumn', null);" /> + onclick="return doSort('EngineColumn', null);" /> diff --git a/xpfe/components/search/resources/locale/en-US/search-panel.dtd b/xpfe/components/search/resources/locale/en-US/search-panel.dtd index 2b3b108f311d..257573c6afff 100755 --- a/xpfe/components/search/resources/locale/en-US/search-panel.dtd +++ b/xpfe/components/search/resources/locale/en-US/search-panel.dtd @@ -24,8 +24,7 @@ - - + diff --git a/xpfe/components/search/resources/search-panel.xul b/xpfe/components/search/resources/search-panel.xul index 780d5183c7c6..d6c6cb11c509 100644 --- a/xpfe/components/search/resources/search-panel.xul +++ b/xpfe/components/search/resources/search-panel.xul @@ -75,11 +75,6 @@ - - - - - - + - - + + + + + + + + + // magic, hidden secondary column used for sorting + @@ -135,11 +136,6 @@ - - - - - @@ -160,7 +156,7 @@ - + diff --git a/xpfe/components/search/resources/shared.js b/xpfe/components/search/resources/shared.js index 2cf5d496b5fe..d25a94314149 100644 --- a/xpfe/components/search/resources/shared.js +++ b/xpfe/components/search/resources/shared.js @@ -263,8 +263,10 @@ function doContextCmd(cmdName, treeName) -/* Note: doSort() does NOT support natural order sorting! */ -function doSort(sortColName) +/* Note: doSort() does NOT support natural order sorting, unless naturalOrderResource is valid, + in which case we sort ascending on naturalOrderResource + */ +function doSort(sortColName, naturalOrderResource) { var node = document.getElementById(sortColName); // determine column resource to sort on @@ -275,18 +277,37 @@ function doSort(sortColName) var isSortActive = node.getAttribute('sortActive'); if (isSortActive == "true") { + sortDirection = "ascending"; + var currentDirection = node.getAttribute('sortDirection'); if (currentDirection == "ascending") - sortDirection = "descending"; - else sortDirection = "ascending"; + { + if (sortResource != naturalOrderResource) + { + sortDirection = "descending"; + } + } + else if (currentDirection == "descending") + { + if (naturalOrderResource != null && naturalOrderResource != "") + { + sortResource = naturalOrderResource; + } + } } var isupports = Components.classes["component://netscape/rdf/xul-sort-service"].getService(); if (!isupports) return(false); var xulSortService = isupports.QueryInterface(Components.interfaces.nsIXULSortService); if (!xulSortService) return(false); - xulSortService.Sort(node, sortResource, sortDirection); - + try + { + xulSortService.Sort(node, sortResource, sortDirection); + } + catch(ex) + { + debug("Exception calling xulSortService.Sort()"); + } return(true); }