File: 1.13.2b/server/web/main.php (View as Code)

1: 2: /* ------------------------------------------------------------- 3: This file is part of FreeNATS 4: 5: FreeNATS is (C) Copyright 2008-2011 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'])) $check_update=true; 62: else $check_update=false; 63: if (isset($_REQUEST['quiet_check'])) $quiet_check=true; 64: else $quiet_check=false; 65: 66: if ($check_update) 67: { 68: echo "".$NATS->Lang->Item("checking.updates").": "; 69: echo " 
";
70: if (!$quiet_check) 71: { 72: echo "
";
73: echo $NATS->Lang->Item("update.desc")." "; 74: echo $NATS->Version.$NATS->Release."."; 75: echo "
";
76: } 77: echo "
\n";
78: } 79: 80: 81: if ($mode=="overview") 82: { 83: $t="".$NATS->Lang->Item("overview.subtitle").""; 84: Start_Round($t,600); 85: echo ""; 98: 99: echo ""; 100: $fx=time(); 101: $sx=$fx-(60*60*24); 102: echo ""; 122: echo ""; 123: echo ""; 128: echo ""; 129: echo ""; 163: echo "
"; 86: $al=$NATS->GetAlerts(); 87: if (($al===false)||(count($al)==0)) 88: { 89: echo "".$NATS->Lang->Item("no.monitor.alerts").""; 90: } 91: else 92: { 93: echo ""; 94: echo "".$NATS->Lang->Item("monitor.alerts").""; 95: echo ""; 96: } 97: echo "".$NATS->Lang->Item("check.updates")."

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

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

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

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

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

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

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

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

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

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

";
372: $t="".$NATS->Lang->Item("reports")." ".hlink("Report",12).""; 373: Start_Round($t,600); 374: echo "".$NATS->Lang->Item("create.report")." ".hlink("Report",12); 375: echo "

";
376: 377: // reports in here 378: $rq="SELECT reportid,reportname FROM fnreport"; 379: $rr=$NATS->DB->Query($rq); 380: if ($NATS->DB->Num_Rows($rr)>0) 381: { 382: echo ""; 383: while ($rep=$NATS->DB->Fetch_Array($rr)) 384: { 385: echo ""; 386: echo ""; 394: } 395: echo "
"; 387: echo "".$rep['reportname'].""; 388: echo ""; 389: echo ""; 390: echo "Lang->Item("delete").": ".$rep['reportname']."\">"; 391: echo ""; 392: echo "  "; 393: echo "
";
396: } 397: 398: End_Round(); 399: 400: } 401: 402: else if ($mode=="configsummary") 403: { 404: $scheds=array(); 405: $q="SELECT scheduleid,schedulename FROM fnschedule"; 406: $r=$NATS->DB->Query($q); 407: while ($row=$NATS->DB->Fetch_Array($r)) 408: { 409: $scheds[$row['scheduleid']]=$row['schedulename']; 410: } 411: $NATS->DB->Free($r); 412: 413: echo "".$NATS->Lang->Item("config.summary")."

";
414: echo ""; 415: echo ""; 416: echo ""; 419: echo ""; 422: echo ""; 425: echo ""; 428: echo ""; 431: echo ""; 434: echo ""; 437: echo ""; 440: echo ""; 441: $q="SELECT * FROM fnnode ORDER BY weight ASC"; 442: $r=$NATS->DB->Query($q); 443: while ($row=$NATS->DB->Fetch_Array($r)) 444: { 445: echo ""; 465: 466: echo ""; 467: } 468: $NATS->DB->Free($r); 469: echo "
"; 417: echo $NATS->Lang->Item("nodeid"); 418: echo ""; 420: echo $NATS->Lang->Item("name"); 421: echo ""; 423: echo $NATS->Lang->Item("hostname"); 424: echo ""; 426: echo $NATS->Lang->Item("schedule"); 427: echo ""; 429: echo $NATS->Lang->Item("enabled"); 430: echo ""; 432: echo $NATS->Lang->Item("ping")." / ".$NATS->Lang->Item("required");; 433: echo ""; 435: echo $NATS->Lang->Item("interval"); 436: echo ""; 438: echo $NATS->Lang->Item("nodeside"); 439: echo "
"; 446: echo $row['nodeid']; 447: echo ""; 448: echo $row['nodename']; 449: echo ""; 450: echo $row['hostname']; 451: echo ""; 452: if ($row['scheduleid']==0) $s="All Times"; 453: else if (isset($scheds[$row['scheduleid']])) $s=$scheds[$row['scheduleid']]; 454: else $s="UNKNOWN"; 455: echo $s; 456: echo ""; 457: echo dispyn($row['nodeenabled']); 458: echo ""; 459: echo dispyn($row['pingtest'])." / ".dispyn($row['pingfatal']); 460: echo ""; 461: echo $row['testinterval']; 462: echo ""; 463: echo dispyn($row['nsenabled']); 464: echo "


";
470: 471: } 472: 473: else 474: { 475: echo "Sorry - unknown mode for main.php"; 476: } 477: 478: 479: echo "

";
480: 481: ?> 482: 483: 484: 485: if ($check_update) 486: { 487: echo "\n"; 497: } 498: Screen_Footer(); 499: /* old PhoneHome Ping Tracker - now in screen as a png 500: $t=$NATS->Cfg->Get("freenats.tracker"); 501: if ( ($t!="") && ($t>0) ) 502: $NATS->PhoneHome(); 503: */ 504: ?> 505: