diff --git a/js/search/search_form_criteria_enum.js b/js/search/search_form_criteria_enum.js index 4573e0dbe..f7559858b 100644 --- a/js/search/search_form_criteria_enum.js +++ b/js/search/search_form_criteria_enum.js @@ -95,11 +95,14 @@ $(function() var oAllowedValuesElem = $('
'); if(this.options.field.allowed_values.values !== undefined) { + var aSortedValues = this._sortValuesByLabel(this.options.field.allowed_values.values); + var iValCounter = 0; - for(var sValCode in this.options.field.allowed_values.values) + for(var i in aSortedValues) { var sItemId = 'value_' + sOpId + '_' + iValCounter; - var sValLabel = this.options.field.allowed_values.values[sValCode]; + var sValCode = aSortedValues[i][0]; + var sValLabel = aSortedValues[i][1]; var oValueElem = $('') .append('') .appendTo(oAllowedValuesElem); @@ -272,5 +275,28 @@ $(function() return bFound; }, + // - Return an array of allowed values sorted by labels + _sortValuesByLabel: function(oSource) + { + var aSortable = []; + for (var sKey in oSource) { + aSortable.push([sKey, oSource[sKey]]); + } + + aSortable.sort(function(a, b) { + if(a[1] < b[1]) + { + return -1; + } + else if(a[1] > b[1]) + { + return 1; + } + + return 0; + }); + + return aSortable; + } }); });