mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 11:22:27 +00:00 
			
		
		
		
	- rvitals done - frame view fixed git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2511 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			145 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| // Display/edit a single table from the xcat db.  This is call via a jQuery load() call.
 | |
| 
 | |
| $TOPDIR = '..';
 | |
| require_once "$TOPDIR/lib/functions.php";
 | |
| 
 | |
| if(isset($_REQUEST['tab'])) { $tab = $_REQUEST['tab']; }
 | |
| else { echo "<p>No table name specified. Please specify a table to edit.</p>\n"; exit; }
 | |
| 
 | |
| //echo "<p>" . implode(',',array_keys($_SESSION)) . "</p>\n";
 | |
| //if (array_key_exists("editable-$tab",$_SESSION)) { echo "<p>count=".count($_SESSION["editable-$tab"])."</p>\n"; }
 | |
| 
 | |
| if(isset($_REQUEST['kill'])) {
 | |
| 	unset($_SESSION["editable-$tab"]);
 | |
| }
 | |
| 
 | |
| if(isset($_REQUEST['save'])) {
 | |
| 	$rsp = doTabrestore($tab,$_SESSION["editable-$tab"]);
 | |
| 	$errors = array();
 | |
| 	if (getXmlErrors($rsp,$errors)) { echo "<p class=Error>Tabrestore failed: ", implode(' ',$errors), "</p>\n"; }
 | |
| 	else { echo "<p class=Info>Changes have been saved.</p>\n"; }
 | |
| }
 | |
| 
 | |
| // Get table contents
 | |
| //$f = splitTableFields2('"node01","node02","5000","off",,'); echo '<p>'; foreach ($f as $k => $v) { echo "$k=$v<br>"; } echo "</p>\n";
 | |
| /*
 | |
| echo "<h1>$tab Table</h1>";
 | |
| echo "<table><tr><td rowspan=2>", getTabDescription($tab), "</td>\n";
 | |
| echo "<td><a href='" . getDocURL('dbtable',$tab) . "' target='_blank'>Column Descriptions</a></td></tr>\n";
 | |
| echo "<tr><td><a href='" . getDocURL('dbtable') . "' target='_blank'>Regular Expression Support</a></td></tr></table>\n";
 | |
| */
 | |
| echo "<table cellpadding=8><tr valign=middle><td nowrap><h2 id=tableHeading>$tab Table:</h2></td><td>", getTabDescription($tab), "</td></tr></table>\n";
 | |
| echo "<p id=helpLinks><a href='" . getDocURL('dbtable',$tab) . "' target='_blank'>Column Descriptions</a>\n";
 | |
| echo "<a href='" . getDocURL('dbtable') . "' target='_blank'>Regular Expression Support</a></p>\n";
 | |
| 
 | |
| insertButtons(array('label' => 'Save', 'id' => 'saveit'),
 | |
| 			array('label' => 'Cancel', 'id' => 'reset')
 | |
| 			);
 | |
| 
 | |
| // Display the column names
 | |
| $xml = docmd('tabdump','',array($tab));
 | |
| $headers = getTabHeaders($xml);
 | |
| if(!is_array($headers)){ die("<p>Can't find header line in $tab</p>"); }
 | |
| echo "<table id=tabTable>\n";
 | |
| echo "<tr class='colHeaders'><td></td>\n";		// extra cell is for the red x
 | |
| foreach($headers as $colHead) { echo "<td>$colHead</td>"; }
 | |
| echo "</tr>\n"; # close header row
 | |
| 
 | |
| // Save the width of the table for adding a new row when they click that button
 | |
| $tableWidth = count($headers);
 | |
| 
 | |
| // Display table contents and remember its contents in a session variable.
 | |
| $ooe = 0;		// alternates the background of the table
 | |
| $item = 0;		// the column #
 | |
| $line = 0;
 | |
| $editable = array();
 | |
| foreach ($xml->children() as $response) foreach ($response->children() as $arr){
 | |
| 	$arr = (string) $arr;
 | |
| 	if(ereg("^#", $arr)){		// handle the header specially
 | |
| 		$editable[$line++][$item] = $arr;
 | |
| 		continue;
 | |
| 	}
 | |
| 	$cl = "ListLine$ooe";
 | |
| 	$values = splitTableFields($arr);
 | |
| 	// If you change this line, be sure to change the formRow function in db.js
 | |
| 	echo "<tr class=$cl id=row$line><td class=Xcell><a class=Xlink title='Delete row'><img class=Ximg src=$TOPDIR/images/red-x2-light.gif></a></td>";
 | |
| 	foreach($values as $v){
 | |
| 		//$v = preg_replace('/\"/','', $v);
 | |
| 		echo "<td class=editme id='$line-$item'>$v</td>";
 | |
| 		$editable[$line][$item++] = $v;
 | |
| 	}
 | |
| 	echo "</tr>\n";
 | |
| 	$line++;
 | |
| 	$item = 0;
 | |
| 	$ooe = 1 - $ooe;
 | |
| }
 | |
| echo "</table>\n";
 | |
| $_SESSION["editable-$tab"] = & $editable;		// save the array so we can access it in the next call of this file or change.php
 | |
| //unset($_SESSION["editable-$tab"]);
 | |
| 
 | |
| echo "<p>";
 | |
| insertButtons(array('label' => 'Add Row', 'id' => 'newrow'));
 | |
| echo "</p>\n";
 | |
| ?>
 | |
| 
 | |
| 
 | |
| <script type="text/javascript">
 | |
| 	//jQuery(document).ready(function() {
 | |
| 	makeEditable('<?php echo $tab ?>', '.editme', '.Ximg', '.Xlink');
 | |
| 
 | |
| 	// Set up global vars to pass to the newrow button
 | |
| 	document.linenum = <?php echo $line ?>;
 | |
| 	document.ooe = <?php echo $ooe ?>;
 | |
| 
 | |
| 	// Set actions for buttons
 | |
| 	$("#reset").click(function(){
 | |
| 		//alert('You sure you want to discard changes?');
 | |
| 		$('#middlepane').load("edittab.php?tab=<?php echo $tab ?>&kill=1");
 | |
| 		});
 | |
| 	$("#newrow").click(function(){
 | |
| 		var newrow = formRow(document.linenum, <?php echo $tableWidth ?>, document.ooe);
 | |
| 		document.linenum++;
 | |
| 		document.ooe = 1 - document.ooe;
 | |
| 		$('#tabTable').append($(newrow));
 | |
| 		makeEditable('<?php echo $tab ?>', '.editme2', '.Ximg2', '.Xlink2');
 | |
| 	});
 | |
| 	$("#saveit").click(function(){
 | |
| 		$('#middlepane').load("edittab.php?tab=<?php echo $tab ?>&save=1", {
 | |
| 		indicator : "<img src='../images/indicator.gif'>",
 | |
| 		});
 | |
| 	});
 | |
| 	//});
 | |
| </script>
 | |
| 
 | |
| <?php
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| function getTabHeaders($xml){
 | |
| 	foreach ($xml->children() as $response) foreach ($response->children() as $line) {
 | |
| 		$line = (string) $line;
 | |
| 		if (ereg("^#", $line)) {
 | |
| 			$line = preg_replace('/^#/','', $line);
 | |
| 			$headers = explode(',', $line);
 | |
| 			return $headers;
 | |
| 		}
 | |
| 	}
 | |
| 	// If we get here, we never found the header line
 | |
| 	return NULL;
 | |
| }
 | |
| 
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| function getTabDescription($tab) {
 | |
| 	$xml = docmd('tabdump','',array('-d'));
 | |
| 	foreach ($xml->children() as $response) foreach ($response->children() as $line) {
 | |
| 		$line = (string) $line;
 | |
| 		if (ereg("^$tab:",$line)) {
 | |
| 			$line = preg_replace("/^$tab:\s*/", '', $line);
 | |
| 			return $line;
 | |
| 		}
 | |
| 	}
 | |
| 	return '';
 | |
| }
 | |
| 
 | |
| ?>
 |