=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.array.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.array.js 2011-06-01 08:19:02 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.array.js 2011-06-19 17:25:08 +0000 @@ -39,7 +39,7 @@ dhis2.array.remove = function( array, from, to ) { // Array Remove - By John Resig (MIT Licensed) - var rest = array.slice( (to || from) + 1 || array.length ); + var rest = array.slice( ( to || from ) + 1 || array.length ); array.length = from < 0 ? array.length + from : from; return array.push.apply( array, rest ); === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.select.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.select.js 2011-06-19 11:30:00 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.select.js 2011-06-19 17:25:08 +0000 @@ -158,3 +158,33 @@ { $select.children().attr('selected', false); } + +/** + * Sort options in a select. Based on their html() content. This version is case + * sensitive. + * + * @param $options Array of the options to sort + * + * @return Sorted array of options + */ +dhis2.select.sort = function($options) +{ + return $.makeArray($options).sort(function(a, b) { + return dhis2.comparator.htmlComparator( $(a), $(b) ); + }); +} + +/** + * Sort options in a select. Based on their html() content. This version is case + * insensitive + * + * @param $options Array of the options to sort + * + * @return Sorted array of options + */ +dhis2.select.sortNC = function($options) +{ + return $($.makeArray($options).sort(function(a, b) { + return dhis2.comparator.htmlNoCaseComparator( $(a), $(b) ); + }) ); +} === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/jQuery/jquery.dhisAjaxSelect.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/jQuery/jquery.dhisAjaxSelect.js 2011-06-19 11:30:00 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/jQuery/jquery.dhisAjaxSelect.js 2011-06-19 17:25:08 +0000 @@ -123,8 +123,13 @@ { var jqAvailableList = $("#" + sourceId); var jqSelectedList = $("#" + targetId); + var settings = jqAvailableList.data("settings"); - dhis2.select.moveSorted(jqSelectedList, jqAvailableList.find(":selected")); + if(settings.sortSelected) { + dhis2.select.moveSorted(jqSelectedList, jqAvailableList.find(":selected")); + } else { + dhis2.select.move(jqSelectedList, jqAvailableList.find(":selected")); + } } } @@ -134,8 +139,15 @@ { var jqAvailableList = $("#" + targetId); var jqSelectedList = $("#" + sourceId); - - dhis2.select.moveSorted(jqAvailableList, jqSelectedList.find(":selected")); + var settings = jqAvailableList.data("settings"); + + var $children = jqSelectedList.find(":selected"); + + if(!settings.sortSelected) { + $children = dhis2.select.sortNC( $children ); + } + + dhis2.select.moveSorted(jqAvailableList, $children); } } @@ -194,7 +206,11 @@ }, init : function(options) { - var settings = {} + var settings = { + sortAvailable: true, + sortSelected: true + }; + var params = {} $.extend(settings, options);