Viewing File server/web/main.php of 1.01.0a
|
1: <?php 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 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 35: { 36: $mode="overview"; 37: $_REQUEST['mode']="overview"; 38: } 39: 40: Screen_Header("Monitoring Configuration",1,0,"","main"); 41: 42: if (isset($_REQUEST['message'])) 43: { 44: echo "<b>".$_REQUEST['message']."</b><br>"; 45: $poplist[]=$_REQUEST['message']; 46: } 47: 48: if (isset($_REQUEST['nodemove'])) $nm=true; 49: else $nm=false; 50: 51: ?> 52: <br> 53: <?php 54: if (isset($_REQUEST['check_updates'])) 55: { 56: // check for updates 57: $dq="?CheckVersion=".$NATS->Version."&JSMode=1"; 58: $dl="http://www.purplepixie.org/freenats/download.php"; 59: $du=$dl.$dq; 60: echo "<b>Checking for Updates: "; 61: echo "<script type=\"text/javascript\" src=\"".$du."\"></script>\n"; 62: echo "</b><br>"; 63: if (!isset($_REQUEST['quiet_check'])) 64: { 65: echo "If this test fails you can check on the <a href=http://www.purplepixie.org/freenats/>website</a>.<br>"; 66: echo "You are currently running version "; 67: echo $NATS->Version.$NATS->Release."."; 68: echo "<br><i>It is recommended that you check regularly for updates</i><br>"; 69: } 70: echo "<br>"; 71: } 72: 73: 74: if ($mode=="overview") 75: { 76: $t="<b class=\"subtitle\">FreeNATS Overview</b>"; 77: Start_Round($t,600); 78: echo "<table width=100% border=0><tr><td align=left width=50%>"; 79: $al=$NATS->GetAlerts(); 80: if (($al===false)||(count($al)==0)) 81: { 82: echo "<b class=\"al0\">No Monitoring Alerts</b>"; 83: } 84: else 85: { 86: echo "<a href=monitor.php>"; 87: echo "<b class=\"al2\">Monitoring Alerts</b>"; 88: echo "</a>"; 89: } 90: echo "</td><td align=right><b><a href=main.php?check_updates=1>Check for Updates</a></b></td></tr>"; 91: 92: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 93: $fx=time(); 94: $sx=$fx-(60*60*24); 95: echo "<tr><td align=left valign=top>"; 96: echo "<b>Monitoring</b><br><br>"; 97: $nq="SELECT COUNT(nodeid) FROM fnnode"; 98: $nr=$NATS->DB->Query($nq); 99: if ($nrow=$NATS->DB->Fetch_Array($nr)) $nodecount=$nrow['COUNT(nodeid)']; 100: else $nodecount=0; 101: $NATS->DB->Free($nr); 102: $gq="SELECT COUNT(groupid) FROM fngroup"; 103: $gr=$NATS->DB->Query($gq); 104: if ($nrow=$NATS->DB->Fetch_Array($gr)) $groupcount=$nrow['COUNT(groupid)']; 105: else $groupcount=0; 106: $NATS->DB->Free($gr); 107: echo "<a href=main.php?mode=nodes>".$nodecount." Nodes Configured</a><br><br>"; 108: echo "<a href=main.php?mode=groups>".$groupcount." Node Groups</a><br>"; 109: echo "</td><td align=right valign=top>"; 110: echo "<b>Common Tasks</b><br><br>"; 111: echo "<a href=main.php?mode=nodes>Add Nodes</a><br>"; 112: echo "<a href=admin.php?mode=alertactions>Email Alerting</a><br>"; 113: echo "<a href=main.php?mode=nodes>Configure Tests</a><br>"; 114: echo "</td></tr>"; 115: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 116: echo "<tr><td colspan=2><b>Test Summaries</b><br><br>"; 117: echo "<a href=summary.test.php?nodeid=*>Today</a> - "; 118: echo "<a href=summary.test.php?nodeid=*&startx=".$sx."&finishx=".$fx.">Last 24 Hrs</a> - "; 119: echo "<a href=summary.test.php?mode=custom>Custom</a>"; 120: echo "</td></tr>"; 121: echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>"; 122: echo "<tr><td colspan=2>"; 123: /* 124: echo "<b>Installed Test Modules</b><br><br>"; 125: echo "<table class=\"nicetable\" width=100%>"; 126: echo "<tr><td><b>Name</b></td><td><b>Provides</b></td><td><b>Revision</b></td><td><b>Additional</b></td></tr>"; 127: foreach($NATS->Tests->QuickList as $key => $val) 128: { 129: echo "<tr><td>"; 130: echo $NATS->Tests->Tests[$key]->name; 131: echo "</td><td>"; 132: echo $NATS->Tests->Tests[$key]->type; 133: echo "</td><td>"; 134: echo $NATS->Tests->Tests[$key]->revision; 135: echo "</td><td>"; 136: echo $NATS->Tests->Tests[$key]->additional; 137: echo "</td></tr>"; 138: } 139: echo "</table>"; 140: */ 141: echo "<b>Monitored Nodes</b><br><br>"; 142: $q="SELECT nodeid,nodename,alertlevel FROM fnnode WHERE nodeenabled=1 ORDER BY alertlevel DESC, weight ASC"; 143: $r=$NATS->DB->Query($q); 144: $first=true; 145: while ($row=$NATS->DB->Fetch_Array($r)) 146: { 147: if ($first) $first=false; 148: else echo ", "; 149: echo "<a href=node.php?nodeid=".$row['nodeid'].">"; 150: echo "<b class=\"al".$row['alertlevel']."\">"; 151: if ($row['nodename']!="") echo $row['nodename']; 152: else echo $row['nodeid']; 153: echo "</b></a>"; 154: } 155: echo "</td></tr>"; 156: echo "</table>"; 157: echo "<br>"; 158: End_Round(); 159: echo "<br><br>"; 160: } 161: 162: else if ($mode=="nodes") 163: { 164: 165: if ($nm) 166: { 167: $q="SELECT nodeid,weight FROM fnnode ORDER BY weight ASC"; 168: $r=$NATS->DB->Query($q); 169: $nml="<span style=\"font-size: 8pt;\">Move Before </span><select name=move_before style=\"font-size: 8pt;\">"; 170: while ($row=$NATS->DB->Fetch_Array($r)) 171: { 172: $nml.="<option value=".$row['weight'].">".$row['nodeid']."</option>"; 173: } 174: $nml.="</select>"; 175: $NATS->DB->Free($r); 176: } 177: 178: Start_Round("<b class=\"subtitle\">Nodes</b> ".hlink("Node",12),600); 179: $q="SELECT nodeid,nodename,alertlevel,weight FROM fnnode ORDER BY weight ASC"; 180: $r=$NATS->DB->Query($q); 181: 182: echo "<table class=\"nicetablehov\" width=100%>"; 183: echo "<tr><td><b>Node</b></td><td><b>Options</b></td><td><a href=main.php?mode=nodes&nodemove=1><b>Move</a></b></td></tr>"; 184: $f=0; 185: $l=$NATS->DB->Num_Rows($r); 186: while ($row=$NATS->DB->Fetch_Array($r)) 187: { 188: //echo "<tr class=\"nicetablehov\" id=\"noderow_".$row['nodeid']."\" onmouseover=\"highlightrow('noderow_".$row['nodeid']."')\"><td align=left>"; 189: echo "<tr class=\"nicetablehov\"><td align=left>"; 190: echo "<a href=node.php?nodeid=".$row['nodeid'].">"; 191: 192: echo "<b class=\"al".$row['alertlevel']."\">"; 193: echo $row['nodename']; 194: echo "</b>"; 195: 196: echo "</a> "; 197: echo "(".$row['nodeid'].")"; 198: echo "</td><td align=left>"; 199: echo " <a href=node.edit.php?nodeid=".$row['nodeid']."><img src=images/options/application.png border=0 title=\"Edit Options\"></a>"; 200: echo " "; 201: echo "<a href=node.action.php?action=delete&nodeid=".$row['nodeid']."><img src=images/options/action_delete.png border=0></a> "; 202: echo "</td>"; 203: 204: if ($nm) 205: { 206: echo "<form action=node.action.php method=post>"; 207: echo "<input type=hidden name=nodeid value=".$row['nodeid'].">"; 208: echo "<input type=hidden name=action value=move_before>"; 209: } 210: 211: echo "<td>"; 212: if ($f==0) echo "<img src=images/arrows/off/arrow_top.png>"; 213: else 214: { 215: echo "<a href=node.action.php?nodeid=".$row['nodeid']."&action=move&dir=up>"; 216: echo "<img src=\"images/arrows/on/arrow_top.png\" border=0>"; 217: echo "</a>"; 218: } 219: 220: if ($f>=($l-1)) echo "<img src=images/arrows/off/arrow_down.png>"; 221: else 222: { 223: echo "<a href=node.action.php?nodeid=".$row['nodeid']."&action=move&dir=down>"; 224: echo "<img src=\"images/arrows/on/arrow_down.png\" border=0>"; 225: echo "</a>"; 226: } 227: 228: if ($nm) 229: { 230: echo "<span style=\"font-size: 8pt;\"> [".$row['weight']."] </span>"; 231: echo $nml; 232: echo " <input type=submit value=\"Go\" style=\"font-size: 8pt;\">"; 233: } 234: 235: echo "</td>"; 236: 237: if ($nm) echo "</form>"; 238: $f++; 239: 240: echo "</tr>"; 241: } 242: echo "<tr><td colspan=3> <br></td></tr>"; 243: echo "<form action=node.action.php><input type=hidden name=action value=create>"; 244: echo "<tr><td><input type=text name=nodeid size=20 maxlenth=32></td><td colspan=2><input type=submit value=\"Create Node\"> "; 245: echo hlink("Node:Create"); 246: if ($nm) echo " <a href=node.action.php?action=reorderweight>Refresh Weighting</a>"; 247: echo "</td></tr></form>"; 248: 249: $fx=time(); 250: $sx=$fx-(60*60*24); 251: echo "<tr><td colspan=2><b>Summary: </b><a href=summary.test.php?nodeid=*>Today</a> - "; 252: echo "<a href=summary.test.php?nodeid=*&startx=".$sx."&finishx=".$fx.">Last 24 Hrs</a> - "; 253: echo "<a href=summary.test.php?mode=custom>Custom</a>"; 254: echo "</td></tr>"; 255: 256: echo "</table>"; 257: End_Round(); 258: } 259: 260: else if ($mode=="groups") 261: { 262: 263: $t="<b class=\"subtitle\">Node Groups</b> ".hlink("Group",12); 264: Start_Round($t,600); 265: 266: $q="SELECT groupid,groupname FROM fngroup ORDER BY weight ASC"; 267: $r=$NATS->DB->Query($q); 268: $f=0; 269: echo "<table class=\"nicetablehov\" width=100%>"; 270: $l=$NATS->DB->Num_Rows($r); 271: while ($row=$NATS->DB->Fetch_Array($r)) 272: { 273: echo "<tr class=\"nicetablehov\">"; 274: echo "<td><a href=group.php?groupid=".$row['groupid']."><b class=\"al".$NATS->GroupAlertLevel($row['groupid'])."\">".$row['groupname']."</b></a></td>"; 275: echo "<td><a href=group.edit.php?groupid=".$row['groupid']."><img src=images/options/application.png border=0 title=\"Edit Options\"></a>"; 276: echo " "; 277: echo "<a href=group.action.php?action=delete&groupid=".$row['groupid']."><img src=images/options/action_delete.png border=0 title=\"Delete Group\"></a></td>"; 278: echo "<td>"; 279: 280: if ($f==0) echo "<img src=images/arrows/off/arrow_top.png>"; 281: else 282: { 283: echo "<a href=group.action.php?groupid=".$row['groupid']."&action=move&dir=up>"; 284: echo "<img src=\"images/arrows/on/arrow_top.png\" border=0>"; 285: echo "</a>"; 286: } 287: 288: if ($f>=($l-1)) echo "<img src=images/arrows/off/arrow_down.png>"; 289: else 290: { 291: echo "<a href=group.action.php?groupid=".$row['groupid']."&action=move&dir=down>"; 292: echo "<img src=\"images/arrows/on/arrow_down.png\" border=0>"; 293: echo "</a>"; 294: } 295: 296: echo "</td>"; 297: $f++; 298: 299: echo "</tr>"; 300: } 301: echo "<tr><td colspan=3> <br></td></tr>"; 302: echo "<form action=group.action.php method=post>"; 303: echo "<input type=hidden name=action value=create>"; 304: echo "<tr><td><input type=text size=20 name=groupname maxlength=120></td><td colspan=2><input type=submit value=\"Create Group\">"; 305: echo " ".hlink("Group:Create")."</td></tr></form>"; 306: echo "</table>"; 307: End_Round(); 308: } 309: 310: else if ($mode=="views") 311: { 312: $t="<b class=\"subtitle\">Views</b> ".hlink("View",12); 313: Start_Round($t,600); 314: echo "<table class=\"nicetablehov\" width=100%>"; 315: // get views... 316: $q="SELECT viewid,vtitle FROM fnview"; 317: $r=$NATS->DB->Query($q); 318: while ($row=$NATS->DB->Fetch_Array($r)) 319: { 320: echo "<tr class=\"nicetablehov\"><td>"; 321: echo "<a href=view.php?viewid=".$row['viewid'].">".$row['vtitle']."</a>"; 322: echo "</td><td>"; 323: echo "<a href=view.edit.php?viewid=".$row['viewid']."><img src=images/options/application.png border=0 title=\"Edit View Options\"></a>"; 324: echo " "; 325: echo "<a href=view.edit.php?viewid=".$row['viewid']."&action=delete><img src=images/options/action_delete.png border=0 title=\"Delete View\"></a>"; 326: echo "</td></tr>"; 327: } 328: 329: echo "<tr><td colspan=2> <br></td></tr>"; 330: echo "<form action=view.edit.php method=post><input type=hidden name=action value=create>"; 331: echo "<tr><td><input type=text name=vtitle size=20 maxlength=64></td><td><input type=submit value=\"Create View\"> "; 332: echo hlink("View:Create")."</td></tr></form>"; 333: echo "</table>"; 334: End_Round(); 335: 336: echo "<br><br>"; 337: $t="<b class=\"subtitle\">Availability Reports ".hlink("Report",12)."</b>"; 338: Start_Round($t,600); 339: echo "<b><a href=report.php>Create New Service Availability Report</a></b> ".hlink("Report",12); 340: echo "<br><br>"; 341: 342: // reports in here 343: $rq="SELECT reportid,reportname FROM fnreport"; 344: $rr=$NATS->DB->Query($rq); 345: if ($NATS->DB->Num_Rows($rr)>0) 346: { 347: echo "<table class=\"nicetablehov\" width=100%>"; 348: while ($rep=$NATS->DB->Fetch_Array($rr)) 349: { 350: echo "<tr class=\"nicetablehov\">"; 351: echo "<td align=left>"; 352: echo "<a href=report.php?reportid=".$rep['reportid'].">".$rep['reportname']."</a>"; 353: echo "</td><td align=right>"; 354: echo "<a href=report.php?mode=delete&reportid=".$rep['reportid'].">"; 355: echo "<img src=images/options/action_delete.png border=0 title=\"Delete Report ".$rep['reportname']."\">"; 356: echo "</a>"; 357: echo " "; 358: echo "</td></tr>"; 359: } 360: echo "</table>"; 361: } 362: 363: End_Round(); 364: 365: } 366: 367: else 368: { 369: echo "Sorry - unknown mode for main.php"; 370: } 371: 372: 373: echo "<br><br>"; 374: 375: ?> 376: 377: 378: <?php 379: Screen_Footer(); 380: /* old PhoneHome Ping Tracker - now in screen as a png 381: $t=$NATS->Cfg->Get("freenats.tracker"); 382: if ( ($t!="") && ($t>0) ) 383: $NATS->PhoneHome(); 384: */ 385: ?> 386: