You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by je...@apache.org on 2016/01/21 23:55:35 UTC

[54/96] [abbrv] incubator-geode git commit: GEODE-12: update copyright headers

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ec004fc1/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowser.js
----------------------------------------------------------------------
diff --git a/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowser.js b/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowser.js
index aa72508..7cded56 100644
--- a/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowser.js
+++ b/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowser.js
@@ -1,3 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
 /*=========================================================================
  * Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
  * This product is protected by U.S. and international copyright

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ec004fc1/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowserQuery.js
----------------------------------------------------------------------
diff --git a/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowserQuery.js b/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowserQuery.js
index d463edd..5ad778c 100644
--- a/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowserQuery.js
+++ b/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowserQuery.js
@@ -1,3 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
 /*=========================================================================
  * Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
  * This product is protected by U.S. and international copyright

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ec004fc1/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowserQueryHistory.js
----------------------------------------------------------------------
diff --git a/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowserQueryHistory.js b/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowserQueryHistory.js
index a48aaff..8a1a3fc 100644
--- a/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowserQueryHistory.js
+++ b/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/DataBrowserQueryHistory.js
@@ -1,3 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
 /*=========================================================================
  * Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
  * This product is protected by U.S. and international copyright

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ec004fc1/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/Login.js
----------------------------------------------------------------------
diff --git a/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/Login.js b/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/Login.js
index b825f0d..7fb065d 100644
--- a/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/Login.js
+++ b/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/Login.js
@@ -1,3 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
 /*=========================================================================
  * Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
  * This product is protected by U.S. and international copyright

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ec004fc1/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/index.js
----------------------------------------------------------------------
diff --git a/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/index.js b/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/index.js
index 51f368f..955b9ca 100644
--- a/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/index.js
+++ b/gemfire-pulse/src/main/webapp/scripts/pulsescript/pages/index.js
@@ -1,15 +1,34 @@
-/*=========================================================================
- * Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
- * This product is protected by U.S. and international copyright
- * and intellectual property laws. Pivotal products are covered by
- * one or more patents listed at http://www.pivotal.io/patents.
- *=========================================================================
- */
-
-/**
- * This JS File is used as home page of the application
- * 
- */
-$(document).ready(function() {
-  changeLocale('', 'index');
-});
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/*=========================================================================
+ * Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * one or more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+
+/**
+ * This JS File is used as home page of the application
+ * 
+ */
+$(document).ready(function() {
+  changeLocale('', 'index');
+});

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ec004fc1/gemfire-pulse/src/main/webapp/scripts/pulsescript/queryStatistics.js
----------------------------------------------------------------------
diff --git a/gemfire-pulse/src/main/webapp/scripts/pulsescript/queryStatistics.js b/gemfire-pulse/src/main/webapp/scripts/pulsescript/queryStatistics.js
index 2033fa7..1af0d52 100644
--- a/gemfire-pulse/src/main/webapp/scripts/pulsescript/queryStatistics.js
+++ b/gemfire-pulse/src/main/webapp/scripts/pulsescript/queryStatistics.js
@@ -1,304 +1,323 @@
-/*=========================================================================
- * Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
- * This product is protected by U.S. and international copyright
- * and intellectual property laws. Pivotal products are covered by
- * one or more patents listed at http://www.pivotal.io/patents.
- *=========================================================================
- */
-
-/**
- * This JS File is used for Cluster Details screen
- * 
- */
-var grid = null;
-var gridFilterReset = true;
-
-$(document).ready(function() {
-
-  // Load Notification HTML  
-  generateNotificationsPanel();
-
-  // modify UI text as per requirement
-  customizeUI();
-
-  if (CONST_BACKEND_PRODUCT_SQLFIRE == productname.toLowerCase()) {
-    // Do nothing
-  } else {
-    // Redirect to Cluster details page
-    openClusterDetail();
-  }
-  scanPageForWidgets();
-
-  // creating blank query statistics grid
-  createQueryStatisticsGrid();
-
-  // setup the options with check boxes and show hide functionality using
-  // library
-  setupColumnSelection();
-
-  $.ajaxSetup({
-    cache : false
-  });
-});
-
-/*
- * Function to sort integer column which will show text NA
- */
-var customSortFunction = function(cell, rowObject) {
-  if (cell == 'NA') {
-    return -1;
-  } else {
-    return parseInt(cell);
-  }
-};
-
-function createQueryStatisticsGrid() {
-
-  $.ajax({
-    url : 'pulse/getQueryStatisticsGridModel',
-    type : 'GET',
-    dataType : 'json',
-    async : false,
-    success : function(data) {
-
-      // set cluster name in tab
-      $('#clusterName').html(data.clusterName);
-      $('#userName').html(data.userName);
-
-      // add column selection options
-      for ( var i = 1; i < data.columnNames.length; ++i) {
-        $('#columnsSelect').append(
-            '<option value = "' + data.columnModels[i].name + '">'
-                + data.columnNames[i] + '</option>');
-      }
-
-      // one-time setup for column sorting for integer columns here
-      for ( var i = 0; i < data.columnModels.length; ++i) {
-        if (data.columnModels[i].sorttype == 'integer') {
-          data.columnModels[i].sorttype = customSortFunction;
-        }
-      }
-
-      grid = $("#queryStatisticsList");
-      grid.jqGrid({
-        datatype : "local",
-        height : 710,
-        width : 1000,
-        rowNum : 50,
-        sortname : data.columnModels[1].name,
-        sortorder: "desc",
-        shrinkToFit : false,
-        ignoreCase: true,
-        colNames : data.columnNames,
-        colModel : data.columnModels,
-        userData : {
-          "sortOrder" : "desc",
-          "sortColName" : data.columnModels[1].name
-        },
-        onSortCol : function(columnName, columnIndex, sortorder) {
-          // Set sort order and sort column in user variables so that
-          // periodical updates can maintain the same
-          var gridUserData = jQuery("#queryStatisticsList").getGridParam(
-              'userData');
-          gridUserData.sortColName = columnName;
-          gridUserData.sortOrder = sortorder;
-          
-          jQuery("#queryStatisticsList").trigger("reloadGrid");
-          var queryStatisticsList = $('#gview_queryStatisticsList');
-          var queryStatisticsListChild = queryStatisticsList
-              .children('.ui-jqgrid-bdiv');
-          var api = queryStatisticsListChild.data('jsp');
-          api.reinitialise();
-
-          $('#queryStatisticsList').toggle();
-          refreshTheGrid($('#queryStatisticsList'));
-        },
-        resizeStop : function(width, index) {
-          var queryStatisticsList = $('#gview_queryStatisticsList');
-          var queryStatisticsListChild = queryStatisticsList
-              .children('.ui-jqgrid-bdiv');
-          var api = queryStatisticsListChild.data('jsp');
-          api.reinitialise();
-
-          $('#queryStatisticsList').toggle();
-          refreshTheGrid($('#queryStatisticsList'));
-        },
-        gridComplete : function() {
-          $(".jqgrow").css({
-            cursor : 'default'
-          });
-          
-          // wrap contents of query statistics table cells only - not other grids
-          $(".jqgrow td").css('word-wrap', 'break-word');
-          $(".jqgrow td").css('white-space', 'pre-wrap');
-          $(".jqgrow td").css('white-space', '-pre-wrap');
-          $(".jqgrow td").css('white-space', '-o-pre-wrap');
-          $(".jqgrow td").css('white-space', 'normal !important');
-          $(".jqgrow td").css('height', 'auto');
-          $(".jqgrow td").css('vertical-align', 'text-top');
-          $(".jqgrow td").css('padding-top', '2px');
-          $(".jqgrow td").css('padding-bottom', '3px');
-
-          var queryStatisticsList = $('#gview_queryStatisticsList');
-          var queryStatisticsListChild = queryStatisticsList
-              .children('.ui-jqgrid-bdiv');
-
-          queryStatisticsListChild.unbind('jsp-scroll-x');
-          queryStatisticsListChild.bind('jsp-scroll-x', function(event,
-              scrollPositionX, isAtLeft, isAtRight) {
-            var qsList = $('#gview_queryStatisticsList');
-            var qsLC = qsList.children('.ui-jqgrid-hdiv').children(
-                '.ui-jqgrid-hbox');
-            qsLC.css("position", "relative");
-            qsLC.css('right', scrollPositionX);
-          });
-        }
-      });
-
-      $('.ui-jqgrid-bdiv').each(function(index) {
-        var tempName = $(this).parent().attr('id');
-        if (tempName == 'gview_queryStatisticsList') {
-          $(this).jScrollPane();
-        }
-      });
-    }
-  });
-}
-
-function setupColumnSelection() {
-
-  $("select").multiselect(
-      {
-        click : function(event, ui) {
-          // hide selected column
-          if (ui.checked) {
-            grid.jqGrid('hideCol', ui.value);
-          } else {
-            grid.jqGrid('showCol', ui.value);
-          }
-
-          grid.trigger("reloadGrid", [ {
-            page : 1
-          } ]);
-          destroyScrollPane('gview_queryStatisticsList');
-          $('.ui-jqgrid-bdiv').each(function(index) {
-            var tempName = $(this).parent().attr('id');
-            if (tempName == 'gview_queryStatisticsList') {
-              $(this).jScrollPane();
-            }
-          });
-        },
-        checkAll : function() {
-          // hide all columns
-          var colModels = grid.jqGrid('getGridParam', 'colModel');
-          for ( var i = 1; i < colModels.length; i++) {
-            grid.jqGrid('hideCol', colModels[i].name);
-          }
-
-          grid.trigger("reloadGrid", [ {
-            page : 1
-          } ]);
-          destroyScrollPane('gview_queryStatisticsList');
-          $('.ui-jqgrid-bdiv').each(function(index) {
-            var tempName = $(this).parent().attr('id');
-            if (tempName == 'gview_queryStatisticsList') {
-              $(this).jScrollPane();
-            }
-          });  
-        },
-        uncheckAll : function() {
-          // show all columns
-          var colModels = grid.jqGrid('getGridParam', 'colModel');
-          for ( var i = 1; i < colModels.length; i++) {
-            grid.jqGrid('showCol', colModels[i].name);
-          }
-          grid.trigger("reloadGrid", [ {
-            page : 1
-          } ]);
-
-          destroyScrollPane('gview_queryStatisticsList');
-          $('.ui-jqgrid-bdiv').each(function(index) {
-            var tempName = $(this).parent().attr('id');
-            if (tempName == 'gview_queryStatisticsList') {
-              $(this).jScrollPane();
-            }
-          });
-        }
-      });
-}
-
-var applyFilterOnQueryStatistics = function() {
-  
-  var searchKeyword = $('#filterQueryStatisticsBox').val();
-  if(searchKeyword.length < 4){
-    
-    if(! gridFilterReset){
-      gridFilterReset = true; // do not filter grid till reset
-
-      ///filter only after string length 4 else reset filter
-      grid[0].p.search = false;
-      grid.trigger("reloadGrid", [ {
-        page : 1
-      } ]);
-     
-      // trigger check for scroll pane to see if scroll bars need to be shown
-      var queryStatisticsList = $('#gview_queryStatisticsList');
-      var queryStatisticsListChild = queryStatisticsList
-          .children('.ui-jqgrid-bdiv');
-      var api = queryStatisticsListChild.data('jsp');
-      api.reinitialise();
-  
-      // scroll to top of grid to ensure all records are displayed in the view port
-      api.scrollToY(0, false);
-  
-      $('#queryStatisticsList').toggle();
-      refreshTheGrid($('#queryStatisticsList'));
-    }
-    
-    return;
-  }
-  
-  gridFilterReset = false; // set to start filtering grid
-  if ((searchKeyword != "Search") && (searchKeyword != "")) {
-    var myfilter = {
-      groupOp : "AND",
-      rules : [ {
-        field : "Query",
-        op : "cn",
-        data : searchKeyword
-      } ]
-    };
-
-    grid[0].p.search = myfilter.rules.length > 0;
-    $.extend(grid[0].p.postData, {
-      filters : JSON.stringify(myfilter)
-    });
-  } else {
-    grid[0].p.search = false;
-  }
-
-  grid.trigger("reloadGrid", [ {
-    page : 1
-  } ]);
- 
-  // trigger check for scroll pane to see if scroll bars need to be shown
-  var queryStatisticsList = $('#gview_queryStatisticsList');
-  var queryStatisticsListChild = queryStatisticsList
-      .children('.ui-jqgrid-bdiv');
-  var api = queryStatisticsListChild.data('jsp');
-  api.reinitialise();
-
-  // scroll to top of grid to ensure all records are displayed in the view port
-  api.scrollToY(0, false);
-
-  $('#queryStatisticsList').toggle();
-  refreshTheGrid($('#queryStatisticsList'));
-};
-
-function showQueryStatistics(data) {
-  getQueryStatisticsBack(data.QueryStatistics);
-}
-
-function refreshTheGrid(gridDiv) {
-  setTimeout(function(){gridDiv.toggle();}, 500);
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/*=========================================================================
+ * Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * one or more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+
+/**
+ * This JS File is used for Cluster Details screen
+ * 
+ */
+var grid = null;
+var gridFilterReset = true;
+
+$(document).ready(function() {
+
+  // Load Notification HTML  
+  generateNotificationsPanel();
+
+  // modify UI text as per requirement
+  customizeUI();
+
+  if (CONST_BACKEND_PRODUCT_SQLFIRE == productname.toLowerCase()) {
+    // Do nothing
+  } else {
+    // Redirect to Cluster details page
+    openClusterDetail();
+  }
+  scanPageForWidgets();
+
+  // creating blank query statistics grid
+  createQueryStatisticsGrid();
+
+  // setup the options with check boxes and show hide functionality using
+  // library
+  setupColumnSelection();
+
+  $.ajaxSetup({
+    cache : false
+  });
+});
+
+/*
+ * Function to sort integer column which will show text NA
+ */
+var customSortFunction = function(cell, rowObject) {
+  if (cell == 'NA') {
+    return -1;
+  } else {
+    return parseInt(cell);
+  }
+};
+
+function createQueryStatisticsGrid() {
+
+  $.ajax({
+    url : 'pulse/getQueryStatisticsGridModel',
+    type : 'GET',
+    dataType : 'json',
+    async : false,
+    success : function(data) {
+
+      // set cluster name in tab
+      $('#clusterName').html(data.clusterName);
+      $('#userName').html(data.userName);
+
+      // add column selection options
+      for ( var i = 1; i < data.columnNames.length; ++i) {
+        $('#columnsSelect').append(
+            '<option value = "' + data.columnModels[i].name + '">'
+                + data.columnNames[i] + '</option>');
+      }
+
+      // one-time setup for column sorting for integer columns here
+      for ( var i = 0; i < data.columnModels.length; ++i) {
+        if (data.columnModels[i].sorttype == 'integer') {
+          data.columnModels[i].sorttype = customSortFunction;
+        }
+      }
+
+      grid = $("#queryStatisticsList");
+      grid.jqGrid({
+        datatype : "local",
+        height : 710,
+        width : 1000,
+        rowNum : 50,
+        sortname : data.columnModels[1].name,
+        sortorder: "desc",
+        shrinkToFit : false,
+        ignoreCase: true,
+        colNames : data.columnNames,
+        colModel : data.columnModels,
+        userData : {
+          "sortOrder" : "desc",
+          "sortColName" : data.columnModels[1].name
+        },
+        onSortCol : function(columnName, columnIndex, sortorder) {
+          // Set sort order and sort column in user variables so that
+          // periodical updates can maintain the same
+          var gridUserData = jQuery("#queryStatisticsList").getGridParam(
+              'userData');
+          gridUserData.sortColName = columnName;
+          gridUserData.sortOrder = sortorder;
+          
+          jQuery("#queryStatisticsList").trigger("reloadGrid");
+          var queryStatisticsList = $('#gview_queryStatisticsList');
+          var queryStatisticsListChild = queryStatisticsList
+              .children('.ui-jqgrid-bdiv');
+          var api = queryStatisticsListChild.data('jsp');
+          api.reinitialise();
+
+          $('#queryStatisticsList').toggle();
+          refreshTheGrid($('#queryStatisticsList'));
+        },
+        resizeStop : function(width, index) {
+          var queryStatisticsList = $('#gview_queryStatisticsList');
+          var queryStatisticsListChild = queryStatisticsList
+              .children('.ui-jqgrid-bdiv');
+          var api = queryStatisticsListChild.data('jsp');
+          api.reinitialise();
+
+          $('#queryStatisticsList').toggle();
+          refreshTheGrid($('#queryStatisticsList'));
+        },
+        gridComplete : function() {
+          $(".jqgrow").css({
+            cursor : 'default'
+          });
+          
+          // wrap contents of query statistics table cells only - not other grids
+          $(".jqgrow td").css('word-wrap', 'break-word');
+          $(".jqgrow td").css('white-space', 'pre-wrap');
+          $(".jqgrow td").css('white-space', '-pre-wrap');
+          $(".jqgrow td").css('white-space', '-o-pre-wrap');
+          $(".jqgrow td").css('white-space', 'normal !important');
+          $(".jqgrow td").css('height', 'auto');
+          $(".jqgrow td").css('vertical-align', 'text-top');
+          $(".jqgrow td").css('padding-top', '2px');
+          $(".jqgrow td").css('padding-bottom', '3px');
+
+          var queryStatisticsList = $('#gview_queryStatisticsList');
+          var queryStatisticsListChild = queryStatisticsList
+              .children('.ui-jqgrid-bdiv');
+
+          queryStatisticsListChild.unbind('jsp-scroll-x');
+          queryStatisticsListChild.bind('jsp-scroll-x', function(event,
+              scrollPositionX, isAtLeft, isAtRight) {
+            var qsList = $('#gview_queryStatisticsList');
+            var qsLC = qsList.children('.ui-jqgrid-hdiv').children(
+                '.ui-jqgrid-hbox');
+            qsLC.css("position", "relative");
+            qsLC.css('right', scrollPositionX);
+          });
+        }
+      });
+
+      $('.ui-jqgrid-bdiv').each(function(index) {
+        var tempName = $(this).parent().attr('id');
+        if (tempName == 'gview_queryStatisticsList') {
+          $(this).jScrollPane();
+        }
+      });
+    }
+  });
+}
+
+function setupColumnSelection() {
+
+  $("select").multiselect(
+      {
+        click : function(event, ui) {
+          // hide selected column
+          if (ui.checked) {
+            grid.jqGrid('hideCol', ui.value);
+          } else {
+            grid.jqGrid('showCol', ui.value);
+          }
+
+          grid.trigger("reloadGrid", [ {
+            page : 1
+          } ]);
+          destroyScrollPane('gview_queryStatisticsList');
+          $('.ui-jqgrid-bdiv').each(function(index) {
+            var tempName = $(this).parent().attr('id');
+            if (tempName == 'gview_queryStatisticsList') {
+              $(this).jScrollPane();
+            }
+          });
+        },
+        checkAll : function() {
+          // hide all columns
+          var colModels = grid.jqGrid('getGridParam', 'colModel');
+          for ( var i = 1; i < colModels.length; i++) {
+            grid.jqGrid('hideCol', colModels[i].name);
+          }
+
+          grid.trigger("reloadGrid", [ {
+            page : 1
+          } ]);
+          destroyScrollPane('gview_queryStatisticsList');
+          $('.ui-jqgrid-bdiv').each(function(index) {
+            var tempName = $(this).parent().attr('id');
+            if (tempName == 'gview_queryStatisticsList') {
+              $(this).jScrollPane();
+            }
+          });  
+        },
+        uncheckAll : function() {
+          // show all columns
+          var colModels = grid.jqGrid('getGridParam', 'colModel');
+          for ( var i = 1; i < colModels.length; i++) {
+            grid.jqGrid('showCol', colModels[i].name);
+          }
+          grid.trigger("reloadGrid", [ {
+            page : 1
+          } ]);
+
+          destroyScrollPane('gview_queryStatisticsList');
+          $('.ui-jqgrid-bdiv').each(function(index) {
+            var tempName = $(this).parent().attr('id');
+            if (tempName == 'gview_queryStatisticsList') {
+              $(this).jScrollPane();
+            }
+          });
+        }
+      });
+}
+
+var applyFilterOnQueryStatistics = function() {
+  
+  var searchKeyword = $('#filterQueryStatisticsBox').val();
+  if(searchKeyword.length < 4){
+    
+    if(! gridFilterReset){
+      gridFilterReset = true; // do not filter grid till reset
+
+      ///filter only after string length 4 else reset filter
+      grid[0].p.search = false;
+      grid.trigger("reloadGrid", [ {
+        page : 1
+      } ]);
+     
+      // trigger check for scroll pane to see if scroll bars need to be shown
+      var queryStatisticsList = $('#gview_queryStatisticsList');
+      var queryStatisticsListChild = queryStatisticsList
+          .children('.ui-jqgrid-bdiv');
+      var api = queryStatisticsListChild.data('jsp');
+      api.reinitialise();
+  
+      // scroll to top of grid to ensure all records are displayed in the view port
+      api.scrollToY(0, false);
+  
+      $('#queryStatisticsList').toggle();
+      refreshTheGrid($('#queryStatisticsList'));
+    }
+    
+    return;
+  }
+  
+  gridFilterReset = false; // set to start filtering grid
+  if ((searchKeyword != "Search") && (searchKeyword != "")) {
+    var myfilter = {
+      groupOp : "AND",
+      rules : [ {
+        field : "Query",
+        op : "cn",
+        data : searchKeyword
+      } ]
+    };
+
+    grid[0].p.search = myfilter.rules.length > 0;
+    $.extend(grid[0].p.postData, {
+      filters : JSON.stringify(myfilter)
+    });
+  } else {
+    grid[0].p.search = false;
+  }
+
+  grid.trigger("reloadGrid", [ {
+    page : 1
+  } ]);
+ 
+  // trigger check for scroll pane to see if scroll bars need to be shown
+  var queryStatisticsList = $('#gview_queryStatisticsList');
+  var queryStatisticsListChild = queryStatisticsList
+      .children('.ui-jqgrid-bdiv');
+  var api = queryStatisticsListChild.data('jsp');
+  api.reinitialise();
+
+  // scroll to top of grid to ensure all records are displayed in the view port
+  api.scrollToY(0, false);
+
+  $('#queryStatisticsList').toggle();
+  refreshTheGrid($('#queryStatisticsList'));
+};
+
+function showQueryStatistics(data) {
+  getQueryStatisticsBack(data.QueryStatistics);
+}
+
+function refreshTheGrid(gridDiv) {
+  setTimeout(function(){gridDiv.toggle();}, 500);
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ec004fc1/gemfire-pulse/src/main/webapp/scripts/pulsescript/regionView.js
----------------------------------------------------------------------
diff --git a/gemfire-pulse/src/main/webapp/scripts/pulsescript/regionView.js b/gemfire-pulse/src/main/webapp/scripts/pulsescript/regionView.js
index a22f2c6..3a1ec4b 100644
--- a/gemfire-pulse/src/main/webapp/scripts/pulsescript/regionView.js
+++ b/gemfire-pulse/src/main/webapp/scripts/pulsescript/regionView.js
@@ -1,746 +1,765 @@
-/*=========================================================================
- * Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
- * This product is protected by U.S. and international copyright
- * and intellectual property laws. Pivotal products are covered by
- * one or more patents listed at http://www.pivotal.io/patents.
- *=========================================================================
- */
-
-/* Region Details javascript with pop-up with spark-lines opening from each tree-map cell showing member level region information.
- * This page opens from Data view on cluster page and links to member details page by clicking on tree map cell.
- *
- * @author Riya Bhandekar
- * @since version 7.5 Cedar 2014-03-01
- *
- */
-
-
-// required global variables
-var regionMemberTreeMap;
-var tipObj = null;
-var theTooltip = null;
-var memberList = null;
-var memberOnRegionJson = null;
-var clusterDataViewRegions;
-var regionMembers = null;
-
-/**
- * This JS File is used for Cluster Details screen
- * 
- */
-$(document).ready(function() {
-
-  // Load Notification HTML  
-  generateNotificationsPanel();
-
-  if (CONST_BACKEND_PRODUCT_SQLFIRE == productname.toLowerCase()) {
-    alterHtmlContainer(CONST_BACKEND_PRODUCT_SQLFIRE);
-  } else {
-    alterHtmlContainer(CONST_BACKEND_PRODUCT_GEMFIRE);
-  }
-
-  createMemberTreeMap();
-  
-  createMemberGrid();
-  
-	// scan page for widgets
-  scanPageForWidgets();
-
-  $.ajaxSetup({
-    cache : false
-  });
-});
-
-/*
- * Function to show and hide html elements/components based upon whether product
- * is sqlfire or gemfire 
- */
-function alterHtmlContainer(prodname){
-  if(CONST_BACKEND_PRODUCT_SQLFIRE == prodname.toLowerCase()){
-    // Show HTML for following
-    $('#subTabQueryStatistics').show();
-  }else{
-    // Hide HTML for following
-    $('#subTabQueryStatistics').hide();
-  }  
-}
-
-//function used for applying filter of member names in data view screen
-var applyFilterOnMembersList = function() {
-  var searchKeyword = extractFilterTextFrom('filterMembersListBox');
-  var htmlMemberListWithFilter = '';
-  if (searchKeyword != "") {
-    for ( var i = 0; i < memberList.length; i++) {
-      // filtered list
-      if (memberList[i].name.toLowerCase().indexOf(searchKeyword) !== -1) {
-        var divId = memberList[i].memberId + "&" + memberList[i].name;
-        htmlMemberListWithFilter += "<div class='pointDetailsPadding' title='"
-            + memberList[i].name + "' id='" + divId
-            + "' onClick = 'javascript:openMemberDetails(this.id)'>"
-            + memberList[i].name + "</div>";
-      }
-    }
-  } else {
-    for ( var i = 0; i < memberList.length; i++) {
-      // non filtered list
-      var divId = memberList[i].memberId + "&" + memberList[i].name;
-      htmlMemberListWithFilter += "<div class='pointDetailsPadding' title='"
-          + memberList[i].name + "' id='" + divId
-          + "' onClick = 'javascript:openMemberDetails(this.id)'>"
-          + memberList[i].name + "</div>";
-    }
-  }
-  document.getElementById("memberNames").innerHTML = htmlMemberListWithFilter;
-  $('.regionMembersSearchBlock').jScrollPane();
-};
-
-
-//function used for applying filter of region's members treemap and grid
-var applyFilterOnRegionMembers = function() {
-  //console.log("applyFilterOnRegionMembers called");
-  var searchKeyword = extractFilterTextFrom("filterRegionMembersBox");
-
-  if (searchKeyword != "") {
-    var filteredRegionMembers = {};
-    for (var regMemKey in regionMembers) {
-      var regionMember = regionMembers[regMemKey];
-      // filtered list
-      if (regionMember.memberName.toLowerCase().indexOf(searchKeyword) !== -1) {
-        filteredRegionMembers[regionMember.memberName] = regionMember;
-      }
-    }
-    updateClusterSelectedRegionMembers(filteredRegionMembers);
-  } else {
-    updateClusterSelectedRegionMembers(regionMembers);
-  }
-};
-
-
-function initializeSparklinesToZero(spo){
-  var arrZero = [0,0,0,0,0,0,0];
-  tipObj.find('#memberMemoryReadsTrend').sparkline(arrZero,spo);
-  tipObj.find('#memberDiskReadsTrend').sparkline(arrZero,spo);
-  spo.lineColor = '#2e84bb';
-  tipObj.find('#memberMemoryWritesTrend').sparkline(arrZero,spo);
-  tipObj.find('#memberDiskWritesTrend').sparkline(arrZero,spo);
-}
-
-
-function displaySelectedRegionDetails(regionName, data){
-  
-  $('#regionPath').html(data.selectedRegion.path);
-  $('#regionType').html(data.selectedRegion.type);
-  $('#regionMembersText').html(data.selectedRegion.memberCount);
-  $('#regionNameText').html(data.selectedRegion.name);
-  $('#regionEntryCountText').html(data.selectedRegion.entryCount);
-  $('#regionEntrySizeText').html(data.selectedRegion.entrySize);
-  
-  $('#regionPersistence').html(data.selectedRegion.persistence);
-  $('#regionDiskUsage').html(data.selectedRegion.dataUsage);
-  //$('#regionIsEnableOffHeapMemory').html(data.selectedRegion.isEnableOffHeapMemory);
-  //$('#regionIsHdfsWriteOnly').html(data.selectedRegion.isHDFSWriteOnly);
-  $('#regionEmptyNodes').html(data.selectedRegion.emptyNodes);
-  
-  //memberList = data.selectedRegion.members;
-  //applyFilterOnMembersList();
-  
-  var memoryUsagePer = (data.selectedRegion.memoryUsage / data.selectedRegion.totalMemory) * 100;
-  memoryUsagePer = isNaN(memoryUsagePer) ? 0 : memoryUsagePer;
-  var memPer = memoryUsagePer + "%";
-  document.getElementById("memoryUsage").style.width = memPer;
-
-  memoryUsagePer = parseFloat(memoryUsagePer);
-  $('#memoryUsageVal').html(memoryUsagePer.toFixed(4));
-
-  if (data.selectedRegion.memoryUsage == 0) {
-    document.getElementById("memoryUsed").innerHTML = "-";
-    document.getElementById("memoryUsedMBSpan").innerHTML = "";
-  } else
-    document.getElementById("memoryUsed").innerHTML = data.selectedRegion.memoryUsage;
-  document.getElementById("totalMemory").innerHTML = data.selectedRegion.totalMemory;
-
-  //theTooltip
-  if(theTooltip != null){
-    if(theTooltip.isShown(false)){
-      theTooltip.hide();
-      $('#region_tooltip').css('display','none');
-    }
-  }
-  
-  // delete tooltips here
-  $('#region_tooltip').remove();
-  
-  var sparklineOptions = {
-      width : '217px',
-      height : '72px',
-      lineColor : '#FAB948',
-      fillColor : false,
-      spotRadius : 2.5,
-      labelPosition : 'left',
-      spotColor : false,
-      minSpotColor : false,
-      maxSpotColor : false,
-      lineWidth : 2
-  };
-  
-  var reads = data.selectedRegion.memoryReadsTrend;
-  var diskReads = data.selectedRegion.diskReadsTrend;
-  var writes = data.selectedRegion.memoryWritesTrend;
-  var diskWrites = data.selectedRegion.diskWritesTrend;
-  
-  // Reads trends  
-  $('#readsPerSecTrend').sparkline(reads, sparklineOptions);
-  $('#diskReadsPerSecTrend').sparkline(diskReads, sparklineOptions);
-  
-  // Writes trends
-  sparklineOptions.lineColor = '#2e84bb';
-  $('#writesPerSecTrend').sparkline(writes, sparklineOptions);
-  $('#diskWritesPerSecTrend').sparkline(diskWrites, sparklineOptions);
-
-  var sumReads = 0;
-  var avgReads = 0;
-  if (reads.length > 0) {
-    for ( var i = 0; i < reads.length; i++) {
-      sumReads += parseFloat(reads[i]);
-    }
-    avgReads = sumReads / reads.length;
-  }
-  $('#currentReadsPerSec').html(applyNotApplicableCheck(avgReads.toFixed(2)));  
-
-  var sumDiskReads = 0;
-  var avgDiskReads = 0;
-  if (diskReads.length > 0) {
-    for ( var i = 0; i < diskReads.length; i++) {
-      sumDiskReads += parseFloat(diskReads[i]);
-    }
-    avgDiskReads = sumDiskReads / diskReads.length;
-  }
-  $('#currentDiskReadsPerSec').html(
-      applyNotApplicableCheck(avgDiskReads.toFixed(2)));
-  
-  var sumWrites = 0;
-  var avgWrites = 0;
-  if (writes.length > 0) {
-    for ( var i = 0; i < writes.length; i++) {
-      sumWrites += parseFloat(writes[i]);
-    }
-    avgWrites = sumWrites / writes.length;
-  }
-  $('#currentWritesPerSec').html(applyNotApplicableCheck(avgWrites.toFixed(2)));
-
-  
-  var sumDiskWrites = 0;
-  var avgDiskWrites = 0;
-  if (diskWrites.length > 0) {
-    for ( var i = 0; i < diskWrites.length; i++) {
-      sumDiskWrites += parseFloat(diskWrites[i]);
-    }
-    avgDiskWrites = sumDiskWrites / diskWrites.length;
-  }
-  $('#currentDiskWritesPerSec').html(
-      applyNotApplicableCheck(avgDiskWrites.toFixed(2)));
-  
-  var popupDiv = $('#popupDiv').html();
-  $(".node").attr('title',popupDiv);
-  $(".node").tooltip({
-    
-    onBeforeShow: function() {
-      if(theTooltip != null){
-        if(theTooltip.isShown(false)){
-          theTooltip.hide();
-        }
-      }
-    },
-    onShow: function() {
-      tipObj = this.getTip(); //global store
-      theTooltip = this;
-
-      var nodeId = this.getTrigger().attr('id');
-      var memberName = nodeId;
-      var spo = {
-          width : '110px',
-          height : '50px',
-          lineColor : '#FAB948',
-          fillColor : '#0F1C25',
-          spotRadius : 2.5,
-          labelPosition : 'left',
-          spotColor : false,
-          minSpotColor : false,
-          maxSpotColor : false,
-          lineWidth : 2
-      };
-      
-      initializeSparklinesToZero(spo); 
-      spo.lineColor='#FAB948';
-      $.sparkline_display_visible();
-    
-      //region member specific statistics 
-      tipObj.find('#idMemberName').html(memberName);
-      
-      var key = 'memberOnRegionJson.' + memberName + '.entryCount';
-      tipObj.find('#regionMemberEntryCount').html(eval(key));
-      key = 'memberOnRegionJson.' + memberName + '.entrySize';
-      tipObj.find('#regionMemberEntrySize').html(eval(key));
-      key = 'memberOnRegionJson.' + memberName + '.accessor';
-      //tipObj.find('#regionMemberAccessor').html('False');
-      tipObj.find('#regionMemberAccessor').html(eval(key));
-      
-      key = 'memberOnRegionJson.' + memberName + '.memoryReadsTrend';
-      tipObj.find('#memberMemoryReadsTrend').sparkline(eval(key),spo);
-      var reads = eval(key); // store
-      key = 'memberOnRegionJson.' + memberName + '.diskReadsTrend';
-      tipObj.find('#memberDiskReadsTrend').sparkline(eval(key),spo);
-      var diskReads = eval(key); // store
-      
-      // Writes trends
-      spo.lineColor = '#2e84bb';
-      key = 'memberOnRegionJson.' + memberName + '.memoryWritesTrend';
-      tipObj.find('#memberMemoryWritesTrend').sparkline(eval(key),spo);
-      var writes = eval(key); // store
-      key = 'memberOnRegionJson.' + memberName + '.diskWritesTrend';
-      tipObj.find('#memberDiskWritesTrend').sparkline(eval(key),spo);
-      var diskWrites = eval(key); // store
-            
-      $.sparkline_display_visible();
-      
-      var sumReads = 0;
-      var avgReads = 0;
-      if (reads.length > 0) {
-        for ( var i = 0; i < reads.length; i++) {
-          sumReads += parseFloat(reads[i]);
-        }
-        avgReads = sumReads / reads.length;
-      }
-      $('#memberMemoryReadsThroughput').html(applyNotApplicableCheck(avgReads.toFixed(2)));  
-
-      var sumDiskReads = 0;
-      var avgDiskReads = 0;
-      if (diskReads.length > 0) {
-        for ( var i = 0; i < diskReads.length; i++) {
-          sumDiskReads += parseFloat(diskReads[i]);
-        }
-        avgDiskReads = sumDiskReads / diskReads.length;
-      }
-      $('#memberDiskReadsThroughput').html(
-          applyNotApplicableCheck(avgDiskReads.toFixed(2)));
-      
-      var sumWrites = 0;
-      var avgWrites = 0;
-      if (writes.length > 0) {
-        for ( var i = 0; i < writes.length; i++) {
-          sumWrites += parseFloat(writes[i]);
-        }
-        avgWrites = sumWrites / writes.length;
-      }
-      $('#memberMemoryWritesThroughput').html(applyNotApplicableCheck(avgWrites.toFixed(2)));
-
-      
-      var sumDiskWrites = 0;
-      var avgDiskWrites = 0;
-      if (diskWrites.length > 0) {
-        for ( var i = 0; i < diskWrites.length; i++) {
-          sumDiskWrites += parseFloat(diskWrites[i]);
-        }
-        avgDiskWrites = sumDiskWrites / diskWrites.length;
-      }
-      $('#memberDiskWritesThroughput').html(applyNotApplicableCheck(avgDiskWrites.toFixed(2)));
-    },
-    onHide: function(){
-      $('#region_tooltip').css('display','none');
-      tipObj = null; // reset
-
-      theTooltip = null;
-    },
-     // custom positioning
-    position: 'bottom right',
-    
-    relative: false,
-      
-    // move tooltip a little bit to the right
-    offset: [-350, 10]});
-}
-
-function updateSelectedRegionMembersGrid(regMembers){
-
-  // loads grid
-  $('#memberList').jqGrid('clearGridData');
-
-  // Add memebers in grid
-  for (var key in regMembers){
-    var regMemData = regMembers[key];
-    $('#memberList').jqGrid('addRowData',
-        regMemData.memberId + "&" + regMemData.memberName, regMemData);
-  }
-
-  var gridUserData = jQuery("#memberList").getGridParam('userData');
-
-  // Apply sort order ans sort columns on updated jqgrid data
-  jQuery("#memberList").jqGrid('setGridParam', {
-    sortname : gridUserData.sortColName,
-    sortorder : gridUserData.sortOrder
-  });
-  // Reload jqgrid
-  jQuery("#memberList").trigger("reloadGrid");
-
-  // apply scroll if grid container block is not minimized
-  if ($("#LargeBlock_1").css("display") != "none") {
-    $('.ui-jqgrid-bdiv').each(function(index) {
-      var tempName = $(this).parent().attr('id');
-      if (tempName == 'gview_memberList') {
-        $(this).jScrollPane({maintainPosition : true, stickToRight : true});
-      }
-    });
-
-    var memberRegionsList = $('#gview_memberList');
-    memberRegionsListChild = memberRegionsList
-           .children('.ui-jqgrid-bdiv');
-    memberRegionsListChild.unbind('jsp-scroll-x');
-    memberRegionsListChild.bind('jsp-scroll-x', function(event,
-           scrollPositionX, isAtLeft, isAtRight) {
-
-        var mRList = $('#gview_memberList');
-        var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
-             '.ui-jqgrid-hbox');
-        mRLC.css("position", "relative");
-        mRLC.css('right', scrollPositionX);
-    });
-  }
-}
-
-//function used for creating blank TreeMap for member's on Cluster Details
-//Screen
-function createMemberTreeMap() {
-    
-    var dataVal = {
-      "$area" : 1,
-      "initial" : true
-    };
-    var json = {
-      "children" : {},
-      "data" : dataVal,
-      "id" : "root",
-      "name" : "Members"
-    };
-    
-    regionMemberTreeMap = new $jit.TM.Squarified(
-        {
-
-          injectInto : 'GraphTreeMap',
-          levelsToShow : 1,
-          titleHeight : 0,
-          background : '#a0c44a',
-          offset : 2,
-          Label : {
-            type : 'HTML',
-            size : 1
-          },
-          Node : {
-            CanvasStyles : {
-              shadowBlur : 0
-            }
-          },
-          Events : {
-            enable : true,
-            onMouseEnter : function(node, eventInfo) {
-              if (node) {
-                node.setCanvasStyle('shadowBlur', 7);
-                node.setData('border', '#ffffff');
-
-                regionMemberTreeMap.fx.plotNode(node,
-                    regionMemberTreeMap.canvas);
-                regionMemberTreeMap.labels.plotLabel(
-                    regionMemberTreeMap.canvas, node);
-              }
-            },
-            onMouseLeave : function(node) {
-              if (node) {
-                node.removeData('border', '#ffffff');
-                node.removeCanvasStyle('shadowBlur');
-                regionMemberTreeMap.plot();
-              }
-            },
-            onClick : function(node) {
-              if (node.id != "root") {
-                location.href ='MemberDetails.html?member=' + node.id + "&memberName=" + node.name;
-              }
-            }
-          },
-
-          Tips : {
-            enable : false,
-            offsetX : 5,
-            offsetY : 5,
-            onShow : function(tip, node, isLeaf, domElement) {
-              var html = "<div class=\"tip-title\"><div><div class='popupHeading'>This region does not exist.</div>";
-              tip.innerHTML = html;
-            }
-          },
-          onCreateLabel : function(domElement, node) {
-            domElement.style.opacity = 0.01;
-
-          }
-        });
-    regionMemberTreeMap.loadJSON(json);
-    regionMemberTreeMap.refresh();
-    $(".node").attr('title',"<div class=\"tip-title\"><div><div class='popupHeading'>This region does not exist.</div></div></div>");
-    $(".node").tooltip({
-      
-      data : $(this).tagName,
-      onShow: function() {
-        tipObj = this.getTip(); //global store 
-      },
-      onHide: function(){
-        tipObj = null; // reset
-      },
-       // custom positioning
-      position: 'bottom right',
-      
-      relative: false,
-        
-      // move tooltip a little bit to the right
-      offset: [-350, 10]});
-}
-
-/* builds and returns json from given members details sent by server */
-function buildMemberTreeMap(members) {
-
-  var childerensVal = [];
-  var indexOfChild = 0;
-  for(var memKey in members){
-
-    var regMember = members[memKey];
-
-    var color = "#a0c44a";
-    // setting node color according to the status of member
-    // like if member has severe notification then the node color will be
-    // '#ebbf0f'
-    for ( var j = 0; j < warningAlerts.length; j++) {
-      if (regMember.memberName == warningAlerts[j].memberName) {
-        color = '#ebbf0f';
-        break;
-      }
-    }
-    // if member has severe notification then the node color will be
-    // '#de5a25'
-    for ( var j = 0; j < errorAlerts.length; j++) {
-      if (regMember.memberName == errorAlerts[j].memberName) {
-        color = '#de5a25';
-        break;
-      }
-    }
-    // if member has severe notification then the node color will be
-    // '#b82811'
-    for ( var j = 0; j < severAlerts.length; j++) {
-      if (regMember.memberName == severAlerts[j].memberName) {
-        color = '#b82811';
-        break;
-      }
-    }
-    
-    var areaSize = regMember.entryCount;
-    if (areaSize == 0)
-      areaSize = 1;
-    var name = "";
-    name = regMember.memberName;
-    var id = "";
-    id = regMember.memberName;
-    // passing all the required information of member to tooltip
-    var dataVal = {
-      "name" : name,
-      "id" : id,
-      "$color" : color,
-      "$area" : areaSize,
-      "entryCount" : regMember.entryCount,
-      "entrySize" : regMember.entrySize,
-      "accessor" : regMember.accessor,
-      "initial" : false
-    };
-    var childrenVal = {
-      "children" : [],
-      "data" : dataVal,
-      "id" : id,
-      "name" : name
-    };
-    childerensVal[indexOfChild++] = childrenVal;
-  }
-  
-  var localjson = {
-    "children" : childerensVal,
-    "data" : {},
-    "id" : "root",
-    "name" : "Members"
-  };
-  return localjson;
-}
-
-function tabClusterGrid() {
-  flagActiveTab = "MEM_GRID"; // MEM_TREE_MAP, MEM_GRID
-  
-  $('#btngridIcon').addClass('gridIconActive');
-  $('#btngridIcon').removeClass('gridIcon');
-
-  $('#btnchartIcon').addClass('chartIcon');
-  $('#btnchartIcon').removeClass('chartIconActive');
-
-  $('#chartBlocks_Panel').hide();
-  destroyScrollPane('gview_memberList');
-  $('.ui-jqgrid-bdiv').each(function(index) {
-      var tempName = $(this).parent().attr('id');
-      if (tempName == 'gview_memberList') {
-        $(this).jScrollPane({maintainPosition : true, stickToRight : true});
-      }
-  });
-  $('#gridBlocks_Panel').show();
-  jQuery("#memberList").trigger("reloadGrid");
-}
-
-function tabTreeMap() {
-  flagActiveTab = "MEM_TREE_MAP"; // MEM_TREE_MAP, MEM_GRID
-
-  $('#gridBlocks_Panel').hide();
-  $('#chartBlocks_Panel').show();
-
-  $('#btngridIcon').addClass('gridIcon');
-  $('#btngridIcon').removeClass('gridIconActive');
-
-  $('#btnchartIcon').addClass('chartIconActive');
-  $('#btnchartIcon').removeClass('chartIcon');
-
-  regionMemberTreeMap.loadJSON(globalJson);
-  regionMemberTreeMap.refresh();
-}
-
-//function used for creating blank grids for member list for Cluster Details
-//Screen
-function createMemberGrid() {
-jQuery("#memberList").jqGrid(
- {
-   datatype : "local",
-   height : 560,
-   width : 410,
-   rowNum : 200,
-   shrinkToFit : false,
-   colNames : [ 'Member', 'Entry Count', 'Entry Size', 'Accessor'],
-   colModel : [
-       {
-         name : 'memberName',
-         index : 'memberName',
-         width : 120,
-         cellattr : function(rowId, val, rawObject, cm, rdata) {
-           return 'title="Member: ' + rawObject.memberName + ' , Entry Count: '
-               + rawObject.entryCount + ' , Entry Size: '
-               + rawObject.entrySize + ' , Accessor: '
-               + rawObject.accessor + '"';
-         },
-         sortable : true,
-         sorttype : "string"
-       },
-       {
-         name : 'entryCount',
-         index : 'entryCount',
-         width : 90,
-         align : 'right',
-         cellattr : function(rowId, val, rawObject, cm, rdata) {
-           return 'title="Member: ' + rawObject.memberName + ' , Entry Count: '
-           + rawObject.entryCount + ' , Entry Size: '
-           + rawObject.entrySize + ' , Accessor: '
-           + rawObject.accessor + '"';
-         },
-         sortable : true,
-         sorttype : "string"
-       },
-       {
-         name : 'entrySize',
-         index : 'entrySize',
-         width : 90,
-         align : 'right',
-         cellattr : function(rowId, val, rawObject, cm, rdata) {
-           return 'title="Member: ' + rawObject.memberName + ' , Entry Count: '
-           + rawObject.entryCount + ' , Entry Size: '
-           + rawObject.entrySize + ' , Accessor: '
-           + rawObject.accessor + '"';
-         },
-         sortable : true,
-         sorttype : "float"
-       },
-       {
-         name : 'accessor',
-         index : 'accessor',
-         width : 90,
-         align : 'center',
-         cellattr : function(rowId, val, rawObject, cm, rdata) {
-           return 'title="Member: ' + rawObject.memberName + ' , Entry Count: '
-           + rawObject.entryCount + ' , Entry Size: '
-           + rawObject.entrySize + ' , Accessor: '
-           + rawObject.accessor + '"';
-         },
-         sortable : true,
-         sorttype : "boolean"
-       } ],
-   userData : {
-     "sortOrder" : "desc",
-     "sortColName" : "entryCount"
-   },
-   onSortCol : function(columnName, columnIndex, sortorder) {
-     // Set sort order and sort column in user variables so that
-     // periodical updates can maintain the same
-     var gridUserData = jQuery("#memberList").getGridParam('userData');
-     gridUserData.sortColName = columnName;
-     gridUserData.sortOrder = sortorder;
-   },
-   onSelectRow : function(rowid) {
-     var member = rowid.split("&");
-     location.href = 'MemberDetails.html?member=' + member[0]
-     + '&memberName=' + member[1];
-   },
-   resizeStop : function(width, index) {
-     
-     var memberRegionsList = $('#gview_memberList');
-     var memberRegionsListChild = memberRegionsList
-         .children('.ui-jqgrid-bdiv');
-     var api = memberRegionsListChild.data('jsp');
-     api.reinitialise();
-     
-     memberRegionsList = $('#gview_memberList');
-     var memberRegionsListChild = memberRegionsList
-         .children('.ui-jqgrid-bdiv');
-
-     memberRegionsListChild.unbind('jsp-scroll-x');
-     memberRegionsListChild.bind('jsp-scroll-x', function(event,
-         scrollPositionX, isAtLeft, isAtRight) {
-       var mRList = $('#gview_memberList');
-       var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
-           '.ui-jqgrid-hbox');
-       mRLC.css("position", "relative");
-       mRLC.css('right', scrollPositionX);
-     });
-     
-     this.gridComplete();
-     $('#btngridIcon').click();
-     refreshTheGrid($('#btngridIcon'));
-   },
-   gridComplete : function() {
-     $(".jqgrow").css({
-       cursor : 'default'
-     });
-
-     var memberRegionsList = $('#gview_memberList');
-     var memberRegionsListChild = memberRegionsList
-         .children('.ui-jqgrid-bdiv');
-
-     memberRegionsListChild.unbind('jsp-scroll-x');
-     memberRegionsListChild.bind('jsp-scroll-x', function(event,
-         scrollPositionX, isAtLeft, isAtRight) {
-       var mRList = $('#gview_memberList');
-       var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
-           '.ui-jqgrid-hbox');
-       mRLC.css("position", "relative");
-       mRLC.css('right', scrollPositionX);
-     });       
-   }
- });
-}
-
-function refreshTheGrid(gridDiv) {
-  setTimeout(function(){gridDiv.click();}, 300);
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/*=========================================================================
+ * Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
+ * This product is protected by U.S. and international copyright
+ * and intellectual property laws. Pivotal products are covered by
+ * one or more patents listed at http://www.pivotal.io/patents.
+ *=========================================================================
+ */
+
+/* Region Details javascript with pop-up with spark-lines opening from each tree-map cell showing member level region information.
+ * This page opens from Data view on cluster page and links to member details page by clicking on tree map cell.
+ *
+ * @author Riya Bhandekar
+ * @since version 7.5 Cedar 2014-03-01
+ *
+ */
+
+
+// required global variables
+var regionMemberTreeMap;
+var tipObj = null;
+var theTooltip = null;
+var memberList = null;
+var memberOnRegionJson = null;
+var clusterDataViewRegions;
+var regionMembers = null;
+
+/**
+ * This JS File is used for Cluster Details screen
+ * 
+ */
+$(document).ready(function() {
+
+  // Load Notification HTML  
+  generateNotificationsPanel();
+
+  if (CONST_BACKEND_PRODUCT_SQLFIRE == productname.toLowerCase()) {
+    alterHtmlContainer(CONST_BACKEND_PRODUCT_SQLFIRE);
+  } else {
+    alterHtmlContainer(CONST_BACKEND_PRODUCT_GEMFIRE);
+  }
+
+  createMemberTreeMap();
+  
+  createMemberGrid();
+  
+	// scan page for widgets
+  scanPageForWidgets();
+
+  $.ajaxSetup({
+    cache : false
+  });
+});
+
+/*
+ * Function to show and hide html elements/components based upon whether product
+ * is sqlfire or gemfire 
+ */
+function alterHtmlContainer(prodname){
+  if(CONST_BACKEND_PRODUCT_SQLFIRE == prodname.toLowerCase()){
+    // Show HTML for following
+    $('#subTabQueryStatistics').show();
+  }else{
+    // Hide HTML for following
+    $('#subTabQueryStatistics').hide();
+  }  
+}
+
+//function used for applying filter of member names in data view screen
+var applyFilterOnMembersList = function() {
+  var searchKeyword = extractFilterTextFrom('filterMembersListBox');
+  var htmlMemberListWithFilter = '';
+  if (searchKeyword != "") {
+    for ( var i = 0; i < memberList.length; i++) {
+      // filtered list
+      if (memberList[i].name.toLowerCase().indexOf(searchKeyword) !== -1) {
+        var divId = memberList[i].memberId + "&" + memberList[i].name;
+        htmlMemberListWithFilter += "<div class='pointDetailsPadding' title='"
+            + memberList[i].name + "' id='" + divId
+            + "' onClick = 'javascript:openMemberDetails(this.id)'>"
+            + memberList[i].name + "</div>";
+      }
+    }
+  } else {
+    for ( var i = 0; i < memberList.length; i++) {
+      // non filtered list
+      var divId = memberList[i].memberId + "&" + memberList[i].name;
+      htmlMemberListWithFilter += "<div class='pointDetailsPadding' title='"
+          + memberList[i].name + "' id='" + divId
+          + "' onClick = 'javascript:openMemberDetails(this.id)'>"
+          + memberList[i].name + "</div>";
+    }
+  }
+  document.getElementById("memberNames").innerHTML = htmlMemberListWithFilter;
+  $('.regionMembersSearchBlock').jScrollPane();
+};
+
+
+//function used for applying filter of region's members treemap and grid
+var applyFilterOnRegionMembers = function() {
+  //console.log("applyFilterOnRegionMembers called");
+  var searchKeyword = extractFilterTextFrom("filterRegionMembersBox");
+
+  if (searchKeyword != "") {
+    var filteredRegionMembers = {};
+    for (var regMemKey in regionMembers) {
+      var regionMember = regionMembers[regMemKey];
+      // filtered list
+      if (regionMember.memberName.toLowerCase().indexOf(searchKeyword) !== -1) {
+        filteredRegionMembers[regionMember.memberName] = regionMember;
+      }
+    }
+    updateClusterSelectedRegionMembers(filteredRegionMembers);
+  } else {
+    updateClusterSelectedRegionMembers(regionMembers);
+  }
+};
+
+
+function initializeSparklinesToZero(spo){
+  var arrZero = [0,0,0,0,0,0,0];
+  tipObj.find('#memberMemoryReadsTrend').sparkline(arrZero,spo);
+  tipObj.find('#memberDiskReadsTrend').sparkline(arrZero,spo);
+  spo.lineColor = '#2e84bb';
+  tipObj.find('#memberMemoryWritesTrend').sparkline(arrZero,spo);
+  tipObj.find('#memberDiskWritesTrend').sparkline(arrZero,spo);
+}
+
+
+function displaySelectedRegionDetails(regionName, data){
+  
+  $('#regionPath').html(data.selectedRegion.path);
+  $('#regionType').html(data.selectedRegion.type);
+  $('#regionMembersText').html(data.selectedRegion.memberCount);
+  $('#regionNameText').html(data.selectedRegion.name);
+  $('#regionEntryCountText').html(data.selectedRegion.entryCount);
+  $('#regionEntrySizeText').html(data.selectedRegion.entrySize);
+  
+  $('#regionPersistence').html(data.selectedRegion.persistence);
+  $('#regionDiskUsage').html(data.selectedRegion.dataUsage);
+  //$('#regionIsEnableOffHeapMemory').html(data.selectedRegion.isEnableOffHeapMemory);
+  //$('#regionIsHdfsWriteOnly').html(data.selectedRegion.isHDFSWriteOnly);
+  $('#regionEmptyNodes').html(data.selectedRegion.emptyNodes);
+  
+  //memberList = data.selectedRegion.members;
+  //applyFilterOnMembersList();
+  
+  var memoryUsagePer = (data.selectedRegion.memoryUsage / data.selectedRegion.totalMemory) * 100;
+  memoryUsagePer = isNaN(memoryUsagePer) ? 0 : memoryUsagePer;
+  var memPer = memoryUsagePer + "%";
+  document.getElementById("memoryUsage").style.width = memPer;
+
+  memoryUsagePer = parseFloat(memoryUsagePer);
+  $('#memoryUsageVal').html(memoryUsagePer.toFixed(4));
+
+  if (data.selectedRegion.memoryUsage == 0) {
+    document.getElementById("memoryUsed").innerHTML = "-";
+    document.getElementById("memoryUsedMBSpan").innerHTML = "";
+  } else
+    document.getElementById("memoryUsed").innerHTML = data.selectedRegion.memoryUsage;
+  document.getElementById("totalMemory").innerHTML = data.selectedRegion.totalMemory;
+
+  //theTooltip
+  if(theTooltip != null){
+    if(theTooltip.isShown(false)){
+      theTooltip.hide();
+      $('#region_tooltip').css('display','none');
+    }
+  }
+  
+  // delete tooltips here
+  $('#region_tooltip').remove();
+  
+  var sparklineOptions = {
+      width : '217px',
+      height : '72px',
+      lineColor : '#FAB948',
+      fillColor : false,
+      spotRadius : 2.5,
+      labelPosition : 'left',
+      spotColor : false,
+      minSpotColor : false,
+      maxSpotColor : false,
+      lineWidth : 2
+  };
+  
+  var reads = data.selectedRegion.memoryReadsTrend;
+  var diskReads = data.selectedRegion.diskReadsTrend;
+  var writes = data.selectedRegion.memoryWritesTrend;
+  var diskWrites = data.selectedRegion.diskWritesTrend;
+  
+  // Reads trends  
+  $('#readsPerSecTrend').sparkline(reads, sparklineOptions);
+  $('#diskReadsPerSecTrend').sparkline(diskReads, sparklineOptions);
+  
+  // Writes trends
+  sparklineOptions.lineColor = '#2e84bb';
+  $('#writesPerSecTrend').sparkline(writes, sparklineOptions);
+  $('#diskWritesPerSecTrend').sparkline(diskWrites, sparklineOptions);
+
+  var sumReads = 0;
+  var avgReads = 0;
+  if (reads.length > 0) {
+    for ( var i = 0; i < reads.length; i++) {
+      sumReads += parseFloat(reads[i]);
+    }
+    avgReads = sumReads / reads.length;
+  }
+  $('#currentReadsPerSec').html(applyNotApplicableCheck(avgReads.toFixed(2)));  
+
+  var sumDiskReads = 0;
+  var avgDiskReads = 0;
+  if (diskReads.length > 0) {
+    for ( var i = 0; i < diskReads.length; i++) {
+      sumDiskReads += parseFloat(diskReads[i]);
+    }
+    avgDiskReads = sumDiskReads / diskReads.length;
+  }
+  $('#currentDiskReadsPerSec').html(
+      applyNotApplicableCheck(avgDiskReads.toFixed(2)));
+  
+  var sumWrites = 0;
+  var avgWrites = 0;
+  if (writes.length > 0) {
+    for ( var i = 0; i < writes.length; i++) {
+      sumWrites += parseFloat(writes[i]);
+    }
+    avgWrites = sumWrites / writes.length;
+  }
+  $('#currentWritesPerSec').html(applyNotApplicableCheck(avgWrites.toFixed(2)));
+
+  
+  var sumDiskWrites = 0;
+  var avgDiskWrites = 0;
+  if (diskWrites.length > 0) {
+    for ( var i = 0; i < diskWrites.length; i++) {
+      sumDiskWrites += parseFloat(diskWrites[i]);
+    }
+    avgDiskWrites = sumDiskWrites / diskWrites.length;
+  }
+  $('#currentDiskWritesPerSec').html(
+      applyNotApplicableCheck(avgDiskWrites.toFixed(2)));
+  
+  var popupDiv = $('#popupDiv').html();
+  $(".node").attr('title',popupDiv);
+  $(".node").tooltip({
+    
+    onBeforeShow: function() {
+      if(theTooltip != null){
+        if(theTooltip.isShown(false)){
+          theTooltip.hide();
+        }
+      }
+    },
+    onShow: function() {
+      tipObj = this.getTip(); //global store
+      theTooltip = this;
+
+      var nodeId = this.getTrigger().attr('id');
+      var memberName = nodeId;
+      var spo = {
+          width : '110px',
+          height : '50px',
+          lineColor : '#FAB948',
+          fillColor : '#0F1C25',
+          spotRadius : 2.5,
+          labelPosition : 'left',
+          spotColor : false,
+          minSpotColor : false,
+          maxSpotColor : false,
+          lineWidth : 2
+      };
+      
+      initializeSparklinesToZero(spo); 
+      spo.lineColor='#FAB948';
+      $.sparkline_display_visible();
+    
+      //region member specific statistics 
+      tipObj.find('#idMemberName').html(memberName);
+      
+      var key = 'memberOnRegionJson.' + memberName + '.entryCount';
+      tipObj.find('#regionMemberEntryCount').html(eval(key));
+      key = 'memberOnRegionJson.' + memberName + '.entrySize';
+      tipObj.find('#regionMemberEntrySize').html(eval(key));
+      key = 'memberOnRegionJson.' + memberName + '.accessor';
+      //tipObj.find('#regionMemberAccessor').html('False');
+      tipObj.find('#regionMemberAccessor').html(eval(key));
+      
+      key = 'memberOnRegionJson.' + memberName + '.memoryReadsTrend';
+      tipObj.find('#memberMemoryReadsTrend').sparkline(eval(key),spo);
+      var reads = eval(key); // store
+      key = 'memberOnRegionJson.' + memberName + '.diskReadsTrend';
+      tipObj.find('#memberDiskReadsTrend').sparkline(eval(key),spo);
+      var diskReads = eval(key); // store
+      
+      // Writes trends
+      spo.lineColor = '#2e84bb';
+      key = 'memberOnRegionJson.' + memberName + '.memoryWritesTrend';
+      tipObj.find('#memberMemoryWritesTrend').sparkline(eval(key),spo);
+      var writes = eval(key); // store
+      key = 'memberOnRegionJson.' + memberName + '.diskWritesTrend';
+      tipObj.find('#memberDiskWritesTrend').sparkline(eval(key),spo);
+      var diskWrites = eval(key); // store
+            
+      $.sparkline_display_visible();
+      
+      var sumReads = 0;
+      var avgReads = 0;
+      if (reads.length > 0) {
+        for ( var i = 0; i < reads.length; i++) {
+          sumReads += parseFloat(reads[i]);
+        }
+        avgReads = sumReads / reads.length;
+      }
+      $('#memberMemoryReadsThroughput').html(applyNotApplicableCheck(avgReads.toFixed(2)));  
+
+      var sumDiskReads = 0;
+      var avgDiskReads = 0;
+      if (diskReads.length > 0) {
+        for ( var i = 0; i < diskReads.length; i++) {
+          sumDiskReads += parseFloat(diskReads[i]);
+        }
+        avgDiskReads = sumDiskReads / diskReads.length;
+      }
+      $('#memberDiskReadsThroughput').html(
+          applyNotApplicableCheck(avgDiskReads.toFixed(2)));
+      
+      var sumWrites = 0;
+      var avgWrites = 0;
+      if (writes.length > 0) {
+        for ( var i = 0; i < writes.length; i++) {
+          sumWrites += parseFloat(writes[i]);
+        }
+        avgWrites = sumWrites / writes.length;
+      }
+      $('#memberMemoryWritesThroughput').html(applyNotApplicableCheck(avgWrites.toFixed(2)));
+
+      
+      var sumDiskWrites = 0;
+      var avgDiskWrites = 0;
+      if (diskWrites.length > 0) {
+        for ( var i = 0; i < diskWrites.length; i++) {
+          sumDiskWrites += parseFloat(diskWrites[i]);
+        }
+        avgDiskWrites = sumDiskWrites / diskWrites.length;
+      }
+      $('#memberDiskWritesThroughput').html(applyNotApplicableCheck(avgDiskWrites.toFixed(2)));
+    },
+    onHide: function(){
+      $('#region_tooltip').css('display','none');
+      tipObj = null; // reset
+
+      theTooltip = null;
+    },
+     // custom positioning
+    position: 'bottom right',
+    
+    relative: false,
+      
+    // move tooltip a little bit to the right
+    offset: [-350, 10]});
+}
+
+function updateSelectedRegionMembersGrid(regMembers){
+
+  // loads grid
+  $('#memberList').jqGrid('clearGridData');
+
+  // Add memebers in grid
+  for (var key in regMembers){
+    var regMemData = regMembers[key];
+    $('#memberList').jqGrid('addRowData',
+        regMemData.memberId + "&" + regMemData.memberName, regMemData);
+  }
+
+  var gridUserData = jQuery("#memberList").getGridParam('userData');
+
+  // Apply sort order ans sort columns on updated jqgrid data
+  jQuery("#memberList").jqGrid('setGridParam', {
+    sortname : gridUserData.sortColName,
+    sortorder : gridUserData.sortOrder
+  });
+  // Reload jqgrid
+  jQuery("#memberList").trigger("reloadGrid");
+
+  // apply scroll if grid container block is not minimized
+  if ($("#LargeBlock_1").css("display") != "none") {
+    $('.ui-jqgrid-bdiv').each(function(index) {
+      var tempName = $(this).parent().attr('id');
+      if (tempName == 'gview_memberList') {
+        $(this).jScrollPane({maintainPosition : true, stickToRight : true});
+      }
+    });
+
+    var memberRegionsList = $('#gview_memberList');
+    memberRegionsListChild = memberRegionsList
+           .children('.ui-jqgrid-bdiv');
+    memberRegionsListChild.unbind('jsp-scroll-x');
+    memberRegionsListChild.bind('jsp-scroll-x', function(event,
+           scrollPositionX, isAtLeft, isAtRight) {
+
+        var mRList = $('#gview_memberList');
+        var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
+             '.ui-jqgrid-hbox');
+        mRLC.css("position", "relative");
+        mRLC.css('right', scrollPositionX);
+    });
+  }
+}
+
+//function used for creating blank TreeMap for member's on Cluster Details
+//Screen
+function createMemberTreeMap() {
+    
+    var dataVal = {
+      "$area" : 1,
+      "initial" : true
+    };
+    var json = {
+      "children" : {},
+      "data" : dataVal,
+      "id" : "root",
+      "name" : "Members"
+    };
+    
+    regionMemberTreeMap = new $jit.TM.Squarified(
+        {
+
+          injectInto : 'GraphTreeMap',
+          levelsToShow : 1,
+          titleHeight : 0,
+          background : '#a0c44a',
+          offset : 2,
+          Label : {
+            type : 'HTML',
+            size : 1
+          },
+          Node : {
+            CanvasStyles : {
+              shadowBlur : 0
+            }
+          },
+          Events : {
+            enable : true,
+            onMouseEnter : function(node, eventInfo) {
+              if (node) {
+                node.setCanvasStyle('shadowBlur', 7);
+                node.setData('border', '#ffffff');
+
+                regionMemberTreeMap.fx.plotNode(node,
+                    regionMemberTreeMap.canvas);
+                regionMemberTreeMap.labels.plotLabel(
+                    regionMemberTreeMap.canvas, node);
+              }
+            },
+            onMouseLeave : function(node) {
+              if (node) {
+                node.removeData('border', '#ffffff');
+                node.removeCanvasStyle('shadowBlur');
+                regionMemberTreeMap.plot();
+              }
+            },
+            onClick : function(node) {
+              if (node.id != "root") {
+                location.href ='MemberDetails.html?member=' + node.id + "&memberName=" + node.name;
+              }
+            }
+          },
+
+          Tips : {
+            enable : false,
+            offsetX : 5,
+            offsetY : 5,
+            onShow : function(tip, node, isLeaf, domElement) {
+              var html = "<div class=\"tip-title\"><div><div class='popupHeading'>This region does not exist.</div>";
+              tip.innerHTML = html;
+            }
+          },
+          onCreateLabel : function(domElement, node) {
+            domElement.style.opacity = 0.01;
+
+          }
+        });
+    regionMemberTreeMap.loadJSON(json);
+    regionMemberTreeMap.refresh();
+    $(".node").attr('title',"<div class=\"tip-title\"><div><div class='popupHeading'>This region does not exist.</div></div></div>");
+    $(".node").tooltip({
+      
+      data : $(this).tagName,
+      onShow: function() {
+        tipObj = this.getTip(); //global store 
+      },
+      onHide: function(){
+        tipObj = null; // reset
+      },
+       // custom positioning
+      position: 'bottom right',
+      
+      relative: false,
+        
+      // move tooltip a little bit to the right
+      offset: [-350, 10]});
+}
+
+/* builds and returns json from given members details sent by server */
+function buildMemberTreeMap(members) {
+
+  var childerensVal = [];
+  var indexOfChild = 0;
+  for(var memKey in members){
+
+    var regMember = members[memKey];
+
+    var color = "#a0c44a";
+    // setting node color according to the status of member
+    // like if member has severe notification then the node color will be
+    // '#ebbf0f'
+    for ( var j = 0; j < warningAlerts.length; j++) {
+      if (regMember.memberName == warningAlerts[j].memberName) {
+        color = '#ebbf0f';
+        break;
+      }
+    }
+    // if member has severe notification then the node color will be
+    // '#de5a25'
+    for ( var j = 0; j < errorAlerts.length; j++) {
+      if (regMember.memberName == errorAlerts[j].memberName) {
+        color = '#de5a25';
+        break;
+      }
+    }
+    // if member has severe notification then the node color will be
+    // '#b82811'
+    for ( var j = 0; j < severAlerts.length; j++) {
+      if (regMember.memberName == severAlerts[j].memberName) {
+        color = '#b82811';
+        break;
+      }
+    }
+    
+    var areaSize = regMember.entryCount;
+    if (areaSize == 0)
+      areaSize = 1;
+    var name = "";
+    name = regMember.memberName;
+    var id = "";
+    id = regMember.memberName;
+    // passing all the required information of member to tooltip
+    var dataVal = {
+      "name" : name,
+      "id" : id,
+      "$color" : color,
+      "$area" : areaSize,
+      "entryCount" : regMember.entryCount,
+      "entrySize" : regMember.entrySize,
+      "accessor" : regMember.accessor,
+      "initial" : false
+    };
+    var childrenVal = {
+      "children" : [],
+      "data" : dataVal,
+      "id" : id,
+      "name" : name
+    };
+    childerensVal[indexOfChild++] = childrenVal;
+  }
+  
+  var localjson = {
+    "children" : childerensVal,
+    "data" : {},
+    "id" : "root",
+    "name" : "Members"
+  };
+  return localjson;
+}
+
+function tabClusterGrid() {
+  flagActiveTab = "MEM_GRID"; // MEM_TREE_MAP, MEM_GRID
+  
+  $('#btngridIcon').addClass('gridIconActive');
+  $('#btngridIcon').removeClass('gridIcon');
+
+  $('#btnchartIcon').addClass('chartIcon');
+  $('#btnchartIcon').removeClass('chartIconActive');
+
+  $('#chartBlocks_Panel').hide();
+  destroyScrollPane('gview_memberList');
+  $('.ui-jqgrid-bdiv').each(function(index) {
+      var tempName = $(this).parent().attr('id');
+      if (tempName == 'gview_memberList') {
+        $(this).jScrollPane({maintainPosition : true, stickToRight : true});
+      }
+  });
+  $('#gridBlocks_Panel').show();
+  jQuery("#memberList").trigger("reloadGrid");
+}
+
+function tabTreeMap() {
+  flagActiveTab = "MEM_TREE_MAP"; // MEM_TREE_MAP, MEM_GRID
+
+  $('#gridBlocks_Panel').hide();
+  $('#chartBlocks_Panel').show();
+
+  $('#btngridIcon').addClass('gridIcon');
+  $('#btngridIcon').removeClass('gridIconActive');
+
+  $('#btnchartIcon').addClass('chartIconActive');
+  $('#btnchartIcon').removeClass('chartIcon');
+
+  regionMemberTreeMap.loadJSON(globalJson);
+  regionMemberTreeMap.refresh();
+}
+
+//function used for creating blank grids for member list for Cluster Details
+//Screen
+function createMemberGrid() {
+jQuery("#memberList").jqGrid(
+ {
+   datatype : "local",
+   height : 560,
+   width : 410,
+   rowNum : 200,
+   shrinkToFit : false,
+   colNames : [ 'Member', 'Entry Count', 'Entry Size', 'Accessor'],
+   colModel : [
+       {
+         name : 'memberName',
+         index : 'memberName',
+         width : 120,
+         cellattr : function(rowId, val, rawObject, cm, rdata) {
+           return 'title="Member: ' + rawObject.memberName + ' , Entry Count: '
+               + rawObject.entryCount + ' , Entry Size: '
+               + rawObject.entrySize + ' , Accessor: '
+               + rawObject.accessor + '"';
+         },
+         sortable : true,
+         sorttype : "string"
+       },
+       {
+         name : 'entryCount',
+         index : 'entryCount',
+         width : 90,
+         align : 'right',
+         cellattr : function(rowId, val, rawObject, cm, rdata) {
+           return 'title="Member: ' + rawObject.memberName + ' , Entry Count: '
+           + rawObject.entryCount + ' , Entry Size: '
+           + rawObject.entrySize + ' , Accessor: '
+           + rawObject.accessor + '"';
+         },
+         sortable : true,
+         sorttype : "string"
+       },
+       {
+         name : 'entrySize',
+         index : 'entrySize',
+         width : 90,
+         align : 'right',
+         cellattr : function(rowId, val, rawObject, cm, rdata) {
+           return 'title="Member: ' + rawObject.memberName + ' , Entry Count: '
+           + rawObject.entryCount + ' , Entry Size: '
+           + rawObject.entrySize + ' , Accessor: '
+           + rawObject.accessor + '"';
+         },
+         sortable : true,
+         sorttype : "float"
+       },
+       {
+         name : 'accessor',
+         index : 'accessor',
+         width : 90,
+         align : 'center',
+         cellattr : function(rowId, val, rawObject, cm, rdata) {
+           return 'title="Member: ' + rawObject.memberName + ' , Entry Count: '
+           + rawObject.entryCount + ' , Entry Size: '
+           + rawObject.entrySize + ' , Accessor: '
+           + rawObject.accessor + '"';
+         },
+         sortable : true,
+         sorttype : "boolean"
+       } ],
+   userData : {
+     "sortOrder" : "desc",
+     "sortColName" : "entryCount"
+   },
+   onSortCol : function(columnName, columnIndex, sortorder) {
+     // Set sort order and sort column in user variables so that
+     // periodical updates can maintain the same
+     var gridUserData = jQuery("#memberList").getGridParam('userData');
+     gridUserData.sortColName = columnName;
+     gridUserData.sortOrder = sortorder;
+   },
+   onSelectRow : function(rowid) {
+     var member = rowid.split("&");
+     location.href = 'MemberDetails.html?member=' + member[0]
+     + '&memberName=' + member[1];
+   },
+   resizeStop : function(width, index) {
+     
+     var memberRegionsList = $('#gview_memberList');
+     var memberRegionsListChild = memberRegionsList
+         .children('.ui-jqgrid-bdiv');
+     var api = memberRegionsListChild.data('jsp');
+     api.reinitialise();
+     
+     memberRegionsList = $('#gview_memberList');
+     var memberRegionsListChild = memberRegionsList
+         .children('.ui-jqgrid-bdiv');
+
+     memberRegionsListChild.unbind('jsp-scroll-x');
+     memberRegionsListChild.bind('jsp-scroll-x', function(event,
+         scrollPositionX, isAtLeft, isAtRight) {
+       var mRList = $('#gview_memberList');
+       var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
+           '.ui-jqgrid-hbox');
+       mRLC.css("position", "relative");
+       mRLC.css('right', scrollPositionX);
+     });
+     
+     this.gridComplete();
+     $('#btngridIcon').click();
+     refreshTheGrid($('#btngridIcon'));
+   },
+   gridComplete : function() {
+     $(".jqgrow").css({
+       cursor : 'default'
+     });
+
+     var memberRegionsList = $('#gview_memberList');
+     var memberRegionsListChild = memberRegionsList
+         .children('.ui-jqgrid-bdiv');
+
+     memberRegionsListChild.unbind('jsp-scroll-x');
+     memberRegionsListChild.bind('jsp-scroll-x', function(event,
+         scrollPositionX, isAtLeft, isAtRight) {
+       var mRList = $('#gview_memberList');
+       var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
+           '.ui-jqgrid-hbox');
+       mRLC.css("position", "relative");
+       mRLC.css('right', scrollPositionX);
+     });       
+   }
+ });
+}
+
+function refreshTheGrid(gridDiv) {
+  setTimeout(function(){gridDiv.click();}, 300);
+}