Viewing File server/web/history.test.php of 0.02.14a
|
1: <?php 2: ob_start(); 3: require("include.php"); 4: $NATS->Start(); 5: if (!$NATS_Session->Check($NATS->DB)) 6: { 7: header("Location: ./?login_msg=Invalid+Or+Expired+Session"); 8: exit(); 9: } 10: if ($NATS_Session->userlevel<1) UL_Error("View Test History"); 11: 12: $tmode=""; 13: switch($_REQUEST['testid'][0]) 14: { 15: case "L": $tmode="local"; 16: break; 17: default: $tmode="unknown"; 18: } 19: $stid=substr($_REQUEST['testid'],1,128); 20: 21: // get test info 22: $tnode=""; 23: $tname=""; 24: $ttype=""; 25: $tparam=""; 26: $tlastrunx=""; 27: $trecord=1; 28: 29: $q=""; 30: if ($tmode=="local") $q="SELECT * FROM fnlocaltest WHERE localtestid=".ss($stid); 31: 32: $r=$NATS->DB->Query($q); 33: 34: if (!$row=$NATS->DB->Fetch_Array($r)) 35: { 36: header("main.php?message=Error+opening+test+history"); 37: exit(); 38: } 39: 40: $tnode=$row['nodeid']; 41: $ttype=$row['testtype']; 42: $tparam=$row['testparam']; 43: $tlastrunx=$row['lastrunx']; 44: $tname=lText($ttype); 45: if ($tparam!="") $tname.=" (".$tparam.")"; 46: $NATS->DB->Free($r); 47: Screen_Header("History for ".$tname." on ".$tnode,1); 48: ob_end_flush(); 49: 50: $td_day=date("d"); 51: $td_mon=date("m"); 52: $td_yr=date("Y"); 53: 54: $start=array(); 55: $finish=array(); 56: if (isset($_REQUEST['st_day'])) $start['day']=$_REQUEST['st_day']; 57: else $start['day']=$td_day; 58: if (isset($_REQUEST['st_mon'])) $start['mon']=$_REQUEST['st_mon']; 59: else $start['mon']=$td_mon; 60: if (isset($_REQUEST['st_yr'])) $start['yr']=$_REQUEST['st_yr']; 61: else $start['yr']=$td_yr; 62: if (isset($_REQUEST['st_hour'])) $start['hour']=$_REQUEST['st_hour']; 63: else $start['hour']=0; 64: if (isset($_REQUEST['st_min'])) $start['min']=$_REQUEST['st_min']; 65: else $start['min']=0; 66: if (isset($_REQUEST['st_sec'])) $start['sec']=$_REQUEST['st_sec']; 67: else $start['sec']=0; 68: 69: if (isset($_REQUEST['fi_day'])) $finish['day']=$_REQUEST['fi_day']; 70: else $finish['day']=$td_day; 71: if (isset($_REQUEST['fi_mon'])) $finish['mon']=$_REQUEST['fi_mon']; 72: else $finish['mon']=$td_mon; 73: if (isset($_REQUEST['fi_yr'])) $finish['yr']=$_REQUEST['fi_yr']; 74: else $finish['yr']=$td_yr; 75: if (isset($_REQUEST['fi_hour'])) $finish['hour']=$_REQUEST['fi_hour']; 76: else $finish['hour']=23; 77: if (isset($_REQUEST['fi_min'])) $finish['min']=$_REQUEST['fi_min']; 78: else $finish['min']=59; 79: if (isset($_REQUEST['fi_sec'])) $finish['sec']=$_REQUEST['fi_sec']; 80: else $finish['sec']=59; 81: 82: 83: $startx=mktime($start['hour'],$start['min'],$start['sec'],$start['mon'],$start['day'],$start['yr']); 84: $finishx=mktime($finish['hour'],$finish['min'],$finish['sec'],$finish['mon'],$finish['day'],$finish['yr']); 85: //echo $startx." ".nicedt($startx)."<br>"; 86: //echo $finishx." ".nicedt($finishx)."<br>"; 87: 88: echo "<br><table border=0>"; 89: echo "<tr><td align=left valign=top>"; 90: echo "<b class=\"subtitle\">".$tname."</b><br>"; 91: 92: echo "<table class=\"nicetable\">"; 93: echo "<tr><td align=right>Node :</td>"; 94: echo "<td align=left><a href=node.php?nodeid=".$tnode.">".$tnode."</a>"; 95: echo "</tr></tr>"; 96: echo "<tr><td align=right valign=top>Last Run :</td>"; 97: echo "<td align=left align=top>"; 98: if ($tlastrunx>0) 99: { 100: echo nicedt($tlastrunx)."<br>"; 101: echo dtago($tlastrunx); 102: } 103: else echo "Never"; 104: echo "</td>"; 105: echo "</tr></tr>"; 106: echo "</table>"; 107: 108: echo "</td><td width=50> </td><td align=left valign=top>"; 109: 110: echo "<b><u>Reporting Period</u></b><br>"; 111: 112: echo "<table class=\"nicetable\">"; 113: echo "<tr><td> </td><td>Hour</td><td>Min</td><td>Sec</td><td>Day</td><td>Mon</td><td>Year</td></tr>"; 114: echo "<form action=history.test.php method=post>"; 115: echo "<input type=hidden name=testid value=\"".$_REQUEST['testid']."\">"; 116: 117: function slist($var,$min,$max,$val) 118: { 119: echo "\n<select name=\"".$var."\">\n"; 120: echo "<option value=\"".$val."\">".$val."</option>\n"; 121: for ($a=$min; $a<=$max; $a++) 122: echo "<option value=\"".$a."\">".$a."</option>\n"; 123: echo "</select>\n"; 124: } 125: 126: 127: echo "<tr><td><b>Start:</b></td>"; 128: echo "<td>"; 129: slist("st_hour",0,23,$start['hour']); 130: echo ":"; 131: echo "</td>"; 132: 133: echo "<td>"; 134: slist("st_min",0,59,$start['min']); 135: echo ":"; 136: echo "</td>"; 137: 138: echo "<td>"; 139: slist("st_sec",0,59,$start['sec']); 140: echo " "; 141: echo "</td>"; 142: 143: echo "<td>"; 144: slist("st_day",1,31,$start['day']); 145: echo "/"; 146: echo "</td>"; 147: 148: echo "<td>"; 149: slist("st_mon",1,12,$start['mon']); 150: echo "/"; 151: echo "</td>"; 152: 153: echo "<td>"; 154: echo "<input type=text name=st_yr value=\"".$start['yr']."\" size=5 maxlength=4>"; 155: 156: echo " <a href=history.test.php?testid=".$_REQUEST['testid'].">Today</a>"; 157: 158: echo "</td>"; 159: 160: echo "</tr>"; 161: 162: // ----- finish 163: 164: echo "<tr><td><b>Finish:</b></td>"; 165: echo "<td>"; 166: slist("fi_hour",0,23,$finish['hour']); 167: echo ":"; 168: echo "</td>"; 169: 170: echo "<td>"; 171: slist("fi_min",0,59,$finish['min']); 172: echo ":"; 173: echo "</td>"; 174: 175: echo "<td>"; 176: slist("fi_sec",0,59,$finish['sec']); 177: echo " "; 178: echo "</td>"; 179: 180: echo "<td>"; 181: slist("fi_day",1,31,$finish['day']); 182: echo "/"; 183: echo "</td>"; 184: 185: echo "<td>"; 186: slist("fi_mon",1,12,$finish['mon']); 187: echo "/"; 188: echo "</td>"; 189: 190: echo "<td>"; 191: echo "<input type=text name=fi_yr value=\"".$finish['yr']."\" size=5 maxlength=4>"; 192: 193: echo " <input type=submit value=Go>"; 194: 195: echo "</td>"; 196: 197: echo "</tr>"; 198: 199: // 7 200: echo "<tr><td><b>Opts:</b></td>"; 201: echo "<td colspan=\"6\">"; 202: function cbd($var,$name) 203: { 204: if (isset($_REQUEST[$var])) $s=" checked"; 205: else $s=""; 206: echo "<input type=checkbox name=\"".$var."\" value=1".$s."> ".$name; 207: } 208: cbd("disp_hdata","Hide Data"); 209: echo " "; 210: cbd("disp_pass","Show Passed"); 211: echo " "; 212: cbd("hide_graph","Hide Graph"); 213: echo "</td></tr>"; 214: 215: echo "</form>"; 216: echo "</table>"; 217: 218: echo "</td></tr></table>"; 219: 220: echo "<br><br>"; 221: 222: echo "<b>Report from ".nicedt($startx)." to ".nicedt($finishx); 223: // echo " (".nicediff($finishx-$startx).")"; 224: echo "</b><br><br>"; 225: 226: // graph data 227: if (!isset($_REQUEST['hide_graph'])) 228: { 229: mt_srand(microtime()*1000000); 230: $i=mt_rand(1000,1000000); 231: echo "<img src=test.graph.php?testid=".$_REQUEST['testid']."&startx=".$startx."&finishx=".$finishx."&nodeid=".$tnode."&i=".$i."><br><br>"; 232: } 233: 234: // table data 235: 236: if (!isset($_REQUEST['disp_hdata'])) 237: { 238: $q="SELECT alertlevel,testvalue,recordx FROM fnrecord WHERE "; 239: $q.="testid=\"".ss($_REQUEST['testid'])."\" AND recordx>=".$startx." AND recordx<=".$finishx; 240: //if (!isset($_REQUEST['disp_pass'])) $q.=" AND alertlevel!=0"; 241: $q.=" ORDER BY recordx DESC"; 242: //echo $q; 243: $r=$NATS->DB->Query($q); 244: 245: $testc=0; 246: $tested=0; 247: $passc=0; 248: $warnc=0; 249: $failc=0; 250: $levelt=0; 251: 252: echo "<table class=\"nicetable\">"; 253: while ($row=$NATS->DB->Fetch_Array($r)) 254: { 255: if (isset($_REQUEST['disp_pass']) || ($row['alertlevel']!=0) ) 256: { 257: echo "<tr><td>".nicedt($row['recordx'])."</td>"; 258: echo "<td><b class=\"al".$row['alertlevel']."\">".oText($row['alertlevel'])."</b></td>"; 259: echo "<td>".$row['testvalue']."</td>"; 260: echo "</tr>"; 261: } 262: $testc++; 263: switch ($row['alertlevel']) 264: { 265: case 0: 266: $passc++; 267: $tested++; 268: $levelt+=$row['testvalue']; 269: break; 270: case 1: 271: $warnc++; 272: $tested++; 273: $levelt+=$row['testvalue']; 274: break; 275: case 2: 276: $failc++; 277: $tested++; 278: $levelt+=$row['testvalue']; 279: break; 280: } 281: } 282: 283: echo "</tr>"; 284: echo "</table>"; 285: } 286: echo "<br><br>"; 287: echo "<table border=0>"; 288: 289: function np($big,$part) 290: { 291: if ($big==0) return "n/a"; 292: if ($part==0) return "0%"; 293: 294: $p=($part/$big)*100; 295: $p=round($p,2); 296: return $p."%"; 297: } 298: 299: 300: echo "<tr><td>".$passc." passed out of ".$tested." valid tests"; 301: echo "</td><td> </td><td>"; 302: echo np($tested,$passc); 303: echo "</td></tr>"; 304: 305: $notpass=$tested-$passc; 306: 307: echo "<tr><td>".$notpass." did not pass out of ".$tested." valid tests"; 308: echo "</td><td> </td><td>"; 309: echo np($tested,$notpass); 310: echo "</td></tr>"; 311: 312: echo "<tr><td colspan=3> <br></td></tr>"; 313: 314: echo "<tr><td>".$warnc." generated warnings out of ".$tested." valid tests"; 315: echo "</td><td> </td><td>"; 316: echo np($tested,$warnc); 317: echo "</td></tr>"; 318: 319: echo "<tr><td>".$failc." generated failures out of ".$tested." valid tests"; 320: echo "</td><td> </td><td>"; 321: echo np($tested,$failc); 322: echo "</td></tr>"; 323: 324: echo "<tr><td>".$warnc." generated warnings out of ".$notpass." unpassed tests"; 325: echo "</td><td> </td><td>"; 326: echo np($notpass,$warnc); 327: echo "</td></tr>"; 328: 329: echo "<tr><td>".$failc." generated failures out of ".$notpass." unpassed tests"; 330: echo "</td><td> </td><td>"; 331: echo np($notpass,$failc); 332: echo "</td></tr>"; 333: 334: echo "<tr><td colspan=3> <br></td></tr>"; 335: 336: echo "<tr><td>the average test value returned by valid tests was</td>"; 337: echo "<td> </td><td>"; 338: if ($tested<=0) echo "n/a"; 339: else if ($levelt==0) echo "0"; 340: else echo round($levelt/$tested,4); 341: echo "</td></tr>"; 342: 343: echo "<tr><td colspan=3> <br></td></tr>"; 344: 345: echo "<tr><td>".$testc." records of which ".$tested." returned a valid alert level"; 346: echo "</td><td> </td><td>"; 347: echo np($testc,$tested); 348: echo "</td></tr>"; 349: 350: $nowx=time(); 351: if ($finishx>$nowx) $fx=$nowx; 352: else $fx=$nowx; 353: $p=$fx-$startx; 354: $five_min=60*5; 355: $shouldhave=floor($p/$five_min); 356: 357: 358: echo "<tr><td>".$testc." records and you <i>should have</i> ".hlink("History:Should",12)." ".$shouldhave; 359: echo "</td><td> </td><td>"; 360: echo np($shouldhave,$testc); 361: echo "</td></tr>"; 362: 363: echo "</table><br>"; 364: 365: Screen_Footer(); 366: ?> 367: