Viewing File server/web/view.edit.php of 0.02.55a
|
1: <?php 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.",vrefresh=".$vref." WHERE viewid=".ss($_REQUEST['viewid']); 79: $NATS->DB->Query($q); 80: if ($NATS->DB->Affected_Rows()<=0) $msg="Failed to update or nothing changed"; 81: else $msg="Saved changes ok"; 82: break; 83: 84: case "create_item": 85: $wq="SELECT iweight FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." ORDER BY iweight DESC LIMIT 0,1"; 86: $wr=$NATS->DB->Query($wq); 87: if ($row=$NATS->DB->Fetch_Array($wr)) 88: { 89: $iweight=$row['iweight']+10; 90: } 91: else $iweight=10; 92: $NATS->DB->Free($wr); 93: 94: $itype=ss($_REQUEST['itype']); 95: if ($itype=="node") $ioption=ss($_REQUEST['ioption_node']); 96: else if($itype=="group") $ioption=ss($_REQUEST['ioption_group']); 97: else $ioption=""; 98: $q="INSERT INTO fnviewitem(viewid,itype,ioption,iweight) VALUES(".ss($_REQUEST['viewid']).","; 99: $q.="\"".$itype."\",\"".$ioption."\",".$iweight.")"; 100: $NATS->DB->Query($q); 101: if ($NATS->DB->Affected_Rows()>0) $msg="Created Item"; 102: else $msg="Create Item Failed"; 103: break; 104: 105: case "del_item": 106: $q="DELETE FROM fnviewitem WHERE viewitemid=".ss($_REQUEST['viewitemid']); 107: $NATS->DB->Query($q); 108: if ($NATS->DB->Affected_Rows()>0) $msg="Deleted Item"; 109: else $msg="Delete Item Failed"; 110: break; 111: 112: case "save_view_item": 113: $icol=chs("icolour",0); 114: $itxt=chs("itextstatus",0); 115: $isize=chs("isize",0); 116: $igraphic=chs("igraphic",0); 117: $idetail=chs("idetail",0); 118: $q="UPDATE fnviewitem SET "; 119: $q.="icolour=".$icol.","; 120: $q.="itextstatus=".$itxt.","; 121: $q.="isize=".$isize.","; 122: $q.="igraphic=".$igraphic.","; 123: $q.="idetail=".$idetail." "; 124: $q.="WHERE viewitemid=".ss($_REQUEST['viewitemid']); 125: $NATS->DB->Query($q); 126: //echo $q; 127: if ($NATS->DB->Affected_Rows()<=0) $msg="Save Failed or Nothing Changed"; 128: else $msg="Saved Item Changes"; 129: break; 130: 131: case "move_item": 132: if (isset($_REQUEST['dir'])) $dir=$_REQUEST['dir']; 133: else $dir="up"; 134: 135: $mywq="SELECT iweight FROM fnviewitem WHERE viewitemid=".ss($_REQUEST['viewitemid']); 136: $mywr=$NATS->DB->Query($mywq); 137: $row=$NATS->DB->Fetch_Array($mywr); 138: $myweight=$row['iweight']; 139: $NATS->DB->Free($mywr); 140: 141: if ($dir=="up") // get the next lowest one down 142: { 143: $q="SELECT viewitemid,iweight FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." AND iweight<".$myweight." "; 144: $q.="ORDER BY iweight DESC LIMIT 0,1"; 145: $r=$NATS->DB->Query($q); 146: if ($row=$NATS->DB->Fetch_Array($r)) // found one to swap with 147: { 148: $uq="UPDATE fnviewitem SET iweight=".$myweight." WHERE viewitemid=".$row['viewitemid']; 149: $NATS->DB->Query($uq); 150: $uq="UPDATE fnviewitem SET iweight=".$row['iweight']." WHERE viewitemid=".ss($_REQUEST['viewitemid']); 151: $NATS->DB->Query($uq); 152: $msg="Moved Item"; 153: } 154: else $msg="Nowhere to Move Item To"; 155: } 156: else if ($dir=="down") // get the next highest 157: { 158: $q="SELECT viewitemid,iweight FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." AND iweight>".$myweight." "; 159: $q.="ORDER BY iweight DESC LIMIT 0,1"; 160: $r=$NATS->DB->Query($q); 161: if ($row=$NATS->DB->Fetch_Array($r)) // found one to swap with 162: { 163: $uq="UPDATE fnviewitem SET iweight=".$myweight." WHERE viewitemid=".$row['viewitemid']; 164: $NATS->DB->Query($uq); 165: $uq="UPDATE fnviewitem SET iweight=".$row['iweight']." WHERE viewitemid=".ss($_REQUEST['viewitemid']); 166: $NATS->DB->Query($uq); 167: $msg="Moved Item"; 168: } 169: else $msg="Nowhere to Move Item To"; 170: } 171: 172: break; 173: 174: default: $msg="Unknown Action"; 175: } 176: } 177: 178: ob_end_flush(); 179: Screen_Header("View Editor",1); 180: 181: 182: $q="SELECT * FROM fnview WHERE viewid=".ss($_REQUEST['viewid'])." LIMIT 0,1"; 183: $r=$NATS->DB->Query($q); 184: if (!$row=$NATS->DB->Fetch_Array($r)) 185: { 186: echo "No such view.<br><br>"; 187: Screen_Footer(); 188: exit(); 189: } 190: 191: $NATS->DB->Free($r); 192: if (isset($msg)) 193: { 194: echo "<b>".$msg."</b><br><br>"; 195: $poplist[]=$msg; 196: } 197: 198: echo "<table width=100% border=0 cellspacing=0 cellpadding=0><tr><td align=left>"; 199: echo "<b class=\"minortitle\">Editing View: <a href=view.php?viewid=".$_REQUEST['viewid'].">".$row['vtitle']."</a></b>"; 200: echo "</td><td align=right><b class=\"minortitle\"><a href=\"view.php?viewid=".$_REQUEST['viewid']."\" target=top>Preview View</a> / "; 201: echo "<a href=view.link.php?viewid=".$_REQUEST['viewid'].">Link to View</a></b>"; 202: echo "</td></tr></table>"; 203: echo "<br>"; 204: 205: echo "<form action=view.edit.php method=post>"; 206: echo "<div id=\"view_edit_options\">"; 207: echo "<table class=\"nicetable\">"; 208: 209: echo "<input type=hidden name=action value=save_edit>"; 210: echo "<input type=hidden name=viewid value=".$_REQUEST['viewid'].">"; 211: 212: echo "<tr><td align=left valign=top><b>View Title"; 213: echo "</b></td><td align=left>"; 214: echo "<input type=text name=vtitle size=30 maxlength=64 value=\"".$row['vtitle']."\">"; 215: echo "</td></tr>"; 216: echo "<tr><td colspan=2> <br></td></tr>"; 217: 218: echo "<tr><td><b>Public View</b></td>"; 219: echo "<td>"; 220: if ($row['vpublic']==1) $s=" checked"; 221: else $s=""; 222: echo "<input type=checkbox name=vpublic value=1".$s."> ".hlink("View:Public"); 223: echo "</td></tr>"; 224: echo "<tr><td colspan=2> <br></td></tr>"; 225: 226: echo "<tr><td align=left valign=top><b>Page Style</b></td>"; 227: echo "<td>"; 228: if ($row['vstyle']=="standard") $s=" checked"; 229: else $s=""; 230: echo "<b><input type=radio name=vstyle value=standard".$s."> Standard</b><br>"; 231: echo "Standard full-page headers and footers with "local" page and style includes<br><br>"; 232: if ($row['vstyle']=="mobile") $s=" checked"; 233: else $s=""; 234: echo "<b><input type=radio name=vstyle value=mobile".$s."> Mobile/Minimal</b><br>"; 235: echo "Very minimal and absolute page style suitable for mobile browser and/or inline JS usage<br><br>"; 236: if ($row['vstyle']=="plain") $s=" checked"; 237: else $s=""; 238: echo "<b><input type=radio name=vstyle value=plain".$s."> Plain</b><br>"; 239: echo "Totally plain output<br><br>"; 240: 241: echo "</td></tr>"; 242: 243: echo "<tr><td align=left valign=top><b>Link Types</b></td>"; 244: echo "<td>"; 245: if ($row['vclick']=="standard") $s=" checked"; 246: else $s=""; 247: echo "<b><input type=radio name=vclick value=standard".$s."> Standard</b><br>"; 248: echo "Standard <i>a href</i> links for same window/frame<br><br>"; 249: if ($row['vclick']=="frametop") $s=" checked"; 250: else $s=""; 251: echo "<b><input type=radio name=vclick value=frametop".$s."> Same Window (Frame Top)</b><br>"; 252: echo "<i>a href</i> link to the window/frame top<br><br>"; 253: if ($row['vclick']=="newwindow") $s=" checked"; 254: else $s=""; 255: echo "<b><input type=radio name=vclick value=newwindow".$s."> New Window</b><br>"; 256: echo "Open a New Window<br><br>"; 257: if ($row['vclick']=="disabled") $s=" checked"; 258: else $s=""; 259: echo "<b><input type=radio name=vclick value=disabled".$s."> Disabled</b><br>"; 260: echo "No links (disabled)<br><br>"; 261: 262: echo "</td></tr>"; 263: echo "<tr><td><b>Refresh"; 264: echo "</b></td><td align=left>"; 265: echo "<input type=text name=vrefresh size=6 maxlength=6 value=\"".$row['vrefresh']."\"> ".hlink("View:Refresh"); 266: echo "</td></tr>"; 267: echo "<tr><td><b>Save</b></td><td><input type=submit value=\"Save View Settings\"> "; 268: echo "<a href=view.edit.php?viewid=".$_REQUEST['viewid'].">Cancel / Abandon Changes</a>"; 269: echo "</td></tr>"; 270: echo "</table>"; 271: echo "</div>"; 272: echo "</form>"; 273: echo "\n<script type=\"text/javascript\">\n"; 274: echo "var editData=document.getElementById('view_edit_options').innerHTML;\n"; 275: echo "function show_edit_options()\n"; 276: echo "{\n"; 277: echo "document.getElementById('view_edit_options').innerHTML=editData;\n"; 278: echo "}\n"; 279: if (!isset($_REQUEST['show_options'])) 280: echo "document.getElementById('view_edit_options').innerHTML=\"<b>[ <a href=\\\"javascript:show_edit_options()\\\">Expand View Options</a> ]</b>\";\n"; 281: echo "</script>\n"; 282: 283: //echo "<br><br>"; 284: $q="SELECT * FROM fnviewitem WHERE viewid=".ss($_REQUEST['viewid'])." ORDER BY iweight ASC"; 285: $r=$NATS->DB->Query($q); 286: if ($NATS->DB->Num_Rows($r)<=0) echo "<i>No view objects yet defined.</i><br><br>"; 287: else $l=$NATS->DB->Num_Rows($r); 288: $f=0; 289: 290: 291: while ($row=$NATS->DB->Fetch_Array($r)) 292: { 293: echo "<a name=#".$row['viewitemid']."></a>"; 294: echo "<table width=600 class=\"nicetable\">"; 295: echo "<form action=view.edit.php#".$row['viewitemid']." method=post>"; 296: echo "<input type=hidden name=viewid value=".$_REQUEST['viewid'].">"; 297: echo "<input type=hidden name=action value=save_view_item>"; 298: echo "<input type=hidden name=viewitemid value=".$row['viewitemid'].">"; 299: echo "<tr><td align=left valign=top colspan=4>"; 300: echo "Item Type: <b>"; 301: echo ViewItemTxt($row['itype'],$row['ioption']); 302: echo "</b>"; 303: echo "</td></tr>"; 304: 305: echo "<tr><td width=25% align=right>"; 306: echo "Use Colour :"; 307: echo "</td><td align=left width=25%>"; 308: if ($row['icolour']==1) $s=" checked"; 309: else $s=""; 310: echo "<input type=checkbox name=icolour value=1".$s.">"; 311: echo " ".hlink("View:UseColour"); 312: echo "</td>"; 313: 314: echo "<td align=right width=25%>"; 315: echo "Text Status :"; 316: echo "</td><td align=left width=25%>"; 317: if ($row['itextstatus']==1) $s=" checked"; 318: else $s=""; 319: echo "<input type=checkbox name=itextstatus value=1".$s.">"; 320: echo " ".hlink("View:TextStatus"); 321: echo "</td></tr>"; 322: 323: echo "<tr><td align=right>"; 324: echo "Item Size :"; 325: echo "</td><td align=left>"; 326: echo "<select name=isize>"; 327: if ($row['isize']>0) echo "<option value=1 checked>Large</option>"; 328: else echo "<option value=0 checked>Small</option>"; 329: echo "<option value=1>"; 330: echo "Large</option>"; 331: echo "<option value=0>"; 332: echo "Small</option>"; 333: echo "</select>"; 334: echo "</td>"; 335: echo "<td align=right>"; 336: echo "Graphics :"; 337: echo "</td><td align=left>"; 338: echo "<select name=igraphic>"; 339: if ($row['igraphic']==2) echo "<option value=2 checked>Node/Group</option>"; 340: else if ($row['igraphic']==1) echo "<option value=1 checked>Status Light</option>"; 341: else echo "<option value=0 checked>No Graphic</option>"; 342: echo "<option value=2>"; 343: echo "Node/Group</option>"; 344: echo "<option value=1>"; 345: echo "Status Light</option>"; 346: echo "<option value=0>"; 347: echo "No Graphic</option>"; 348: echo "</select>"; 349: echo "</td></tr>"; 350: 351: echo "<tr><td width=25% align=right>"; 352: echo "Show Detail :"; 353: echo "</td><td align=left width=25%>"; 354: if ($row['idetail']>0) $s=" checked"; 355: else $s=""; 356: echo "<input type=checkbox name=idetail value=1".$s.">"; 357: echo " ".hlink("View:ShowDetail"); 358: echo "</td>"; 359: 360: echo "<td align=center colspan=2><input type=submit value=\"Save Changes to Item\"></td></tr>"; 361: 362: echo "<tr><td colspan=2 align=left><b>Move: </b>"; 363: 364: if ($f==0) echo "<img src=images/arrows/off/arrow_top.png>"; 365: else 366: { 367: echo "<a href=view.edit.php?viewid=".$_REQUEST['viewid']."&action=move_item&dir=up&viewitemid=".$row['viewitemid'].">"; 368: echo "<img src=\"images/arrows/on/arrow_top.png\" border=0>"; 369: echo "</a>"; 370: } 371: 372: if ($f>=($l-1)) echo "<img src=images/arrows/off/arrow_down.png>"; 373: else 374: { 375: echo "<a href=view.edit.php?viewid=".$_REQUEST['viewid']."&action=move_item&dir=down&viewitemid=".$row['viewitemid'].">"; 376: echo "<img src=\"images/arrows/on/arrow_down.png\" border=0>"; 377: echo "</a>"; 378: } 379: 380: $f++; 381: 382: echo "</td><td colspan=2 align=right><b><a href=view.edit.php?viewid=".$_REQUEST['viewid']."&action=del_item&viewitemid=".$row['viewitemid'].">Delete Item</a>"; 383: echo "</b></td></tr>"; 384: 385: echo "</form></table><br>"; 386: } 387: 388: $NATS->DB->Free($r); 389: 390: echo "<br><br>"; 391: echo "<table width=600 class=\"nicetable\">"; 392: echo "<form action=view.edit.php method=post>"; 393: echo "<input type=hidden name=viewid value=".$_REQUEST['viewid'].">"; 394: echo "<input type=hidden name=action value=create_item>"; 395: echo "<tr><td colspan=4><b>Create New Item</b></td></tr>"; 396: 397: echo "<tr><td width=25% align=center>"; 398: echo "<input type=radio name=itype value=node checked>"; 399: echo "</td><td colspan=3 align=left>"; 400: echo "<b>Individual Node: </b>"; 401: echo "<select name=ioption_node>"; 402: $nq="SELECT nodeid,nodename FROM fnnode"; 403: $nr=$NATS->DB->Query($nq); 404: while ($node=$NATS->DB->Fetch_Array($nr)) 405: { 406: echo "<option value=".$node['nodeid'].">".$node['nodename']." (".$node['nodeid'].")</option>"; 407: } 408: $NATS->DB->Free($nr); 409: echo "</select>"; 410: echo "</td></tr>"; 411: 412: echo "<tr><td width=25% align=center>"; 413: echo "<input type=radio name=itype value=group>"; 414: echo "</td><td colspan=3 align=left>"; 415: echo "<b>Individual Group: </b>"; 416: echo "<select name=ioption_group>"; 417: $nq="SELECT groupid,groupname FROM fngroup"; 418: $nr=$NATS->DB->Query($nq); 419: while ($group=$NATS->DB->Fetch_Array($nr)) 420: { 421: echo "<option value=".$group['groupid'].">".$group['groupname']." (".$group['groupid'].")</option>"; 422: } 423: $NATS->DB->Free($nr); 424: echo "</select>"; 425: echo "</td></tr>"; 426: 427: echo "<tr><td align=center>"; 428: echo "<input type=radio name=itype value=allnodes>"; 429: echo "</td><td colspan=3 align=left><b>"; 430: echo "List All (Enabled) Nodes"; 431: echo "</b></td></tr>"; 432: 433: echo "<tr><td align=center>"; 434: echo "<input type=radio name=itype value=allgroups>"; 435: echo "</td><td colspan=3 align=left><b>"; 436: echo "List All Groups"; 437: echo "</b></td></tr>"; 438: 439: echo "<tr><td align=center>"; 440: echo "<input type=radio name=itype value=alertnodes>"; 441: echo "</td><td colspan=3 align=left><b>"; 442: echo "List Alerting Nodes"; 443: echo "</b></td></tr>"; 444: 445: echo "<tr><td align=center>"; 446: echo "<input type=radio name=itype value=alertgroups>"; 447: echo "</td><td colspan=3 align=left><b>"; 448: echo "List Alerting Groups"; 449: echo "</b></td></tr>"; 450: 451: echo "<tr><td align=center>"; 452: echo "<input type=radio name=itype value=alerts>"; 453: echo "</td><td colspan=3 align=left><b>"; 454: echo "List All Current Alerts"; 455: echo "</b></td></tr>"; 456: 457: echo "<tr><td> </td><td colspan=3>"; 458: echo "<input type=submit value=\"Create New Item\"> "; 459: //echo "<select name=create_position><option value=end checked>At the End</option><option value=start>At the Top</option></select>"; 460: echo "</td></tr>"; 461: /* TODO - if ok don't be lazy and put the def options in here */ 462: 463: echo "</form></table>"; 464: ?> 465: 466: 467: <?php 468: Screen_Footer(); 469: ?> 470: