File: 1.19.3a/server/web/main.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: 	header("Location: ./?login_msg=Invalid+Or+Expired+Session");
 29: 	exit();
 30: 	}
 31: ob_end_flush();
 32: 
 33: if (isset($_REQUEST['mode'])) $mode=$_REQUEST['mode'];
 34: else if ($NATS->isUserRestricted($NATS_Session->username))
 35: {
 36: 	$mode="nodes";
 37: 	$_REQUEST['mode']="nodes";
 38: }
 39: else if (!$NATS->isUserRestricted($NATS_Session->username))
 40: {
 41: 	$mode="overview";
 42: 	$_REQUEST['mode']="overview";
 43: }
 44: else
 45: {
 46: 	$mode="nodes";
 47: 	$_REQUEST['mode']="nodes";
 48: }
 49: 
 50: if ($mode=="overview" && $NATS->isUserRestricted($NATS_Session->username))
 51: {
 52: 	$mode="nodes";
 53: 	$_REQUEST['mode']="nodes";
 54: }
 55: 
 56: Screen_Header($NATS->Lang->Item("overview.title"),1,0,"","main");
 57: 
 58: if (isset($_REQUEST['message']))
 59: 	{
 60: 	echo "<b>".$_REQUEST['message']."</b><br>";
 61: 	$poplist[]=$_REQUEST['message'];
 62: 	}
 63: 
 64: if (isset($_REQUEST['nodemove'])) $nm=true;
 65: else $nm=false;
 66: 
 67: function dispyn($val)
 68: {
 69: if ($val==0) return "N";
 70: else if ($val==1) return "Y";
 71: else return $val."?";
 72: }
 73: 
 74: ?>
 75: <br>
 76: <?php
 77: if (isset($_REQUEST['check_updates'])) $check_update=true;
 78: else $check_update=false;
 79: if (isset($_REQUEST['quiet_check'])) $quiet_check=true;
 80: else $quiet_check=false;
 81: 
 82: if ($check_update)
 83: {
 84: 	echo "<b>".$NATS->Lang->Item("checking.updates").":</b> ";
 85: 	echo "<span id=\"version-info\">&nbsp;<img src=\"images/loading/small-circle-lines.gif\" style=\"position: relative; top: 4px;\"></span><br>";
 86: 	if (!$quiet_check)
 87: 	{
 88: 		echo "<br>";
 89: 		echo $NATS->Lang->Item("update.desc")." ";
 90: 		echo $NATS->Version.$NATS->Release.".";
 91: 		echo "<br>";
 92: 	}
 93: 	echo "<br>\n";
 94: }
 95: 
 96: 
 97: if ($mode=="overview")
 98: 	{
 99: 
100: 	$t="<b class=\"subtitle\">".$NATS->Lang->Item("overview.subtitle")."</b>";
101: 	Start_Round($t,600);
102: 	echo "<table width=100% border=0><tr><td align=left width=50%>";
103: 	$al=$NATS->GetAlerts();
104: 	if (($al===false)||(count($al)==0))
105: 		{
106: 		echo "<b class=\"al0\">".$NATS->Lang->Item("no.monitor.alerts")."</b>";
107: 		}
108: 	else
109: 		{
110: 		echo "<a href=monitor.php>";
111: 		echo "<b class=\"al2\">".$NATS->Lang->Item("monitor.alerts")."</b>";
112: 		echo "</a>";
113: 		}
114: 	echo "</td><td align=right><b><a href=main.php?check_updates=1>".$NATS->Lang->Item("check.updates")."</a></b></td></tr>";
115: 
116: 	echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>";
117: 	$fx=time();
118: 	$sx=$fx-(60*60*24);
119: 	echo "<tr><td align=left valign=top>";
120: 	 echo "<b>".$NATS->Lang->Item("monitoring")."</b><br><br>";
121: 	$nq="SELECT COUNT(nodeid) FROM fnnode";
122: 	$nr=$NATS->DB->Query($nq);
123: 	if ($nrow=$NATS->DB->Fetch_Array($nr)) $nodecount=$nrow['COUNT(nodeid)'];
124: 	else $nodecount=0;
125: 	$NATS->DB->Free($nr);
126: 	$gq="SELECT COUNT(groupid) FROM fngroup";
127: 	$gr=$NATS->DB->Query($gq);
128: 	if ($nrow=$NATS->DB->Fetch_Array($gr)) $groupcount=$nrow['COUNT(groupid)'];
129: 	else $groupcount=0;
130: 	$NATS->DB->Free($gr);
131: 	 echo "<a href=main.php?mode=nodes>".$nodecount." ".$NATS->Lang->Item("nodes.configured")."</a><br><br>";
132: 	 echo "<a href=main.php?mode=groups>".$groupcount." ".$NATS->Lang->Item("node.groups")."</a><br>";
133: 	echo "</td><td align=right valign=top>";
134: 	echo "<b>".$NATS->Lang->Item("common.tasks")."</b><br><br>";
135: 	echo "<a href=main.php?mode=nodes>".$NATS->Lang->Item("add.nodes")."</a><br>";
136: 	echo "<a href=admin.php?mode=alertactions>".$NATS->Lang->Item("email.alerting")."</a><br>";
137: 	echo "<a href=main.php?mode=nodes>".$NATS->Lang->Item("configure.tests")."</a><br>";
138: 	echo "</td></tr>";
139: 	echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>";
140: 	echo "<tr><td colspan=2><b>".$NATS->Lang->Item("test.summaries")."</b><br><br>";
141: 	echo "<a href=summary.test.php?nodeid=*>".$NATS->Lang->Item("today")."</a> - ";
142: 	echo "<a href=summary.test.php?nodeid=*&startx=".$sx."&finishx=".$fx.">".$NATS->Lang->Item("last.24h")."</a> - ";
143: 	echo "<a href=summary.test.php?mode=custom>".$NATS->Lang->Item("custom")."</a>";
144: 	echo "</td></tr>";
145: 	echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>";
146: 	echo "<tr><td colspan=2>";
147: 	/*
148: 	echo "<b>Installed Test Modules</b><br><br>";
149: 	echo "<table class=\"nicetable\" width=100%>";
150: 	echo "<tr><td><b>Name</b></td><td><b>Provides</b></td><td><b>Revision</b></td><td><b>Additional</b></td></tr>";
151: 	foreach($NATS->Tests->QuickList as $key => $val)
152: 		{
153: 		echo "<tr><td>";
154: 		echo $NATS->Tests->Tests[$key]->name;
155: 		echo "</td><td>";
156: 		echo $NATS->Tests->Tests[$key]->type;
157: 		echo "</td><td>";
158: 		echo $NATS->Tests->Tests[$key]->revision;
159: 		echo "</td><td>";
160: 		echo $NATS->Tests->Tests[$key]->additional;
161: 		echo "</td></tr>";
162: 		}
163: 	echo "</table>";
164: 	*/
165: 	echo "<b>".$NATS->Lang->Item("monitored.nodes")."</b><br><br>";
166: 	$q="SELECT nodeid,nodename,alertlevel FROM fnnode WHERE nodeenabled=1 ORDER BY alertlevel DESC, weight ASC";
167: 	$r=$NATS->DB->Query($q);
168: 	$first=true;
169: 	while ($row=$NATS->DB->Fetch_Array($r))
170: 		{
171: 		if ($first) $first=false;
172: 		else echo ", ";
173: 		echo "<a href=node.php?nodeid=".$row['nodeid'].">";
174: 		echo "<b class=\"al".$row['alertlevel']."\">";
175: 		if ($row['nodename']!="") echo $row['nodename'];
176: 		else if ($row['nodeid'] != "") echo $row['nodeid'];
177: 		else echo $NATS->Lang->Item("node");
178: 		echo "</b></a>";
179: 		}
180: 	echo "</td></tr>";
181: 	echo "</table>";
182: 	echo "<br>";
183: 	End_Round();
184: 	echo "<br><br>";
185: 
186: 	if ($NATS->Cfg->Get("site.nonews",0)!=1)
187: 	{
188: 		$t="<b class=\"subtitle\">".$NATS->Lang->Item("freenats.news")."</b>";
189: 		Start_Round($t,600);
190: 
191: 		echo "<DIV ID=\"news-holder\" STYLE=\"padding: 4px;\">";
192: 		echo "<IMG SRC=\"images/loading/small-circle-lines.gif\">";
193: 		echo "</DIV>\n";
194: 
195: 		echo "<I>Want to disable news? Set variable site.nonews to 1</I>";
196: 
197: 		End_Round();
198: 
199: 		echo "<SCRIPT TYPE=\"text/javascript\">\n";
200: 		//echo "alert('check');\n";
201: 		echo "var url='//www.purplepixie.org/freenats/newsfeed.js.php';\n";
202: 		echo "var nf=document.createElement('script');\n";
203: 		echo "nf.type='text/javascript';\n";
204: 		echo "nf.src=url;\n";
205: 		echo "nf.async=true;\n";
206: 		echo "var fs=document.getElementsByTagName('script')[0];\n";
207: 		echo "fs.parentNode.insertBefore(nf, fs);\n";
208: 		echo "</SCRIPT>\n";
209: 
210: 	}
211: 
212: 	}
213: 
214: else if ($mode=="nodes")
215: {
216: 
217: 	if ($nm)
218: 	{
219: 	$q="SELECT nodeid,weight FROM fnnode ORDER BY weight ASC";
220: 	$r=$NATS->DB->Query($q);
221: 	$nml="<span style=\"font-size: 8pt;\">".$NATS->Lang->Item("move.before")." </span><select name=move_before style=\"font-size: 8pt;\">";
222: 	while ($row=$NATS->DB->Fetch_Array($r))
223: 		{
224: 		$nml.="<option value=".$row['weight'].">".$row['nodeid']."</option>";
225: 		}
226: 	$nml.="</select>";
227: 	$NATS->DB->Free($r);
228: 	}
229: 
230: 	Start_Round("<b class=\"subtitle\">".$NATS->Lang->Item("nodes")."</b> ".hlink("Node",12),600);
231: 	$q="SELECT nodeid,nodename,alertlevel,weight FROM fnnode ORDER BY weight ASC";
232: 	$r=$NATS->DB->Query($q);
233: 
234: 	echo "<table class=\"nicetablehov\" width=100%>";
235: 	echo "<tr><td><b>".$NATS->Lang->Item("node")."</b></td><td><b>".$NATS->Lang->Item("options")."</b></td><td><a href=main.php?mode=nodes&nodemove=1>";
236: 	echo "<b>".$NATS->Lang->Item("move")."</a></b></td></tr>";
237: 	$f=0;
238: 	$l=$NATS->DB->Num_Rows($r);
239: 	while ($row=$NATS->DB->Fetch_Array($r))
240: 	{
241: 		if ($NATS->isUserAllowedNode($NATS_Session->username, $row['nodeid']))
242: 		{
243: 			//echo "<tr class=\"nicetablehov\" id=\"noderow_".$row['nodeid']."\" onmouseover=\"highlightrow('noderow_".$row['nodeid']."')\"><td align=left>";
244: 			echo "<tr class=\"nicetablehov\"><td align=left>";
245: 			echo "<a href=node.php?nodeid=".$row['nodeid'].">";
246: 
247: 			echo "<b class=\"al".$row['alertlevel']."\">";
248: 			if ($row['nodename']!="") echo $row['nodename'];
249: 			else if ($row['nodeid'] != "") echo $row['nodeid'];
250: 			else echo $NATS->Lang->Item("node");
251: 			echo "</b>";
252: 
253: 			echo "</a> ";
254: 			echo "(".$row['nodeid'].")";
255: 			echo "</td><td align=left>";
256: 			echo "&nbsp;<a href=node.edit.php?nodeid=".$row['nodeid']."><img src=images/options/application.png border=0 title=\"".$NATS->Lang->Item("edit")."\"></a>";
257: 			echo "&nbsp;";
258: 			echo "<a href=node.action.php?action=delete&nodeid=".$row['nodeid']."><img src=images/options/action_delete.png border=0 title=\"".$NATS->Lang->Item("delete")."\"></a> ";
259: 			echo "</td>";
260: 
261: 			if ($nm)
262: 				{
263: 				echo "<form action=node.action.php method=post>";
264: 				echo "<input type=hidden name=nodeid value=".$row['nodeid'].">";
265: 				echo "<input type=hidden name=action value=move_before>";
266: 				}
267: 
268: 			echo "<td>";
269: 			if ($f==0) echo "<img src=images/arrows/off/arrow_top.png>";
270: 			else
271: 				{
272: 				echo "<a href=node.action.php?nodeid=".$row['nodeid']."&action=move&dir=up>";
273: 				echo "<img src=\"images/arrows/on/arrow_top.png\" border=0>";
274: 				echo "</a>";
275: 				}
276: 
277: 			if ($f>=($l-1)) echo "<img src=images/arrows/off/arrow_down.png>";
278: 			else
279: 				{
280: 				echo "<a href=node.action.php?nodeid=".$row['nodeid']."&action=move&dir=down>";
281: 				echo "<img src=\"images/arrows/on/arrow_down.png\" border=0>";
282: 				echo "</a>";
283: 				}
284: 
285: 			if ($nm)
286: 				{
287: 				echo "<span style=\"font-size: 8pt;\">&nbsp;[".$row['weight']."]&nbsp;</span>";
288: 				echo $nml;
289: 				echo " <input type=submit value=\"Go\" style=\"font-size: 8pt;\">";
290: 				}
291: 
292: 			echo "</td>";
293: 
294: 			if ($nm) echo "</form>";
295: 			$f++;
296: 
297: 			echo "</tr>";
298: 		}
299: 	}
300: 
301: 	echo "<tr><td colspan=3>&nbsp;<br></td></tr>";
302: 	echo "<form action=node.action.php><input type=hidden name=action value=create>";
303: 	echo "<tr><td><input type=text name=nodeid size=20 maxlenth=32></td><td colspan=2><input type=submit value=\"".$NATS->Lang->Item("create.node")."\"> ";
304: 	echo hlink("Node:Create");
305: 	if ($nm) echo " <a href=node.action.php?action=reorderweight>".$NATS->Lang->Item("refresh.weight")."</a>";
306: 	echo "</td></tr></form>";
307: 
308: 	$fx=time();
309: 	$sx=$fx-(60*60*24);
310: 	echo "<tr><td colspan=3><b>Summary: </b><a href=summary.test.php?nodeid=*>".$NATS->Lang->Item("today")."</a> - ";
311: 	echo "<a href=summary.test.php?nodeid=*&startx=".$sx."&finishx=".$fx.">".$NATS->Lang->Item("last.24h")."</a> - ";
312: 	echo "<a href=summary.test.php?mode=custom>".$NATS->Lang->Item("custom")."</a> - ";
313: 	echo "<a href=main.php?mode=configsummary>".$NATS->Lang->Item("config")."</a></td></tr>";
314: 
315: 	echo "</table>";
316: 	End_Round();
317: 	}
318: 
319: else if ($mode=="groups")
320: 	{
321: 
322: 	$t="<b class=\"subtitle\">".$NATS->Lang->Item("node.groups")."</b> ".hlink("Group",12);
323: 	Start_Round($t,600);
324: 
325: 	$q="SELECT groupid,groupname FROM fngroup ORDER BY weight ASC";
326: 	$r=$NATS->DB->Query($q);
327: 	$f=0;
328: 	echo "<table class=\"nicetablehov\" width=100%>";
329: 	$l=$NATS->DB->Num_Rows($r);
330: 	while ($row=$NATS->DB->Fetch_Array($r))
331: 	{
332: 		if ($NATS->isUserAllowedGroup($NATS_Session->username,$row['groupid']))
333: 		{
334: 			echo "<tr class=\"nicetablehov\">";
335: 			echo "<td><a href=group.php?groupid=".$row['groupid']."><b class=\"al".$NATS->GroupAlertLevel($row['groupid'])."\">".$row['groupname']."</b></a></td>";
336: 			echo "<td><a href=group.edit.php?groupid=".$row['groupid']."><img src=images/options/application.png border=0 title=\"".$NATS->Lang->Item("edit")."\"></a>";
337: 			echo "&nbsp;";
338: 			echo "<a href=group.action.php?action=delete&groupid=".$row['groupid']."><img src=images/options/action_delete.png border=0 title=\"".$NATS->Lang->Item("delete")."\"></a></td>";
339: 			echo "<td>";
340: 
341: 			if ($f==0) echo "<img src=images/arrows/off/arrow_top.png>";
342: 			else
343: 				{
344: 				echo "<a href=group.action.php?groupid=".$row['groupid']."&action=move&dir=up>";
345: 				echo "<img src=\"images/arrows/on/arrow_top.png\" border=0>";
346: 				echo "</a>";
347: 				}
348: 
349: 			if ($f>=($l-1)) echo "<img src=images/arrows/off/arrow_down.png>";
350: 			else
351: 				{
352: 				echo "<a href=group.action.php?groupid=".$row['groupid']."&action=move&dir=down>";
353: 				echo "<img src=\"images/arrows/on/arrow_down.png\" border=0>";
354: 				echo "</a>";
355: 				}
356: 
357: 			echo "</td>";
358: 			$f++;
359: 
360: 			echo "</tr>";
361: 		}
362: 	}
363: 	echo "<tr><td colspan=3>&nbsp;<br></td></tr>";
364: 	echo "<form action=group.action.php method=post>";
365: 	echo "<input type=hidden name=action value=create>";
366: 	echo "<tr><td><input type=text size=20 name=groupname maxlength=120></td><td colspan=2><input type=submit value=\"".$NATS->Lang->Item("create.group")."\">";
367: 	echo " ".hlink("Group:Create")."</td></tr></form>";
368: 	echo "</table>";
369: 	End_Round();
370: 	}
371: 
372: else if ($mode=="views")
373: 	{
374: 	$t="<b class=\"subtitle\">".$NATS->Lang->Item("views")."</b> ".hlink("View",12);
375: 	Start_Round($t,600);
376: 	echo "<table class=\"nicetablehov\" width=100%>";
377: 	// get views...
378: 	$q="SELECT viewid,vtitle FROM fnview";
379: 	$r=$NATS->DB->Query($q);
380: 	while ($row=$NATS->DB->Fetch_Array($r))
381: 		{
382: 		echo "<tr class=\"nicetablehov\"><td>";
383: 		echo "<a href=view.php?viewid=".$row['viewid'].">".$row['vtitle']."</a>";
384: 		echo "</td><td>";
385: 		echo "<a href=view.edit.php?viewid=".$row['viewid']."><img src=images/options/application.png border=0 title=\"".$NATS->Lang->Item("edit")."\"></a>";
386: 		echo "&nbsp;";
387: 		echo "<a href=view.edit.php?viewid=".$row['viewid']."&action=delete><img src=images/options/action_delete.png border=0 title=\"".$NATS->Lang->Item("delete")."\"></a>";
388: 		echo "</td></tr>";
389: 		}
390: 
391: 	echo "<tr><td colspan=2>&nbsp;<br></td></tr>";
392: 	echo "<form action=view.edit.php method=post><input type=hidden name=action value=create>";
393: 	echo "<tr><td><input type=text name=vtitle size=20 maxlength=64></td><td><input type=submit value=\"".$NATS->Lang->Item("create.view")."\"> ";
394: 	echo hlink("View:Create")."</td></tr></form>";
395: 	echo "</table>";
396: 	End_Round();
397: 
398: 	echo "<br><br>";
399: 	$t="<b class=\"subtitle\">".$NATS->Lang->Item("reports")." ".hlink("Report",12)."</b>";
400: 	Start_Round($t,600);
401: 	echo "<b><a href=report.php>".$NATS->Lang->Item("create.report")."</a></b> ".hlink("Report",12);
402: 	echo "<br><br>";
403: 
404: 	// reports in here
405: 	$rq="SELECT reportid,reportname FROM fnreport";
406: 	$rr=$NATS->DB->Query($rq);
407: 	if ($NATS->DB->Num_Rows($rr)>0)
408: 		{
409: 		echo "<table class=\"nicetablehov\" width=100%>";
410: 		while ($rep=$NATS->DB->Fetch_Array($rr))
411: 			{
412: 			echo "<tr class=\"nicetablehov\">";
413: 			echo "<td align=left>";
414: 			echo "<a href=report.php?reportid=".$rep['reportid'].">".$rep['reportname']."</a>";
415: 			echo "</td><td align=right>";
416: 			echo "<a href=report.php?mode=delete&reportid=".$rep['reportid'].">";
417: 			echo "<img src=images/options/action_delete.png border=0 title=\"".$NATS->Lang->Item("delete").": ".$rep['reportname']."\">";
418: 			echo "</a>";
419: 			echo "&nbsp;&nbsp;";
420: 			echo "</td></tr>";
421: 			}
422: 		echo "</table>";
423: 		}
424: 
425: 	End_Round();
426: 
427: 	}
428: 
429: else if ($mode=="configsummary")
430: 	{
431: 	$scheds=array();
432: 	$q="SELECT scheduleid,schedulename FROM fnschedule";
433: 	$r=$NATS->DB->Query($q);
434: 	while ($row=$NATS->DB->Fetch_Array($r))
435: 		{
436: 		$scheds[$row['scheduleid']]=$row['schedulename'];
437: 		}
438: 	$NATS->DB->Free($r);
439: 
440: 	echo "<b class=\"subtitle\">".$NATS->Lang->Item("config.summary")."</b><br><br>";
441: 	echo "<table width=100% border=1>";
442: 	echo "<tr>";
443: 	echo "<td><b>";
444: 	echo $NATS->Lang->Item("nodeid");
445: 	echo "</b></td>";
446: 	echo "<td><b>";
447: 	echo $NATS->Lang->Item("name");
448: 	echo "</b></td>";
449: 	echo "<td><b>";
450: 	echo $NATS->Lang->Item("hostname");
451: 	echo "</b></td>";
452: 	echo "<td><b>";
453: 	echo $NATS->Lang->Item("schedule");
454: 	echo "</b></td>";
455: 	echo "<td><b>";
456: 	echo $NATS->Lang->Item("enabled");
457: 	echo "</b></td>";
458: 	echo "<td><b>";
459: 	echo $NATS->Lang->Item("ping")." / ".$NATS->Lang->Item("required");;
460: 	echo "</b></td>";
461: 	echo "<td><b>";
462: 	echo $NATS->Lang->Item("interval");
463: 	echo "</b></td>";
464: 	echo "<td><b>";
465: 	echo $NATS->Lang->Item("nodeside");
466: 	echo "</b></td>";
467: 	echo "</tr>";
468: 	$q="SELECT * FROM fnnode ORDER BY weight ASC";
469: 	$r=$NATS->DB->Query($q);
470: 	while ($row=$NATS->DB->Fetch_Array($r))
471: 	{
472: 		if ($NATS->isUserAllowedNode($NATS_Session->username,$row['nodeid']))
473: 		{
474: 			echo "<tr><td>";
475: 			echo $row['nodeid'];
476: 			echo "</td><td>";
477: 			echo $row['nodename'];
478: 			echo "</td><td>";
479: 			echo $row['hostname'];
480: 			echo "</td><td>";
481: 			if ($row['scheduleid']==0) $s="All Times";
482: 			else if (isset($scheds[$row['scheduleid']])) $s=$scheds[$row['scheduleid']];
483: 			else $s="UNKNOWN";
484: 			echo $s;
485: 			echo "</td><td>";
486: 			echo dispyn($row['nodeenabled']);
487: 			echo "</td><td>";
488: 			echo dispyn($row['pingtest'])." / ".dispyn($row['pingfatal']);
489: 			echo "</td><td>";
490: 			echo $row['testinterval'];
491: 			echo "</td><td>";
492: 			echo dispyn($row['nsenabled']);
493: 			echo "</td>";
494: 
495: 			echo "</tr>";
496: 		}
497: 	}
498: 	$NATS->DB->Free($r);
499: 	echo "</table><br><br>";
500: 
501: 	}
502: 
503: else
504: 	{
505: 	echo "Sorry - unknown mode for main.php";
506: 	}
507: 
508: 
509: echo "<br><br>";
510: 
511: ?>
512: 
513: 
514: <?php
515: if ($check_update)
516: {
517: 	echo "<SCRIPT TYPE=\"text/javascript\">\n";
518: 	//echo "alert('check');\n";
519: 	echo "var url='//www.purplepixie.org/freenats/download.php?CheckVersion2=".$NATS->Version."';\n";
520: 	echo "var us=document.createElement('script');\n";
521: 	echo "us.type='text/javascript';\n";
522: 	echo "us.src=url;\n";
523: 	echo "us.async=true;\n";
524: 	echo "var fs=document.getElementsByTagName('script')[0];\n";
525: 	echo "fs.parentNode.insertBefore(us, fs);\n";
526: 	echo "</SCRIPT>\n";
527: }
528: Screen_Footer();
529: /* old PhoneHome Ping Tracker - now in screen as a png
530: $t=$NATS->Cfg->Get("freenats.tracker");
531: if ( ($t!="") && ($t>0) )
532: 	$NATS->PhoneHome();
533: */
534: ?>
535: