Viewing File web/node.edit.php of 0.01.2a
|
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 " <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> <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: