diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/static/yarn.dt.plugins.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/static/yarn.dt.plugins.js index c0032725c43..51cb6305af4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/static/yarn.dt.plugins.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/static/yarn.dt.plugins.js @@ -41,6 +41,29 @@ jQuery.fn.dataTableExt.oSort['title-numeric-desc'] = function(a,b) { return ((x < y) ? 1 : ((x > y) ? -1 : 0)); }; +// 'numeric-ignore-strings' sort type +jQuery.fn.dataTableExt.oSort['num-ignore-str-asc'] = function(a, b) { + if (isNaN(a) && isNaN(b)) return ((a < b) ? 1 : ((a > b) ? -1 : 0)); + + if (isNaN(a)) return 1; + if (isNaN(b)) return -1; + + x = parseFloat(a); + y = parseFloat(b); + return ((x < y) ? -1 : ((x > y) ? 1 : 0)); +}; + +jQuery.fn.dataTableExt.oSort['num-ignore-str-desc'] = function(a, b) { + if (isNaN(a) && isNaN(b)) return ((a < b) ? 1 : ((a > b) ? -1 : 0)); + + if (isNaN(a)) return 1; + if (isNaN(b)) return -1; + + x = parseFloat(a); + y = parseFloat(b); + return ((x < y) ? 1 : ((x > y) ? -1 : 0)); +}; + jQuery.fn.dataTableExt.oApi.fnSetFilteringDelay = function ( oSettings, iDelay ) { var _that = this, diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java index b2f65a84504..1cd7d87d9b7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java @@ -51,8 +51,9 @@ private static String getAppsTableColumnDefs( sb.append("[\n") .append("{'sType':'natural', 'aTargets': [0]") .append(", 'mRender': parseHadoopID }") - .append("\n, {'sType':'numeric', 'aTargets': [6, 7, 8]") + .append("\n, {'sType':'num-ignore-str', 'aTargets': [6, 7, 8]") .append(", 'mRender': renderHadoopDate }") + .append("\n, {'sType':'num-ignore-str', 'aTargets': [11, 12, 13, 14, 15] }") .append("\n, {'sType':'numeric', bSearchable:false, 'aTargets':"); if (isFairSchedulerPage) { sb.append("[15]");