File: 0.02.18a/server/web/node.edit.php (View as Code)

1: 2: /* ------------------------------------------------------------- 3: This file is part of FreeNATS 4: 5: FreeNATS is (C) Copyright 2008 PurplePixie Systems 6: 7: FreeNATS is free software: you can redistribute it and/or modify 8: it under the terms of the GNU General Public License as published by 9: the Free Software Foundation, either version 3 of the License, or 10: (at your option) any later version. 11: 12: FreeNATS is distributed in the hope that it will be useful, 13: but WITHOUT ANY WARRANTY; without even the implied warranty of 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: GNU General Public License for more details. 16: 17: You should have received a copy of the GNU General Public License 18: along with Foobar. If not, see www.gnu.org/licenses 19: 20: For more information see www.purplepixie.org/freenats 21: -------------------------------------------------------------- */ 22: 23: ob_start(); 24: require("include.php"); 25: $NATS->Start(); 26: if (!$NATS_Session->Check($NATS->DB)) 27: { 28: header("Location: ./?login_msg=Invalid+Or+Expired+Session"); 29: exit(); 30: } 31: if ($NATS_Session->userlevel<5) UL_Error("Edit Node"); 32: ob_end_flush(); 33: Screen_Header("Node Editor",1); 34: ?> 35:
36: 37: if (isset($_REQUEST['action'])) 38: { 39: if ($_REQUEST['action']=="save_edit") 40: { 41: if (isset($_REQUEST['nodeenabled'])) $nodeenabled=1; 42: else $nodeenabled=0; 43: if (isset($_REQUEST['pingtest'])) $pingtest=1; 44: else $pingtest=0; 45: if (isset($_REQUEST['pingfatal'])) $pingfatal=1; 46: else $pingfatal=0; 47: 48: $q="UPDATE fnnode SET "; 49: $q.="nodename=\"".ss($_REQUEST['nodename'])."\","; 50: $q.="nodedesc=\"".ss($_REQUEST['nodedesc'])."\","; 51: $q.="nodeicon=\"".ss($_REQUEST['nodeicon'])."\","; 52: $q.="nodeenabled=".ss($nodeenabled).",pingtest=".ss($pingtest).",pingfatal=".ss($pingfatal).","; 53: $q.="hostname=\"".ss($_REQUEST['hostname'])."\""; 54: 55: $q.=" WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 56: 57: $NATS->DB->Query($q); 58: 59: if ($NATS->DB->Affected_Rows()<=0) echo "Failed to Save Changes
";
60: else echo "Saved Changes
";
61: } 62: else if ($_REQUEST['action']=="save_actions") 63: { 64: // build the two lists... 65: $cur=array(); 66: $cc=0; 67: $nl=array(); 68: $nc=0; 69: 70: foreach($_REQUEST['links'] as $link) 71: { 72: $nl[$link]['proc']=false; // not processed or existing i.e. outstanding 73: $nl[$link]['aaid']=$link; 74: $nc++; 75: } 76: 77: $q="SELECT nalid,aaid FROM fnnalink WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 78: $r=$NATS->DB->Query($q); 79: while ($row=$NATS->DB->Fetch_Array($r)) 80: { 81: //echo $row['aaid'].":"; 82: $cur[$row['aaid']]['proc']=false; 83: $cur[$row['aaid']]['nalid']=$row['nalid']; 84: $cur[$row['aaid']]['aaid']=$row['aaid']; 85: $cc++; 86: } 87: 88: // now we have the two lists lets process them 89: foreach($nl as $newone) 90: { 91: if (isset($cur[$newone['aaid']])) // exists - do nothing to both 92: { 93: //echo "
".$newone['aaid'].":";
94: $cur[$newone['aaid']]['proc']=true; 95: $nl[$newone['aaid']]['proc']=true; 96: } 97: // otherwise news are left false to insert and curs false to delete 98: } 99: 100: // so lets do that 101: foreach($nl as $newone) 102: { 103: if ($newone['proc']==false) 104: { 105: //echo $q; 106: $q="INSERT INTO fnnalink(aaid,nodeid) VALUES(".ss($newone['aaid']).",\"".ss($_REQUEST['nodeid'])."\")"; 107: $NATS->DB->Query($q); 108: } 109: } 110: foreach($cur as $curone) 111: { 112: if ($curone['proc']==false) 113: { 114: $q="DELETE FROM fnnalink WHERE nalid=".$curone['nalid']; 115: $NATS->DB->Query($q); 116: //echo $q; 117: } 118: } 119: 120: echo "Saved Alert List Preferences
";
121: 122: 123: } 124: 125: } 126: 127: 128: 129: echo "Editing Node: ".$_REQUEST['nodeid']."

";
130: 131: $q="SELECT * FROM fnnode WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" LIMIT 0,1"; 132: $r=$NATS->DB->Query($q); 133: if (!$row=$NATS->DB->Fetch_Array($r)) 134: { 135: echo "No such node.

";
136: Screen_Footer(); 137: exit(); 138: } 139: $NATS->DB->Free($r); 140: 141: echo ""; 142: echo "
";
143: echo ""; 144: echo ""; 145: echo ""; 146: 147: echo ""; 152: 153: echo ""; 158: 159: echo ""; 164: 165: echo ""; 170: 171: echo ""; 181: 182: echo ""; 189: 190: echo ""; 197: 198: echo ""; 205: 206: echo ""; 210: echo ""; 211: 212: if (isset($_REQUEST['show_icons'])) 213: { 214: echo ""; 217: } 218: 219: 220: echo ""; 221: 222: $q="SELECT * FROM fnlocaltest WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" AND testtype!=\"ICMP\""; 223: $r=$NATS->DB->Query($q); 224: while ($row=$NATS->DB->Fetch_Array($r)) 225: { 226: echo ""; 234: 235: echo ""; 240: } 241: 242: echo "
";
243: echo "\n"; 244: echo ""; 245: echo ""; 246: echo ""; 252: 253: 254: echo "
Node Settings

148: NodeID 149: :"; 150: echo $row['nodeid']; 151: echo "
154: Node Name 155: :"; 156: echo ""; 157: echo "
160: Hostname 161: :"; 162: echo ""; 163: echo "
166: Description 167: :"; 168: echo ""; 169: echo "
172: Node Icon 173: :"; 174: echo " [ Show Icons ]"; 180: echo "
183: Enabled 184: :"; 185: if ($row['nodeenabled']==1) $s=" checked"; 186: else $s=""; 187: echo ""; 188: echo "
191: Ping Test 192: :"; 193: if ($row['pingtest']==1) $s=" checked"; 194: else $s=""; 195: echo ""; 196: echo "
199: Require Ping 200: :"; 201: if ($row['pingfatal']==1) $s=" checked"; 202: else $s=""; 203: echo ""; 204: echo "
"; 207: echo " Cancel Changes"; 208: echo "

";
209: echo "


"; 215: ShowIcons(); 216: echo "


Node Tests

"; 227: 228: echo ""; 229: if (strlen($row['testparam'])>10) $tp=substr($row['testparam'],0,8).".."; 230: else $tp=$row['testparam']; 231: echo lText($row['testtype'])." (".$tp.")"; 232: echo ""; 233: echo "Edit | "; 236: echo "Delete"; 237: 238: echo "  Last Tested: ".dtago($row['lastrunx']).""; 239: echo "
 
Add Test : "; 250: echo ""; 251: echo "
";
255: 256: echo "

Alert Actions

";
257: echo ""; 258: echo ""; 259: echo ""; 260: $q="SELECT aaid,aname FROM fnalertaction"; 261: $r=$NATS->DB->Query($q); 262: $c=0; 263: while ($row=$NATS->DB->Fetch_Array($r)) 264: { 265: // has link? 266: $lq="SELECT nalid FROM fnnalink WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" AND aaid=".ss($row['aaid'])." LIMIT 0,1"; 267: $lr=$NATS->DB->Query($lq); 268: if ($NATS->DB->Num_Rows($lr)>0) $s=" checked"; 269: else $s=""; 270: $NATS->DB->Free($lr); 271: echo ""; 273: } 274: $NATS->DB->Free($r); 275: echo ""; 276: echo "
"; 272: echo "".$row['aaid']." - ".$row['aname']."
";
277: ?> 278: 279: 280: 281: Screen_Footer(); 282: ?> 283: