Browse Source

YARN-7171: RM UI should sort memory / cores numerically. Contributed by Ahmed Hussein

(cherry picked from commit d1ca9432dd0b3e9b46b4903e8c9d33f5c28fcc1b)
Eric E Payne 6 years ago
parent
commit
3d8da16c82

+ 23 - 0
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,

+ 2 - 1
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 @@ public class WebPageUtils {
     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]");