File: 0.00.0a/web/node.edit.php (View as HTML)

  1: <?php
  2: ob_start();
  3: require("include.php");
  4: $NATS->Start();
  5: if (!$NATS_Session->Check($NATS->DB))
  6: 	{
  7: 	header("Location: ./?login_msg=Invalid+Or+Expired+Session");
  8: 	exit();
  9: 	}
 10: if ($NATS_Session->userlevel<5) UL_Error("Edit Node");
 11: ob_end_flush();
 12: Screen_Header("Node Editor",1);
 13: ?>
 14: <br>
 15: <?php
 16: if (isset($_REQUEST['action']))
 17: 	{
 18: 	if ($_REQUEST['action']=="save_edit")
 19: 		{
 20: 		if (isset($_REQUEST['nodeenabled'])) $nodeenabled=1;
 21: 		else $nodeenabled=0;
 22: 		if (isset($_REQUEST['pingtest'])) $pingtest=1;
 23: 		else $pingtest=0;
 24: 		if (isset($_REQUEST['pingfatal'])) $pingfatal=1;
 25: 		else $pingfatal=0;
 26: 		
 27: 		$q="UPDATE fnnode SET ";
 28: 		$q.="nodename=\"".ss($_REQUEST['nodename'])."\",";
 29: 		$q.="nodedesc=\"".ss($_REQUEST['nodedesc'])."\",";
 30: 		$q.="nodeicon=\"".ss($_REQUEST['nodeicon'])."\",";
 31: 		$q.="nodeenabled=".ss($nodeenabled).",pingtest=".ss($pingtest).",pingfatal=".ss($pingfatal).",";
 32: 		$q.="hostname=\"".ss($_REQUEST['hostname'])."\"";
 33: 		
 34: 		$q.=" WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\"";
 35: 		
 36: 		$NATS->DB->Query($q);
 37: 		
 38: 		if ($NATS->DB->Affected_Rows()<=0) echo "<b style=\"color: red;\">Failed to Save Changes</b><br>";
 39: 		else echo "<b style=\"color: green;\">Saved Changes</b><br>";
 40: 		}
 41: 	else if ($_REQUEST['action']=="save_actions")
 42: 		{
 43: 		// build the two lists...
 44: 		$cur=array();
 45: 		$cc=0;
 46: 		$nl=array();
 47: 		$nc=0;
 48: 		
 49: 		foreach($_REQUEST['links'] as $link)
 50: 			{
 51: 			$nl[$link]['proc']=false; // not processed or existing i.e. outstanding
 52: 			$nl[$link]['aaid']=$link;
 53: 			$nc++;
 54: 			}
 55: 			
 56: 		$q="SELECT nalid,aaid FROM fnnalink WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\"";
 57: 		$r=$NATS->DB->Query($q);
 58: 		while ($row=$NATS->DB->Fetch_Array($r))
 59: 			{
 60: 			//echo $row['aaid'].":";
 61: 			$cur[$row['aaid']]['proc']=false;
 62: 			$cur[$row['aaid']]['nalid']=$row['nalid'];
 63: 			$cur[$row['aaid']]['aaid']=$row['aaid'];
 64: 			$cc++;
 65: 			}
 66: 		
 67: 		// now we have the two lists lets process them
 68: 		foreach($nl as $newone)
 69: 			{
 70: 			if (isset($cur[$newone['aaid']])) // exists - do nothing to both
 71: 				{
 72: 				//echo "<br>".$newone['aaid'].":";
 73: 				$cur[$newone['aaid']]['proc']=true;
 74: 				$nl[$newone['aaid']]['proc']=true;
 75: 				}
 76: 			// otherwise news are left false to insert and curs false to delete
 77: 			}
 78: 			
 79: 		// so lets do that
 80: 		foreach($nl as $newone)
 81: 			{
 82: 			if ($newone['proc']==false)
 83: 				{
 84: 				//echo $q;
 85: 				$q="INSERT INTO fnnalink(aaid,nodeid) VALUES(".ss($newone['aaid']).",\"".ss($_REQUEST['nodeid'])."\")";
 86: 				$NATS->DB->Query($q);
 87: 				}
 88: 			}
 89: 		foreach($cur as $curone)
 90: 			{
 91: 			if ($curone['proc']==false)
 92: 				{
 93: 				$q="DELETE FROM fnnalink WHERE nalid=".$curone['nalid'];
 94: 				$NATS->DB->Query($q);
 95: 				//echo $q;
 96: 				}
 97: 			}
 98: 			
 99: 		echo "<b>Saved Alert List Preferences</b><br>";
100: 		
101: 			
102: 		}
103: 		
104: 	}
105: 		
106: 
107: 
108: echo "<b class=\"minortitle\">Editing Node: <a href=node.php?nodeid=".$_REQUEST['nodeid'].">".$_REQUEST['nodeid']."</a></b><br><br>";
109: 
110: $q="SELECT * FROM fnnode WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" LIMIT 0,1";
111: $r=$NATS->DB->Query($q);
112: if (!$row=$NATS->DB->Fetch_Array($r))
113: 	{
114: 	echo "No such node.<br><br>";
115: 	Screen_Footer();
116: 	exit();
117: 	}
118: $NATS->DB->Free($r);
119: 
120: echo "<table border=0>";
121: echo "<form action=node.edit.php method=post>";
122: echo "<input type=hidden name=action value=save_edit>";
123: echo "<input type=hidden name=nodeid value=".$_REQUEST['nodeid'].">";
124: echo "<tr><td colspan=2><b class=\"sectitle\"><u>Node Settings</u></b><br><br></td>";
125: 
126: echo "<tr><td align=right>
127: NodeID
128: :</td><td align=left>";
129: echo $row['nodeid'];
130: echo "</td></tr>";
131: 
132: echo "<tr><td align=right>
133: Node Name
134: :</td><td align=left>";
135: echo "<input type=text name=nodename size=20 maxlength=128 value=\"".$row['nodename']."\">";
136: echo "</td></tr>";
137: 
138: echo "<tr><td align=right>
139: Hostname
140: :</td><td align=left>";
141: echo "<input type=text name=hostname size=20 maxlength=128 value=\"".$row['hostname']."\">";
142: echo "</td></tr>";
143: 
144: echo "<tr><td align=right>
145: Description
146: :</td><td align=left>";
147: echo "<input type=text name=nodedesc size=30 maxlength=200 value=\"".$row['nodedesc']."\">";
148: echo "</td></tr>";
149: 
150: echo "<tr><td align=right>
151: Node Icon
152: :</td><td align=left>";
153: echo "<select name=nodeicon>";
154: if ($row['nodeicon']!="") echo "<option value=\"".$row['nodeicon']."\">".$row['nodeicon']."</option>";
155: echo "<option value=\"\">Default</option>";
156: foreach($fnIcons as $icon)
157: 	echo "<option value=\"".$icon."\">".$icon."</option>";
158: echo "</select> [ <a href=node.edit.php?nodeid=".$_REQUEST['nodeid']."&show_icons=1>Show Icons</a> ]";
159: echo "</td></tr>";
160: 
161: echo "<tr><td align=right>
162: Enabled
163: :</td><td align=left>";
164: if ($row['nodeenabled']==1) $s=" checked";
165: else $s="";
166: echo "<input type=checkbox value=1 name=nodeenabled".$s.">";
167: echo "</td></tr>";
168: 
169: echo "<tr><td align=right>
170: Ping Test
171: :</td><td align=left>";
172: if ($row['pingtest']==1) $s=" checked";
173: else $s="";
174: echo "<input type=checkbox value=1 name=pingtest".$s.">";
175: echo "</td></tr>";
176: 
177: echo "<tr><td align=right>
178: Require Ping
179: :</td><td align=left>";
180: if ($row['pingfatal']==1) $s=" checked";
181: else $s="";
182: echo "<input type=checkbox value=1 name=pingfatal".$s.">";
183: echo "</td></tr>";
184: 
185: echo "<tr><td colspan=2>";
186: echo "<input type=submit value=\"Save Node Settings\"> <a href=main.php>Cancel Changes</a>";
187: echo "<br><br>";
188: echo "</td></tr>";
189: echo "</form>";
190: 
191: if (isset($_REQUEST['show_icons']))
192: 	{
193: 	echo "<tr><td colspan=2 align=left valign=top><br><br>";
194: 	ShowIcons();
195: 	echo "<br><br></td></tr>";
196: 	}
197: 
198: 
199: echo "<tr><td colspan=2><br><b class=\"sectitle\"><u>Node Tests</u></b><br><br></td></tr>";
200: 
201: $q="SELECT * FROM fnlocaltest WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" AND testtype!=\"ICMP\"";
202: $r=$NATS->DB->Query($q);
203: while ($row=$NATS->DB->Fetch_Array($r))
204: 	{
205: 	echo "<tr style=\"border-bottom: dotted 1px #e0e0e0;\"><td style=\"border-bottom: dotted 1px #e0e0e0;\">";
206: 	
207: 	echo "<b class=\"al".$row['alertlevel']."\">";
208: 	if (strlen($row['testparam'])>10) $tp=substr($row['testparam'],0,8)."..";
209: 	else $tp=$row['testparam'];
210: 	echo lText($row['testtype'])." (".$tp.")";
211: 	echo "</b>";
212: 	echo "</td>";
213: 
214: 	echo "<td style=\"border-bottom: dotted 1px #e0e0e0;\"><a href=localtest.edit.php?localtestid=".$row['localtestid'].">Edit</a> | ";
215: 	echo "<a href=localtest.action.php?action=delete&localtestid=".$row['localtestid'].">Delete</a>";
216: 
217: 	echo "&nbsp;&nbsp;<i>Last Tested: ".dtago($row['lastrunx'])."</i>";	
218: 	echo "</td></tr>";
219: 	}
220: 
221: echo "<form action=localtest.action.php method=post><input type=hidden name=action value=create>";
222: echo "<input type=hidden name=nodeid value=\"".$_REQUEST['nodeid']."\">\n";
223: echo "<tr><td colspan=2>&nbsp;<br></td></tr>";
224: echo "<tr><td><b>Add Test :</b></td>";
225: echo "<td><select name=testtype>";
226: echo "<option value=wtime>Web Time</option><option value=tcp>TCP Port</option><option value=testloop>Test Loop</option>";
227: echo "<option value=wsize>Web Size</option>";
228: echo "</select> <input type=text name=testparam size=20 maxlength=128> ";
229: echo "<input type=submit value=\"Add\">";
230: echo "</td></tr></form>";
231: 
232: 
233: echo "</table>";
234: 
235: echo "<br><br><b class=\"sectitle\"><u>Alert Actions</u></b><br><br>";
236: echo "<table border=0><form action=node.edit.php>";
237: echo "<input type=hidden name=nodeid value=".$_REQUEST['nodeid'].">";
238: echo "<input type=hidden name=action value=save_actions>";
239: $q="SELECT aaid,aname FROM fnalertaction";
240: $r=$NATS->DB->Query($q);
241: $c=0;
242: while ($row=$NATS->DB->Fetch_Array($r))
243: 	{
244: 	// has link?
245: 	$lq="SELECT nalid FROM fnnalink WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" AND aaid=".ss($row['aaid'])." LIMIT 0,1";
246: 	$lr=$NATS->DB->Query($lq);
247: 	if ($NATS->DB->Num_Rows($lr)>0) $s=" checked";
248: 	else $s="";
249: 	$NATS->DB->Free($lr);
250: 	echo "<tr><td><input type=checkbox name=\"links[".$c++."]\" value=\"".$row['aaid']."\"".$s.">";
251: 	echo "</td><td>".$row['aaid']." - ".$row['aname']."</td></tr>";
252: 	}
253: $NATS->DB->Free($r);
254: echo "<tr><td colspan=\"2\"><input type=submit value=\"Update Alert Actions\"></td></tr>";
255: echo "</form></table>";
256: ?>
257: 
258: 
259: <?php
260: Screen_Footer();
261: ?>
262: