File: 1.19.3a/server/web/node.php (View as HTML)

  1: <?php
  2: /* -------------------------------------------------------------
  3: This file is part of FreeNATS
  4: 
  5: FreeNATS is (C) Copyright 2008-2017 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 FreeNATS.  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: 	$p = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=="on" ? "https" : "http";
 29: 	$url = $p."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
 30: 	header("Location: ./?login_msg=Invalid+Or+Expired+Session&url=".urlencode($url));
 31: 	exit();
 32: 	}
 33: if ($NATS_Session->userlevel<1) UL_Error($NATS->Lang->Item("viewing.node"));
 34: 
 35: if (!$NATS->isUserAllowedNode($NATS_Session->username,$_REQUEST['nodeid']))
 36: 	UL_Error($NATS->Lang->Item("viewing.node"));
 37: 
 38: ob_end_flush();
 39: Screen_Header($NATS->Lang->Item("viewing.node")." ".$_REQUEST['nodeid'],1);
 40: ?>
 41: <br>
 42: <?php
 43: //echo "<b class=\"minortitle\">Node: ".$_REQUEST['nodeid']."</b><br><br>";
 44: 
 45: echo "<table border=0><tr><td align=left valign=top>";
 46: 
 47: $q="SELECT * FROM fnnode WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" LIMIT 0,1";
 48: $r=$NATS->DB->Query($q);
 49: if (!$row=$NATS->DB->Fetch_Array($r))
 50: 	{
 51: 	echo $NATS->Lang->Item("no.node")."<br><br>";
 52: 	Screen_Footer();
 53: 	exit();
 54: 	}
 55: $NATS->DB->Free($r);
 56: $node=$row;
 57: 
 58: echo "<table class=\"nicetable\">";
 59: 
 60: echo "<tr><td align=right>";
 61: echo $NATS->Lang->Item("node.name");
 62: echo " :</td><td align=left>";
 63: echo $row['nodename'];
 64: echo "</td></tr>";
 65: 
 66: echo "<tr><td align=right>";
 67: echo $NATS->Lang->Item("status");
 68: echo " :</td><td align=left>";
 69: echo "<b class=\"al".$row['alertlevel']."\">";
 70: echo oText($row['alertlevel']);
 71: echo "</b>";
 72: echo "</td></tr>";
 73: 
 74: echo "<tr><td align=right>";
 75: echo $NATS->Lang->Item("hostname");
 76: echo ": </td><td align=left>";
 77: echo $row['hostname'];
 78: echo "&nbsp;</td></tr>";
 79: 
 80: echo "<tr><td align=right>";
 81: echo $NATS->Lang->Item("description");
 82: echo " :</td><td align=left>";
 83: echo $row['nodedesc'];
 84: echo "&nbsp;</td></tr>";
 85: 
 86: echo "<tr><td align=right>";
 87: echo $NATS->Lang->Item("enabled");
 88: echo ": </td><td align=left>";
 89: if ($row['nodeenabled']==1) $s=$NATS->Lang->Item("yes");
 90: else $s=$NATS->Lang->Item("no");
 91: echo $s;
 92: echo "</td></tr>";
 93: 
 94: $aq="SELECT alertid,alertlevel,openedx FROM fnalert WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" AND closedx=0 LIMIT 0,1";
 95: //echo $aq;
 96: $ar=$NATS->DB->Query($aq);
 97: echo "<tr><td align=right>
 98: Alert 
 99: :</td><td align=left>";
100: if ($arow=$NATS->DB->Fetch_Array($ar))
101: 	{
102: 	echo "<a href=history.alert.php?nodeid=".$_REQUEST['nodeid']."><b class=\"al".$arow['alertlevel']."\">".$NATS->Lang->Item("yes")." - ".oText($arow['alertlevel'])."</b></a> ";
103: 	echo "(".$NATS->Lang->Item("opened")." ".dtago($arow['openedx']).")";
104: 	}
105: else echo "<b>".$NATS->Lang->Item("no")."</b> [ <a href=history.alert.php?nodeid=".$_REQUEST['nodeid'].">".$NATS->Lang->Item("alert.history")."</a> ]";
106: echo "</td></tr>";
107: 
108: if ($NATS_Session->userlevel>4) echo "<tr><td align=right>".$NATS->Lang->Item("edit")." :</td>";
109: echo "<td align=left><a href=node.edit.php?nodeid=".$_REQUEST['nodeid'].">".$NATS->Lang->Item("edit.node.options")."</a></td></tr>";
110: 
111: echo "<tr><td align=right>".$NATS->Lang->Item("summary")." :</td><td align=left>";
112: $finishx=time();
113: $startx=$finishx-(60*60*24);
114: echo "<a href=summary.test.php?nodeid=".$_REQUEST['nodeid']."&startx=".$startx."&finishx=".$finishx.">".$NATS->Lang->Item("last.24h")."</a> | ";
115: echo "<a href=summary.test.php?nodeid=".$_REQUEST['nodeid'].">".$NATS->Lang->Item("today")."</a>";
116: echo "</td></tr>";
117: 
118: // Utility Links
119: //if ($NATS->Cfg->Get("dev.links",0)==1)
120: //{
121: $shown_header=false;
122: for ($a=0; $a<3; $a++)
123: 	{
124: 	$ulink="ulink".$a;
125: 	$utitle=$ulink."_title";
126: 	$uurl=$ulink."_url";
127: 	if ($row[$ulink]==1)
128: 		{ // link is enabled
129: 		if (!$shown_header) // first one
130: 			{
131: 			echo "<tr><td align=right>".$NATS->Lang->Item("links")." :</td><td align=left>";
132: 			$shown_header=true;
133: 			}
134: 		$url=$row[$uurl];
135: 		$url=str_replace("{HOSTNAME}",$row['hostname'],$url);
136: 		$url=str_replace("{NODENAME}",$row['nodename'],$url);
137: 		$url=str_replace("{NODEID}",$row['nodeid'],$url);
138: 		if ($NATS->Cfg->Get("site.links.newwindow",0)==1) $tgt=" target=\"top\"";
139: 		else $tgt="";
140: 		echo "<a href=\"".$url."\"".$tgt.">".$row[$utitle]."</a> ";
141: 		}
142: 	}
143: if ($shown_header) echo "</td></tr>"; // if shown any
144: //}
145: 
146: echo "</table>";
147: 
148: echo "</td><td style=\"width: 50px;\">&nbsp;</td><td align=left valign=top>";
149: np_tiny($_REQUEST['nodeid']);
150: echo "</td></tr></table>";
151: 
152: echo "<br><br>";
153: 
154: echo "<b class=\"subtitle\">".$NATS->Lang->Item("local.tests")."</b><br><br>";
155: 
156: echo "<table class=\"nicetable\">";
157: 
158: $q="SELECT * FROM fnlocaltest WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" ORDER BY localtestid ASC";
159: $r=$NATS->DB->Query($q);
160: while ($row=$NATS->DB->Fetch_Array($r))
161: 	{
162: 	echo "<tr><td>";
163: 	
164: 	if ($row['testname']=="")
165: 		{
166: 		if (strlen($row['testparam'])>10) $tp=substr($row['testparam'],0,8)."..";
167: 		else $tp=$row['testparam'];
168: 		echo lText($row['testtype']);
169: 		if ($tp!="") echo " (".$tp.")";
170: 		}
171: 	else echo $row['testname'];
172: 	echo "</td>";
173: 
174: 	echo "<td><b class=\"al".$row['alertlevel']."\">".oText($row['alertlevel'])."</b></td>";
175: 	
176: 	echo "<td>(".dtago($row['lastrunx']).")</td>";
177: 	
178: 	echo "<td>";
179: 	if (($row['testrecord']==1)||($row['testtype']=="ICMP")) 
180: 		echo "[ <a href=\"history.test.php?testid=L".$row['localtestid']."\">".$NATS->Lang->Item("history")."</a> ]";
181: 	else echo "&nbsp;";
182: 	echo "</td>";
183: 	
184: 	echo "</tr>";
185: 	}
186: 
187: echo "</table>";
188: echo "<br><br>";
189: if ($node['nsenabled']==1)
190: 	{
191: 	echo "<b class=\"subtitle\">".$NATS->Lang->Item("nodeside.tests")."</b><br><br>";
192: 	
193: 	echo "<table class=\"nicetable\">";
194: 	
195: 	$q="SELECT * FROM fnnstest WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" AND testenabled=1 ORDER BY testtype";
196: 	$r=$NATS->DB->Query($q);
197: 	while ($row=$NATS->DB->Fetch_Array($r))
198: 		{
199: 		echo "<tr><td>";
200: 		
201: 		if ($row['testname']=="")
202: 			{
203: 			echo $row['testdesc'];
204: 			}
205: 		else echo $row['testname'];
206: 		echo "</td>";
207: 	
208: 		echo "<td><b class=\"al".$row['alertlevel']."\">".oText($row['alertlevel'])."</b></td>";
209: 		
210: 		echo "<td>(".dtago($row['lastrunx']).")</td>";
211: 		
212: 		echo "<td>";
213: 		if (($row['testrecord']==1)) 
214: 			echo "[ <a href=\"history.test.php?testid=N".$row['nstestid']."\">".$NATS->Lang->Item("history")."</a> ]";
215: 		else echo "&nbsp;";
216: 		echo "</td>";
217: 		
218: 		echo "</tr>";
219: 		}
220: 	
221: 	echo "</table>";
222: 	}
223: ?>
224: 
225: 
226: <?php
227: Screen_Footer();
228: ?>
229: