You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by tu...@apache.org on 2015/11/03 12:25:29 UTC
[07/79] [partial] incubator-geode git commit: GEODE-12: Imported
pulse from geode-1.0.0-SNAPSHOT-2.src.tar
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1922937f/pulse/src/main/webapp/scripts/pulsescript/clusterDetail.js
----------------------------------------------------------------------
diff --git a/pulse/src/main/webapp/scripts/pulsescript/clusterDetail.js b/pulse/src/main/webapp/scripts/pulsescript/clusterDetail.js
new file mode 100644
index 0000000..1816ab8
--- /dev/null
+++ b/pulse/src/main/webapp/scripts/pulsescript/clusterDetail.js
@@ -0,0 +1,2349 @@
+/*=========================================================================
+ * 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.
+ *=========================================================================
+ */
+
+var selectedPerspectiveView = "member";
+var selectedMemberViewOption = "default";
+var selectedViewTypeDefault = ""; //"rgraph";
+var selectedViewTypeSG = "treemap";
+var selectedViewTypeRZ = "treemap";
+var selectedViewTypeData = "treemap";
+
+var gblClusterMembers = null;
+
+/**
+ * This JS File is used for Cluster Details screen
+ *
+ */
+
+// This function is the initialization function for Cluster Details screen. It
+// is
+// making call to functions defined for different widgets used on this screen
+$(document).ready(function() {
+
+ // Load Notification HTML
+ generateNotificationsPanel();
+
+ // modify UI text as per requirement
+ customizeUI();
+
+ if (CONST_BACKEND_PRODUCT_SQLFIRE == productname.toLowerCase()) {
+ alterHtmlContainer(CONST_BACKEND_PRODUCT_SQLFIRE);
+
+ // "ClusterDetails" service callback handler
+ getClusterDetailsBack = getClusterDetailsSQLfireBack;
+
+ // "ClusterKeyStatistics" service callback handler
+ getClusterKeyStatisticsBack = getClusterKeyStatisticsSQLfireBack;
+
+ } else {
+ alterHtmlContainer(CONST_BACKEND_PRODUCT_GEMFIRE);
+
+ // "ClusterDetails" service callback handler
+ getClusterDetailsBack = getClusterDetailsGemfireBack;
+
+ // "ClusterKeyStatistics" service callback handler
+ getClusterKeyStatisticsBack = getClusterKeyStatisticsGemfireBack;
+ }
+
+ // Add hostspot attributes
+ hotspotAttributes = new Array();
+ hotspotAttributes.push({"id":"currentHeapUsage", "name":"Heap Usage"});
+ hotspotAttributes.push({"id":"cpuUsage", "name":"CPU Usage"});
+
+ // Initialize set up for hotspot
+ initHotspotDropDown();
+
+ scanPageForWidgets();
+ // Default view - creating blank cluster members tree map
+ createMembersTreeMapDefault();
+ $('#default_treemap_block').hide();
+ // Default view - creating blank cluster members grid
+ createMemberGridDefault();
+ // Default view - creating blank R Graph for all members associated with defined cluster
+ createClusteRGraph();
+
+ // Server Groups view - creating blank cluster members tree map
+ createMembersTreeMapSG();
+ $('#servergroups_treemap_block').hide();
+ // Server Groups view - creating blank cluster members grid
+ createMemberGridSG();
+
+ // Redundancy Zones view - creating blank cluster members tree map
+ createMembersTreeMapRZ();
+ $('#redundancyzones_treemap_block').hide();
+ // Redundancy Zones view - creating blank cluster members grid
+ createMemberGridRZ();
+
+ // Data view - creating blank cluster data/regions tree map
+ createRegionsTreeMapDefault();
+ $('#data_treemap_block').hide();
+ // Data view - creating blank cluster data/regions grid
+ createRegionsGridDefault();
+
+ $.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()){
+ // Hide HTML for following
+ $('#clusterUniqueCQsContainer').hide();
+ $('#SubscriptionsContainer').hide();
+ $('#queriesPerSecContainer').hide();
+
+ // Show HTML for following
+ $('#subTabQueryStatistics').show();
+ $('#TxnCommittedContainer').show();
+ $('#TxnRollbackContainer').show();
+ }else{
+ // Hide HTML for following
+ $('#subTabQueryStatistics').hide();
+ $('#TxnCommittedContainer').hide();
+ $('#TxnRollbackContainer').hide();
+
+ // Show HTML for following
+ $('#clusterUniqueCQsContainer').show();
+ $('#SubscriptionsContainer').show();
+ $('#queriesPerSecContainer').show();
+ }
+
+}
+
+// Function called when Hotspot is changed
+function applyHotspot(){
+ var data = new Object();
+ data.members = gblClusterMembers;
+ if (flagActiveTab == "MEM_TREE_MAP_DEF") {
+ updateClusterMembersTreeMapDefault(data);
+ } else if (flagActiveTab == "MEM_TREE_MAP_SG") {
+ updateClusterMembersTreeMapSG(data);
+ } else if (flagActiveTab == "MEM_TREE_MAP_RZ") {
+ updateClusterMembersTreeMapRZ(data);
+ }
+}
+
+function translateGetClusterMemberBack(data) {
+ getClusterMembersBack(data.ClusterMembers);
+}
+
+function translateGetClusterMemberRGraphBack(data) {
+ getClusterMembersRGraphBack(data.ClusterMembersRGraph);
+}
+
+function translateGetClusterRegionsBack(data) {
+ getClusterRegionsBack(data.ClusterRegions);
+}
+
+// function used for creating blank TreeMap for member's on Cluster Details
+// Screen
+function createMembersTreeMapDefault() {
+ var dataVal = {
+ "$area" : 1,
+ "initial" : true
+ };
+ var json = {
+ "children" : {},
+ "data" : dataVal,
+ "id" : "root",
+ "name" : "Members"
+ };
+
+ clusterMemberTreeMap = 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');
+
+ clusterMemberTreeMap.fx.plotNode(node,
+ clusterMemberTreeMap.canvas);
+ clusterMemberTreeMap.labels.plotLabel(
+ clusterMemberTreeMap.canvas, node);
+ }
+ },
+ onMouseLeave : function(node) {
+ if (node) {
+ node.removeData('border', '#ffffff');
+ node.removeCanvasStyle('shadowBlur');
+ clusterMemberTreeMap.plot();
+ }
+ },
+ onClick : function(node) {
+ if (!node.data.initial) {
+ location.href = 'MemberDetails.html?member=' + node.id
+ + '&memberName=' + node.name;
+ }
+ }
+ },
+
+ Tips : {
+ enable : true,
+ offsetX : 5,
+ offsetY : 5,
+ onShow : function(tip, node, isLeaf, domElement) {
+ var html = "";
+ var data = node.data;
+ if (!data.initial) {
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>"
+ + node.name
+ + "</div>"
+ + "<div class='popupFirstRow'><div class='popupRowBorder borderBottomZero'>"
+ + "<div class='labeltext left display-block width-70'><span class='left'>CPU Usage</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.cpuUsage
+ + "<span class='fontSize15'>%</span></span></div>"
+ + "</div></div>"
+ + "<div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Memory Usage</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.heapUsage
+ + "<span class='font-size15 paddingL5'>MB</span>"
+ + "</div></div></div>"
+ + "<div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Load Avg.</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + applyNotApplicableCheck(data.loadAvg)
+ + "</div></div></div><div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Threads</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.threads
+ + "</div></div></div><div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Sockets</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + applyNotApplicableCheck(data.sockets)
+ + "</div></div></div><div class='popupRowBorder borderBottomZero'>"
+ + "<div class='labeltext left display-block width-70'><span class='left'>GemFire Version</span>"
+ + "</div><div class='right width-30'><div class='color-d2d5d7 font-size14'>"
+ + data.gemfireVersion + "</div></div>" + "</div>" + ""
+ + "</div></div>" + "</div>";
+ } else {
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>Loading</div>";
+ }
+ tip.innerHTML = html;
+ }
+ },
+ onCreateLabel : function(domElement, node) {
+ //domElement.style.opacity = 0.01;
+
+ if(node.id == "root"){
+ domElement.innerHTML = "<div class='treemapRootNodeLabeltext'> </div>";
+ }else{
+ domElement.innerHTML = "<div class='treemapNodeLabeltext'>"+node.name+"</div>";
+ var style = domElement.style;
+ style.display = '';
+ style.border = '1px solid transparent';
+
+ domElement.onmouseover = function() {
+ style.border = '1px solid #ffffff';
+ };
+
+ domElement.onmouseout = function() {
+ style.border = '1px solid transparent';
+ };
+ }
+
+ }
+ });
+ clusterMemberTreeMap.loadJSON(json);
+ clusterMemberTreeMap.refresh();
+}
+
+//function used for creating blank TreeMap for member's on Servre Groups View
+function createMembersTreeMapSG(){
+ var dataVal = {
+ "$area" : 1,
+ "initial" : true
+ };
+ var json = {
+ "children" : {},
+ "data" : dataVal,
+ "id" : "root",
+ "name" : "sgMembers"
+ };
+
+ clusterSGMemberTreeMap = new $jit.TM.Squarified(
+ {
+
+ injectInto : 'GraphTreeMapSG',
+ //levelsToShow : 1,
+ titleHeight : 15,
+ background : '#a0c44a',
+ offset : 1,
+ userData : {
+ isNodeEntered : false
+ },
+ Label : {
+ type : 'HTML',
+ size : 9
+ },
+ Node : {
+ CanvasStyles : {
+ shadowBlur : 0
+ }
+ },
+ Events : {
+ enable : true,
+ onMouseEnter : function(node, eventInfo) {
+ if (node && node.id != "root") {
+ node.setCanvasStyle('shadowBlur', 7);
+ node.setData('border', '#ffffff');
+
+ clusterSGMemberTreeMap.fx.plotNode(node,
+ clusterSGMemberTreeMap.canvas);
+ clusterSGMemberTreeMap.labels.plotLabel(
+ clusterSGMemberTreeMap.canvas, node);
+ }
+ },
+ onMouseLeave : function(node) {
+ if (node && node.id != "root") {
+ node.removeData('border', '#ffffff');
+ node.removeCanvasStyle('shadowBlur');
+ clusterSGMemberTreeMap.plot();
+ }
+ },
+ onClick : function(node) {
+ if (node) {
+ if(node._depth == 1){
+ var isSGNodeEntered = clusterSGMemberTreeMap.config.userData.isNodeEntered;
+ if(!isSGNodeEntered){
+ clusterSGMemberTreeMap.config.userData.isNodeEntered = true;
+ clusterSGMemberTreeMap.enter(node);
+ }else{
+ clusterSGMemberTreeMap.config.userData.isNodeEntered = false;
+ clusterSGMemberTreeMap.out();
+ }
+ } else if(node._depth == 2 && (!node.data.initial)){
+ location.href = 'MemberDetails.html?member=' + node.data.id
+ + '&memberName=' + node.data.name;
+ }
+ }
+ },
+ onRightClick: function() {
+ clusterSGMemberTreeMap.out();
+ }
+ },
+
+ Tips : {
+ enable : true,
+ offsetX : 5,
+ offsetY : 5,
+ onShow : function(tip, node, isLeaf, domElement) {
+ var html = "";
+ if(node && node.id != "root"){
+ var data = node.data;
+ if (!data.initial) {
+ if(node._depth == 1){
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>" + node.name + "</div>";
+ }else if(node._depth == 2){
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>"
+ + node.name
+ + "</div>"
+ + "<div class='popupFirstRow'><div class='popupRowBorder borderBottomZero'>"
+ + "<div class='labeltext left display-block width-70'><span class='left'>CPU Usage</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.cpuUsage
+ + "<span class='fontSize15'>%</span></span></div>"
+ + "</div></div>"
+ + "<div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Memory Usage</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.heapUsage
+ + "<span class='font-size15 paddingL5'>MB</span>"
+ + "</div></div></div>"
+ + "<div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Load Avg.</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + applyNotApplicableCheck(data.loadAvg)
+ + "</div></div></div><div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Threads</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.threads
+ + "</div></div></div><div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Sockets</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + applyNotApplicableCheck(data.sockets)
+ + "</div></div></div><div class='popupRowBorder borderBottomZero'>"
+ + "<div class='labeltext left display-block width-70'><span class='left'>GemFire Version</span>"
+ + "</div><div class='right width-30'><div class='color-d2d5d7 font-size14'>"
+ + data.gemfireVersion + "</div></div>" + "</div>" + ""
+ + "</div></div>" + "</div>";
+ }
+ }else{
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>Loading Server Groups and Members</div>";
+ }
+ }else{
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>Cluster's Server Groups and Members</div>";
+ }
+ tip.innerHTML = html;
+ }
+ },
+ onBeforePlotNode: function(node) {
+ if(node._depth == 0) {
+ // Hide root node title bar
+ node.setData('color', '#132634');
+ } else if(node._depth == 1) {
+ node.setData('color', '#506D94');
+ }
+ },
+ onCreateLabel : function(domElement, node) {
+ //domElement.style.opacity = 0.01;
+ if(node._depth != 0){
+ domElement.innerHTML = "<div class='treemapNodeLabeltext'>"+node.name+"</div>";
+ var style = domElement.style;
+ style.display = '';
+ style.border = '1px solid transparent';
+
+ domElement.onmouseover = function() {
+ style.border = '1px solid #ffffff';
+ // Highlight this member in all server groups
+ if(this.id.indexOf("(!)") != -1){
+ var currSGMemberId = this.id.substring(this.id.indexOf("(!)")+3);
+ var sgMembersDOM = $("div[id$='"+currSGMemberId+"']");
+ for(var cntr=0; cntr<sgMembersDOM.length; cntr++){
+ sgMembersDOM[cntr].style.border = '1px solid #ffffff';
+ }
+ }
+ };
+
+ domElement.onmouseout = function() {
+ style.border = '1px solid transparent';
+ // Remove Highlighting of this member in all server groups
+ if(this.id.indexOf("(!)") != -1){
+ var currSGMemberId = this.id.substring(this.id.indexOf("(!)")+3);
+ var sgMembersDOM = $("div[id$='"+currSGMemberId+"']");
+ for(var cntr=0; cntr<sgMembersDOM.length; cntr++){
+ sgMembersDOM[cntr].style.border = '1px solid transparent';
+ }
+ }
+ };
+ }
+ }
+ });
+ clusterSGMemberTreeMap.loadJSON(json);
+ clusterSGMemberTreeMap.refresh();
+}
+
+//function used for creating blank TreeMap for member's on Redundancy Zones View
+function createMembersTreeMapRZ(){
+ var dataVal = {
+ "$area" : 1,
+ "initial" : true
+ };
+ var json = {
+ "children" : {},
+ "data" : dataVal,
+ "id" : "root",
+ "name" : "rzMembers"
+ };
+
+ clusterRZMemberTreeMap = new $jit.TM.Squarified(
+ {
+
+ injectInto : 'GraphTreeMapRZ',
+ //levelsToShow : 1,
+ titleHeight : 15,
+ background : '#a0c44a',
+ offset : 1,
+ userData : {
+ isNodeEntered : false
+ },
+ Label : {
+ type : 'HTML',
+ size : 9
+ },
+ Node : {
+ CanvasStyles : {
+ shadowBlur : 0
+ }
+ },
+ Events : {
+ enable : true,
+ onMouseEnter : function(node, eventInfo) {
+ if (node && node.id != "root") {
+ node.setCanvasStyle('shadowBlur', 7);
+ node.setData('border', '#ffffff');
+
+ clusterRZMemberTreeMap.fx.plotNode(node,
+ clusterRZMemberTreeMap.canvas);
+ clusterRZMemberTreeMap.labels.plotLabel(
+ clusterRZMemberTreeMap.canvas, node);
+ }
+ },
+ onMouseLeave : function(node) {
+ if (node && node.id != "root") {
+ node.removeData('border', '#ffffff');
+ node.removeCanvasStyle('shadowBlur');
+ clusterRZMemberTreeMap.plot();
+ }
+ },
+ onClick : function(node) {
+ if (node) {
+ if(node._depth == 1){
+ var isRZNodeEntered = clusterRZMemberTreeMap.config.userData.isNodeEntered;
+ if(!isRZNodeEntered){
+ clusterRZMemberTreeMap.config.userData.isNodeEntered = true;
+ clusterRZMemberTreeMap.enter(node);
+ }else{
+ clusterRZMemberTreeMap.config.userData.isNodeEntered = false;
+ clusterRZMemberTreeMap.out();
+ }
+ } else if(node._depth == 2 && (!node.data.initial)){
+ location.href = 'MemberDetails.html?member=' + node.data.id
+ + '&memberName=' + node.data.name;
+ }
+ }
+ },
+ onRightClick: function() {
+ clusterRZMemberTreeMap.out();
+ }
+ },
+
+ Tips : {
+ enable : true,
+ offsetX : 5,
+ offsetY : 5,
+ onShow : function(tip, node, isLeaf, domElement) {
+ var html = "";
+ if(node && node.id != "root"){
+ var data = node.data;
+ if (!data.initial) {
+ if(node._depth == 1){
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>" + node.name + "</div>";
+ }else if(node._depth == 2){
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>"
+ + node.name
+ + "</div>"
+ + "<div class='popupFirstRow'><div class='popupRowBorder borderBottomZero'>"
+ + "<div class='labeltext left display-block width-70'><span class='left'>CPU Usage</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.cpuUsage
+ + "<span class='fontSize15'>%</span></span></div>"
+ + "</div></div>"
+ + "<div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Memory Usage</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.heapUsage
+ + "<span class='font-size15 paddingL5'>MB</span>"
+ + "</div></div></div>"
+ + "<div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Load Avg.</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + applyNotApplicableCheck(data.loadAvg)
+ + "</div></div></div><div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Threads</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.threads
+ + "</div></div></div><div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-70'>"
+ + "<span class='left'>Sockets</span></div><div class='right width-30'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + applyNotApplicableCheck(data.sockets)
+ + "</div></div></div><div class='popupRowBorder borderBottomZero'>"
+ + "<div class='labeltext left display-block width-70'><span class='left'>GemFire Version</span>"
+ + "</div><div class='right width-30'><div class='color-d2d5d7 font-size14'>"
+ + data.gemfireVersion + "</div></div>" + "</div>" + ""
+ + "</div></div>" + "</div>";
+ }
+ }else{
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>Loading Server Groups and Members</div>";
+ }
+ }else{
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>Cluster's Server Groups and Members</div>";
+ }
+ tip.innerHTML = html;
+ }
+ },
+ onBeforePlotNode: function(node) {
+ if(node._depth == 0) {
+ // Hide root node title bar
+ node.setData('color', '#132634');
+ } else if(node._depth == 1) {
+ node.setData('color', '#506D94');
+ }
+ },
+ onCreateLabel : function(domElement, node) {
+ //domElement.style.opacity = 0.01;
+ if(node._depth != 0){
+ domElement.innerHTML = "<div class='treemapNodeLabeltext'>"+node.name+"</div>";
+ var style = domElement.style;
+ style.display = '';
+ style.border = '1px solid transparent';
+
+ domElement.onmouseover = function() {
+ style.border = '1px solid #ffffff';
+ // Highlight this member in all redundancy zones
+ if(this.id.indexOf("(!)") != -1){
+ var currRZMemberId = this.id.substring(this.id.indexOf("(!)")+3);
+ var rzMembersDOM = $("div[id$='"+currRZMemberId+"']");
+ for(var cntr=0; cntr<rzMembersDOM.length; cntr++){
+ rzMembersDOM[cntr].style.border = '1px solid #ffffff';
+ }
+ }
+ };
+
+ domElement.onmouseout = function() {
+ style.border = '1px solid transparent';
+ // Remove Highlighting of this member in all redundancy zones
+ if(this.id.indexOf("(!)") != -1){
+ var currRZMemberId = this.id.substring(this.id.indexOf("(!)")+3);
+ var rzMembersDOM = $("div[id$='"+currRZMemberId+"']");
+ for(var cntr=0; cntr<rzMembersDOM.length; cntr++){
+ rzMembersDOM[cntr].style.border = '1px solid transparent';
+ }
+ }
+ };
+ }
+ }
+ });
+ clusterRZMemberTreeMap.loadJSON(json);
+ clusterRZMemberTreeMap.refresh();
+}
+
+//function used for creating blank TreeMap for cluster's regions on Data View
+function createRegionsTreeMapDefault(){
+ var dataVal = {
+ "$area" : 1
+ };
+ var json = {
+ "children" : {},
+ "data" : dataVal,
+ "id" : "root",
+ "name" : "Regions"
+ };
+
+ clusterRegionsTreeMap = new $jit.TM.Squarified(
+ {
+
+ injectInto : 'GraphTreeMapClusterData',
+ levelsToShow : 1,
+ titleHeight : 0,
+ background : '#8c9aab',
+ offset : 2,
+ Label : {
+ type : 'Native',//HTML
+ size : 9
+ },
+ Node : {
+ CanvasStyles : {
+ shadowBlur : 0
+ }
+ },
+ Events : {
+ enable : true,
+ onMouseEnter : function(node, eventInfo) {
+ if (node && node.id != "root") {
+ node.setCanvasStyle('shadowBlur', 7);
+ node.setData('border', '#ffffff');
+ clusterRegionsTreeMap.fx.plotNode(node, clusterRegionsTreeMap.canvas);
+ clusterRegionsTreeMap.labels.plotLabel(clusterRegionsTreeMap.canvas, node);
+ }
+ },
+ onMouseLeave : function(node) {
+ if (node && node.id != "root") {
+ node.removeData('border', '#ffffff');
+ node.removeCanvasStyle('shadowBlur');
+ clusterRegionsTreeMap.plot();
+ }
+ },
+ onClick : function(node) {
+ if (node.id != "root") {
+ location.href ='regionDetail.html?regionFullPath='+node.data.regionPath;
+ }
+ }
+ },
+
+ Tips : {
+ enable : true,
+ offsetX : 5,
+ offsetY : 5,
+ onShow : function(tip, node, isLeaf, domElement) {
+
+ var data = node.data;
+ var html = "";
+ if (data.type) {
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>"
+ + node.id
+ + "</div>"
+ + "<div class='popupFirstRow'><div class='popupRowBorder borderBottomZero'>"
+ + "<div class='labeltext left display-block width-45'><span class='left'>"
+ + "Type</span></div><div class='right width-55'>"
+ + "<div class='color-d2d5d7 font-size14 popInnerBlockEllipsis'>"
+ + data.type
+ + "</div>"
+ + "</div></div><div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-45'>"
+ + "<span class='left'>" + jQuery.i18n.prop('pulse-entrycount-custom') + "</span></div><div class='right width-55'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.systemRegionEntryCount
+ + "</div>"
+ + "</div></div><div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-45'>"
+ + "<span class='left'>" + jQuery.i18n.prop('pulse-entrysize-custom') + "</span></div><div class='right width-55'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.entrySize
+ + "</div>"
+ /*+ "</div></div><div class='popupRowBorder borderBottomZero'><div class='labeltext left display-block width-45'>"
+ + "<span class='left'>Compression Codec</span></div><div class='right width-55'>"
+ + "<div class='color-d2d5d7 font-size14'>"
+ + data.compressionCodec
+ + "</div>"*/
+ + "</div></div></div></div>" + "</div>";
+ } else {
+ html = "<div class=\"tip-title\"><div><div class='popupHeading'>No " + jQuery.i18n.prop('pulse-regiontabletooltip-custom') + " Found</div>";
+ }
+
+ tip.innerHTML = html;
+ }
+ },
+ onCreateLabel : function(domElement, node) {
+ domElement.innerHTML = node.name;
+ var style = domElement.style;
+ style.cursor = 'default';
+ style.border = '1px solid';
+
+ style.background = 'none repeat scroll 0 0 #606060';
+ domElement.onmouseover = function() {
+ style.border = '1px solid #9FD4FF';
+ style.background = 'none repeat scroll 0 0 #9FD4FF';
+ };
+ domElement.onmouseout = function() {
+ style.border = '1px solid';
+ style.background = 'none repeat scroll 0 0 #606060';
+ };
+
+ }
+ });
+ clusterRegionsTreeMap.loadJSON(json);
+ clusterRegionsTreeMap.refresh();
+}
+
+// function used for creating blank grids for member list for Cluster Details
+// Screen
+
+function createMemberGridDefault() {
+
+ jQuery("#memberList").jqGrid(
+ {
+ datatype : "local",
+ height : 360,
+ width : 740,
+ rowNum : 200,
+ shrinkToFit : false,
+ colNames : [ 'ID', 'Name', 'Host', 'Heap Usage (MB)', 'CPU Usage (%)',
+ 'Uptime', 'Clients', 'CurrentHeapSize', 'Load Avg', 'Threads',
+ 'Sockets'],
+ colModel : [
+ {
+ name : 'memberId',
+ index : 'memberId',
+ width : 170,
+ sorttype : "string",
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true
+ },
+ {
+ name : 'name',
+ index : 'name',
+ width : 150,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "string"
+ },
+ {
+ name : 'host',
+ index : 'host',
+ width : 100,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "string"
+ },
+ {
+ name : 'currentHeapUsage',
+ index : 'currentHeapUsage',
+ width : 110,
+ align : 'right',
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "float"
+ },
+ {
+ name : 'cpuUsage',
+ index : 'cpuUsage',
+ align : 'right',
+ width : 100,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "float"
+ },
+ {
+ name : 'uptime',
+ index : 'uptime',
+ width : 100,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "int"
+ },
+ {
+ name : 'clients',
+ index : 'clients',
+ width : 100,
+ align : 'right',
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "int"
+ }, {
+ name : 'currentHeapUsage',
+ index : 'currentHeapUsage',
+ align : 'center',
+ width : 0,
+ hidden : true
+ }, {
+ name : 'loadAvg',
+ index : 'loadAvg',
+ align : 'center',
+ width : 0,
+ hidden : true
+ }, {
+ name : 'threads',
+ index : 'threads',
+ align : 'center',
+ width : 0,
+ hidden : true
+ }, {
+ name : 'sockets',
+ index : 'sockets',
+ align : 'center',
+ width : 0,
+ hidden : true
+ } ],
+ userData : {
+ "sortOrder" : "asc",
+ "sortColName" : "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("#memberList").getGridParam('userData');
+ gridUserData.sortColName = columnName;
+ gridUserData.sortOrder = sortorder;
+ },
+ onSelectRow : function(rowid, status, event) {
+ if (!event || event.which == 1) { // mouse left button click
+ 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');
+ 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);
+ });
+
+ $('#default_grid_button').click();
+ refreshTheGrid($('#default_grid_button'));
+ },
+ 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 createMemberGridSG() {
+
+ jQuery("#memberListSG").jqGrid(
+ {
+ datatype : "local",
+ height : 360,
+ width : 740,
+ rowNum : 200,
+ shrinkToFit : false,
+ colNames : [ 'Server Group','ID', 'Name', 'Host', 'Heap Usage (MB)', 'CPU Usage (%)',
+ 'Uptime', 'Clients', 'CurrentHeapSize', 'Load Avg', 'Threads',
+ 'Sockets'],
+ colModel : [
+ {
+ name : 'serverGroup',
+ index : 'serverGroup',
+ width : 170,
+ sorttype : "string",
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true
+ },
+ {
+ name : 'memberId',
+ index : 'memberId',
+ width : 170,
+ sorttype : "string",
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true
+ },
+ {
+ name : 'name',
+ index : 'name',
+ width : 150,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "string"
+ },
+ {
+ name : 'host',
+ index : 'host',
+ width : 100,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "string"
+ },
+ {
+ name : 'currentHeapUsage',
+ index : 'currentHeapUsage',
+ width : 110,
+ align : 'right',
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "float"
+ },
+ {
+ name : 'cpuUsage',
+ index : 'cpuUsage',
+ align : 'right',
+ width : 100,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "float"
+ },
+ {
+ name : 'uptime',
+ index : 'uptime',
+ width : 100,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "int"
+ },
+ {
+ name : 'clients',
+ index : 'clients',
+ width : 100,
+ align : 'right',
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "int"
+ }, {
+ name : 'currentHeapUsage',
+ index : 'currentHeapUsage',
+ align : 'center',
+ width : 0,
+ hidden : true
+ }, {
+ name : 'loadAvg',
+ index : 'loadAvg',
+ align : 'center',
+ width : 0,
+ hidden : true
+ }, {
+ name : 'threads',
+ index : 'threads',
+ align : 'center',
+ width : 0,
+ hidden : true
+ }, {
+ name : 'sockets',
+ index : 'sockets',
+ align : 'center',
+ width : 0,
+ hidden : true
+ } ],
+ userData : {
+ "sortOrder" : "asc",
+ "sortColName" : "serverGroup"
+ },
+ 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("#memberListSG").getGridParam('userData');
+ gridUserData.sortColName = columnName;
+ gridUserData.sortOrder = sortorder;
+ },
+ onSelectRow : function(rowid, status, event) {
+ if (!event || event.which == 1) { // mouse left button click
+ var member = rowid.split("&");
+ location.href = 'MemberDetails.html?member=' + member[0]
+ + '&memberName=' + member[1];
+ }
+ },
+ resizeStop : function(width, index) {
+
+ var memberRegionsList = $('#gview_memberListSG');
+ var memberRegionsListChild = memberRegionsList
+ .children('.ui-jqgrid-bdiv');
+ var api = memberRegionsListChild.data('jsp');
+ api.reinitialise();
+
+ memberRegionsList = $('#gview_memberListSG');
+ memberRegionsListChild = memberRegionsList
+ .children('.ui-jqgrid-bdiv');
+ memberRegionsListChild.unbind('jsp-scroll-x');
+ memberRegionsListChild.bind('jsp-scroll-x', function(event,
+ scrollPositionX, isAtLeft, isAtRight) {
+ var mRList = $('#gview_memberListSG');
+ var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
+ '.ui-jqgrid-hbox');
+ mRLC.css("position", "relative");
+ mRLC.css('right', scrollPositionX);
+ });
+
+ $('#servergroups_grid_button').click();
+ refreshTheGrid($('#servergroups_grid_button'));
+ },
+ gridComplete : function() {
+ $(".jqgrow").css({
+ cursor : 'default'
+ });
+
+ var memberRegionsList = $('#gview_memberListSG');
+ 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_memberListSG');
+ var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
+ '.ui-jqgrid-hbox');
+ mRLC.css("position", "relative");
+ mRLC.css('right', scrollPositionX);
+ });
+ }
+ });
+}
+
+function createMemberGridRZ() {
+
+ jQuery("#memberListRZ").jqGrid(
+ {
+ datatype : "local",
+ height : 360,
+ width : 740,
+ rowNum : 200,
+ shrinkToFit : false,
+ colNames : [ 'Redundancy Zone','ID', 'Name', 'Host', 'Heap Usage (MB)', 'CPU Usage (%)',
+ 'Uptime', 'Clients', 'CurrentHeapSize', 'Load Avg', 'Threads',
+ 'Sockets'],
+ colModel : [
+ {
+ name : 'redundancyZone',
+ index : 'redundancyZone',
+ width : 170,
+ sorttype : "string",
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true
+ },
+ {
+ name : 'memberId',
+ index : 'memberId',
+ width : 170,
+ sorttype : "string",
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true
+ },
+ {
+ name : 'name',
+ index : 'name',
+ width : 150,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "string"
+ },
+ {
+ name : 'host',
+ index : 'host',
+ width : 100,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "string"
+ },
+ {
+ name : 'currentHeapUsage',
+ index : 'currentHeapUsage',
+ width : 110,
+ align : 'right',
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "float"
+ },
+ {
+ name : 'cpuUsage',
+ index : 'cpuUsage',
+ align : 'right',
+ width : 100,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "float"
+ },
+ {
+ name : 'uptime',
+ index : 'uptime',
+ width : 100,
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "int"
+ },
+ {
+ name : 'clients',
+ index : 'clients',
+ width : 100,
+ align : 'right',
+ cellattr : function(rowId, val, rawObject, cm, rdata) {
+ return formMemberGridToolTip(rawObject);
+ },
+ sortable : true,
+ sorttype : "int"
+ }, {
+ name : 'currentHeapUsage',
+ index : 'currentHeapUsage',
+ align : 'center',
+ width : 0,
+ hidden : true
+ }, {
+ name : 'loadAvg',
+ index : 'loadAvg',
+ align : 'center',
+ width : 0,
+ hidden : true
+ }, {
+ name : 'threads',
+ index : 'threads',
+ align : 'center',
+ width : 0,
+ hidden : true
+ }, {
+ name : 'sockets',
+ index : 'sockets',
+ align : 'center',
+ width : 0,
+ hidden : true
+ } ],
+ userData : {
+ "sortOrder" : "asc",
+ "sortColName" : "redundancyZone"
+ },
+ 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("#memberListRZ").getGridParam('userData');
+ gridUserData.sortColName = columnName;
+ gridUserData.sortOrder = sortorder;
+ },
+ onSelectRow : function(rowid, status, event) {
+ if (!event || event.which == 1) { // mouse left button click
+ var member = rowid.split("&");
+ location.href = 'MemberDetails.html?member=' + member[0]
+ + '&memberName=' + member[1];
+ }
+ },
+ resizeStop : function(width, index) {
+
+ var memberRegionsList = $('#gview_memberListRZ');
+ var memberRegionsListChild = memberRegionsList
+ .children('.ui-jqgrid-bdiv');
+ var api = memberRegionsListChild.data('jsp');
+ api.reinitialise();
+
+ memberRegionsList = $('#gview_memberListRZ');
+ memberRegionsListChild = memberRegionsList
+ .children('.ui-jqgrid-bdiv');
+ memberRegionsListChild.unbind('jsp-scroll-x');
+ memberRegionsListChild.bind('jsp-scroll-x', function(event,
+ scrollPositionX, isAtLeft, isAtRight) {
+ var mRList = $('#gview_memberListRZ');
+ var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
+ '.ui-jqgrid-hbox');
+ mRLC.css("position", "relative");
+ mRLC.css('right', scrollPositionX);
+ });
+
+ $('#redundancyzones_grid_button').click();
+ refreshTheGrid($('#redundancyzones_grid_button'));
+ },
+ gridComplete : function() {
+ $(".jqgrow").css({
+ cursor : 'default'
+ });
+
+ var memberRegionsList = $('#gview_memberListRZ');
+ 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_memberListRZ');
+ var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
+ '.ui-jqgrid-hbox');
+ mRLC.css("position", "relative");
+ mRLC.css('right', scrollPositionX);
+ });
+ }
+ });
+}
+
+function createRegionsGridDefault() {
+
+ jQuery("#regionsList").jqGrid(
+ {
+ datatype : "local",
+ height : 360,
+ width : 740,
+ rowNum : 200,
+ shrinkToFit : false,
+ colNames : [ 'Region Name', 'Type', 'Entry Count', 'Entry Size',
+ 'Region Path', 'Member Count', 'Read Rates', 'Write Rates',
+ 'Persistence', 'Entry Count', 'Empty Nodes', 'Data Usage',
+ 'Total Data Usage', 'Memory Usage', 'Total Memory',
+ 'Member Names', 'Writes', 'Reads','Off Heap Enabled',
+ 'Compression Codec','HDFS Write Only' ],
+ colModel : [ {
+ name : 'name',
+ index : 'name',
+ width : 120,
+ sortable : true,
+ sorttype : "string"
+ }, {
+ name : 'type',
+ index : 'type',
+ width : 130,
+ sortable : true,
+ sorttype : "string"
+ }, {
+ name : 'systemRegionEntryCount',
+ index : 'systemRegionEntryCount',
+ width : 100,
+ align : 'right',
+ sortable : true,
+ sorttype : "int"
+ }, {
+ name : 'entrySize',
+ index : 'entrySize',
+ width : 100,
+ align : 'right',
+ sortable : true,
+ sorttype : "int"
+ }, {
+ name : 'regionPath',
+ index : 'regionPath',
+ //hidden : true,
+ width : 130,
+ sortable : true,
+ sorttype : "string"
+ }, {
+ name : 'memberCount',
+ index : 'memberCount',
+ hidden : true
+ }, {
+ name : 'getsRate',
+ index : 'getsRate',
+ hidden : true
+ }, {
+ name : 'putsRate',
+ index : 'putsRate',
+ hidden : true
+ }, {
+ name : 'persistence',
+ index : 'persistence',
+ //hidden : true,
+ width : 100,
+ sortable : true,
+ sorttype : "string"
+ }, {
+ name : 'systemRegionEntryCount',
+ index : 'systemRegionEntryCount',
+ hidden : true
+ }, {
+ name : 'emptyNodes',
+ index : 'emptyNodes',
+ hidden : true
+ }, {
+ name : 'dataUsage',
+ index : 'dataUsage',
+ hidden : true
+ }, {
+ name : 'totalDataUsage',
+ index : 'totalDataUsage',
+ hidden : true
+ }, {
+ name : 'memoryUsage',
+ index : 'memoryUsage',
+ hidden : true
+ }, {
+ name : 'totalMemory',
+ index : 'totalMemory',
+ hidden : true
+ }, {
+ name : 'memberNames',
+ index : 'memberNames',
+ hidden : true
+ }, {
+ name : 'writes',
+ index : 'writes',
+ hidden : true
+ }, {
+ name : 'reads',
+ index : 'reads',
+ hidden : true
+ }, {
+ name : 'isEnableOffHeapMemory',
+ index : 'isEnableOffHeapMemory',
+ hidden : true,
+ width : 120,
+ sortable : true,
+ sorttype : "string"
+ }, {
+ name : 'compressionCodec',
+ index : 'compressionCodec',
+ hidden : true
+ }, {
+ name : 'isHDFSWriteOnly',
+ index : 'isHDFSWriteOnly',
+ hidden : true
+ }],
+ userData : {
+ "sortOrder" : "asc",
+ "sortColName" : "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("#regionsList").getGridParam('userData');
+ gridUserData.sortColName = columnName;
+ gridUserData.sortOrder = sortorder;
+ },
+ onSelectRow : function(rowid, status, event) {
+ if (!event || event.which == 1) { // mouse left button click
+ var region = rowid.split("&");
+ location.href = 'regionDetail.html?regionFullPath=' + region[0];
+ }
+ },
+ resizeStop : function(width, index) {
+
+ var clusterRegionsList = $('#gview_regionsList');
+ var clusterRegionsListChild = clusterRegionsList
+ .children('.ui-jqgrid-bdiv');
+ var api = clusterRegionsListChild.data('jsp');
+ api.reinitialise();
+
+ /*memberRegionsList = $('#gview_regionsList');
+ memberRegionsListChild = memberRegionsList
+ .children('.ui-jqgrid-bdiv');
+ memberRegionsListChild.unbind('jsp-scroll-x');
+ memberRegionsListChild.bind('jsp-scroll-x', function(event,
+ scrollPositionX, isAtLeft, isAtRight) {
+ var mRList = $('#gview_regionsList');
+ var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
+ '.ui-jqgrid-hbox');
+ mRLC.css("position", "relative");
+ mRLC.css('right', scrollPositionX);
+ });*/
+
+ $('#data_grid_button').click();
+ refreshTheGrid($('#data_grid_button'));
+ },
+ gridComplete : function() {
+ $(".jqgrow").css({
+ cursor : 'default'
+ });
+
+ var memberRegionsList = $('#gview_regionsList');
+ 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_regionsList');
+ var mRLC = mRList.children('.ui-jqgrid-hdiv').children(
+ '.ui-jqgrid-hbox');
+ mRLC.css("position", "relative");
+ mRLC.css('right', scrollPositionX);
+ });
+
+ // change col names depend on product
+ if(CONST_BACKEND_PRODUCT_SQLFIRE == productname.toLowerCase()){
+ jQuery("#regionsList").jqGrid('setLabel', 'name', jQuery.i18n.prop('pulse-regiontableName-custom'));
+ jQuery("#regionsList").jqGrid('setLabel', 'regionPath', jQuery.i18n.prop('pulse-regiontablePathColName-custom'));
+ jQuery("#regionsList").jqGrid('setLabel', 'getsRate', jQuery.i18n.prop('pulse-readsRate-custom'));
+ jQuery("#regionsList").jqGrid('setLabel', 'putsRate', jQuery.i18n.prop('pulse-writesRate-custom'));
+ jQuery("#regionsList").jqGrid('setLabel', 'writes', jQuery.i18n.prop('pulse-writes-custom'));
+ jQuery("#regionsList").jqGrid('setLabel', 'reads', jQuery.i18n.prop('pulse-reads-custom'));
+ jQuery("#regionsList").jqGrid('setLabel', 'systemRegionEntryCount', jQuery.i18n.prop('pulse-entrycount-custom'));
+ jQuery("#regionsList").jqGrid('setLabel', 'entrySize', jQuery.i18n.prop('pulse-entrysize-custom'));
+ }
+ }
+ });
+}
+
+
+/* builds and returns json from given members details sent by server */
+function buildDefaultMembersTreeMapData(members) {
+
+ var childerensVal = [];
+ for ( var i = 0; i < members.length; i++) {
+
+ 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 (members[i].name == 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 (members[i].name == 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 (members[i].name == severAlerts[j].memberName) {
+ color = '#b82811';
+ break;
+ }
+ }
+ var heapSize = members[i][currentHotspotAttribiute];
+ // if (heapSize == 0)
+ // heapSize = 1;
+ var name = "";
+ name = members[i].name;
+ var id = "";
+ id = members[i].memberId;
+ // passing all the required information of member to tooltip
+ var dataVal = {
+ "name" : name,
+ "id" : id,
+ "$color" : color,
+ "$area" : heapSize,
+ "cpuUsage" : members[i].cpuUsage,
+ "heapUsage" : members[i].currentHeapUsage,
+ "loadAvg" : members[i].loadAvg,
+ "threads" : members[i].threads,
+ "sockets" : members[i].sockets,
+ "gemfireVersion" : members[i].gemfireVersion,
+ "initial" : false
+ };
+ var childrenVal = {
+ "children" : [],
+ "data" : dataVal,
+ "id" : id,
+ "name" : name
+ };
+ childerensVal[i] = childrenVal;
+ }
+ var localjson = {
+ "children" : childerensVal,
+ "data" : {},
+ "id" : "root",
+ "name" : "Members"
+ };
+ return localjson;
+}
+
+/* builds treemap json for Server Groups */
+function buildSGMembersTreeMapData(members) {
+
+ // Server Groups
+ var serverGroups = new Array();
+ var sgChildren = [];
+
+ for ( var i = 0; i < members.length; i++) {
+ // add Server Group if not present
+ var memServerGroups = members[i].serverGroups;
+
+ for ( var cntr = 0; cntr < memServerGroups.length; cntr++) {
+ if ($.inArray(memServerGroups[cntr], serverGroups) == -1) {
+ serverGroups.push(memServerGroups[cntr]);
+ var sgChild = {
+ "children" : new Array(),
+ "data" : {
+ "$area" : 1,
+ "initial" : false
+ },
+ "id" : memServerGroups[cntr],
+ "name" : memServerGroups[cntr]
+ };
+ sgChildren.push(sgChild);
+ }
+ }
+
+ }
+
+ var localjson = {
+ "children" : sgChildren,
+ "data" : {},
+ "id" : "root",
+ "name" : "sgMembers"
+ };
+
+
+ for ( var i = 0; i < members.length; i++) {
+
+ 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 (members[i].name == 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 (members[i].name == 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 (members[i].name == severAlerts[j].memberName) {
+ color = '#b82811';
+ break;
+ }
+ }
+ var heapSize = members[i][currentHotspotAttribiute];
+ // if (heapSize == 0)
+ // heapSize = 1;
+ var name = "";
+ name = members[i].name;
+ var id = "";
+ id = members[i].memberId;
+ // passing all the required information of member to tooltip
+ var dataVal = {
+ "name" : name,
+ "id" : id,
+ "$color" : color,
+ "$area" : heapSize,
+ "cpuUsage" : members[i].cpuUsage,
+ "heapUsage" : members[i].currentHeapUsage,
+ "loadAvg" : members[i].loadAvg,
+ "threads" : members[i].threads,
+ "sockets" : members[i].sockets,
+ "gemfireVersion" : members[i].gemfireVersion,
+ "initial" : false
+ };
+ var childrenVal = {
+ "children" : [],
+ "data" : dataVal,
+ "id" : id,
+ "name" : name
+ };
+
+ var memServerGroups = members[i].serverGroups;
+
+ for(var k=0; k<memServerGroups.length; k++){
+ var localJsonChildren = localjson.children;
+ for(var l=0; l<localJsonChildren.length; l++){
+ if(localJsonChildren[l].name == memServerGroups[k]){
+ // create copy of member treemap child for the current server group
+ var copyOFChildren = jQuery.extend(true, {}, childrenVal);
+ copyOFChildren.id = memServerGroups[k]+"(!)"+childrenVal.id;
+ // Add member child in server group treemap object
+ localJsonChildren[l].children.push(copyOFChildren);
+ }
+ }
+ }
+ }
+
+ return localjson;
+}
+
+/* builds treemap json for Redundancy Zones */
+function buildRZMembersTreeMapData(members) {
+
+ // Redundancy Zones
+ var redundancyZones = new Array();
+ var rzChildren = [];
+
+ for ( var i = 0; i < members.length; i++) {
+ // add redundancy zones if not present
+ var memRedundancyZones = members[i].redundancyZones;
+
+ for ( var cntr = 0; cntr < memRedundancyZones.length; cntr++) {
+ if ($.inArray(memRedundancyZones[cntr], redundancyZones) == -1) {
+ redundancyZones.push(memRedundancyZones[cntr]);
+ var rzChild = {
+ "children" : new Array(),
+ "data" : {
+ "$area" : 1,
+ "initial" : false
+ },
+ "id" : memRedundancyZones[cntr],
+ "name" : memRedundancyZones[cntr]
+ };
+ rzChildren.push(rzChild);
+ }
+ }
+
+ }
+
+ var localjson = {
+ "children" : rzChildren,
+ "data" : {},
+ "id" : "root",
+ "name" : "rzMembers"
+ };
+
+
+ for ( var i = 0; i < members.length; i++) {
+
+ 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 (members[i].name == 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 (members[i].name == 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 (members[i].name == severAlerts[j].memberName) {
+ color = '#b82811';
+ break;
+ }
+ }
+ var heapSize = members[i][currentHotspotAttribiute];
+ // if (heapSize == 0)
+ // heapSize = 1;
+ var name = "";
+ name = members[i].name;
+ var id = "";
+ id = members[i].memberId;
+ // passing all the required information of member to tooltip
+ var dataVal = {
+ "name" : name,
+ "id" : id,
+ "$color" : color,
+ "$area" : heapSize,
+ "cpuUsage" : members[i].cpuUsage,
+ "heapUsage" : members[i].currentHeapUsage,
+ "loadAvg" : members[i].loadAvg,
+ "threads" : members[i].threads,
+ "sockets" : members[i].sockets,
+ "gemfireVersion" : members[i].gemfireVersion,
+ "initial" : false
+ };
+ var childrenVal = {
+ "children" : [],
+ "data" : dataVal,
+ "id" : id,
+ "name" : name
+ };
+
+ var memRedundancyZones = members[i].redundancyZones;
+ for(var k=0; k<memRedundancyZones.length; k++){
+ var localJsonChildren = localjson.children;
+ for(var l=0; l<localJsonChildren.length; l++){
+ if(localJsonChildren[l].name == memRedundancyZones[k]){
+ // create copy of member treemap child for the current redundancy zone
+ var copyOFChildren = jQuery.extend(true, {}, childrenVal);
+ copyOFChildren.id = memRedundancyZones[k]+"(!)"+childrenVal.id;
+ // Add member child in reduadancy zone treemap object
+ localJsonChildren[l].children.push(copyOFChildren);
+ }
+ }
+ }
+ }
+
+ return localjson;
+}
+
+/* builds treemap json for Cluster Regions */
+function buildRegionsTreeMapData(clusterRegions) {
+
+ // variable to store value of total of entry counts of all regions
+ var totalOfEntryCounts = 0;
+ // flag to determine if all regions are having entry count = 0
+ var flagSetEntryCountsToZero = false;
+
+ // Calculate the total of all regions entry counts
+ for ( var i = 0; i < clusterRegions.length; i++) {
+ totalOfEntryCounts += clusterRegions[i].entryCount;
+ }
+
+ // If totalOfEntryCounts is zero and at least one region is present
+ // then set flagSetEntryCountsToZero to avoid displaying circles
+ // in treemap as all valid regions are zero area regions and also display
+ // all regions with evenly placement of blocks
+ if (totalOfEntryCounts == 0 && clusterRegions.length > 0) {
+ flagSetEntryCountsToZero = true;
+ }
+
+ var childerensVal = [];
+
+ for ( var i = 0; i < clusterRegions.length; i++) {
+
+ var entryCount = clusterRegions[i].systemRegionEntryCount;
+ // If flagSetEntryCountsToZero is true then set entry count to
+ // display all
+ // regions with evenly placement of blocks
+ if (flagSetEntryCountsToZero && entryCount == 0) {
+ entryCount = 1;
+ }
+ var color = colorCodeForRegions;
+ if(clusterRegions[i].systemRegionEntryCount == 0){
+ color = colorCodeForZeroEntryCountRegions;
+ }
+
+ var wanEnabled = clusterRegions[i].wanEnabled;
+ var wanEnabledtxt = "";
+ if (wanEnabled == true)
+ wanEnabledtxt = "WAN Enabled";
+ // if (entryCount == 0)
+ // entryCount = 1;
+ var dataVal = {
+ "name" : clusterRegions[i].name,
+ "id" : clusterRegions[i].regionPath,
+ "$color" : color,
+ "$area" : entryCount,
+ "systemRegionEntryCount" : clusterRegions[i].systemRegionEntryCount,
+ "type" : clusterRegions[i].type,
+ "regionPath" : clusterRegions[i].regionPath,
+ "entrySize" : clusterRegions[i].entrySize,
+ "memberCount" : clusterRegions[i].memberCount,
+ "writes" : clusterRegions[i].putsRate,
+ "reads" : clusterRegions[i].getsRate,
+ "emptyNodes" : clusterRegions[i].emptyNodes,
+ "persistence" : clusterRegions[i].persistence,
+ "isEnableOffHeapMemory" : clusterRegions[i].isEnableOffHeapMemory,
+ "compressionCodec" : clusterRegions[i].compressionCodec,
+ "isHDFSWriteOnly" : clusterRegions[i].isHDFSWriteOnly,
+ "memberNames" : clusterRegions[i].memberNames,
+ "memoryWritesTrend" : clusterRegions[i].memoryWritesTrend,
+ "memoryReadsTrend" : clusterRegions[i].memoryReadsTrend,
+ "diskWritesTrend" : clusterRegions[i].diskWritesTrend,
+ "diskReadsTrend" : clusterRegions[i].diskReadsTrend,
+ "memoryUsage" : clusterRegions[i].memoryUsage,
+ "dataUsage" : clusterRegions[i].dataUsage,
+ "totalDataUsage" : clusterRegions[i].totalDataUsage,
+ "totalMemory" : clusterRegions[i].totalMemory
+ };
+ var childrenVal = {
+ "children" : [],
+ "data" : dataVal,
+ "id" : clusterRegions[i].regionPath,
+ "name" : wanEnabledtxt
+ };
+
+ childerensVal[i] = childrenVal;
+ }
+
+
+
+ var json = {
+ "children" : childerensVal,
+ "data" : {},
+ "id" : "root",
+ "name" : "Regions"
+ };
+
+ return json;
+
+}
+
+/* builds grid data for Server Groups */
+function buildSGMembersGridData(members) {
+ var sgMembersGridData = new Array();
+ // Server Groups
+ var serverGroups = new Array();
+
+ for ( var i = 0; i < members.length; i++) {
+ // add Server Group if not present
+ var memServerGroups = members[i].serverGroups;
+
+ for ( var cntr = 0; cntr < memServerGroups.length; cntr++) {
+ if ($.inArray(memServerGroups[cntr], serverGroups) == -1) {
+ serverGroups.push(memServerGroups[cntr]);
+ }
+ }
+
+ }
+
+ for(var i=0; i<serverGroups.length; i++){
+ var serverGroup = serverGroups[i];
+ for(var j=0; j<members.length; j++){
+ if ($.inArray(serverGroup, members[j].serverGroups) > -1) {
+ var memberObjectNew = jQuery.extend({}, members[j]);
+ memberObjectNew.serverGroup = serverGroup;
+ sgMembersGridData.push(memberObjectNew);
+ }
+ }
+ }
+
+ return sgMembersGridData;
+}
+
+/* builds grid data for Redundancy Zones */
+function buildRZMembersGridData(members) {
+ var rzMembersGridData = new Array();
+ // Server Groups
+ var redundancyZones = new Array();
+
+ for ( var i = 0; i < members.length; i++) {
+ // add Redundancy Zones if not present
+ var memRedundancyZones = members[i].redundancyZones;
+
+ for ( var cntr = 0; cntr < memRedundancyZones.length; cntr++) {
+ if ($.inArray(memRedundancyZones[cntr], redundancyZones) == -1) {
+ redundancyZones.push(memRedundancyZones[cntr]);
+ }
+ }
+
+ }
+
+ for(var i=0; i<redundancyZones.length; i++){
+ var redundancyZone = redundancyZones[i];
+ for(var j=0; j<members.length; j++){
+ if ($.inArray(redundancyZone, members[j].redundancyZones) > -1) {
+ var memberObjectNew = jQuery.extend({}, members[j]);
+ memberObjectNew.redundancyZone = redundancyZone;
+ rzMembersGridData.push(memberObjectNew);
+ }
+ }
+ }
+
+ return rzMembersGridData;
+}
+
+// Tool tip for members in grid
+function formMemberGridToolTip(rawObject) {
+ return 'title="Name: ' + rawObject.name + ' , CPU Usage: '
+ + rawObject.cpuUsage + '% , Heap Usage: '
+ + rawObject.currentHeapUsage + 'MB , Load Avg.: '
+ + rawObject.loadAvg + ' , Threads: ' + rawObject.threads
+ + ' , Sockets: ' + rawObject.sockets + '"';
+}
+
+function refreshTheGrid(gridDiv) {
+ setTimeout(function(){gridDiv.click();}, 300);
+}
+
+/*
+ * Show/Hide panels in Widget for Cluster Member's and Data
+ * Function to be called on click of visualization tab icons
+ */
+// function openTabViewPanel(dataPerspective, viewOption, viewType)
+function openTabViewPanel(thisitem){
+ //alert(thisitem.id+" : "+thisitem.dataset.perspective +" | "+thisitem.dataset.view+" | "+thisitem.dataset.viewoption);
+ var viewPanelBlock = thisitem.dataset.view+"_"+thisitem.dataset.viewoption+"_block";
+ $('#'+viewPanelBlock).siblings().hide();
+ $('#'+viewPanelBlock).show();
+ $(thisitem).siblings().removeClass('active');
+ $(thisitem).addClass('active');
+}
+
+//Start: Widget for Cluster Members and Data
+
+
+
+//Show Members Default/Topology R-Graph View and hide rest
+function showMembersDefaultRgraphPanel() {
+
+ flagActiveTab = "MEM_R_GRAPH_DEF";
+ updateRGraphFlags();
+
+ // populateMemberRGraph using pulseUpdate
+ var pulseData = new Object();
+ pulseData.ClusterMembersRGraph = "";
+ ajaxPost("pulse/pulseUpdate", pulseData, translateGetClusterMemberRGraphBack);
+
+}
+
+//Show Members Default/Topology Treemap View and hide rest
+function showMembersDefaultTreemapPanel() {
+
+ flagActiveTab = "MEM_TREE_MAP_DEF";
+
+ // populate Member TreeMap using pulseUpdate
+ var pulseData = new Object();
+ pulseData.ClusterMembers = "";
+ ajaxPost("pulse/pulseUpdate", pulseData, translateGetClusterMemberBack);
+
+
+}
+
+//Show Members Default/Topology Grid View and hide rest
+function showMembersDefaultGridPanel() {
+
+ flagActiveTab = "MEM_GRID_DEF";
+
+ // populate Member Grid using pulseUpdate
+ var pulseData = new Object();
+ pulseData.ClusterMembers = ""; // getClusterMembersBack
+ ajaxPost("pulse/pulseUpdate", pulseData, translateGetClusterMemberBack);
+
+ $('#default_grid_block').hide();
+ destroyScrollPane('gview_memberList');
+ $('#default_grid_block').show();
+
+ /* Custom scroll */
+
+ $('.ui-jqgrid-bdiv').each(function(index) {
+ var tempName = $(this).parent().attr('id');
+ if (tempName == 'gview_memberList') {
+ $(this).jScrollPane({maintainPosition : true, stickToRight : true});
+ }
+ });
+
+}
+
+//Show Members Server Groups Treemap View and hide rest
+function showMembersSGTreemapPanel() {
+
+ flagActiveTab = "MEM_TREE_MAP_SG";
+
+ // populate Member TreeMap using pulseUpdate
+ var pulseData = new Object();
+ pulseData.ClusterMembers = "";
+ ajaxPost("pulse/pulseUpdate", pulseData, translateGetClusterMemberBack);
+
+}
+
+//Show Members Server Groups Grid View and hide rest
+function showMembersSGGridPanel() {
+
+ flagActiveTab = "MEM_GRID_SG";
+
+ // populate Member Grid using pulseUpdate
+ var pulseData = new Object();
+ pulseData.ClusterMembers = ""; // getClusterMembersBack
+ ajaxPost("pulse/pulseUpdate", pulseData, translateGetClusterMemberBack);
+
+ $('#servergroups_grid_block').hide();
+ destroyScrollPane('gview_memberListSG');
+ $('#servergroups_grid_block').show();
+
+ /* Custom scroll */
+
+ $('.ui-jqgrid-bdiv').each(function(index) {
+ var tempName = $(this).parent().attr('id');
+ if (tempName == 'gview_memberListSG') {
+ $(this).jScrollPane({maintainPosition : true, stickToRight : true});
+ }
+ });
+
+}
+
+//Show Members Redundancy Zones Treemap View and hide rest
+function showMembersRZTreemapPanel() {
+
+ flagActiveTab = "MEM_TREE_MAP_RZ";
+
+ // populate Member TreeMap using pulseUpdate
+ var pulseData = new Object();
+ pulseData.ClusterMembers = "";
+ ajaxPost("pulse/pulseUpdate", pulseData, translateGetClusterMemberBack);
+}
+
+//Show Members Redundancy Zones Grid View and hide rest
+function showMembersRZGridPanel() {
+
+ flagActiveTab = "MEM_GRID_RZ";
+
+ // populate Member Grid using pulseUpdate
+ var pulseData = new Object();
+ pulseData.ClusterMembers = "";
+ ajaxPost("pulse/pulseUpdate", pulseData, translateGetClusterMemberBack);
+
+ $('#redundancyzones_grid_block').hide();
+ destroyScrollPane('gview_memberListRZ');
+ $('#redundancyzones_grid_block').show();
+
+ /* Custom scroll */
+
+ $('.ui-jqgrid-bdiv').each(function(index) {
+ var tempName = $(this).parent().attr('id');
+ if (tempName == 'gview_memberListRZ') {
+ $(this).jScrollPane({maintainPosition : true, stickToRight : true});
+ }
+ });
+
+}
+
+//Show Data Treemap View and hide rest
+function showDataTreemapPanel() {
+
+ flagActiveTab = "DATA_TREE_MAP_DEF";
+
+ // populate Region TreeMap using pulseUpdate
+ var pulseData = new Object();
+ pulseData.ClusterRegions = "";
+ ajaxPost("pulse/pulseUpdate", pulseData, translateGetClusterRegionsBack);
+
+}
+
+//Show Data Grid View and hide rest
+function showDataGridPanel() {
+
+ flagActiveTab = "DATA_GRID_DEF";
+
+ // populate Regions Grid using pulseUpdate
+ var pulseData = new Object();
+ pulseData.ClusterRegions = "";
+ ajaxPost("pulse/pulseUpdate", pulseData, translateGetClusterRegionsBack);
+
+ $('#data_grid_block').hide();
+ destroyScrollPane('gview_regionsList');
+ $('#data_grid_block').show();
+
+ /* Custom scroll */
+
+ $('.ui-jqgrid-bdiv').each(function(index) {
+ var tempName = $(this).parent().attr('id');
+ if (tempName == 'gview_regionsList') {
+ $(this).jScrollPane({maintainPosition : true, stickToRight : true});
+ }
+ });
+
+}
+
+// Function to be called on click of visualization tab icons
+function openViewPanel(dataPerspective, dataView, dataViewOption){
+ // Display Loading/Busy symbol
+ $("#loadingSymbol").show();
+
+ selectedPerspectiveView = dataPerspective;
+
+ var viewPanelBlock = dataView+"_"+dataViewOption+"_block";
+ var viewPanelButton = dataView+"_"+dataViewOption+"_button";
+ // Display tab panel
+ $('#'+viewPanelBlock).siblings().hide();
+ $('#'+viewPanelBlock).show();
+
+ // activate tab button
+ var thisitem = $('#'+viewPanelButton);
+ $(thisitem).siblings().removeClass('active');
+ $(thisitem).addClass('active');
+
+ if('member' == dataPerspective){
+ selectedMemberViewOption = dataView;
+ if('servergroups' == dataView){ // Server Groups view
+ selectedViewTypeSG = dataViewOption;
+ if('treemap' == dataViewOption){ // Treemap
+ showMembersSGTreemapPanel();
+ }else { // Grid
+ showMembersSGGridPanel();
+ }
+ }else if('redundancyzones' == dataView){ // Redundancy Zones view
+ selectedViewTypeRZ = dataViewOption;
+ if('treemap' == dataViewOption){ // Treemap
+ showMembersRZTreemapPanel();
+ }else { // Grid
+ showMembersRZGridPanel();
+ }
+ }else { // default view
+ selectedViewTypeDefault = dataViewOption;
+ if('treemap' == dataViewOption){ // Treemap
+ showMembersDefaultTreemapPanel();
+ }else if('grid' == dataViewOption){ // Grid
+ showMembersDefaultGridPanel();
+ }else{ // R-Graph
+ showMembersDefaultRgraphPanel();
+ }
+ }
+
+ // Show/hide hotspot dropdown
+ if('treemap' == dataViewOption){
+ $("#hotspotParentContainer").show();
+ }else{
+ $("#hotspotParentContainer").hide();
+ }
+
+ }else{ // 'data' == dataPerspective
+ selectedViewTypeData = dataViewOption;
+ if('treemap' == dataViewOption){ // Treemap
+ showDataTreemapPanel();
+ }else if('grid' == dataViewOption){ // Grid
+ showDataGridPanel();
+ }
+ }
+ // Hide Loading/Busy symbol
+ $("#loadingSymbol").hide();
+}
+
+//Function to be called on click of cluster perspective drop down list
+function onChangeClusterPerspective(n) {
+ for(var i=1;i<=$(".members_data ul li").length;i++){
+ $("#members_data"+i).removeClass("selected");
+ }
+ $("#members_data"+n).addClass("selected");
+
+ if (n == 1) { // Members Perspective
+ $("#member_view_options").show();
+ $("#icons_data_view").hide();
+ $("#icons_member_view_option_default").hide();
+ $("#icons_member_view_option_servergroups").hide();
+ $("#icons_member_view_option_redundancyzones").hide();
+
+ // Check last selected member view option
+ for ( var i = 0; i < $("#member_view_options ul li").length; i++) {
+ var idname = $('#member_view_options ul li').get(i).id;
+ if ($("#" + idname).children("label").hasClass("r_on")) {
+ var iconsbox = "icons_"+idname;
+ $("#" + iconsbox).show();
+ }
+ }
+
+ selectedPerspectiveView = "member";
+
+ } else if (n == 2) { // Data Perspective
+ $("#hotspotParentContainer").hide();
+ $("#member_view_options").hide();
+ $("#icons_data_view").show();
+ $("#icons_member_view_option_default").hide();
+ $("#icons_member_view_option_servergroups").hide();
+ $("#icons_member_view_option_redundancyzones").hide();
+
+ selectedPerspectiveView = "data";
+ }
+
+ // display visualization
+ if("member" == selectedPerspectiveView){
+ // Member perspective
+ if("default" == selectedMemberViewOption){
+ if("rgraph" == selectedViewTypeDefault){
+ openViewPanel('member', 'default','rgraph');
+ }else if("treemap" == selectedViewTypeDefault){
+ openViewPanel('member', 'default','treemap');
+ }else{
+ openViewPanel('member', 'default','grid');
+ }
+ }else if("servergroups" == selectedMemberViewOption){
+ if("treemap" == selectedViewTypeSG){
+ openViewPanel('member', 'servergroups','treemap');
+ }else{
+ openViewPanel('member', 'servergroups','grid');
+ }
+ }else{ // redundancyzones
+ if("treemap" == selectedViewTypeRZ){
+ openViewPanel('member', 'redundancyzones','treemap');
+ }else{
+ openViewPanel('member', 'redundancyzones','grid');
+ }
+ }
+ }else{
+ // Data perspective
+ if("treemap" == selectedViewTypeData){
+ openViewPanel('data', 'data', 'treemap');
+ }else{
+ openViewPanel('data', 'data', 'grid');
+ }
+ }
+
+}
+
+function displayClusterPerspective(perspView){
+
+}
+
+$(document).ready(function(e) {
+ // Attach click event on outside of the drop down list control.
+ addEventsForMembersOptions();
+
+});
+
+/*
+ Function to attach click event on outside of the drop down list control.
+*/
+function addEventsForMembersOptions() {
+
+ // Attach click event for radio butons on Memebrs perspective view
+ $(".label_radio input").unbind("click").click(memberOptionSelectionHandler);
+
+}
+
+// handler to be called on selection of radio options of Member Views
+var memberOptionSelectionHandler = function(){
+
+ $(".label_radio").removeClass("r_on");
+ if ($(this).is(":checked")) {
+ $(this).parent('label').addClass("r_on");
+ } else {
+ $(this).parent('label').removeClass("r_on");
+ }
+
+ var viewOptionId;
+ if('radio-servergroups' == this.id){
+ viewOptionId = 'member_view_option_servergroups';
+ selectedMemberViewOption = "servergroups";
+ if("treemap" == selectedViewTypeSG){
+ openViewPanel('member', 'servergroups','treemap');
+ }else{
+ openViewPanel('member', 'servergroups','grid');
+ }
+ }else if('radio-redundancyzones' == this.id){
+ viewOptionId = 'member_view_option_redundancyzones';
+ selectedMemberViewOption = "redundancyzones";
+ if("treemap" == selectedViewTypeRZ){
+ openViewPanel('member', 'redundancyzones','treemap');
+ }else{
+ openViewPanel('member', 'redundancyzones','grid');
+ }
+ }else{//radio-default
+ viewOptionId = 'member_view_option_default';
+ selectedMemberViewOption = "default";
+ if("rgraph" == selectedViewTypeDefault){
+ openViewPanel('member', 'default','rgraph');
+ }else if("treemap" == selectedViewTypeDefault){
+ openViewPanel('member', 'default','treemap');
+ }else{
+ openViewPanel('member', 'default','grid');
+ }
+ }
+
+ // set radio selection
+ $('#'+viewOptionId).siblings().removeClass('selected');
+ $('#'+viewOptionId).addClass("selected");
+ //selectedsubview = id;
+ // Show/Hide Tab buttons
+ $('#'+'icons_'+viewOptionId).show();
+ $('#'+'icons_'+viewOptionId).siblings().hide();
+
+};
+
+var selectedsubview;
+var viewtypegridtreemap;
+
+/************ on Click Out Side **************************/
+(function(jQuery) {
+ jQuery.fn.clickoutside = function(callback) {
+ var outside = 1, self = $(this);
+ self.cb = callback;
+ this.click(function() {
+ outside = 0;
+ });
+ $(document).click(function() {
+ outside && self.cb();
+ outside = 1;
+ });
+ return $(this);
+ };
+})(jQuery);
+
+// End: Widget for Cluster Members and Data