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

1: 2: /* ------------------------------------------------------------- 3: This file is part of FreeNATS 4: 5: FreeNATS is (C) Copyright 2008-2016 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 ""; 164: 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 if ($row['nodeid'] != "") echo $row['nodeid']; 160: else echo $NATS->Lang->Item("node"); 161: echo ""; 162: } 163: echo "
";
165: echo "
";
166: End_Round(); 167: echo "

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

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

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

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


";
473: 474: } 475: 476: else 477: { 478: echo "Sorry - unknown mode for main.php"; 479: } 480: 481: 482: echo "

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