diff --git a/xCAT-UI/js/nodes/nodes.js b/xCAT-UI/js/nodes/nodes.js index f55682a71..d65add6ce 100644 --- a/xCAT-UI/js/nodes/nodes.js +++ b/xCAT-UI/js/nodes/nodes.js @@ -86,8 +86,6 @@ function loadNodesPage() { success : loadGroups }); - // Get graphical view info - getGraphicalData(); } } @@ -147,13 +145,19 @@ function loadGroups(data) { var loader2 = $('
').append(createLoader()); // Create a tab for this group - var tab = new Tab(); + var tab = new Tab('nodesPageTabs'); setNodesTab(tab); tab.init(); $('#nodes').append(tab.object()); tab.add('nodesTab', 'Nodes', loader, false); tab.add('graphTab', 'Graphical', loader2, false); - + + $('#nodesPageTabs').bind('tabsselect', function(event, ui){ + //for the graphical tab, we should check the graphical data first + if (1 == ui.index){ + createPhysicalLayout(nodesList); + } + }); // To improve performance, get all nodes within selected group // Get node definitions only for first 50 nodes $.ajax( { @@ -215,8 +219,6 @@ function loadGroups(data) { success : loadNodes }); - // Create physical layout - createPhysicalLayout(nodesList); } }); diff --git a/xCAT-UI/js/nodes/physical.js b/xCAT-UI/js/nodes/physical.js index 32101d48c..e20f0231e 100644 --- a/xCAT-UI/js/nodes/physical.js +++ b/xCAT-UI/js/nodes/physical.js @@ -3,73 +3,48 @@ var fspList; var lparList; var graphicalNodeList; var selectNode; +var graphicalDataType = ['nodetype.nodetype', 'ppc.parent', 'nodelist.status', 'vpd.mtm']; -function getGraphicalData(){ - graphicalNodeList = new Object(); - $.ajax( { - url : 'lib/cmd.php', - dataType : 'json', - data : { - cmd : 'nodels', - tgt : 'all', - args : 'nodetype.nodetype', - msg : 'nodetype' - }, +function initGraphicalData(dataTypeIndex){ + if (undefined == dataTypeIndex){ + dataTypeIndex = 0; + } - success : extractGraphicalData - }); + if ((dataTypeIndex < 0) || (dataTypeIndex > 3)){ + return; + } - // Get graphical view info + var typeName = graphicalDataType[dataTypeIndex]; + $('#graphTab').empty().append('Getting ' + typeName).append(createLoader()); $.ajax( { url : 'lib/cmd.php', dataType : 'json', data : { cmd : 'nodels', tgt : 'all', - args : 'ppc.parent', - msg : 'parent' + args : typeName, + msg : 'index' + dataTypeIndex.toString() }, - success : extractGraphicalData - }); - - $.ajax( { - url : 'lib/cmd.php', - dataType : 'json', - data : { - cmd : 'nodels', - tgt : 'all', - args : 'vpd.mtm', - msg : 'mtm' - }, - - success : extractGraphicalData - }); - - $.ajax( { - url : 'lib/cmd.php', - dataType : 'json', - data : { - cmd : 'nodels', - tgt : 'all', - args : 'nodelist.status', - msg : 'status' - }, - - success : extractGraphicalData - }); - - $.ajax( { - url : 'lib/cmd.php', - dataType : 'json', - data : { - cmd : 'nodels', - tgt : 'all', - args : 'nodehm.mgt', - msg : 'mgt' - }, - - success : extractGraphicalData + success : function(data){ + var tempIndex = Number(data.msg.substr(5, 1)); + extractGraphicalData(data); + if (tempIndex < graphicalDataType.length - 1){ + tempIndex ++; + initGraphicalData(tempIndex); + } + else{ + $('#graphTab').empty(); + for (var temp in nodesList){ + var nodeName = nodesList[temp]; + if ('' == nodeName){ + continue; + } + fillList(nodeName); + } + createGraphical(bpaList, fspList, $('#graphTab')); + } + } }); } @@ -90,27 +65,23 @@ function extractGraphicalData(data){ graphicalNodeList[nodeName] = new Object(); } - switch(data.msg){ - case 'nodetype': { + switch(data.msg.substr(5, 1)){ + case '0': { graphicalNodeList[nodeName]['type'] = nodes[i][1]; } break; - case 'parent' : { + case '1' : { graphicalNodeList[nodeName]['parent'] = nodes[i][1]; } break; - case 'status': { + case '2': { graphicalNodeList[nodeName]['status'] = nodes[i][1]; } break; - case 'mtm': { + case '3': { graphicalNodeList[nodeName]['mtm'] = nodes[i][1]; } break; - case 'mgt': { - graphicalNodeList[nodeName]['mgt'] = nodes[i][1]; - } - break; default : break; } @@ -122,16 +93,37 @@ function createPhysicalLayout(nodeList){ fspList = new Object(); lparList = new Object(); selectNode = new Object(); + var flag = false; - $('#graphTab').empty(); - for (var temp in nodeList){ - var nodeName = nodeList[temp]; - if ('' == nodeName){ - continue; - } - fillList(nodeName); + //no nodes are selected. + if (!nodeList){ + return; + } + + //save the new selected nodes. + if(graphicalNodeList){ + for(var i in graphicalNodeList){ + flag = true; + break; + } + } + + //there is not graphical data, get the info now + if (!flag){ + graphicalNodeList = new Object(); + initGraphicalData(0); + } + else{ + $('#graphTab').empty(); + for (var temp in nodeList){ + var nodeName = nodeList[temp]; + if ('' == nodeName){ + continue; + } + fillList(nodeName); + } + createGraphical(bpaList, fspList, $('#graphTab')); } - createGraphical(bpaList, fspList, $('#graphTab')); } function fillList(nodeName){ @@ -302,7 +294,7 @@ function createGraphical(bpa, fsp, area){ $('.fspDiv2, .fspDiv4, .fspDiv42').tooltip({ position: "center right", relative : true, - offset : [10, 10], + offset : [10, -40], effect: "fade" }); @@ -430,6 +422,7 @@ function createActionMenu(){ //Clone var cloneLnk = $('Clone'); cloneLnk.bind('click', function(event) { + /* for (var name in selectNode) { var mgt = graphicalNodeList[name]['mgt']; @@ -458,6 +451,7 @@ function createActionMenu(){ plugin.loadClonePage(name); } + */ }); //Delete