Bug 386434: Add-ons aren't sorted correctly in Add-ons manager (problem with non-ascii chars). r=dtownsend
This commit is contained in:
@@ -694,13 +694,9 @@ function displaySearchResults(addons, count, isRecommended) {
|
||||
gRDF.GetLiteral("header-recommended"),
|
||||
true);
|
||||
|
||||
// Case insensitive sort
|
||||
// Locale sensitive sort
|
||||
function compare(a, b) {
|
||||
if (a.name.toLowerCase() < b.name.toLowerCase())
|
||||
return -1;
|
||||
if (a.name.toLowerCase() > b.name.toLowerCase())
|
||||
return 1;
|
||||
return 0;
|
||||
return String.localeCompare(a.name, b.name);
|
||||
}
|
||||
addons.sort(compare);
|
||||
}
|
||||
@@ -899,13 +895,9 @@ function rebuildPluginsDS()
|
||||
|
||||
cleanDataSource(gPluginsDS, rootctr);
|
||||
|
||||
// Case insensitive sort
|
||||
// Locale sensitive sort
|
||||
function compare(a, b) {
|
||||
if (a.name.toLowerCase() < b.name.toLowerCase())
|
||||
return -1;
|
||||
if (a.name.toLowerCase() > b.name.toLowerCase())
|
||||
return 1;
|
||||
return 0;
|
||||
return String.localeCompare(a.name, b.name);
|
||||
}
|
||||
plugins.sort(compare);
|
||||
|
||||
|
||||
@@ -7989,17 +7989,15 @@ ExtensionsDataSource.prototype = {
|
||||
if (itemType & type) {
|
||||
items.push({ item : item,
|
||||
ordinal: ordinal,
|
||||
sortkey: this.getItemProperty(id, propertyName).toLowerCase() });
|
||||
sortkey: this.getItemProperty(id, propertyName) });
|
||||
ordinal++;
|
||||
}
|
||||
}
|
||||
|
||||
var direction = isAscending ? 1 : -1;
|
||||
// Case insensitive sort
|
||||
// Locale sensitive sort
|
||||
function compare(a, b) {
|
||||
if (a.sortkey < b.sortkey) return (-1 * direction);
|
||||
if (a.sortkey > b.sortkey) return (1 * direction);
|
||||
return 0;
|
||||
return String.localeCompare(a.sortkey, b.sortkey) * direction;
|
||||
}
|
||||
items.sort(compare);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user