File: 0.02.61a/server/web/view.edit.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: if ($NATS_Session->userlevel<5) UL_Error("Edit View"); 32: 33: function chs($var,$def=0) 34: { 35: if (isset($_REQUEST[$var])) return ss($_REQUEST[$var]); 36: else return $def; 37: } 38: 39: 40: if (isset($_REQUEST['action'])) 41: { 42: switch ($_REQUEST['action']) 43: { 44: case "create": 45: $q="INSERT INTO fnview(vtitle,vclick,vstyle) VALUES(\"".ss($_REQUEST['vtitle'])."\",\"standard\",\"standard\")"; 46: $NATS->DB->Query($q); 47: $_REQUEST['viewid']=$NATS->DB->Insert_Id(); 48: $_REQUEST['show_options']=1; 49: $msg="Created View"; 50: break; 51: 52: case "delete": 53: if (!isset($_REQUEST['confirmed'])) 54: { 55: $back=urlencode("view.edit.php?action=delete&confirmed=1&viewid=".$_REQUEST['viewid']); 56: $link="confirm.php?action=Delete+View&back=".$back; 57: header("Location: ".$link); 58: exit(); 59: } 60: // otherwise delete 61: $qi="DELETE FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid']); 62: $NATS->DB->Query($qi); 63: $idel=$NATS->DB->Affected_Rows(); 64: $q="DELETE FROM fnview WHERE viewid=".ss($_REQUEST['viewid']); 65: $NATS->DB->Query($q); 66: $vdel=$NATS->DB->Affected_Rows(); 67: $msg="Deleted ".$vdel." Views (".$idel." Items)"; 68: header("Location: main.php?message=".urlencode($msg)); 69: exit(); 70: break; 71: 72: case "save_edit": 73: if (isset($_REQUEST['vpublic'])) $public=1; 74: else $public=0; 75: if (!is_numeric($_REQUEST['vrefresh'])) $vref=0; 76: else $vref=ss($_REQUEST['vrefresh']); 77: $q="UPDATE fnview SET vtitle=\"".ss($_REQUEST['vtitle'])."\",vstyle=\"".ss($_REQUEST['vstyle'])."\","; 78: $q.="vclick=\"".ss($_REQUEST['vclick'])."\",vpublic=".$public.",vlinkv=".ss($_REQUEST['vlinkv']).",vrefresh=".$vref; 79: $q.=",vcolumns=".ss($_REQUEST['vcolumns']); 80: $q.=" WHERE viewid=".ss($_REQUEST['viewid']); 81: $NATS->DB->Query($q); 82: if ($NATS->DB->Affected_Rows()<=0) $msg="Failed to update or nothing changed"; 83: else $msg="Saved changes ok"; 84: break; 85: 86: case "create_item": 87: $wq="SELECT iweight FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." ORDER BY iweight DESC LIMIT 0,1"; 88: $wr=$NATS->DB->Query($wq); 89: if ($row=$NATS->DB->Fetch_Array($wr)) 90: { 91: $iweight=$row['iweight']+10; 92: } 93: else $iweight=10; 94: $NATS->DB->Free($wr); 95: 96: if (isset($_REQUEST['iname'])) $iname=ss($_REQUEST['iname']); 97: else $iname=""; 98: 99: $itype=ss($_REQUEST['itype']); 100: if ($itype=="node") $ioption=ss($_REQUEST['ioption_node']); 101: else if($itype=="group") $ioption=ss($_REQUEST['ioption_group']); 102: else if($itype=="testgraph") $ioption=ss($_REQUEST['ioption_testgraph']."/".$_REQUEST['ioption_testgraph_time']); 103: else if($itype=="testdetail") 104: { 105: $ioption=ss($_REQUEST['ioption_testdetail']); 106: $iname=ss($_REQUEST['iname_testdetail']); 107: } 108: else if($itype=="title") $ioption=ss($_REQUEST['ioption_title']); 109: else $ioption=""; 110: $q="INSERT INTO fnviewitem(viewid,itype,ioption,iweight,iname) VALUES(".ss($_REQUEST['viewid']).","; 111: $q.="\"".$itype."\",\"".$ioption."\",".$iweight.",\"".$iname."\")"; 112: $NATS->DB->Query($q); 113: if ($NATS->DB->Affected_Rows()>0) $msg="Created Item"; 114: else $msg="Create Item Failed"; 115: break; 116: 117: case "del_item": 118: $q="DELETE FROM fnviewitem WHERE viewitemid=".ss($_REQUEST['viewitemid']); 119: $NATS->DB->Query($q); 120: if ($NATS->DB->Affected_Rows()>0) $msg="Deleted Item"; 121: else $msg="Delete Item Failed"; 122: break; 123: 124: case "save_view_item": 125: $icol=chs("icolour",0); 126: $itxt=chs("itextstatus",0); 127: $isize=chs("isize",0); 128: $igraphic=chs("igraphic",0); 129: $idetail=chs("idetail",0); 130: $q="UPDATE fnviewitem SET "; 131: $q.="icolour=".$icol.","; 132: $q.="itextstatus=".$itxt.","; 133: $q.="isize=".$isize.","; 134: $q.="igraphic=".$igraphic.","; 135: $q.="idetail=".$idetail." "; 136: $q.="WHERE viewitemid=".ss($_REQUEST['viewitemid']); 137: $NATS->DB->Query($q); 138: //echo $q; 139: if ($NATS->DB->Affected_Rows()<=0) $msg="Save Failed or Nothing Changed"; 140: else $msg="Saved Item Changes"; 141: break; 142: 143: case "move_item": 144: if (isset($_REQUEST['dir'])) $dir=$_REQUEST['dir']; 145: else $dir="up"; 146: 147: $mywq="SELECT iweight FROM fnviewitem WHERE viewitemid=".ss($_REQUEST['viewitemid']); 148: $mywr=$NATS->DB->Query($mywq); 149: $row=$NATS->DB->Fetch_Array($mywr); 150: $myweight=$row['iweight']; 151: $NATS->DB->Free($mywr); 152: 153: if ($dir=="up") // get the next lowest one down 154: { 155: $q="SELECT viewitemid,iweight FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." AND iweight<".$myweight." "; 156: $q.="ORDER BY iweight DESC LIMIT 0,1"; 157: $r=$NATS->DB->Query($q); 158: if ($row=$NATS->DB->Fetch_Array($r)) // found one to swap with 159: { 160: $uq="UPDATE fnviewitem SET iweight=".$myweight." WHERE viewitemid=".$row['viewitemid']; 161: $NATS->DB->Query($uq); 162: $uq="UPDATE fnviewitem SET iweight=".$row['iweight']." WHERE viewitemid=".ss($_REQUEST['viewitemid']); 163: $NATS->DB->Query($uq); 164: $msg="Moved Item"; 165: } 166: else $msg="Nowhere to Move Item To"; 167: } 168: else if ($dir=="down") // get the next highest 169: { 170: $q="SELECT viewitemid,iweight FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." AND iweight>".$myweight." "; 171: $q.="ORDER BY iweight DESC LIMIT 0,1"; 172: $r=$NATS->DB->Query($q); 173: if ($row=$NATS->DB->Fetch_Array($r)) // found one to swap with 174: { 175: $uq="UPDATE fnviewitem SET iweight=".$myweight." WHERE viewitemid=".$row['viewitemid']; 176: $NATS->DB->Query($uq); 177: $uq="UPDATE fnviewitem SET iweight=".$row['iweight']." WHERE viewitemid=".ss($_REQUEST['viewitemid']); 178: $NATS->DB->Query($uq); 179: $msg="Moved Item"; 180: } 181: else $msg="Nowhere to Move Item To"; 182: } 183: 184: break; 185: 186: default: $msg="Unknown Action"; 187: } 188: } 189: 190: ob_end_flush(); 191: Screen_Header("View Editor",1); 192: 193: 194: $q="SELECT * FROM fnview WHERE viewid=".ss($_REQUEST['viewid'])." LIMIT 0,1"; 195: $r=$NATS->DB->Query($q); 196: if (!$row=$NATS->DB->Fetch_Array($r)) 197: { 198: echo "No such view.

";
199: Screen_Footer(); 200: exit(); 201: } 202: 203: $NATS->DB->Free($r); 204: if (isset($msg)) 205: { 206: echo "".$msg."

";
207: $poplist[]=$msg; 208: } 209: 210: echo "
"; 211: echo "Editing View: ".$row['vtitle'].""; 212: echo "Preview View / "; 213: echo "Link to View"; 214: echo "
";
215: echo "
";
216: 217: echo "
"; 218: echo "
"; 219: echo ""; 220: 221: echo ""; 222: echo ""; 223: 224: echo ""; 228: echo ""; 229: 230: echo ""; 231: echo ""; 236: echo ""; 237: 238: echo ""; 239: echo ""; 254: 255: echo ""; 256: echo ""; 288: echo ""; 292: echo ""; 296: echo ""; 299: echo "
View Title"; 225: echo ""; 226: echo ""; 227: echo "
 
Public View"; 232: if ($row['vpublic']==1) $s=" checked"; 233: else $s=""; 234: echo " ".hlink("View:Public"); 235: echo "
 
Page Style"; 240: if ($row['vstyle']=="standard") $s=" checked"; 241: else $s=""; 242: echo " Standard
";
243: echo "Standard full-page headers and footers with "local" page and style includes

";
244: if ($row['vstyle']=="mobile") $s=" checked"; 245: else $s=""; 246: echo " Mobile/Minimal
";
247: echo "Very minimal and absolute page style suitable for mobile browser and/or inline JS usage

";
248: if ($row['vstyle']=="plain") $s=" checked"; 249: else $s=""; 250: echo " Plain
";
251: echo "Totally plain output

";
252: 253: echo "
Link Types"; 257: if ($row['vclick']=="standard") $s=" checked"; 258: else $s=""; 259: echo " Standard
";
260: echo "Standard a href links for same window/frame

";
261: if ($row['vclick']=="frametop") $s=" checked"; 262: else $s=""; 263: echo " Same Window (Frame Top)
";
264: echo "a href link to the window/frame top

";
265: if ($row['vclick']=="newwindow") $s=" checked"; 266: else $s=""; 267: echo " New Window
";
268: echo "Open a New Window

";
269: if ($row['vclick']=="disabled") $s=" checked"; 270: else $s=""; 271: echo " Disabled
";
272: echo "No links (disabled)

";
273: if ($row['vlinkv']==0) $s=""; else $s=" selected"; 274: $lq="SELECT viewid,vtitle FROM fnview WHERE viewid!=".ss($_REQUEST['viewid']); 275: $lr=$NATS->DB->Query($lq); 276: echo "Links to Another View: "; 277: echo " ".hlink("View:LinkAnotherView")."

";
286: $NATS->DB->Free($lr); 287: echo "
Columns"; 289: echo ""; 290: echo " ".hlink("View:Columns"); 291: echo "
Refresh"; 293: echo ""; 294: echo " ".hlink("View:Refresh"); 295: echo "
Save "; 297: echo "Cancel / Abandon Changes"; 298: echo "
";
300: echo "
";
301: echo "";
302: echo "\n\n"; 311: 312: //echo "

";
313: $q="SELECT * FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." ORDER BY iweight ASC"; 314: $r=$NATS->DB->Query($q); 315: if ($NATS->DB->Num_Rows($r)<=0) echo "No view objects yet defined.

";
316: else $l=$NATS->DB->Num_Rows($r); 317: $f=0; 318: 319: 320: while ($row=$NATS->DB->Fetch_Array($r)) 321: { 322: echo ""; 323: echo ""; 324: echo "
";
325: echo ""; 326: echo ""; 327: echo ""; 328: echo ""; 333: 334: echo ""; 342: 343: echo ""; 351: 352: echo ""; 364: echo ""; 379: 380: echo ""; 388: 389: echo ""; 390: 391: echo ""; 413: 414: echo "
"; 329: echo "Item Type: "; 330: echo ViewItemTxt($row['itype'],$row['ioption']); 331: echo ""; 332: echo "
"; 335: echo "Use Colour :"; 336: echo ""; 337: if ($row['icolour']==1) $s=" checked"; 338: else $s=""; 339: echo ""; 340: echo " ".hlink("View:UseColour"); 341: echo ""; 344: echo "Text Status :"; 345: echo ""; 346: if ($row['itextstatus']==1) $s=" checked"; 347: else $s=""; 348: echo ""; 349: echo " ".hlink("View:TextStatus"); 350: echo "
"; 353: echo "Item Size :"; 354: echo ""; 355: echo ""; 363: echo ""; 365: echo "Graphics :"; 366: echo ""; 367: echo ""; 378: echo "
"; 381: echo "Show Detail :"; 382: echo ""; 383: if ($row['idetail']>0) $s=" checked"; 384: else $s=""; 385: echo ""; 386: echo " ".hlink("View:ShowDetail"); 387: echo "
Move: "; 392: 393: if ($f==0) echo ""; 394: else 395: { 396: echo ""; 397: echo ""; 398: echo ""; 399: } 400: 401: if ($f>=($l-1)) echo ""; 402: else 403: { 404: echo ""; 405: echo ""; 406: echo ""; 407: } 408: 409: $f++; 410: 411: echo "Delete Item"; 412: echo "

";
415: } 416: 417: $NATS->DB->Free($r); 418: 419: echo "

";
420: echo ""; 421: echo "
";
422: echo ""; 423: echo ""; 424: echo ""; 425: 426: echo ""; 440: 441: echo ""; 455: 456: $tests=array(); 457: $tq="SELECT localtestid,nodeid,testname,testtype,testparam,testrecord FROM fnlocaltest ORDER BY nodeid"; 458: $tr=$NATS->DB->Query($tq); 459: while ($test=$NATS->DB->Fetch_Array($tr)) 460: { 461: $tid="L".$test['localtestid']; 462: $tests[$tid]=$test; 463: $tests[$tid]['testid']=$tid; 464: } 465: $NATS->DB->Free($tr); 466: 467: echo ""; 472: 473: echo ""; 478: 479: echo ""; 484: 485: echo ""; 490: 491: echo ""; 496: 497: echo ""; 513: 514: echo ""; 533: 534: echo ""; 539: 540: echo ""; 544: /* TODO - if ok don't be lazy and put the def options in here */ 545: 546: echo "
Create New Item
"; 427: echo ""; 428: echo ""; 429: echo "Individual Node: "; 430: echo ""; 439: echo "
"; 442: echo ""; 443: echo ""; 444: echo "Individual Group: "; 445: echo ""; 454: echo "
"; 468: echo ""; 469: echo ""; 470: echo "List All (Enabled) Nodes"; 471: echo "
"; 474: echo ""; 475: echo ""; 476: echo "List All Groups"; 477: echo "
"; 480: echo ""; 481: echo ""; 482: echo "List Alerting Nodes"; 483: echo "
"; 486: echo ""; 487: echo ""; 488: echo "List Alerting Groups"; 489: echo "
"; 492: echo ""; 493: echo ""; 494: echo "List All Current Alerts"; 495: echo "
"; 498: echo ""; 499: echo ""; 500: echo "Detail for Test "; 501: echo ""; 511: echo "
"; 512: echo "Name:
"; 515: echo ""; 516: echo ""; 517: echo "Graph for Test "; 518: echo "
";
531: echo "Show Last Hours"; 532: echo "
"; 535: echo ""; 536: echo ""; 537: echo "Title: "; 538: echo "
 "; 541: echo " "; 542: //echo ""; 543: echo "
";
547: ?> 548: 549: 550: 551: Screen_Footer(); 552: ?> 553: