Viewing File server/web/schedule.php of 1.13.0a
|
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<9) UL_Error("Admin Interface"); 32: 33: // Actions Here 34: if (isset($_REQUEST['action'])) 35: { 36: switch($_REQUEST['action']) 37: { // create delete save_edit 38: // create_item delete_item save_item 39: case "create": 40: $q="INSERT INTO fnschedule(schedulename) VALUES(\"".ss($_REQUEST['schedulename'])."\")"; 41: $NATS->DB->Query($q); 42: $_REQUEST['scheduleid']=$NATS->DB->Insert_Id(); 43: break; 44: 45: case "delete": 46: if (!isset($_REQUEST['confirmed'])) 47: { 48: $back="schedule.php?delscheduleid=".$_REQUEST['delscheduleid']."&action=delete&confirmed=1"; 49: $msg="Delete Schedule and All Associated Items"; 50: $u="confirm.php?action=".urlencode($msg)."&back=".urlencode($back); 51: header("Location: ".$u); 52: exit(); 53: } 54: $q="DELETE FROM fnscheditem WHERE scheduleid=".ss($_REQUEST['delscheduleid']); 55: $NATS->DB->Query($q); 56: $q="UPDATE fnnode SET scheduleid=0 WHERE scheduleid=".ss($_REQUEST['delscheduleid']); 57: $NATS->DB->Query($q); 58: $q="DELETE FROM fnschedule WHERE scheduleid=".ss($_REQUEST['delscheduleid']); 59: $NATS->DB->Query($q); 60: break; 61: 62: case "save_edit": 63: $q="UPDATE fnschedule SET schedulename=\"".ss($_REQUEST['schedulename'])."\",defaultaction=".ss($_REQUEST['defaultaction'])." "; 64: $q.="WHERE scheduleid=".ss($_REQUEST['scheduleid']); 65: $NATS->DB->Query($q); 66: break; 67: 68: case "create_item": 69: if ($_REQUEST['year']=="") $year=0; 70: else $year=ss($_REQUEST['year']); 71: $q="INSERT INTO fnscheditem(scheduleid,dayofweek,dayofmonth,monthofyear,year,starthour,startmin,finishhour,finishmin) VALUES("; 72: $q.=ss($_REQUEST['scheduleid']).",\"".ss($_REQUEST['dayofweek'])."\",".ss($_REQUEST['dayofmonth']).",".ss($_REQUEST['monthofyear']).",".$year.","; 73: $q.=ss($_REQUEST['starthour']).",".ss($_REQUEST['startmin']).",".ss($_REQUEST['finishhour']).",".ss($_REQUEST['finishmin']).")"; 74: $NATS->DB->Query($q); 75: break; 76: //echo $q; 77: 78: case "save_item": 79: if ($_REQUEST['year']=="") $year=0; 80: else $year=ss($_REQUEST['year']); 81: $q="UPDATE fnscheditem SET "; 82: //(scheduleid,dayofweek,dayofmonth,monthofyear,year,starthour,startmin,finishhour,finishmin) VALUES("; 83: $q.="dayofweek=\"".ss($_REQUEST['dayofweek'])."\","; 84: $q.="dayofmonth=".ss($_REQUEST['dayofmonth']).",monthofyear=".ss($_REQUEST['monthofyear']).",year=".$year.","; 85: $q.="starthour=".ss($_REQUEST['starthour']).",startmin=".ss($_REQUEST['startmin']).","; 86: $q.="finishhour=".ss($_REQUEST['finishhour']).",finishmin=".ss($_REQUEST['finishmin'])." WHERE scheditemid=".ss($_REQUEST['scheditemid']); 87: $NATS->DB->Query($q); 88: break; 89: 90: case "delete_item"; 91: $q="DELETE FROM fnscheditem WHERE scheditemid=".ss($_REQUEST['scheditemid']); 92: $NATS->DB->Query($q); 93: break; 94: } 95: 96: } 97: 98: 99: Screen_Header("Schedule Management",1,1,"","main","admin"); 100: 101: echo "<br><b class=\"subtitle\"><a href=admin.php>System Settings</a> > Schedule Manager</b><br><br>"; 102: $q="SELECT scheduleid,schedulename FROM fnschedule"; 103: $r=$NATS->DB->Query($q); 104: if ($NATS->DB->Num_Rows($r)<=0) echo "<i>No Schedules</i><br>"; 105: else 106: { 107: echo "<table class=\"nicetable\">"; 108: while ($row=$NATS->DB->Fetch_Array($r)) 109: { 110: echo "<tr><td><b><a href=schedule.php?scheduleid=".$row['scheduleid'].">".$row['schedulename']."</a></b> </td>"; 111: echo "<td><a href=schedule.php?scheduleid=".$row['scheduleid'].">Edit</a> | "; 112: echo "<a href=schedule.php?delscheduleid=".$row['scheduleid']."&action=delete>Delete</a></td></tr>"; 113: } 114: echo "</table>"; 115: } 116: $NATS->DB->Free($r); 117: echo "<form action=schedule.php method=post><input type=hidden name=action value=create>"; 118: echo "<br><b>Create: </b><input type=text name=schedulename size=30 maxlength=64 value=\"Test Schedule\"> "; 119: echo "<input type=submit value=\"Create\"></form><br>"; 120: 121: $days_of_week=array( '', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ); 122: 123: function tt($a) // "to ten" 124: { 125: if ($a<10) return "0".$a; 126: else return $a; 127: } 128: 129: // view a specific schedule 130: if (isset($_REQUEST['scheduleid'])) 131: { 132: $q="SELECT * FROM fnschedule WHERE scheduleid=".ss($_REQUEST['scheduleid'])." LIMIT 0,1"; 133: $r=$NATS->DB->Query($q); 134: if ($row=$NATS->DB->Fetch_Array($r)) 135: { 136: echo "<b class=\"subtitle\">Editing Schedule: ".$row['schedulename']."</b><br><br>"; 137: echo "<table class=\"nicetable\">"; 138: echo "<form action=schedule.php method=post><input type=hidden name=action value=save_edit>"; 139: echo "<input type=hidden name=scheduleid value=".$_REQUEST['scheduleid'].">"; 140: echo "<tr><td><b>Schedule Name :</b></td>"; 141: echo "<td><input type=text name=schedulename size=30 maxlength=64 value=\"".$row['schedulename']."\">"; 142: echo "</td></tr>"; 143: $o_on="<option value=1>Run Test/Alert (Enabled)</option>"; 144: $o_off="<option value=0> Don't Run Test/Alert (Disabled)</option>"; 145: echo "<tr><td><b>Default Action :</b></td>"; 146: echo "<td><select name=defaultaction>"; 147: if ($row['defaultaction']==0) echo $o_off.$o_on; 148: else echo $o_on.$o_off; 149: echo "</select> ".hlink("Schedule:DefaultAction")."</td></tr>"; 150: echo "<tr><td> </td><td><input type=submit value=\"Save Settings\"></td></tr>"; 151: echo "</form></table><br>"; 152: 153: echo "<b class=\"subtitle\">Exceptions</b><br><br>"; 154: echo "Exceptions are the times when your schedule <b>will not</b> perform its default action i.e. not test the node or send the alert.<br>"; 155: echo "See the <a href=http://www.purplepixie.org/freenats/support.php>documentation</a> for more information.<br><br>"; 156: 157: echo "<table class=\"nicetable\">"; 158: echo "<tr><td><b>Weekday</b></td><td><b>Day</b></td><td><b>Month</b></td><td><b>Year</b> </td><td><b>From (HH:MM) =></b></td>"; 159: echo "<td><b>To HH:MM</td></td><td> </td></tr>"; 160: 161: $q="SELECT * FROM fnscheditem WHERE scheduleid=".ss($_REQUEST['scheduleid']); 162: $r=$NATS->DB->Query($q); 163: while ($row=$NATS->DB->Fetch_Array($r)) 164: { 165: echo "<tr><td colspan=8> </td></tr>"; 166: 167: echo "<form action=schedule.php method=post>"; 168: echo "<input type=hidden name=scheduleid value=".$_REQUEST['scheduleid'].">"; 169: echo "<input type=hidden name=scheditemid value=".$row['scheditemid'].">"; 170: echo "<input type=hidden name=action value=save_item>"; 171: 172: echo "<tr><td>"; 173: echo "<select name=dayofweek>"; 174: //echo "<option value=\"\">*</option>"; 175: echo "<option value=\"".$row['dayofweek']."\">".$row['dayofweek']."</option>"; 176: foreach($days_of_week as $day) 177: echo "<option value=\"".$day."\">".$day."</option>"; 178: echo "</select></td>"; 179: echo "<td><select name=dayofmonth>"; 180: echo "<option value=\"".$row['dayofmonth']."\">".$row['dayofmonth']."</option>"; 181: echo "<option value=0> </option>"; 182: for ($a=1; $a<32; $a++) echo "<option value=".$a.">".$a."</option>"; 183: echo "</select></td>"; 184: echo "<td><select name=monthofyear>"; 185: echo "<option value=\"".$row['monthofyear']."\">".$row['monthofyear']."</option>"; 186: echo "<option value=0> </option>"; 187: for ($a=1; $a<13; $a++) echo "<option value=".$a.">".$a."</option>"; 188: echo "</select></td>"; 189: if ($row['year']==0) $year=""; 190: else $year=$row['year']; 191: echo "<td><input type=text name=year size=4 maxlength=4 value=\"".$year."\"></td>"; 192: 193: echo "<td><select name=starthour>"; 194: echo "<option value=\"".$row['starthour']."\">".tt($row['starthour'])."</option>"; 195: for ($a=0; $a<24; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 196: echo "</select>:<select name=startmin>"; 197: echo "<option value=\"".$row['startmin']."\">".tt($row['startmin'])."</option>"; 198: for ($a=0; $a<60; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 199: echo "</select></td>"; 200: 201: echo "<td><select name=finishhour>"; 202: echo "<option value=\"".$row['finishhour']."\">".tt($row['finishhour'])."</option>";; 203: for ($a=0; $a<24; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 204: echo "</select>:<select name=finishmin>"; 205: echo "<option value=\"".$row['finishmin']."\">".tt($row['finishmin'])."</option>"; 206: for ($a=0; $a<60; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 207: echo "</select></td>"; 208: echo "<td><input type=submit value=\"Save\"> "; 209: echo "<a href=schedule.php?scheduleid=".$_REQUEST['scheduleid']."&action=delete_item&scheditemid=".$row['scheditemid'].">"; 210: echo "Delete</a>"; 211: echo "</td>"; 212: echo "</form>"; 213: echo "</tr>"; 214: } 215: 216: echo "<tr><td colspan=8> </td></tr>"; 217: 218: echo "<form action=schedule.php method=post>"; 219: echo "<input type=hidden name=scheduleid value=".$_REQUEST['scheduleid'].">"; 220: echo "<input type=hidden name=action value=create_item>"; 221: 222: echo "<tr><td>"; 223: echo "<select name=dayofweek>"; 224: //echo "<option value=\"\">*</option>"; 225: foreach($days_of_week as $day) 226: echo "<option value=\"".$day."\">".$day."</option>"; 227: echo "</select></td>"; 228: echo "<td><select name=dayofmonth>"; 229: echo "<option value=0> </option>"; 230: for ($a=1; $a<32; $a++) echo "<option value=".$a.">".$a."</option>"; 231: echo "</select></td>"; 232: echo "<td><select name=monthofyear>"; 233: echo "<option value=0> </option>"; 234: for ($a=1; $a<13; $a++) echo "<option value=".$a.">".$a."</option>"; 235: echo "</select></td>"; 236: echo "<td><input type=text name=year size=4 maxlength=4></td>"; 237: 238: echo "<td><select name=starthour>"; 239: for ($a=0; $a<24; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 240: echo "</select>:<select name=startmin>"; 241: for ($a=0; $a<60; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 242: echo "</select></td>"; 243: 244: echo "<td><select name=finishhour>"; 245: for ($a=0; $a<24; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 246: echo "</select>:<select name=finishmin>"; 247: for ($a=0; $a<60; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 248: echo "</select></td>"; 249: echo "<td><input type=submit value=\"Create\"></td>"; 250: echo "</form>"; 251: echo "</tr></table>"; 252: 253: echo "<br><br>"; 254: echo "<a name=testdate></a><b class=\"subtitle\">Test a Date and Time</b><br><br>"; 255: echo "<form action=schedule.php#testdate method=post>"; 256: echo "<input type=hidden name=scheduleid value=".$_REQUEST['scheduleid'].">"; 257: echo "<input type=hidden name=test_schedule value=1>"; 258: echo "<b>Test: </b>"; 259: 260: // persist tested date/time 261: if (isset($_REQUEST['test_schedule'])) 262: { 263: $day=$_REQUEST['testday']; 264: $month=$_REQUEST['testmonth']; 265: $year=$_REQUEST['testyear']; 266: $hour=$_REQUEST['testhour']; 267: $min=$_REQUEST['testmin']; 268: } 269: else 270: { 271: $day=date("d"); 272: $month=date("m"); 273: $year=date("Y"); 274: $hour=date("H"); 275: $min=date("i"); 276: } 277: 278: echo "<select name=testday>"; 279: echo "<option value=".$day.">".$day."</option>"; 280: for ($a=1; $a<32; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 281: echo "</select><select name=testmonth>"; 282: echo "<option value=".$month.">".$month."</option>"; 283: for ($a=1; $a<13; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 284: echo "</select>"; 285: echo "<input type=text name=testyear size=4 value=\"".$year."\">"; 286: echo " "; 287: echo "<select name=testhour>"; 288: echo "<option value=".$hour.">".$hour."</option>"; 289: for ($a=0; $a<24; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 290: echo "</select>:<select name=testmin>"; 291: echo "<option value=".$min.">".$min."</option>"; 292: for ($a=0; $a<60; $a++) echo "<option value=".$a.">".tt($a)."</option>"; 293: echo "</select>"; 294: echo " <input type=submit value=\"Test\">"; 295: echo "</form><br>"; 296: 297: // mktime(hr mi se mo do yr 298: if (isset($_REQUEST['test_schedule'])) 299: { 300: $tx=mktime($_REQUEST['testhour'],$_REQUEST['testmin'],0,$_REQUEST['testmonth'],$_REQUEST['testday'],$_REQUEST['testyear']); 301: echo "Testing ".date("Y-m-d H:i",$tx)."... "; 302: $wouldrun=run_x_in_schedule($tx,$_REQUEST['scheduleid']); 303: echo "<b>"; 304: if ($wouldrun) echo "Yes - TESTS WOULD RUN"; 305: else echo "No - TESTS WOULD NOT RUN"; 306: echo "</b><br>"; 307: } 308: 309: } 310: else echo "Error fetching schedule information"; 311: } 312: 313: Screen_Footer(); 314: ?> 315: