File: 1.01.0a/server/web/main.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 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 "".$_REQUEST['message']."
";
45: $poplist[]=$_REQUEST['message']; 46: } 47: 48: if (isset($_REQUEST['nodemove'])) $nm=true; 49: else $nm=false; 50: 51: ?> 52:
53: 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 "Checking for Updates: "; 61: echo "\n"; 62: echo "
";
63: if (!isset($_REQUEST['quiet_check'])) 64: { 65: echo "If this test fails you can check on the website.
";
66: echo "You are currently running version "; 67: echo $NATS->Version.$NATS->Release."."; 68: echo "
It is recommended that you check regularly for updates
";
69: } 70: echo "
";
71: } 72: 73: 74: if ($mode=="overview") 75: { 76: $t="FreeNATS Overview"; 77: Start_Round($t,600); 78: echo ""; 91: 92: echo ""; 93: $fx=time(); 94: $sx=$fx-(60*60*24); 95: echo ""; 115: echo ""; 116: echo ""; 121: echo ""; 122: echo ""; 156: echo "
"; 79: $al=$NATS->GetAlerts(); 80: if (($al===false)||(count($al)==0)) 81: { 82: echo "No Monitoring Alerts"; 83: } 84: else 85: { 86: echo ""; 87: echo "Monitoring Alerts"; 88: echo ""; 89: } 90: echo "Check for Updates

"; 96: echo "Monitoring

";
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 "".$nodecount." Nodes Configured

";
108: echo "".$groupcount." Node Groups
";
109: echo "
"; 110: echo "Common Tasks

";
111: echo "Add Nodes
";
112: echo "Email Alerting
";
113: echo "Configure Tests
";
114: echo "

Test Summaries

"; 117: echo "Today - "; 118: echo "Last 24 Hrs - "; 119: echo "Custom"; 120: echo "

"; 123: /* 124: echo "Installed Test Modules

";
125: echo ""; 126: echo ""; 127: foreach($NATS->Tests->QuickList as $key => $val) 128: { 129: echo ""; 138: } 139: echo "
NameProvidesRevisionAdditional
"; 130: echo $NATS->Tests->Tests[$key]->name; 131: echo ""; 132: echo $NATS->Tests->Tests[$key]->type; 133: echo ""; 134: echo $NATS->Tests->Tests[$key]->revision; 135: echo ""; 136: echo $NATS->Tests->Tests[$key]->additional; 137: echo "
";
140: */ 141: echo "Monitored Nodes

";
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 ""; 150: echo ""; 151: if ($row['nodename']!="") echo $row['nodename']; 152: else echo $row['nodeid']; 153: echo ""; 154: } 155: echo "
";
157: echo "
";
158: End_Round(); 159: echo "

";
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="Move Before "; 175: $NATS->DB->Free($r); 176: } 177: 178: Start_Round("Nodes ".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 ""; 183: echo ""; 184: $f=0; 185: $l=$NATS->DB->Num_Rows($r); 186: while ($row=$NATS->DB->Fetch_Array($r)) 187: { 188: //echo ""; 203: 204: if ($nm) 205: { 206: echo "
";
207: echo ""; 208: echo ""; 209: } 210: 211: echo ""; 236: 237: if ($nm) echo ""; 238: $f++; 239: 240: echo ""; 241: } 242: echo ""; 243: echo "
";
244: echo ""; 248: 249: $fx=time(); 250: $sx=$fx-(60*60*24); 251: echo ""; 255: 256: echo "
NodeOptionsMove
"; 189: echo "
"; 190: echo ""; 191: 192: echo ""; 193: echo $row['nodename']; 194: echo ""; 195: 196: echo " "; 197: echo "(".$row['nodeid'].")"; 198: echo ""; 199: echo " "; 200: echo " "; 201: echo " "; 202: echo ""; 212: if ($f==0) echo ""; 213: else 214: { 215: echo ""; 216: echo ""; 217: echo ""; 218: } 219: 220: if ($f>=($l-1)) echo ""; 221: else 222: { 223: echo ""; 224: echo ""; 225: echo ""; 226: } 227: 228: if ($nm) 229: { 230: echo " [".$row['weight']."] "; 231: echo $nml; 232: echo " "; 233: } 234: 235: echo "
 
"; 245: echo hlink("Node:Create"); 246: if ($nm) echo " Refresh Weighting"; 247: echo "
Summary: Today - "; 252: echo "Last 24 Hrs - "; 253: echo "Custom"; 254: echo "
";
257: End_Round(); 258: } 259: 260: else if ($mode=="groups") 261: { 262: 263: $t="Node Groups ".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 ""; 270: $l=$NATS->DB->Num_Rows($r); 271: while ($row=$NATS->DB->Fetch_Array($r)) 272: { 273: echo ""; 274: echo ""; 275: echo ""; 278: echo ""; 297: $f++; 298: 299: echo ""; 300: } 301: echo ""; 302: echo "
";
303: echo ""; 304: echo ""; 306: echo "
GroupAlertLevel($row['groupid'])."\">".$row['groupname'].""; 276: echo " "; 277: echo ""; 279: 280: if ($f==0) echo ""; 281: else 282: { 283: echo ""; 284: echo ""; 285: echo ""; 286: } 287: 288: if ($f>=($l-1)) echo ""; 289: else 290: { 291: echo ""; 292: echo ""; 293: echo ""; 294: } 295: 296: echo "
 
"; 305: echo " ".hlink("Group:Create")."
";
307: End_Round(); 308: } 309: 310: else if ($mode=="views") 311: { 312: $t="Views ".hlink("View",12); 313: Start_Round($t,600); 314: echo ""; 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 ""; 327: } 328: 329: echo ""; 330: echo "
";
331: echo ""; 333: echo "
"; 321: echo "".$row['vtitle'].""; 322: echo ""; 323: echo ""; 324: echo " "; 325: echo ""; 326: echo "
 
"; 332: echo hlink("View:Create")."
";
334: End_Round(); 335: 336: echo "

";
337: $t="Availability Reports ".hlink("Report",12).""; 338: Start_Round($t,600); 339: echo "Create New Service Availability Report ".hlink("Report",12); 340: echo "

";
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 ""; 348: while ($rep=$NATS->DB->Fetch_Array($rr)) 349: { 350: echo ""; 351: echo ""; 359: } 360: echo "
"; 352: echo "".$rep['reportname'].""; 353: echo ""; 354: echo ""; 355: echo ""; 356: echo ""; 357: echo "  "; 358: echo "
";
361: } 362: 363: End_Round(); 364: 365: } 366: 367: else 368: { 369: echo "Sorry - unknown mode for main.php"; 370: } 371: 372: 373: echo "

";
374: 375: ?> 376: 377: 378: 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: