commit cbdc75df9a5c02b20c475c251b014e3996376c62
parent 90d57c4afef625dbcad4d9b6ee038cccfe71e1d4
Author: Dan Stillman <dstillman@zotero.org>
Date: Tue, 3 Jun 2014 14:08:33 -0400
Fix search condition handling when two conditions have same translation
This prevented one "Numéro" from working in the French locale.
Also do a proper collation sort
Diffstat:
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/chrome/content/zotero/xpcom/search.js b/chrome/content/zotero/xpcom/search.js
@@ -2274,8 +2274,7 @@ Zotero.SearchConditions = new function(){
_conditions[conditions[i]['name']] = conditions[i];
}
- var sortKeys = [];
- var sortValues = [];
+ _standardConditions = [];
var baseMappedFields = Zotero.ItemFields.getBaseMappedFields();
@@ -2299,23 +2298,18 @@ Zotero.SearchConditions = new function(){
continue;
}
- var localized = self.getLocalizedName(i);
-
- sortKeys.push(localized);
- sortValues[localized] = {
+ _standardConditions.push({
name: i,
- localized: localized,
+ localized: self.getLocalizedName(i),
operators: _conditions[i]['operators'],
flags: _conditions[i]['flags']
- };
+ });
}
- // Alphabetize by localized name
- // TODO: locale collation sort
- sortKeys = sortKeys.sort();
- for each(var i in sortKeys){
- _standardConditions.push(sortValues[i]);
- }
+ var collation = Zotero.getLocaleCollation();
+ _standardConditions.sort(function(a, b) {
+ return collation.compareString(1, a.localized, b.localized);
+ });
_initialized = true;
}