metrics: add state, alphabetic and numeric sorting

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
Rohit Yadav 2015-10-21 16:14:29 +05:30
parent ddd57c3888
commit d3ae90027e
1 changed files with 21 additions and 2 deletions

View File

@ -158,9 +158,28 @@
$elems.each(function() {
sortData.push($(this));
});
sortData.sort(function(a, b) {
var stringComparator = function(a,b) {
return a.html().localeCompare(b.html());
});
};
var numericComparator = function(a,b) {
return parseFloat(a.children().html()) < parseFloat(b.children().html()) ? 1 : -1;
};
var stateComparator = function(a,b) {
return a.attr('title').localeCompare(b.attr('title'));
};
var isNumeric = function(obj) {
return !$.isArray(obj) && !isNaN(parseFloat(obj)) && isFinite(parseFloat(obj));
}
var comparator = stringComparator;
if ($($elems[0]).hasClass('state')) {
comparator = stateComparator;
} else if (columnIndex != 0 && isNumeric($($elems[0]).children().html())) {
comparator = numericComparator;
}
sortData.sort(comparator);
if (direction == 'asc') {
sortData.reverse();