mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-30 19:02:27 +00:00 
			
		
		
		
	Top menu look is now correct
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@68 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -1,71 +0,0 @@ | ||||
| #!/usr/bin/perl | ||||
| use strict; | ||||
| use Getopt::Long; | ||||
|  | ||||
| $::XCATROOT = ""; | ||||
| GetOptions('web' => \$::HTML, | ||||
| 	   'h|help' => \$::HELP); | ||||
|  | ||||
| if($::HELP){ | ||||
| 	print "$0 --help  prints this help message\n"; | ||||
| 	print "$0         prints attributes with nodes\n"; | ||||
| 	print "$0 --html  prints attributes with nodes with html parameters\n\n" ; | ||||
| 	exit 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| if(-f "/etc/sysconfig/xcat"){ | ||||
| 	$::XCATROOT=`awk -F= '{print \$2}' /etc/sysconfig/xcat`; | ||||
| 	chomp($::XCATROOT); | ||||
| 	if($::XCATROOT eq ""){ | ||||
| 		print "XCATROOT not defined in /etc/sysconfig/xcat!\n"; | ||||
| 		exit; | ||||
| 	} | ||||
| }else{ | ||||
| 	print "file /etc/sysconfig/xcat doesn't exist\n"; | ||||
| 	exit; | ||||
| } | ||||
| #print "$::XCATROOT\n"; | ||||
| my $f = "$::XCATROOT/etc/nodelist.tab";	 | ||||
| unless(-f "$f"){ | ||||
| 	print "$f doesn't exist!\n"; | ||||
| 	exit 1; | ||||
| } | ||||
| my $nh; | ||||
| open(FILE, "$f") or die "can't open $f!"; | ||||
| while(my $line = <FILE>){ | ||||
| 	chomp $line; | ||||
| 	# skip lines that start with # or with a space and then # | ||||
| 	if($line =~ /^\s*#/){ next; } | ||||
| 	 | ||||
| 	# skip lines that are blank | ||||
| 	if($line =~ /^$/){ next; } | ||||
|  | ||||
| 	my ($node,$attrs) = split(/\s+/, $line); | ||||
| 	#print "$node\n"; | ||||
| 	my @attrs = split(/,/, $attrs); | ||||
| 	foreach my $a (@attrs){ | ||||
| 		#print "$a\n"; | ||||
| 		if($a ne ""){ | ||||
| 			push @{$nh->{$a}}, $node; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| if($::HTML){ print "<ul id='nodelist'>\n"; } | ||||
| foreach (sort keys %$nh){ | ||||
| 	if($::HTML){ | ||||
| 		print "<li>$_\n"; | ||||
| 		print "<ul>\n"; | ||||
| 		foreach(sort @{$nh->{$_}}){ | ||||
| 			print "<li>$_</li>\n"; | ||||
| 		} | ||||
| 		print "</ul></li>\n"; | ||||
|  | ||||
| 	}else{ | ||||
| 		print $_ . ":\n"; | ||||
| 		foreach(@{$nh->{$_}}){ | ||||
| 			print "\t$_\n"; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| if($::HTML){ print "</ul>\n"; } | ||||
| @@ -17,40 +17,36 @@ $CURRDIR = '/opt/xcat/web'; | ||||
| /*----------------------------------------------------------------------------------------------- | ||||
| 	Function to insert the header part of the HTML and the top part of the page | ||||
| ------------------------------------------------------------------------------------------------*/ | ||||
| function insertHeader($title, $stylesheets, $javascripts) { | ||||
| function insertHeader($title, $stylesheets, $javascripts, $currents) { | ||||
| global $TOPDIR; | ||||
| if (!$TOPDIR) 	$TOPDIR = '.'; | ||||
| ?> | ||||
|  | ||||
| echo <<<EOS | ||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11-strict.dtd"> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
| <head> | ||||
| <title><?php echo $title; ?></title> | ||||
| <title>$title</title> | ||||
| <meta http-equiv="Content-Type" content="application/xhtml+xml;  charset=iso-8859-1"> | ||||
| <link rel="stylesheet" href="style.css"> | ||||
| <link rel="stylesheet" href="menu.css"> | ||||
| <script type="text/javascript" src="functions.js"></script> | ||||
| <link href="style.css" rel="stylesheet"> | ||||
| <script src="functions.js" type="text/javascript"></script> | ||||
|  | ||||
| <script type="text/javascript" src="js_xcat/event.js"> </script> | ||||
| <script type="text/javascript" src="js_xcat/ui.js"> </script> | ||||
| EOS; | ||||
|  | ||||
| <!-- These are only needed for popup windows, so only need it for specific pages like dsh | ||||
| <script type="text/javascript" src="javascripts/prototype.js"> </script> | ||||
| <script type="text/javascript" src="javascripts/effect.js"> </script> | ||||
| <script type="text/javascript" src="javascripts/window.js"> </script> | ||||
| <link href="themes/default.css" rel="stylesheet" type="text/css"/> | ||||
| --> | ||||
|  | ||||
| <link rel="stylesheet" href="css/xcattop.css"> | ||||
| <link rel="stylesheet" href="css/xcat.css"> | ||||
| <link rel="stylesheet" href="css/clickTree.css"> | ||||
| /* These are only needed for popup windows, so only need it for specific pages like dsh | ||||
| <script src="js_xcat/event.js" type="text/javascript"> </script> | ||||
| <script src="js_xcat/ui.js" type="text/javascript"> </script> | ||||
| <link href="css/xcattop.css" rel="stylesheet"> | ||||
| <link href="css/xcat.css" rel="stylesheet"> | ||||
| <link href="css/clickTree.css" rel="stylesheet"> | ||||
| <script src="js/windows.js" type="text/javascript"></script> | ||||
| <script src="js/clickTree.js" type="text/javascript"></script> | ||||
| <script src="js/prototype.js" type="text/javascript"></script> | ||||
| <script src="js/scriptaculous.js" type="text/javascript"></script> | ||||
| <script src="js/xcat.js" type="text/javascript"></script> | ||||
| <script src="js/effect.js" type="text/javascript"> </script> | ||||
| <link href="themes/default.css" rel="stylesheet" type="text/css"/> | ||||
| */ | ||||
|  | ||||
| <?php | ||||
| if ($stylesheets) { | ||||
| 	foreach ($stylesheets as $s) { | ||||
| 		echo "<LINK rel=stylesheet href='$s' type='text/css'>\n"; | ||||
| @@ -61,165 +57,75 @@ if ($javascripts) { | ||||
| 		echo "<script type='text/javascript' src='$j'></script>\n"; | ||||
| 		} | ||||
| 	} | ||||
| ?> | ||||
| </head> | ||||
| <body> | ||||
| <div id=header> | ||||
| <table border=0 align=left cellspacing=0 cellpadding=0> | ||||
| echo "</head><body>\n"; | ||||
| echo <<<EOS | ||||
| <table id=headingTable border=0 cellspacing=0 cellpadding=0> | ||||
| <tr> | ||||
|     <td><img src="images/xCAT_icon.gif"></td> | ||||
|     <!-- <td background="images/header_bg.gif" width=700> --> | ||||
|     <td width=600> | ||||
|     	<p id=banner>xCAT - e<u>x</u>treme <u>C</u>luster <u>A</u>dministration <u>T</u>ool</p> | ||||
|     </td> | ||||
| </tr> | ||||
| </table> | ||||
| </div> | ||||
| <?php }  // end insertHeader | ||||
|     <td><img id=xcatImage src='images/xCAT_icon.gif'></td> | ||||
|     <td width='100%'> | ||||
|  | ||||
|  | ||||
| // A few constants | ||||
| /* | ||||
| require_once("lib/config.php"); | ||||
| $config = &Config::getInstance(); | ||||
| $imagedir = $config->getValue("IMAGEDIR"); | ||||
| $colTxt = "Click to collapse section"; | ||||
| $exTxt = "Click to expand section"; | ||||
| $bulgif = "$imagedir/h3bg_new.gif"; | ||||
| $minusgif = "$imagedir/minus-sign.gif"; | ||||
| $plusgif = "$imagedir/plus-sign.gif"; | ||||
| */ | ||||
|  | ||||
|  | ||||
| /*------------------------------------------------------------------------------ | ||||
|    Create the navigation area on the left. | ||||
|    $currentlink is the key of the link to the page | ||||
|    that is currently being displayed. | ||||
| ------------------------------------------------------------------------------*/ | ||||
|  | ||||
| function insertNav($currentLink) { | ||||
| // A few constants | ||||
| global $TOPDIR;    // or could use $GLOBALS['TOPDIR'] | ||||
| $colTxt = "Click to collapse section"; | ||||
| $exTxt = "Click to expand section"; | ||||
| $bulgif = "$TOPDIR/images/h3bg_new.gif"; | ||||
| $minusgif = "$TOPDIR/images/minus-sign.gif"; | ||||
| $plusgif = "$TOPDIR/images/plus-sign.gif"; | ||||
|  | ||||
| echo '<div id=nav><table border=0 cellpadding=0 cellspacing=1 width=70>'; | ||||
|  | ||||
| //Console section | ||||
| insertInner('open', 1,'Console', 'constab', $currentLink, array( | ||||
| 	'prefs' => array("$TOPDIR/prefs.php", 'Preferences'), | ||||
| 	'updategui' => array("$TOPDIR/softmaint/updategui.php", 'Update'), | ||||
| 	'suggestions' => array("$TOPDIR/suggestions.html", 'Suggestions'), | ||||
| 	'logout' => array("$TOPDIR/logout.php", 'Logout') | ||||
| )); | ||||
|  | ||||
| // xCAT Cluster section | ||||
| echo <<<EOS | ||||
|  <TR><TD id=menu_level1> | ||||
|  <P class=NoPadding title="$colTxt" onclick="toggleSection(this,'clustab')" ondblclick="toggleSection(this,'clustab')"> | ||||
|  <IMG class=NoPadding src="$minusgif" id='clustab-im'> xCAT Cluster | ||||
|  </P></TD></TR> | ||||
|  <TR><TD> | ||||
|   <TABLE id='clustab' cellpadding=0 cellspacing=0 width="100%"><TBODY> | ||||
|     <TR><TD id=menu_level3><A href="csmconfig"><IMG src='$TOPDIR/images/h3bg_new.gif'> Settings</A></TD></TR> | ||||
| EOS; | ||||
| //echo "<div id=top><img id=xcatImage src='./images/xCAT_icon.gif'><div id=menuDiv>\n"; | ||||
|  | ||||
| 	insertInner('open', 2,'Installation', 'installtab', $currentLink, array( | ||||
| 		'softmaint' => array("$TOPDIR/softmaint", 'MS Software'), | ||||
| 		'addnodes' => array("$TOPDIR/addnodes.php", 'Add Nodes'), | ||||
| 		'definenode' => array("$TOPDIR/definenode.php", 'Define Nodes'), | ||||
| 		'hwctrl' => array("$TOPDIR/hwctrl/index.php", 'HW Control') | ||||
| insertMenus($currents); | ||||
|  | ||||
| echo "</td></tr></table>\n"; | ||||
| //echo "</div></div>\n";     // end the top div | ||||
| }  // end insertHeader | ||||
|  | ||||
|  | ||||
| // Insert the menus at the top of the page | ||||
| //   $currents is an array of the current menu choice tree | ||||
| function insertMenus($currents) { | ||||
| 	global $TOPDIR; | ||||
| 	echo "<table border=0 cellspacing=0 cellpadding=0>\n"; | ||||
|  | ||||
| 	insertMenuRow($currents[0], 1, array( | ||||
| 		'machines' => array('Machines', "$TOPDIR/machines/frames.php"), | ||||
| 		'jobs' => array('Jobs', "$TOPDIR/jobs/jobs.php"), | ||||
| 		'deploy' => array('Deploy', "$TOPDIR/deploy/images.php"), | ||||
| 		'config' => array('Configuration', "$TOPDIR/config/site.php"), | ||||
| 		'support' => array('Support', "$TOPDIR/support/diagnose.php") | ||||
| 	)); | ||||
| 	insertInner('open', 2,'Administration', 'admintab', $currentLink, array( | ||||
| 		'nodes' => array("$TOPDIR/index.php", 'Nodes'), | ||||
| 		'layout' => array("$TOPDIR/hwctrl/layout.php", 'Layout'), | ||||
| 		'dsh' => array("$TOPDIR/dsh.php", 'Run Cmds'), | ||||
| 		'dcp' => array("$TOPDIR/dcp.php", 'Copy Files'), | ||||
| 		'cfm' => array("$TOPDIR/cfm.php", 'Sync Files'), | ||||
| 		'shell' => array("$TOPDIR/shell.php", 'Cmd on MS'), | ||||
| 		'import' => array("$TOPDIR/import.php", 'Import/Export'), | ||||
| 	)); | ||||
| 	insertInner('open', 2,'Monitor', 'montab', $currentLink, array( | ||||
| 		'conditions' => array("$TOPDIR/mon", 'Conditions'), | ||||
| 		'responses' => array("$TOPDIR/mon/resp.php", 'Responses'), | ||||
| 		'sensors' => array("$TOPDIR/mon/sensor.php", 'Sensors'), | ||||
| 		'rmcclass' => array("$TOPDIR/mon/rmcclass.php", 'RMC Classes'), | ||||
| 		'auditlog' => array("$TOPDIR/mon/auditlog.php", 'Event Log'), | ||||
| 		'perfmon' => array("$TOPDIR/perfmon/index.php", 'Performance'), | ||||
|  | ||||
| 	)); | ||||
| 	insertInner('open', 2,'Diagnostics', 'diagtab', $currentLink, array( | ||||
| 		'diagms' => array("$TOPDIR/diagms", 'MS Diags'), | ||||
| 	)); | ||||
|  | ||||
|   echo '</TABLE></TD></TR>'; | ||||
|  | ||||
| insertInner('open', 1,'Documentation', 'doctab', $currentLink, array( | ||||
| 	'xcatdocs' => array(getDocURL('web','docs'), 'xCAT Docs'), | ||||
| 	'forum' => array(getDocURL('web','forum'), 'Mailing List'), | ||||
| 	'codeupdates' => array(getDocURL('web','updates'), 'Code Updates'), | ||||
| 	'opensrc' => array(getDocURL('web','opensrc'), 'Open Src Reqs'), | ||||
| 	'wiki' => array(getDocURL('web','wiki'), 'xCAT Wiki'), | ||||
| )); | ||||
|  | ||||
| echo '</table></div>'; | ||||
| }  //end insertNav | ||||
|  | ||||
|  | ||||
| /**-------------------------------------------------------------- | ||||
| 	Insert one inner table in the nav area function above. | ||||
| 	Type is the type of the menu item, i.e: close or open (plus sign/minus sign) | ||||
| 	Level is the level of the parent menu item (can be first or second) | ||||
| 	Id is the id property of the table. | ||||
| 	CurrentLink is the key of the link for the current page. | ||||
| 	List is a keyed array of href, label pairs. | ||||
| ----------------------------------------------------------------*/ | ||||
| function insertInner($type,$level,$title, $id, $currentLink, $list) { | ||||
| // A few constants | ||||
| global $TOPDIR;    // or could use $GLOBALS['TOPDIR'] | ||||
| $colTxt = "Click to collapse section"; | ||||
| $exTxt = "Click to expand section"; | ||||
| $bulgif = "$TOPDIR/images/h3bg_new.gif"; | ||||
| $minusgif = "$TOPDIR/images/minus-sign.gif"; | ||||
| $plusgif = "$TOPDIR/images/plus-sign.gif"; | ||||
|  | ||||
| 	switch($level){ | ||||
| 		case 1: $menu_level = "menu_level1"; break; | ||||
| 		case 2: $menu_level = "menu_level2"; break; | ||||
| 		default: $menu_level = "menu_level1"; | ||||
| 	} | ||||
| 	if ($type == "open"){ | ||||
| 		$gif = $minusgif; | ||||
| 		$hoverTxt = $colTxt; | ||||
| 		$style = "display:inline"; | ||||
| 	}else { | ||||
| 		$gif = $plusgif; | ||||
| 		$hoverTxt = $exTxt; | ||||
| 		$style = "display:none"; | ||||
| 	} | ||||
|  | ||||
| echo <<<EOS | ||||
| <TR><TD id=$menu_level> | ||||
| <P class=NoPadding title="$hoverTxt" onclick="toggleSection(this,'$id')" ondblclick="toggleSection(this,'$id')"> | ||||
| <IMG class=NoPadding src=$gif id=$id-im> $title</P></TD></TR> | ||||
| <TR><TD width="100%"> | ||||
| <TABLE id=$id width="100%" cellpadding="0" cellspacing="0" border=0 style=$style> | ||||
| EOS; | ||||
|  | ||||
| foreach ($list as $key => $link) { | ||||
| 	if ($key == $currentLink){ | ||||
| 		echo "<TR><TD id='menu_level3' class='CurrentMenuItem'><IMG src='$TOPDIR/images/h3bg_new.gif'> $link[1]</TD></TR>\n"; | ||||
| 	}else{ | ||||
| 		echo "<TR><TD id='menu_level3'><A href='$link[0]'><IMG src='$TOPDIR/images/h3bg_new.gif'> $link[1]</A></TD></TR>\n"; | ||||
| 	if ($currents[0] == 'machines') { | ||||
| 		insertMenuRow($currents[1], 0, array( | ||||
| 			'lab' => array('Lab Floor', "$TOPDIR/views/lab.php"), | ||||
| 			'frames' => array('Frames', "$TOPDIR/views/frames.php"), | ||||
| 			'groups' => array('Groups', "$TOPDIR/views/groups.php"), | ||||
| 			'nodes' => array('Nodes', "$TOPDIR/views/nodes.php"), | ||||
| 			'layout' => array('Layout', "$TOPDIR/views/layout.php") | ||||
| 		)); | ||||
| 	} | ||||
| 	echo "</table>\n"; | ||||
| } | ||||
|  | ||||
| echo "</TABLE></TD></TR>\n"; | ||||
|  | ||||
| }   //end insertInner | ||||
| // Insert one set of choices under a main choice. | ||||
| function insertMenuRow($current, $isTop, $items) { | ||||
| 	global $TOPDIR; | ||||
| 	//$img = "$TOPDIR/images/h3bg_new.gif"; | ||||
| 	$menuRowClass = $isTop ? '' : 'class=MenuRow'; | ||||
| 	$menuItemClass = $isTop ? 'class=MenuItemTop' : 'class=MenuItem'; | ||||
| 	$currentClass = $isTop ? 'CurrentMenuItemTop' : ''; | ||||
|  | ||||
| 	//echo "<TABLE class=MenuTable id=mainNav cellpadding=0 cellspacing=0 border=0><tr>\n"; | ||||
| 	//echo "<div class=$menuRowClass><ul id=mainNav>\n"; | ||||
| 	echo "<tr><td $menuRowClass><ul id=mainNav>\n"; | ||||
|  | ||||
| 	foreach ($items as $key => $link) { | ||||
| 		if ($key == $current){ | ||||
| 			//echo "<TD><a id=$key href='$link[1]'>$link[0]</a></TD>\n"; | ||||
| 			echo "<li class='CurrentMenuItem $currentClass'>$link[0]</li>\n"; | ||||
| 		} else { | ||||
| 			//echo "<TD><a class=NavItem id=$key href='$link[1]'>$link[0]</a></TD>\n"; | ||||
| 			echo "<li><a $menuItemClass id=$key href='$link[1]'>$link[0]</a></li>\n"; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	//echo "</TR></TABLE>\n"; | ||||
| 	//echo "</ul></div>\n"; | ||||
| 	echo "</td></tr></ul>\n"; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** ---------------------------------------------------------------------------------------------- | ||||
| @@ -290,6 +196,7 @@ function dumpGlobals() { //------------------------------------ | ||||
| function isInstalled($rpmfile) { //------------------------------------ | ||||
| 	$aixrpmopt = isAIX() ? '--ignoreos' : ''; | ||||
| 	$lang = isWindows() ? '' : 'LANG=C'; | ||||
| 	$out = array(); | ||||
| 	$rc = runcmd("$lang /bin/rpm -U $aixrpmopt --test $rpmfile", 2, $out); | ||||
| 	# The rc is not reliable in this case because it will be 1 if it is already installed | ||||
| 	# of if there is some other problem like a dependency is not satisfied.  So we parse the | ||||
| @@ -512,9 +419,12 @@ function insertTabs ($tablist, $currentTabIndex) { //--------------------------- | ||||
| // Create the Action buttons in a table.  Buttonlist is an array of arrays of button attribute strings. | ||||
| function insertButtons ($buttonsets) { //------------------------------------ | ||||
| 	foreach ($buttonsets as $buttonlist) { | ||||
| 		echo "<TABLE cellpadding=0 cellspacing=2><TBODY><TR><TD nowrap>"; | ||||
| 		foreach ($buttonlist as $button) { echo "<INPUT type=submit class=but $button >"; } | ||||
| 		echo "</TD></TR></TBODY></TABLE>\n"; | ||||
| 		echo "<TABLE cellpadding=0 cellspacing=2><TR>"; | ||||
| 		foreach ($buttonlist as $button) { | ||||
| 			//echo "<td><INPUT type=submit class=but $button ></td>"; | ||||
| 			echo "<td><a class=button href=''><span>$button</span></a></td>"; | ||||
| 			} | ||||
| 		echo "</TR></TABLE>\n"; | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1,6 +0,0 @@ | ||||
| <?php | ||||
| $XCATROOT = "/opt/xcat"; | ||||
| $WEBSERVER = "http://wopr.dfw.ibm.com"; | ||||
| # how often to update nodes (in seconds) | ||||
| $CHKINTERVAL = "300"; | ||||
| ?> | ||||
| @@ -1,39 +0,0 @@ | ||||
| <?php | ||||
| include "globals.inc"; | ||||
|  | ||||
| function printMenu(){ | ||||
| 	global $menuArray; | ||||
| echo "<ul id='menubeans'>"; | ||||
| $p = 1; | ||||
| foreach ($menuArray as $key => $value){ | ||||
| 	if($p == 1){ | ||||
| 		echo "<li class='active' id='$p' ><span>$key</span>\n"; | ||||
| 		$p++; | ||||
|  | ||||
| 	}else{ | ||||
| 		echo "<li id='$p'><span>$key</span>\n"; | ||||
| 		$p++; | ||||
| 	} | ||||
| 	echo "<ul>"; | ||||
| 	$q = 0; | ||||
| 	foreach($value as $k => $u){ | ||||
| 		if($p == 2){ | ||||
| 			#echo "<li><a href=\"$u\" class='active'>$k</a></li>"; | ||||
| 			echo "<li><a href='#' id='$p-li-$q' class='active' onClick=\"newBack('$u', 'content','$k', '$p-li-$q')\">$k</a></li>"; | ||||
| 		}else{ | ||||
| 			#echo "<li><a href=\"$u\">$k</a></li>"; | ||||
| 			echo "<li><a href='#' id='$p-li-$q' onClick=\"newPane('$u', 'content', '$k', '$p-li-$q')\">$k</a></li>"; | ||||
| 		} | ||||
| 		$q++; | ||||
| 	} | ||||
| 	echo "</ul>"; | ||||
| 	echo "</li>"; | ||||
| } | ||||
| echo "</ul>"; | ||||
| } | ||||
|  | ||||
| function printNodeList(){ | ||||
| 	system("bin/getattrs --web"); | ||||
| } | ||||
|  | ||||
| ?> | ||||
							
								
								
									
										
											BIN
										
									
								
								xCAT-web/images/bg_button_a.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								xCAT-web/images/bg_button_a.gif
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 424 B | 
							
								
								
									
										
											BIN
										
									
								
								xCAT-web/images/bg_button_span.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								xCAT-web/images/bg_button_span.gif
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.4 KiB | 
							
								
								
									
										
											BIN
										
									
								
								xCAT-web/images/top.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								xCAT-web/images/top.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 13 KiB | 
| @@ -9,14 +9,31 @@ if (isAIX()) { $aixDisabled = 'disabled'; } | ||||
| require_once("lib/GroupNodeTable.class.php"); | ||||
| require_once("lib/XCAT/XCATCommand/XCATCommandRunner.class.php"); | ||||
|  | ||||
| insertHeader('Nodes', NULL, NULL, array('machines','nodes')); | ||||
|  | ||||
| insertHeader('Nodes', NULL, NULL); | ||||
| insertNav('nodes'); | ||||
|  | ||||
| echo "<div id=content align=center> <p class=PageHeading>Cluster Groups and Nodes</p>"; | ||||
|  | ||||
| echo "<div id=content align=center>\n"; | ||||
|  | ||||
| insertButtons(array( | ||||
| 	array( | ||||
| 		'Attributes', | ||||
| 		'Create Like', | ||||
| 		'Create Group', | ||||
| 		'Ping', | ||||
| 		//'Updatenode', | ||||
| 		'Run Cmd', | ||||
| 		'Copy Files' | ||||
| 	), | ||||
| 	array( | ||||
| 		//'Soft Maint', | ||||
| 		'HW Ctrl', | ||||
| 		'RSA/MM/FSP', | ||||
| 		'Install', | ||||
| 		'Perf Mon', | ||||
| 		//'Webmin', | ||||
| 		'Diagnose', | ||||
| 		'Remove' | ||||
| 	), | ||||
| 	/* | ||||
| 	array( | ||||
| 		'name=propButton value="Attributes"', | ||||
| 		'name=defineButton value="Create Like"', | ||||
| @@ -36,6 +53,7 @@ insertButtons(array( | ||||
| 		'name=diagButton value="Diagnose" onclick="this.form.nodesNeeded=1;"', | ||||
| 		'name=removeButton value="Remove"' | ||||
| 	), | ||||
| 	*/ | ||||
| )); | ||||
|  | ||||
| echo '<form name="nodelist" class=ContentForm>'; | ||||
| @@ -46,7 +64,6 @@ GroupNodeTable::insertGroupTableHeader(); | ||||
|  | ||||
| // Get all the names of the groups | ||||
| $xcmdr = new XCATCommandRunner(); | ||||
| //$nodeGroupNames = $xcmdr->getAllGroupNames(); | ||||
| $nodeGroupNames = $xcmdr->getAllXCATGroups(); | ||||
|  | ||||
| // Print the HTML for each of them | ||||
| @@ -55,14 +72,9 @@ foreach($nodeGroupNames as $key => $nodeGroupName) { | ||||
| } | ||||
|  | ||||
| GroupNodeTable::insertGroupTableFooter(); | ||||
| ?> | ||||
| <script type="text/javascript" src="js_xcat/event.js"> </script> | ||||
| <script type="text/javascript" src="js_xcat/ui.js"> </script> | ||||
| <SCRIPT language="JavaScript"> | ||||
| <!-- | ||||
| 	XCATEvent.doExpandNodes(); | ||||
| --> | ||||
| </SCRIPT> | ||||
|  | ||||
| echo <<<EOS | ||||
| <!-- <SCRIPT language="JavaScript"> XCATEvent.doExpandNodes(); </SCRIPT> --> | ||||
| </form> | ||||
| <table> | ||||
| <tr> | ||||
| @@ -81,4 +93,6 @@ GroupNodeTable::insertGroupTableFooter(); | ||||
| <p id=disclaimer>This interface is still under construction and not yet ready for use.</p> | ||||
| </div> | ||||
| </BODY> | ||||
| </HTML> | ||||
| </HTML> | ||||
| EOS; | ||||
| ?> | ||||
| @@ -76,6 +76,7 @@ EOE; | ||||
| return; | ||||
| } | ||||
|  | ||||
| // This is used by nodes_by_group.php | ||||
| 	/** | ||||
| 	 * @param XCATNodeGroup	nodeGroup	The node group for which we want to generate the html. | ||||
| 	 * returns the table that contains all the nodes information of that group | ||||
|   | ||||
| @@ -1,152 +0,0 @@ | ||||
| <?php | ||||
| // This file is not longer used... | ||||
| /** | ||||
|  * Produces HTML for use in the interface. | ||||
|  */ | ||||
| //require_once("config.php"); | ||||
|  | ||||
| class HTMLProducer { | ||||
|  | ||||
|  | ||||
| function HTMLProducer() {} | ||||
|  | ||||
| /** | ||||
|  * @return A string containing the HTML for the header of the table. | ||||
|  */ | ||||
| function getXCATNodeTableHeader() { | ||||
| $html = <<<EOS | ||||
| <table width="483" border="0" cellspacing="1" cellpadding=0> | ||||
| <tr bgcolor="#C2CEDE" class="BlueBack"> | ||||
| 	<td width="88"> | ||||
| 		<div align="center"> | ||||
| 			<input type="checkbox" name="chk_node_all" id="chk_node_all" /> | ||||
| 			Nodes | ||||
| 		</div> | ||||
| 	</td> | ||||
| 	<td width="40"><div align="center">HW Type</div></td> | ||||
| 	<td width="25"><div align="center">OS</div></td> | ||||
| 	<td width="46"><div align="center">Mode</div></td> | ||||
| 	<td width="47"><div align="center">Status</div></td> | ||||
| 	<td width="89"><div align="center">HW Ctrl Pt</div></td> | ||||
| 	<td width="74"><div align="center">Comment</div></td> | ||||
| 	</tr> | ||||
| EOS; | ||||
|  | ||||
| 	return $html; | ||||
| } | ||||
|  | ||||
| function getXCATNodeTableFooter() { | ||||
| $html = <<<EOS | ||||
| </table> | ||||
| EOS; | ||||
| 	return $html; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * @param String nodeGroupName		The name of the node group. | ||||
|  */ | ||||
| function getToggleString($nodeGroupName) { | ||||
| $colTxt = "Click to collapse section"; | ||||
| $exTxt = "Click to expand section"; | ||||
| $bulgif = "$TOPDIR/images/h3bg_new.gif"; | ||||
| $minusgif = "$TOPDIR/images/minus-sign.gif"; | ||||
| $plusgif = "$TOPDIR/images/plus-sign.gif"; | ||||
|  | ||||
| 	$html = <<<EOS | ||||
| <span | ||||
| 	title="Click to expand section" | ||||
| 	id="img_gr_$nodeGroupName" | ||||
| 	onclick="XCATui.updateNodeList('$nodeGroupName')" | ||||
| 	ondblclick="toggleSection(this,'div_$nodeGroupName')"> | ||||
| 	<img src="$plusgif" id="div_$nodeGroupName-im" name="div_$nodeGroupName-im"> | ||||
| EOS; | ||||
|  | ||||
| 	return $html; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * @param String nodeGroup	The group. | ||||
|  */ | ||||
| function getXCATGroupTableRow($nodeGroup) { | ||||
|  | ||||
| $imagedir = 'images'; | ||||
| $nodeGroupName = $nodeGroup->getName(); | ||||
| $img_string = XCATNodeGroupUtil::getImageString($nodeGroup->getStatus()); | ||||
|  | ||||
| $html = <<<EOS | ||||
| <tr bgcolor="#FFCC00"> | ||||
| 	<td> | ||||
| EOS; | ||||
| 		$html .= HTMLProducer::getToggleString($nodeGroupName); | ||||
| 		$html .= <<<EOE | ||||
| <input type="checkbox" name="chk_node_group_$nodeGroupName"  id="chk_node_group_$nodeGroupName"><b>$nodeGroupName</b></span> | ||||
| 	</td> | ||||
| 	<td><div align="center"> </div></td> | ||||
| 	<td><div align="center"> </div></td> | ||||
| 	<td><div align="center"> </div></td> | ||||
| 	<td><div align="center">$img_string</div></td> | ||||
| 	<td><div align="center"> </div></td> | ||||
| 	<td ><div align="center"> </div></td> | ||||
| </tr> | ||||
| <tr><td colspan=7><div id=div_$nodeGroupName style="display:none"></div></td></tr> | ||||
| EOE; | ||||
| 		return $html; | ||||
| } | ||||
|  | ||||
| 	/** | ||||
| 	 * @param XCATNodeGroup	nodeGroup	The node group for which we want to generate the html. | ||||
| 	 * returns the table that contains all the nodes information of that group | ||||
| 	 */ | ||||
| function getXCATNodeGroupSection($nodeGroup) { | ||||
| 		$imagedir = 'images'; | ||||
| 		$right_arrow_gif = $imagedir . "/grey_arrow_r.gif"; | ||||
| 		$left_arrow_gif = $imagedir . "/grey_arrow_l.gif"; | ||||
|  | ||||
| 		$html .= <<<EOS | ||||
| 		<table id=" | ||||
| EOS; | ||||
| 		$html .= $nodeGroup->getName(); | ||||
| 		$html .= <<<EOS | ||||
| 				" width='100%' cellpadding=0 cellspacing=1 border=0> | ||||
| EOS; | ||||
|  | ||||
| 		$nodes = $nodeGroup->getNodes(); | ||||
|  | ||||
| 		foreach($nodes as $nodeName => $node) { | ||||
| 			$html .= HTMLProducer::getXCATNodeTableRow($node); | ||||
| 		} | ||||
|  | ||||
| 		$html .= "<TR bgcolor=\"#FFFF66\"><TD colspan=9 align=\"right\"><image src=\"$left_arrow_gif\" alt=\"Previous page\">    <image src=\"$right_arrow_gif\" alt=\"Next page\">  </TD></TR>"; | ||||
| 		$html .= <<<EOS | ||||
| 		</table> | ||||
| EOS; | ||||
|  | ||||
| 	return $html; | ||||
| } | ||||
|  | ||||
| 	/** | ||||
| 	 * @param XCATNode	node	The node for which we want to generate the html. | ||||
| 	 */ | ||||
| function getXCATNodeTableRow($node) { | ||||
|  | ||||
| 		$imagedir = 'images'; | ||||
|  | ||||
| 		//echo $node->getName(); | ||||
| 		$html = "<tr bgcolor=\"#FFFF66\" class=\"indent\"> | ||||
| 				<td width=89><input type=\"checkbox\" name=\"node_" .$node->getName(). "\" />" .$node->getName(). "</td>" . | ||||
| 				"<td width=38><div align=center>" . $node->getHwType(). "</div></td>". | ||||
| 				"<td width=22><div align=center>" . $node->getOs(). "</div></td>". | ||||
| 				"<td width=43><div align=center>" . $node->getMode(). "</div></td>"; | ||||
|  | ||||
| 		$stat = $node->getStatus(); | ||||
| 		$img_string = XCATNodeGroupUtil::getImageString($stat); | ||||
|  | ||||
| 		$html .= "<td width=43><div align=center>" . $img_string . "</div></td>". | ||||
| 				"<td width=85><div align=center>" . $node->getHwCtrlPt(). "</div></td>". | ||||
| 				"<td width=71><div align=center>" . $node->getComment(). "</div></td></tr>"; | ||||
|  | ||||
| EOS; | ||||
| 		return $html; | ||||
| 	} | ||||
| } | ||||
| ?> | ||||
| @@ -1,10 +0,0 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Class to deal with images. | ||||
|  */ | ||||
| class ImageResources { | ||||
|  | ||||
|     function ImageResources() { | ||||
|     } | ||||
| } | ||||
| ?> | ||||
| @@ -1,6 +1,6 @@ | ||||
| <?php | ||||
|  | ||||
| require_once("XCAT/HTML/HTMLProducer.class.php"); | ||||
| require_once("lib/GroupNodeTable.class.php"); | ||||
|  | ||||
| /** | ||||
|  * This class exposes an API for calling the XCAT PHP classes. | ||||
| @@ -47,7 +47,7 @@ class XCATWebservice { | ||||
| 	} | ||||
|  | ||||
| 	function getXCATNodeRows($nodeGroupName) { | ||||
| 		$html = HTMLProducer::getXCATNodeTableRows($nodeGroupName); | ||||
| 		$html = GroupNodeTable::getXCATNodeTableRow($nodeGroupName); | ||||
|  | ||||
| 		echo $html; | ||||
| 	} | ||||
|   | ||||
| @@ -1,29 +0,0 @@ | ||||
| <?php | ||||
| //Note: this file is not used any more | ||||
|  | ||||
| class Config { | ||||
| 	var $configMap; | ||||
|  | ||||
| 	function Config() { | ||||
| 		$configMap = array(); | ||||
| 	} | ||||
|  | ||||
| 	function &getInstance() { | ||||
| 		static $instance; | ||||
|  | ||||
| 		if(NULL == $instance) { | ||||
| 			$instance = new Config(); | ||||
| 		} | ||||
|  | ||||
| 		return $instance; | ||||
| 	} | ||||
|  | ||||
| 	function getValue($key) { | ||||
| 		return $this->configMap[$key]; | ||||
| 	} | ||||
|  | ||||
| 	function setValue($key, $value) { | ||||
| 		$this->configMap[$key] = $value; | ||||
| 	} | ||||
| } | ||||
| ?> | ||||
| @@ -1,4 +1,7 @@ | ||||
| /* | ||||
|  | ||||
| This file is no longer used. | ||||
|  | ||||
| Styles for the navigation area and some other general styles. | ||||
|  | ||||
| Some of this came from: | ||||
| @@ -108,7 +111,7 @@ tr.indent td { padding:0px 0 0px 10px; } | ||||
| 	border-bottom: 1px solid #fff; | ||||
| 	font-size:11px; | ||||
| 	padding: 0px 5px 0px 15px; | ||||
| 	width: 100%; | ||||
| 	/* width: 100%; */ | ||||
| } | ||||
| 	/* #menu_level3 li { list-style: none; } */ | ||||
| 	#menu_level3 a:link, a:visited { | ||||
|   | ||||
| @@ -1,45 +1,104 @@ | ||||
|  | ||||
| div#header { | ||||
|   /* background-color : #d8dff1; */ | ||||
|   position: absolute; | ||||
|   left: 15px; | ||||
|   top: 15px; | ||||
| #headingTable { | ||||
| 	margin: 0 20px 10px 20px; | ||||
| 	/* background: #FFF url(./images/top.jpg) repeat-x top; */ | ||||
| 	background-color: #002432; | ||||
| } | ||||
|  | ||||
| div#nav { | ||||
|   /* background-color : #d8dff1; */ | ||||
|   position: absolute; | ||||
|   left: 0px; | ||||
|   top: 80px; | ||||
| } | ||||
|  | ||||
| div#content { | ||||
|   /* background-color : #fcfaeb; */ | ||||
|   position: absolute; | ||||
|   left: 120px; | ||||
|   top: 80px; | ||||
| } | ||||
|  | ||||
| /* not used... | ||||
| P#logo { | ||||
|  background-color: #d8dff1;  #f5f3cf #fffdb0 | ||||
|  vertical-align : middle;; | ||||
| 	padding-top: 5px; | ||||
| 	text-align: center; | ||||
| 	padding-bottom: 5px; | ||||
| 	margin-bottom: 10px; | ||||
| /* | ||||
| #top { | ||||
| 	margin: 0 auto 10px auto; | ||||
| 	padding: 0; | ||||
| 	color: #666; | ||||
| 	background: #FFF url(./images/top.jpg) repeat-x top; | ||||
| 	background-color: #002432; | ||||
| 	height: 65px; | ||||
| } | ||||
| */ | ||||
|  | ||||
| #banner { | ||||
|  font-weight: bolder; | ||||
|  font-size: 16pt; | ||||
|  font-style: italic; | ||||
|  color: #6a8ab5;  /* #3F5B7F;  gray; */ | ||||
|  text-align: center; | ||||
|  margin: 10px; | ||||
| #xcatImage { | ||||
| 	/* float: left; */ | ||||
| 	margin: 5px; | ||||
| 	} | ||||
|  | ||||
| .MenuRow { | ||||
| 	border-left: 2px solid white; | ||||
| 	border-right: 2px solid white; | ||||
| } | ||||
|  | ||||
| #mainNav { | ||||
| 	/* position: absolute; | ||||
| 	float: left; */ | ||||
| 	list-style: none; | ||||
| 	margin: 0px; | ||||
| } | ||||
|  | ||||
| #mainNav li { | ||||
| 	float: left; | ||||
| 	font: .8em Verdana, Arial, Sans-Serif; | ||||
| 	line-height: 2.5em; | ||||
| 	font-weight: bold; | ||||
| 	/* border: 1px solid white; */ | ||||
| } | ||||
|  | ||||
| .CurrentMenuItem { | ||||
|   display: block; | ||||
|   padding: 0 2em; | ||||
|   background: #09334b; | ||||
|   color: #fafafa; | ||||
| } | ||||
|  | ||||
| .CurrentMenuItemTop { | ||||
| 	border-left: 2px solid white; | ||||
| 	border-top: 2px solid white; | ||||
| 	border-right: 2px solid white; | ||||
| 	/* border-bottom: 2px solid #09334b; */ | ||||
| } | ||||
|  | ||||
| .MenuItemTop { border-bottom: 2px solid white; } | ||||
| .MenuItem { /* border-bottom: 2px solid #002432; */ } | ||||
|  | ||||
| #mainNav a { | ||||
|   display: block; | ||||
|   float: left; /* IE/Mac 5.2 Fix */ | ||||
|   padding: 0 2em; | ||||
|   text-decoration: none; | ||||
|   color: #a1a1a1; | ||||
|   border-left: 1px solid #273942; | ||||
|   cursor: pointer; | ||||
| } | ||||
|  | ||||
| /* IE/Win 5.x Fix */ | ||||
| * html #mainNav a { | ||||
|   width: 1px; | ||||
| } | ||||
|  | ||||
| #mainNav a:hover { | ||||
|   background: #09334b; | ||||
|   color: #fafafa; | ||||
| } | ||||
|  | ||||
| /* | ||||
| body.home #mainNav a#home, body.tutorials #mainNav a#tutorials { | ||||
|   background: #09334b; | ||||
|   color: #fafafa; | ||||
|   cursor: default; | ||||
| } | ||||
| */ | ||||
|  | ||||
| #mainNav li a.active { | ||||
|   color: #fafafa; | ||||
|  | ||||
| } | ||||
|  | ||||
| /* | ||||
| div#content { | ||||
|   background-color : #fcfaeb; | ||||
|   position: absolute; | ||||
|   left: 120px; | ||||
|   top: 180px; | ||||
| } | ||||
| */ | ||||
|  | ||||
| #disclaimer { | ||||
|  font-weight: bold; | ||||
|  font-size: 9pt; | ||||
| @@ -48,16 +107,6 @@ P#logo { | ||||
|  margin: 5px; | ||||
| } | ||||
|  | ||||
| .PageHeading { | ||||
|  /* font-size: 10pt; */ | ||||
|  font: bold 1.4em "Trebuchet MS", Helvetica, Sans-Serif; | ||||
|  color: white; | ||||
|  background-color: transparent;  /* #c0c0c0; */ | ||||
|  border: 1px solid white; | ||||
|  border-bottom-style: none; | ||||
|  margin: 2px 2px 10px 2px; | ||||
| } | ||||
|  | ||||
| .ContentForm { margin: 10px 2px 15px 2px; } | ||||
|  | ||||
| BODY { | ||||
| @@ -76,7 +125,6 @@ INPUT {vertical-align : middle; font-size : 8pt; font-family : sans-serif; font- | ||||
| SELECT {vertical-align : middle; font-size : 8pt; font-family : sans-serif; font-weight : bold;} | ||||
| TEXTAREA {vertical-align : middle; font-size : 8pt; font-family : sans-serif; font-weight : bold;} | ||||
| TABLE {font-size : 10pt; font-family : Arial;} | ||||
|  | ||||
| /* pre { padding: 0px; margin: 0px; } */ | ||||
|  | ||||
| .TableHeader { color: black; background-color : #fffdb0; font-weight : bold; font-size : 9pt; white-space: nowrap; } | ||||
| @@ -107,69 +155,44 @@ TABLE {font-size : 10pt; font-family : Arial;} | ||||
| .NoMargin { margin: 0px; } | ||||
| .NoPadding { padding: 0px; margin: 0px; border: 0px none white; } | ||||
| .Hidden { visibility : hidden ;} | ||||
| .Txtfld {font-size : 8pt; font-family : sans-serif; font-weight : bold;} | ||||
|  | ||||
|  | ||||
| .but{ | ||||
|   background-color: #3F5B7F;  /* #6a8ab5;  #fbf999; */ | ||||
| /* | ||||
| .but { | ||||
|   background-color: #3F5B7F; | ||||
|   padding: 0px; | ||||
|   margin: 0px; | ||||
| } | ||||
|  | ||||
| .txtfld {font-size : 8pt; font-family : sans-serif; font-weight : bold;} | ||||
|  | ||||
| /* this was used to make buttons out of table cells... | ||||
| .bt { | ||||
|   font-size : 8pt; | ||||
|   font-weight : bold; | ||||
|   font-family : sans-serif; | ||||
|   background-image : url(images/bt.gif); | ||||
| 	text-align: center; | ||||
| } | ||||
| */ | ||||
|  | ||||
| /* The rest of the styles were for the navigation area, but are not used any more... | ||||
| table#navtable { | ||||
|   width: 105px; | ||||
|   font-size : 8pt; | ||||
|   padding-left : 1px; | ||||
|   border: 0px; | ||||
|   white-space: nowrap; | ||||
|  | ||||
| a.button { | ||||
|     background: transparent url('./images/bg_button_a.gif') no-repeat scroll top right; | ||||
|     color: #444; | ||||
|     display: block; | ||||
|     float: left; | ||||
|     font: normal 12px arial, sans-serif; | ||||
|     height: 24px; | ||||
|     margin-right: 6px; | ||||
|     padding-right: 18px; /* sliding doors padding */ | ||||
|     text-decoration: none; | ||||
|     cursor: pointer; | ||||
| } | ||||
|  | ||||
| .NavCurLink { background-color: #fcfaeb; } | ||||
|  | ||||
| #nav A{ | ||||
|   font-weight : bold; | ||||
|   font-family : sans-serif; | ||||
| a.button span { | ||||
|     background: transparent url('./images/bg_button_span.gif') no-repeat; | ||||
|     display: block; | ||||
|     line-height: 14px; | ||||
|     padding: 5px 0 5px 18px; | ||||
| } | ||||
|  | ||||
| #nav P{ | ||||
|   text-indent : 0px; | ||||
|   padding: 0px; | ||||
|   margin: 0px; | ||||
|   font-weight : bold; | ||||
|   font-family : sans-serif; | ||||
|   cursor : default; | ||||
|   vertical-align : middle; | ||||
| a.button:active { | ||||
|     background-position: bottom right; | ||||
|     color: #000; | ||||
|     outline: none; /* hide dotted outline in Firefox */ | ||||
| } | ||||
|  | ||||
| #nav IMG {  border: 0px; } | ||||
|  | ||||
| .InnerTable{ | ||||
|   margin-left : 0px; | ||||
|   margin-right : 0px; | ||||
|   margin-top : 0px; | ||||
|   margin-bottom : 0px; | ||||
|   border: 0px; | ||||
|   width: 100%; | ||||
|   font-size : 8pt; | ||||
|   white-space: nowrap; | ||||
| a.button:active span { | ||||
|     background-position: bottom left; | ||||
|     padding: 6px 0 4px 18px; /* push text down 1px */ | ||||
| } | ||||
|  | ||||
| .OuterTable{ | ||||
|   margin-left : 1px; | ||||
|   margin-right : 1px; | ||||
|   margin-top : 0px; | ||||
|   margin-bottom : 0px; | ||||
| } | ||||
| */ | ||||
		Reference in New Issue
	
	Block a user