File: 1.11.2a/server/web/main.php (View as Code)

1: 2: /* ------------------------------------------------------------- 3: This file is part of FreeNATS 4: 5: FreeNATS is (C) Copyright 2008-2010 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($NATS->Lang->Item("overview.title"),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: function dispyn($val) 52: { 53: if ($val==0) return "N"; 54: else if ($val==1) return "Y"; 55: else return $val."?"; 56: } 57: 58: ?> 59:
60: 61: if (isset($_REQUEST['check_updates'])) 62: { 63: // check for updates 64: $dq="?CheckVersion=".$NATS->Version."&JSMode=1"; 65: $dl="http://www.purplepixie.org/freenats/download.php"; 66: $du=$dl.$dq; 67: echo "".$NATS->Lang->Item("checking.updates").": "; 68: echo "\n"; 69: echo "
";
70: if (!isset($_REQUEST['quiet_check'])) 71: { 72: echo $NATS->Lang->Item("update.desc")." "; 73: echo $NATS->Version.$NATS->Release."."; 74: echo "
";
75: } 76: echo "
";
77: } 78: 79: 80: if ($mode=="overview") 81: { 82: $t="".$NATS->Lang->Item("overview.subtitle").""; 83: Start_Round($t,600); 84: echo ""; 97: 98: echo ""; 99: $fx=time(); 100: $sx=$fx-(60*60*24); 101: echo ""; 121: echo ""; 122: echo ""; 127: echo ""; 128: echo ""; 162: echo "
"; 85: $al=$NATS->GetAlerts(); 86: if (($al===false)||(count($al)==0)) 87: { 88: echo "".$NATS->Lang->Item("no.monitor.alerts").""; 89: } 90: else 91: { 92: echo ""; 93: echo "".$NATS->Lang->Item("monitor.alerts").""; 94: echo ""; 95: } 96: echo "".$NATS->Lang->Item("check.updates")."

"; 102: echo "".$NATS->Lang->Item("monitoring")."

";
103: $nq="SELECT COUNT(nodeid) FROM fnnode"; 104: $nr=$NATS->DB->Query($nq); 105: if ($nrow=$NATS->DB->Fetch_Array($nr)) $nodecount=$nrow['COUNT(nodeid)']; 106: else $nodecount=0; 107: $NATS->DB->Free($nr); 108: $gq="SELECT COUNT(groupid) FROM fngroup"; 109: $gr=$NATS->DB->Query($gq); 110: if ($nrow=$NATS->DB->Fetch_Array($gr)) $groupcount=$nrow['COUNT(groupid)']; 111: else $groupcount=0; 112: $NATS->DB->Free($gr); 113: echo "".$nodecount." ".$NATS->Lang->Item("nodes.configured")."

";
114: echo "".$groupcount." ".$NATS->Lang->Item("node.groups")."
";
115: echo "
"; 116: echo "".$NATS->Lang->Item("common.tasks")."

";
117: echo "".$NATS->Lang->Item("add.nodes")."
";
118: echo "".$NATS->Lang->Item("email.alerting")."
";
119: echo "".$NATS->Lang->Item("configure.tests")."
";
120: echo "

".$NATS->Lang->Item("test.summaries")."

"; 123: echo "".$NATS->Lang->Item("today")." - "; 124: echo "".$NATS->Lang->Item("last.24h")." - "; 125: echo "".$NATS->Lang->Item("custom").""; 126: echo "

"; 129: /* 130: echo "Installed Test Modules

";
131: echo ""; 132: echo ""; 133: foreach($NATS->Tests->QuickList as $key => $val) 134: { 135: echo ""; 144: } 145: echo "
NameProvidesRevisionAdditional
"; 136: echo $NATS->Tests->Tests[$key]->name; 137: echo ""; 138: echo $NATS->Tests->Tests[$key]->type; 139: echo ""; 140: echo $NATS->Tests->Tests[$key]->revision; 141: echo ""; 142: echo $NATS->Tests->Tests[$key]->additional; 143: echo "
";
146: */ 147: echo "".$NATS->Lang->Item("monitored.nodes")."

";
148: $q="SELECT nodeid,nodename,alertlevel FROM fnnode WHERE nodeenabled=1 ORDER BY alertlevel DESC, weight ASC"; 149: $r=$NATS->DB->Query($q); 150: $first=true; 151: while ($row=$NATS->DB->Fetch_Array($r)) 152: { 153: if ($first) $first=false; 154: else echo ", "; 155: echo ""; 156: echo ""; 157: if ($row['nodename']!="") echo $row['nodename']; 158: else echo $row['nodeid']; 159: echo ""; 160: } 161: echo "
";
163: echo "
";
164: End_Round(); 165: echo "

";
166: } 167: 168: else if ($mode=="nodes") 169: { 170: 171: if ($nm) 172: { 173: $q="SELECT nodeid,weight FROM fnnode ORDER BY weight ASC"; 174: $r=$NATS->DB->Query($q); 175: $nml="".$NATS->Lang->Item("move.before")." "; 181: $NATS->DB->Free($r); 182: } 183: 184: Start_Round("".$NATS->Lang->Item("nodes")." ".hlink("Node",12),600); 185: $q="SELECT nodeid,nodename,alertlevel,weight FROM fnnode ORDER BY weight ASC"; 186: $r=$NATS->DB->Query($q); 187: 188: echo ""; 189: echo ""; 191: $f=0; 192: $l=$NATS->DB->Num_Rows($r); 193: while ($row=$NATS->DB->Fetch_Array($r)) 194: { 195: //echo ""; 210: 211: if ($nm) 212: { 213: echo "
";
214: echo ""; 215: echo ""; 216: } 217: 218: echo ""; 243: 244: if ($nm) echo ""; 245: $f++; 246: 247: echo ""; 248: } 249: echo ""; 250: echo "
";
251: echo ""; 255: 256: $fx=time(); 257: $sx=$fx-(60*60*24); 258: echo ""; 262: 263: echo "
".$NATS->Lang->Item("node")."".$NATS->Lang->Item("options").""; 190: echo "".$NATS->Lang->Item("move")."
"; 196: echo "
"; 197: echo ""; 198: 199: echo ""; 200: echo $row['nodename']; 201: echo ""; 202: 203: echo " "; 204: echo "(".$row['nodeid'].")"; 205: echo ""; 206: echo " Lang->Item("edit")."\">"; 207: echo " "; 208: echo "Lang->Item("delete")."\"> "; 209: echo ""; 219: if ($f==0) echo ""; 220: else 221: { 222: echo ""; 223: echo ""; 224: echo ""; 225: } 226: 227: if ($f>=($l-1)) echo ""; 228: else 229: { 230: echo ""; 231: echo ""; 232: echo ""; 233: } 234: 235: if ($nm) 236: { 237: echo " [".$row['weight']."] "; 238: echo $nml; 239: echo " "; 240: } 241: 242: echo "
 
Lang->Item("create.node")."\"> "; 252: echo hlink("Node:Create"); 253: if ($nm) echo " ".$NATS->Lang->Item("refresh.weight").""; 254: echo "
Summary: ".$NATS->Lang->Item("today")." - "; 259: echo "".$NATS->Lang->Item("last.24h")." - "; 260: echo "".$NATS->Lang->Item("custom")." - "; 261: echo "".$NATS->Lang->Item("config")."
";
264: End_Round(); 265: } 266: 267: else if ($mode=="groups") 268: { 269: 270: $t="".$NATS->Lang->Item("node.groups")." ".hlink("Group",12); 271: Start_Round($t,600); 272: 273: $q="SELECT groupid,groupname FROM fngroup ORDER BY weight ASC"; 274: $r=$NATS->DB->Query($q); 275: $f=0; 276: echo ""; 277: $l=$NATS->DB->Num_Rows($r); 278: while ($row=$NATS->DB->Fetch_Array($r)) 279: { 280: echo ""; 281: echo ""; 282: echo ""; 285: echo ""; 304: $f++; 305: 306: echo ""; 307: } 308: echo ""; 309: echo "
";
310: echo ""; 311: echo ""; 313: echo "
GroupAlertLevel($row['groupid'])."\">".$row['groupname']."Lang->Item("edit")."\">"; 283: echo " "; 284: echo "Lang->Item("delete")."\">"; 286: 287: if ($f==0) echo ""; 288: else 289: { 290: echo ""; 291: echo ""; 292: echo ""; 293: } 294: 295: if ($f>=($l-1)) echo ""; 296: else 297: { 298: echo ""; 299: echo ""; 300: echo ""; 301: } 302: 303: echo "
 
Lang->Item("create.group")."\">"; 312: echo " ".hlink("Group:Create")."
";
314: End_Round(); 315: } 316: 317: else if ($mode=="views") 318: { 319: $t="".$NATS->Lang->Item("views")." ".hlink("View",12); 320: Start_Round($t,600); 321: echo ""; 322: // get views... 323: $q="SELECT viewid,vtitle FROM fnview"; 324: $r=$NATS->DB->Query($q); 325: while ($row=$NATS->DB->Fetch_Array($r)) 326: { 327: echo ""; 334: } 335: 336: echo ""; 337: echo "
";
338: echo ""; 340: echo "
"; 328: echo "".$row['vtitle'].""; 329: echo ""; 330: echo "Lang->Item("edit")."\">"; 331: echo " "; 332: echo "Lang->Item("delete")."\">"; 333: echo "
 
Lang->Item("create.view")."\"> "; 339: echo hlink("View:Create")."
";
341: End_Round(); 342: 343: echo "

";
344: $t="".$NATS->Lang->Item("reports")." ".hlink("Report",12).""; 345: Start_Round($t,600); 346: echo "".$NATS->Lang->Item("create.report")." ".hlink("Report",12); 347: echo "

";
348: 349: // reports in here 350: $rq="SELECT reportid,reportname FROM fnreport"; 351: $rr=$NATS->DB->Query($rq); 352: if ($NATS->DB->Num_Rows($rr)>0) 353: { 354: echo ""; 355: while ($rep=$NATS->DB->Fetch_Array($rr)) 356: { 357: echo ""; 358: echo ""; 366: } 367: echo "
"; 359: echo "".$rep['reportname'].""; 360: echo ""; 361: echo ""; 362: echo "Lang->Item("delete").": ".$rep['reportname']."\">"; 363: echo ""; 364: echo "  "; 365: echo "
";
368: } 369: 370: End_Round(); 371: 372: } 373: 374: else if ($mode=="configsummary") 375: { 376: $scheds=array(); 377: $q="SELECT scheduleid,schedulename FROM fnschedule"; 378: $r=$NATS->DB->Query($q); 379: while ($row=$NATS->DB->Fetch_Array($r)) 380: { 381: $scheds[$row['scheduleid']]=$row['schedulename']; 382: } 383: $NATS->DB->Free($r); 384: 385: echo "".$NATS->Lang->Item("config.summary")."

";
386: echo ""; 387: echo ""; 388: echo ""; 391: echo ""; 394: echo ""; 397: echo ""; 400: echo ""; 403: echo ""; 406: echo ""; 409: echo ""; 412: echo ""; 413: $q="SELECT * FROM fnnode ORDER BY weight ASC"; 414: $r=$NATS->DB->Query($q); 415: while ($row=$NATS->DB->Fetch_Array($r)) 416: { 417: echo ""; 437: 438: echo ""; 439: } 440: $NATS->DB->Free($r); 441: echo "
"; 389: echo $NATS->Lang->Item("nodeid"); 390: echo ""; 392: echo $NATS->Lang->Item("name"); 393: echo ""; 395: echo $NATS->Lang->Item("hostname"); 396: echo ""; 398: echo $NATS->Lang->Item("schedule"); 399: echo ""; 401: echo $NATS->Lang->Item("enabled"); 402: echo ""; 404: echo $NATS->Lang->Item("ping")." / ".$NATS->Lang->Item("required");; 405: echo ""; 407: echo $NATS->Lang->Item("interval"); 408: echo ""; 410: echo $NATS->Lang->Item("nodeside"); 411: echo "
"; 418: echo $row['nodeid']; 419: echo ""; 420: echo $row['nodename']; 421: echo ""; 422: echo $row['hostname']; 423: echo ""; 424: if ($row['scheduleid']==0) $s="All Times"; 425: else if (isset($scheds[$row['scheduleid']])) $s=$scheds[$row['scheduleid']]; 426: else $s="UNKNOWN"; 427: echo $s; 428: echo ""; 429: echo dispyn($row['nodeenabled']); 430: echo ""; 431: echo dispyn($row['pingtest'])." / ".dispyn($row['pingfatal']); 432: echo ""; 433: echo $row['testinterval']; 434: echo ""; 435: echo dispyn($row['nsenabled']); 436: echo "


";
442: 443: } 444: 445: else 446: { 447: echo "Sorry - unknown mode for main.php"; 448: } 449: 450: 451: echo "

";
452: 453: ?> 454: 455: 456: 457: Screen_Footer(); 458: /* old PhoneHome Ping Tracker - now in screen as a png 459: $t=$NATS->Cfg->Get("freenats.tracker"); 460: if ( ($t!="") && ($t>0) ) 461: $NATS->PhoneHome(); 462: */ 463: ?> 464: