File: 0.02.56a/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.=" WHERE viewid=".ss($_REQUEST['viewid']); 80: $NATS->DB->Query($q); 81: if ($NATS->DB->Affected_Rows()<=0) $msg="Failed to update or nothing changed"; 82: else $msg="Saved changes ok"; 83: break; 84: 85: case "create_item": 86: $wq="SELECT iweight FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." ORDER BY iweight DESC LIMIT 0,1"; 87: $wr=$NATS->DB->Query($wq); 88: if ($row=$NATS->DB->Fetch_Array($wr)) 89: { 90: $iweight=$row['iweight']+10; 91: } 92: else $iweight=10; 93: $NATS->DB->Free($wr); 94: 95: $itype=ss($_REQUEST['itype']); 96: if ($itype=="node") $ioption=ss($_REQUEST['ioption_node']); 97: else if($itype=="group") $ioption=ss($_REQUEST['ioption_group']); 98: else $ioption=""; 99: $q="INSERT INTO fnviewitem(viewid,itype,ioption,iweight) VALUES(".ss($_REQUEST['viewid']).","; 100: $q.="\"".$itype."\",\"".$ioption."\",".$iweight.")"; 101: $NATS->DB->Query($q); 102: if ($NATS->DB->Affected_Rows()>0) $msg="Created Item"; 103: else $msg="Create Item Failed"; 104: break; 105: 106: case "del_item": 107: $q="DELETE FROM fnviewitem WHERE viewitemid=".ss($_REQUEST['viewitemid']); 108: $NATS->DB->Query($q); 109: if ($NATS->DB->Affected_Rows()>0) $msg="Deleted Item"; 110: else $msg="Delete Item Failed"; 111: break; 112: 113: case "save_view_item": 114: $icol=chs("icolour",0); 115: $itxt=chs("itextstatus",0); 116: $isize=chs("isize",0); 117: $igraphic=chs("igraphic",0); 118: $idetail=chs("idetail",0); 119: $q="UPDATE fnviewitem SET "; 120: $q.="icolour=".$icol.","; 121: $q.="itextstatus=".$itxt.","; 122: $q.="isize=".$isize.","; 123: $q.="igraphic=".$igraphic.","; 124: $q.="idetail=".$idetail." "; 125: $q.="WHERE viewitemid=".ss($_REQUEST['viewitemid']); 126: $NATS->DB->Query($q); 127: //echo $q; 128: if ($NATS->DB->Affected_Rows()<=0) $msg="Save Failed or Nothing Changed"; 129: else $msg="Saved Item Changes"; 130: break; 131: 132: case "move_item": 133: if (isset($_REQUEST['dir'])) $dir=$_REQUEST['dir']; 134: else $dir="up"; 135: 136: $mywq="SELECT iweight FROM fnviewitem WHERE viewitemid=".ss($_REQUEST['viewitemid']); 137: $mywr=$NATS->DB->Query($mywq); 138: $row=$NATS->DB->Fetch_Array($mywr); 139: $myweight=$row['iweight']; 140: $NATS->DB->Free($mywr); 141: 142: if ($dir=="up") // get the next lowest one down 143: { 144: $q="SELECT viewitemid,iweight FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." AND iweight<".$myweight." "; 145: $q.="ORDER BY iweight DESC LIMIT 0,1"; 146: $r=$NATS->DB->Query($q); 147: if ($row=$NATS->DB->Fetch_Array($r)) // found one to swap with 148: { 149: $uq="UPDATE fnviewitem SET iweight=".$myweight." WHERE viewitemid=".$row['viewitemid']; 150: $NATS->DB->Query($uq); 151: $uq="UPDATE fnviewitem SET iweight=".$row['iweight']." WHERE viewitemid=".ss($_REQUEST['viewitemid']); 152: $NATS->DB->Query($uq); 153: $msg="Moved Item"; 154: } 155: else $msg="Nowhere to Move Item To"; 156: } 157: else if ($dir=="down") // get the next highest 158: { 159: $q="SELECT viewitemid,iweight FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." AND iweight>".$myweight." "; 160: $q.="ORDER BY iweight DESC LIMIT 0,1"; 161: $r=$NATS->DB->Query($q); 162: if ($row=$NATS->DB->Fetch_Array($r)) // found one to swap with 163: { 164: $uq="UPDATE fnviewitem SET iweight=".$myweight." WHERE viewitemid=".$row['viewitemid']; 165: $NATS->DB->Query($uq); 166: $uq="UPDATE fnviewitem SET iweight=".$row['iweight']." WHERE viewitemid=".ss($_REQUEST['viewitemid']); 167: $NATS->DB->Query($uq); 168: $msg="Moved Item"; 169: } 170: else $msg="Nowhere to Move Item To"; 171: } 172: 173: break; 174: 175: default: $msg="Unknown Action"; 176: } 177: } 178: 179: ob_end_flush(); 180: Screen_Header("View Editor",1); 181: 182: 183: $q="SELECT * FROM fnview WHERE viewid=".ss($_REQUEST['viewid'])." LIMIT 0,1"; 184: $r=$NATS->DB->Query($q); 185: if (!$row=$NATS->DB->Fetch_Array($r)) 186: { 187: echo "No such view.

";
188: Screen_Footer(); 189: exit(); 190: } 191: 192: $NATS->DB->Free($r); 193: if (isset($msg)) 194: { 195: echo "".$msg."

";
196: $poplist[]=$msg; 197: } 198: 199: echo "
"; 200: echo "Editing View: ".$row['vtitle'].""; 201: echo "Preview View / "; 202: echo "Link to View"; 203: echo "
";
204: echo "
";
205: 206: echo "
"; 207: echo "
"; 208: echo ""; 209: 210: echo ""; 211: echo ""; 212: 213: echo ""; 217: echo ""; 218: 219: echo ""; 220: echo ""; 225: echo ""; 226: 227: echo ""; 228: echo ""; 243: 244: echo ""; 245: echo ""; 277: echo ""; 281: echo ""; 284: echo "
View Title"; 214: echo ""; 215: echo ""; 216: echo "
 
Public View"; 221: if ($row['vpublic']==1) $s=" checked"; 222: else $s=""; 223: echo " ".hlink("View:Public"); 224: echo "
 
Page Style"; 229: if ($row['vstyle']=="standard") $s=" checked"; 230: else $s=""; 231: echo " Standard
";
232: echo "Standard full-page headers and footers with "local" page and style includes

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

";
237: if ($row['vstyle']=="plain") $s=" checked"; 238: else $s=""; 239: echo " Plain
";
240: echo "Totally plain output

";
241: 242: echo "
Link Types"; 246: if ($row['vclick']=="standard") $s=" checked"; 247: else $s=""; 248: echo " Standard
";
249: echo "Standard a href links for same window/frame

";
250: if ($row['vclick']=="frametop") $s=" checked"; 251: else $s=""; 252: echo " Same Window (Frame Top)
";
253: echo "a href link to the window/frame top

";
254: if ($row['vclick']=="newwindow") $s=" checked"; 255: else $s=""; 256: echo " New Window
";
257: echo "Open a New Window

";
258: if ($row['vclick']=="disabled") $s=" checked"; 259: else $s=""; 260: echo " Disabled
";
261: echo "No links (disabled)

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

";
275: $NATS->DB->Free($lr); 276: echo "
Refresh"; 278: echo ""; 279: echo " ".hlink("View:Refresh"); 280: echo "
Save "; 282: echo "Cancel / Abandon Changes"; 283: echo "
";
285: echo "
";
286: echo "";
287: echo "\n\n"; 296: 297: //echo "

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

";
301: else $l=$NATS->DB->Num_Rows($r); 302: $f=0; 303: 304: 305: while ($row=$NATS->DB->Fetch_Array($r)) 306: { 307: echo ""; 308: echo ""; 309: echo "
";
310: echo ""; 311: echo ""; 312: echo ""; 313: echo ""; 318: 319: echo ""; 327: 328: echo ""; 336: 337: echo ""; 349: echo ""; 364: 365: echo ""; 373: 374: echo ""; 375: 376: echo ""; 398: 399: echo "
"; 314: echo "Item Type: "; 315: echo ViewItemTxt($row['itype'],$row['ioption']); 316: echo ""; 317: echo "
"; 320: echo "Use Colour :"; 321: echo ""; 322: if ($row['icolour']==1) $s=" checked"; 323: else $s=""; 324: echo ""; 325: echo " ".hlink("View:UseColour"); 326: echo ""; 329: echo "Text Status :"; 330: echo ""; 331: if ($row['itextstatus']==1) $s=" checked"; 332: else $s=""; 333: echo ""; 334: echo " ".hlink("View:TextStatus"); 335: echo "
"; 338: echo "Item Size :"; 339: echo ""; 340: echo ""; 348: echo ""; 350: echo "Graphics :"; 351: echo ""; 352: echo ""; 363: echo "
"; 366: echo "Show Detail :"; 367: echo ""; 368: if ($row['idetail']>0) $s=" checked"; 369: else $s=""; 370: echo ""; 371: echo " ".hlink("View:ShowDetail"); 372: echo "
Move: "; 377: 378: if ($f==0) echo ""; 379: else 380: { 381: echo ""; 382: echo ""; 383: echo ""; 384: } 385: 386: if ($f>=($l-1)) echo ""; 387: else 388: { 389: echo ""; 390: echo ""; 391: echo ""; 392: } 393: 394: $f++; 395: 396: echo "Delete Item"; 397: echo "

";
400: } 401: 402: $NATS->DB->Free($r); 403: 404: echo "

";
405: echo ""; 406: echo "
";
407: echo ""; 408: echo ""; 409: echo ""; 410: 411: echo ""; 425: 426: echo ""; 440: 441: echo ""; 446: 447: echo ""; 452: 453: echo ""; 458: 459: echo ""; 464: 465: echo ""; 470: 471: echo ""; 475: /* TODO - if ok don't be lazy and put the def options in here */ 476: 477: echo "
Create New Item
"; 412: echo ""; 413: echo ""; 414: echo "Individual Node: "; 415: echo ""; 424: echo "
"; 427: echo ""; 428: echo ""; 429: echo "Individual Group: "; 430: echo ""; 439: echo "
"; 442: echo ""; 443: echo ""; 444: echo "List All (Enabled) Nodes"; 445: echo "
"; 448: echo ""; 449: echo ""; 450: echo "List All Groups"; 451: echo "
"; 454: echo ""; 455: echo ""; 456: echo "List Alerting Nodes"; 457: echo "
"; 460: echo ""; 461: echo ""; 462: echo "List Alerting Groups"; 463: echo "
"; 466: echo ""; 467: echo ""; 468: echo "List All Current Alerts"; 469: echo "
 "; 472: echo " "; 473: //echo ""; 474: echo "
";
478: ?> 479: 480: 481: 482: Screen_Footer(); 483: ?> 484: