diff --git a/xCAT-UI/js/nodes/nodes.js b/xCAT-UI/js/nodes/nodes.js
index 42e647206..61c5d3f7e 100644
--- a/xCAT-UI/js/nodes/nodes.js
+++ b/xCAT-UI/js/nodes/nodes.js
@@ -66,7 +66,6 @@ function loadNodesPage() {
// Create loader and info bar
groups.append(createLoader());
- $('#nodes').append(createInfoBar('Select a group to view its nodes.'));
// Get groups
$.ajax( {
@@ -235,7 +234,7 @@ function loadGroups(data) {
}
/**
- * Empty the nodes area and add two tabs for nodes result
+ * Empty the nodes area and add three tabs for nodes result
*
* @param targetgroup
* The name range for nodels command
@@ -525,7 +524,7 @@ function loadNodes(data) {
// Get key and value
args = rsp[i].split('=', 2);
var key = jQuery.trim(args[0]);
- var val = jQuery.trim(rsp[i].substring(rsp[i].indexOf('=') + 1, rsp[i].length));
+ var val = jQuery.trim(rsp[i].substring(rsp[i].indexOf('=') + 1));
// Create a hash table
attrs[node][key] = val;
diff --git a/xCAT-UI/js/nodes/physical.js b/xCAT-UI/js/nodes/physical.js
index 92caba2b1..ad7356cc4 100644
--- a/xCAT-UI/js/nodes/physical.js
+++ b/xCAT-UI/js/nodes/physical.js
@@ -2,6 +2,8 @@ var bpaList;
var fspList;
var lparList;
var bladeList;
+var rackList;
+var unknownList;
var graphicalNodeList;
var selectNode;
@@ -100,6 +102,8 @@ function createPhysicalLayout(nodeList){
lparList = new Object();
bladeList = new Object();
selectNode = new Object();
+ rackList = new Object();
+ unknownList = new Array();
//there is not graphical data, get the info now
if (!flag){
@@ -143,6 +147,7 @@ function fillList(nodeName, defaultnodetype){
var nodetype = '';
var mpa = '';
var unit = '';
+ var rack = '';
if (!graphicalNodeList[nodeName]){
parentName = '';
mtm = '';
@@ -167,6 +172,11 @@ function fillList(nodeName, defaultnodetype){
unit = graphicalNodeList[nodeName]['unit'];
}
break;
+ case 'systemx':{
+ rack = graphicalNodeList[nodeName]['rack'];
+ unit = graphicalNodeList[nodeName]['unit'];
+ }
+ break;
default:
break;
}
@@ -225,7 +235,19 @@ function fillList(nodeName, defaultnodetype){
}
bladeList[mpa].push(nodeName + ',' + unit);
}
+ break;
+ case 'systemx':{
+ if (!rack){
+ rack = '_notsupply_';
+ }
+ if (undefined == rackList[rack]){
+ rackList[rack] = new Array();
+ }
+ rackList[rack].push(nodeName + ',' + unit);
+ }
+ break;
default:
+ unknownList.push(nodeName);
break;
}
}
@@ -251,9 +273,10 @@ function createGraphical(){
//add buttons
tabarea.append(createActionMenu());
tabarea.append(selectNodeDiv);
- tabarea.append('
');
createSystempGraphical(bpaList, fspList, tabarea);
createBladeGraphical(bladeList, tabarea);
+ createSystemxGraphical(rackList, tabarea);
+ addUnknownGraphical(unknownList, tabarea);
}
/**
* create the physical graphical layout for system p machines
@@ -266,9 +289,19 @@ function createGraphical(){
*/
function createSystempGraphical(bpa, fsp, area){
var usedFsp = new Object();
- var graphTable = $('#graphTable');
+ var graphTable = $('');
var elementNum = 0;
var row;
+ var showflag = false;
+
+ //there is node in bpa list, so show add the title and show all frames
+ for (var bpaName in bpa){
+ showflag = true;
+ $('#graphTab').append('system p
');
+ $('#graphTab').append(graphTable);
+ break;
+ }
+
for (var bpaName in bpa){
if (0 == elementNum % 3){
row = $('
');
@@ -316,6 +349,15 @@ function createSystempGraphical(bpa, fsp, area){
singleFsp.push([fspName, fsp[fspName]['mtm']]);
}
+ //if there is not frame, so we should check if there is single cec and show the title and add node area.
+ if (!showflag){
+ for(var fspIndex in singleFsp){
+ $('#graphTab').append('system p
');
+ $('#graphTab').append(graphTable);
+ break;
+ }
+ }
+
singleFsp.sort(function(a, b){
var unitNumA = 4;
var unitNumB = 4;
@@ -330,6 +372,7 @@ function createSystempGraphical(bpa, fsp, area){
return (unitNumB - unitNumA);
});
+
elementNum = 0;
for (var fspIndex in singleFsp){
var fspName = singleFsp[fspIndex][0];
@@ -345,7 +388,6 @@ function createSystempGraphical(bpa, fsp, area){
row.append(td);
}
- area.append(graphTable);
$('.tooltip input[type = checkbox]').bind('click', function(){
var lparName = $(this).attr('name');
@@ -418,13 +460,36 @@ function createSystempGraphical(bpa, fsp, area){
});
}
+/**
+ * create the physical graphical layout for blades
+ *
+ * @param blades : the blade list in global
+ * area: the element to append graphical layout
+ * @return
+ */
function createBladeGraphical(blades, area){
- var graphTable = $('#graphTable');
+ var graphTable = $('');
var mpa = '';
var bladename = '';
var index = 0;
var mpaNumber = 0;
var row;
+ var showflag = false;
+
+ //only show the title and nodes when there are blade in the blade list
+ for (mpa in blades){
+ showflag = true;
+ break;
+ }
+
+ if (showflag){
+ $('#graphTab').append('Blade
');
+ $('#graphTab').append(graphTable);
+ }
+ //if there is not blade nodes, return directly
+ else{
+ return;
+ }
for (mpa in blades){
var tempArray = new Array(14);
@@ -442,7 +507,7 @@ function createBladeGraphical(blades, area){
//fill the array with blade information, to create the empty slot
- for (var index in blades[mpa]){
+ for (index in blades[mpa]){
bladeInfo = blades[mpa][index].split(',');
unit = parseInt(bladeInfo[1]);
tempArray[unit - 1] = bladeInfo[0];
@@ -450,7 +515,7 @@ function createBladeGraphical(blades, area){
}
//draw the blades and empty slot in chasis
- for (var index = 0; index < 14; index++){
+ for (index = 0; index < 14; index++){
if (tempArray[index]){
bladename = tempArray[index];
chasisDiv.append('');
@@ -465,6 +530,67 @@ function createBladeGraphical(blades, area){
}
}
+
+/**
+ * create the physical graphical layout for system x machines
+ *
+ * @param xnodes : the system x node list in global
+ * area: the element to append graphical layout
+ * @return
+ */
+function createSystemxGraphical(xnodes, area){
+ var graphTable = $('');
+ var xnodename = '';
+ var index = 0;
+ var rack = '';
+ var row;
+ var xnodenum = 0;
+ var showflag = false;
+
+ //only the title and system x node when there is x nodes in the list
+ for (rack in rackList){
+ showflag = true;
+ break;
+ }
+
+ if (showflag){
+ $('#graphTab').append('system x
');
+ $('#graphTab').append(graphTable);
+ }
+ //there is nothing to show, return directly
+ else{
+ return;
+ }
+
+ for (rack in rackList){
+ for(index in rackList[rack]){
+ var xnodename = rackList[rack][index];
+ if (0 == xnodenum % 3){
+ row = $('
');
+ graphTable.append(row);
+ }
+ xnodenum++;
+ var td = $(' | ');
+ var xnodeDiv = '';
+ td.append(xnodeDiv);
+ row.append(td);
+ }
+ }
+}
+
+function addUnknownGraphical(unknownnode, area){
+ var graphTab = $('#graphTab');
+ var index = 0;
+
+ if (unknownnode.length < 1){
+ return;
+ }
+
+ graphTab.append('Unknown Type Nodes:
');
+ for (index in unknownnode){
+ graphTab.append(unknownnode[index] + '; ');
+ }
+}
/**
* update the lpars' background in cec, lpars area and selectNode
*