summaryrefslogtreecommitdiffstats
path: root/usr/local/www/firewall_schedule_edit.php
diff options
context:
space:
mode:
Diffstat (limited to 'usr/local/www/firewall_schedule_edit.php')
-rw-r--r--usr/local/www/firewall_schedule_edit.php1151
1 files changed, 0 insertions, 1151 deletions
diff --git a/usr/local/www/firewall_schedule_edit.php b/usr/local/www/firewall_schedule_edit.php
deleted file mode 100644
index e7c4bca..0000000
--- a/usr/local/www/firewall_schedule_edit.php
+++ /dev/null
@@ -1,1151 +0,0 @@
-<?php
-/*
- firewall_schedule_edit.php
- Copyright (C) 2004 Scott Ullrich
- Copyright (C) 2013-2015 Electric Sheep Fencing, LP
- All rights reserved.
-
- originally part of m0n0wall (http://m0n0.ch/wall)
- Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-/*
- pfSense_MODULE: schedules
-*/
-
-##|+PRIV
-##|*IDENT=page-firewall-schedules-edit
-##|*NAME=Firewall: Schedules: Edit page
-##|*DESCR=Allow access to the 'Firewall: Schedules: Edit' page.
-##|*MATCH=firewall_schedule_edit.php*
-##|-PRIV
-
-function schedulecmp($a, $b) {
- return strcmp($a['name'], $b['name']);
-}
-
-function schedule_sort() {
- global $g, $config;
-
- if (!is_array($config['schedules']['schedule'])) {
- return;
- }
-
- usort($config['schedules']['schedule'], "schedulecmp");
-}
-
-require("guiconfig.inc");
-require_once("functions.inc");
-require_once("filter.inc");
-require_once("shaper.inc");
-
-$pgtitle = array(gettext("Firewall"), gettext("Schedules"), gettext("Edit"));
-
-if (isset($_POST['referer'])) {
- $referer = $_POST['referer'];
-} else {
- $referer = (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '/firewall_schedule.php');
-}
-
-$dayArray = array (gettext('Mon'), gettext('Tues'), gettext('Wed'), gettext('Thur'), gettext('Fri'), gettext('Sat'), gettext('Sun'));
-$monthArray = array (gettext('January'), gettext('February'), gettext('March'), gettext('April'), gettext('May'), gettext('June'), gettext('July'), gettext('August'), gettext('September'), gettext('October'), gettext('November'), gettext('December'));
-
-if (!is_array($config['schedules']['schedule'])) {
- $config['schedules']['schedule'] = array();
-}
-
-$a_schedules = &$config['schedules']['schedule'];
-
-if (is_numericint($_GET['id'])) {
- $id = $_GET['id'];
-}
-if (isset($_POST['id']) && is_numericint($_POST['id'])) {
- $id = $_POST['id'];
-}
-
-if (isset($id) && $a_schedules[$id]) {
- $pconfig['name'] = $a_schedules[$id]['name'];
- $pconfig['descr'] = html_entity_decode($a_schedules[$id]['descr']);
- $pconfig['timerange'] = $a_schedules[$id]['timerange'];
- $pconfig['schedlabel'] = $a_schedules[$id]['schedlabel'];
- $getSchedule = true;
-}
-
-if ($_POST) {
-
- if (strtolower($_POST['name']) == "lan") {
- $input_errors[] = gettext("Schedule may not be named LAN.");
- }
- if (strtolower($_POST['name']) == "wan") {
- $input_errors[] = gettext("Schedule may not be named WAN.");
- }
- if (strtolower($_POST['name']) == "") {
- $input_errors[] = gettext("Schedule name cannot be blank.");
- }
-
- $x = is_validaliasname($_POST['name']);
- if (!isset($x)) {
- $input_errors[] = gettext("Reserved word used for schedule name.");
- } else {
- if (is_validaliasname($_POST['name']) == false) {
- $input_errors[] = gettext("The schedule name may only consist of the characters a-z, A-Z, 0-9");
- }
- }
-
- /* check for name conflicts */
- foreach ($a_schedules as $schedule) {
- if (isset($id) && ($a_schedules[$id]) && ($a_schedules[$id] === $schedule)) {
- continue;
- }
-
- if ($schedule['name'] == $_POST['name']) {
- $input_errors[] = gettext("A Schedule with this name already exists.");
- break;
- }
- }
- $schedule = array();
-
- $schedule['name'] = $_POST['name'];
- $schedule['descr'] = htmlentities($_POST['descr'], ENT_QUOTES, 'UTF-8');
-
- $timerangeFound = false;
- for ($x = 0; $x < 99; $x++) {
- if ($_POST['schedule' . $x]) {
- if (!preg_match('/^[0-9]+:[0-9]+$/', $_POST['starttime' . $x])) {
- $input_errors[] = sprintf(gettext("Invalid start time - '%s'"), $_POST['starttime' . $x]);
- continue;
- }
- if (!preg_match('/^[0-9]+:[0-9]+$/', $_POST['stoptime' . $x])) {
- $input_errors[] = sprintf(gettext("Invalid stop time - '%s'"), $_POST['stoptime' . $x]);
- continue;
- }
- $timerangeFound = true;
- $timeparts = array();
- $firstprint = false;
- $timestr = $_POST['schedule' . $x];
- $timehourstr = $_POST['starttime' . $x];
- $timehourstr .= "-";
- $timehourstr .= $_POST['stoptime' . $x];
- $timedescrstr = htmlentities($_POST['timedescr' . $x], ENT_QUOTES, 'UTF-8');
- $dashpos = strpos($timestr, '-');
- if ($dashpos === false) {
- $timeparts['position'] = $timestr;
- } else {
- $tempindarray = array();
- $monthstr = "";
- $daystr = "";
- $tempindarray = explode(",", $timestr);
- foreach ($tempindarray as $currentselection) {
- if ($currentselection) {
- if ($firstprint) {
- $monthstr .= ",";
- $daystr .= ",";
- }
- $tempstr = "";
- $monthpos = strpos($currentselection, "m");
- $daypos = strpos($currentselection, "d");
- $monthstr .= substr($currentselection, $monthpos+1, $daypos-$monthpos-1);
- $daystr .= substr($currentselection, $daypos+1);
- $firstprint = true;
- }
- }
- $timeparts['month'] = $monthstr;
- $timeparts['day'] = $daystr;
- }
- $timeparts['hour'] = $timehourstr;
- $timeparts['rangedescr'] = $timedescrstr;
- $schedule['timerange'][$x] = $timeparts;
- }
- }
-
- if (!$timerangeFound) {
- $input_errors[] = gettext("The schedule must have at least one time range configured.");
- }
-
- if (!$input_errors) {
-
- if (!empty($pconfig['schedlabel'])) {
- $schedule['schedlabel'] = $pconfig['schedlabel'];
- } else {
- $schedule['schedlabel'] = uniqid();
- }
-
- if (isset($id) && $a_schedules[$id]) {
- $a_schedules[$id] = $schedule;
- } else {
- $a_schedules[] = $schedule;
- }
- schedule_sort();
- if (write_config()) {
- filter_configure();
- }
-
- header("Location: firewall_schedule.php");
- exit;
- } else {
- //we received input errors, copy data to prevent retype
- if (!$_POST['schedule0']) {
- $getSchedule = false;
- } else {
- $getSchedule = true;
- }
- $pconfig['name'] = $schedule['name'];
- $pconfig['descr'] = $schedule['descr'];
- $pconfig['timerange'] = $schedule['timerange'];
- }
-
-}
-include("head.inc");
-
-/* put your custom HTML head content here */
-/* using some of the $pfSenseHead function calls */
-$jscriptstr = <<<EOD
-<script type="text/javascript">
-//<![CDATA[
-var daysSelected = "";
-var month_array = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
-var day_array = ['Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun'];
-var schCounter = 0;
-
-function rgb2hex(rgb) {
- var parts = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
- if (parts == null) {
- return;
- }
- function hex(x) {
- return ("0" + parseInt(x).toString(16)).slice(-2);
- }
- return ("#" + hex(parts[1]) + hex(parts[2]) + hex(parts[3])).toUpperCase();
-}
-
-function repeatExistingDays() {
- var tempstr, tempstrdaypos, week, daypos, dayposdone = "";
-
- var dayarray = daysSelected.split(",");
- for (i = 0; i <= dayarray.length; i++) {
- tempstr = dayarray[i];
- tempstrdaypos = tempstr.search("p");
- week = tempstr.substring(1, tempstrdaypos);
- week = parseInt(week);
- dashpos = tempstr.search("-");
- daypos = tempstr.substring(tempstrdaypos+1, dashpos);
- daypos = parseInt(daypos);
-
- daydone = dayposdone.search(daypos);
- tempstr = 'w' + week + 'p' + daypos;
- daycell = eval('document.getElementById(tempstr)');
- if (daydone == "-1") {
- if (rgb2hex(daycell.style.backgroundColor) == "#F08080") { // lightcoral
- daytogglerepeating(week, daypos, true);
- } else {
- daytogglerepeating(week, daypos, false);
- }
- dayposdone += daypos + ",";
- }
- }
-}
-
-function daytogglerepeating(week, daypos, bExists) {
- var tempstr, daycell, dayoriginal = "";
- for (j=1; j<=53; j++) {
- tempstr = 'w' + j + 'p' + daypos;
- daycell = eval('document.getElementById(tempstr)');
- dayoriginalpos = daysSelected.indexOf(tempstr);
-
- //if bExists set to true, means cell is already select it
- //unselect it and remove original day from daysSelected string
-
- if (daycell != null) {
- if (bExists) {
- daycell.style.backgroundColor = "#FFFFFF"; // white
- } else {
- daycell.style.backgroundColor = "#F08080"; // lightcoral
- }
-
- if (dayoriginalpos != "-1") {
- dayoriginalend = daysSelected.indexOf(',', dayoriginalpos);
- tempstr = daysSelected.substring(dayoriginalpos, dayoriginalend+1);
- daysSelected = daysSelected.replace(tempstr, "");
-
- }
- }
- }
-}
-
-function daytoggle(id) {
- var runrepeat, tempstr = "";
- var bFoundValid = false;
-
- iddashpos = id.search("-");
- var tempstrdaypos = id.search("p");
- var week = id.substring(1, tempstrdaypos);
- week = parseInt(week);
-
- if (iddashpos == "-1") {
- idmod = id;
- runrepeat = true;
- var daypos = id.substr(tempstrdaypos+1);
- } else {
- idmod = id.substring(0, iddashpos);
- var daypos = id.substring(tempstrdaypos+1, iddashpos);
- }
-
- daypos = parseInt(daypos);
-
- while (!bFoundValid) {
- var daycell = document.getElementById(idmod);
-
- if (daycell != null) {
- if (rgb2hex(daycell.style.backgroundColor) == "#FF0000") { // red
- daycell.style.backgroundColor = "#FFFFFF"; // white
- str = id + ",";
- daysSelected = daysSelected.replace(str, "");
- } else if (rgb2hex(daycell.style.backgroundColor) == "#F08080") { // lightcoral
- daytogglerepeating(week, daypos, true);
- } else {
- //color is white cell
- if (!runrepeat) {
- daycell.style.backgroundColor = "#FF0000"; // red
- } else {
- daycell.style.backgroundColor = "#F08080"; // lightcoral
- daytogglerepeating(week, daypos, false);
- }
- daysSelected += id + ",";
- }
- bFoundValid = true;
- } else {
- //we found an invalid cell when column was clicked, move up to the next week
- week++;
- tempstr = "w" + week + "p" + daypos;
- idmod = tempstr;
- }
- }
-}
-
-function update_month() {
- var indexNum = document.forms[0].monthsel.selectedIndex;
- var selected = document.forms[0].monthsel.options[indexNum].text;
-
- for (i = 0; i <= 11; i++) {
- option = document.forms[0].monthsel.options[i].text;
- document.popupMonthLayer = eval('document.getElementById (option)');
-
- if (selected == option) {
- document.popupMonthLayer.style.display="block";
- } else {
- document.popupMonthLayer.style.display="none";
- }
- }
-}
-
-function checkForRanges() {
- if (daysSelected != "") {
- alert("You have not saved the specified time range. Please click 'Add Time' button to save the time range.");
- return false;
- } else {
- return true;
- }
-}
-
-function processEntries() {
- var tempstr, starttimehour, starttimemin, stoptimehour, stoptimemin, errors = "";
- var passedValidiation = true;
-
- //get time specified
- starttimehour = parseInt(document.getElementById("starttimehour").value);
- starttimemin = parseInt(document.getElementById("starttimemin").value);
- stoptimehour = parseInt(document.getElementById("stoptimehour").value);
- stoptimemin = parseInt(document.getElementById("stoptimemin").value);
-
-
- //do time checks
- if (starttimehour > stoptimehour) {
- errors = "Error: Start Hour cannot be greater than Stop Hour.";
- passedValidiation = false;
-
- } else if (starttimehour == stoptimehour) {
- if (starttimemin > stoptimemin) {
- errors = "Error: Start Minute cannot be greater than Stop Minute.";
- passedValidiation = false;
- }
- }
-
- if (passedValidiation) {
- addTimeRange();
- } else {
- if (errors != "") {
- alert(errors);
- }
- }
-}
-
-function addTimeRange() {
- var tempdayarray = daysSelected.split(",");
- var tempstr, tempFriendlyDay, starttimehour, starttimemin, stoptimehour, nrtempFriendlyTime, rtempFriendlyTime, nrtempID, rtempID = "";
- var stoptimemin, timeRange, tempstrdaypos, week, daypos, day, month, dashpos, nrtempTime, rtempTime, monthstr, daystr = "";
- rtempFriendlyTime = "";
- nrtempFriendlyTime = "";
- nrtempID = "";
- rtempID = "";
- nrtempTime = "";
- rtempTime = "";
- tempdayarray.sort();
- rtempFriendlyDay = "";
- monthstr = "";
- daystr = "";
-
- //check for existing entries
- var findCurrentCounter;
- for (u = 0; u < 99; u++) {
- findCurrentCounter = document.getElementById("schedule" + u);
- if (!findCurrentCounter) {
- schCounter = u;
- break;
- }
- }
-
- if (daysSelected != "") {
- //get days selected
- for (i = 0; i < tempdayarray.length; i++) {
- tempstr = tempdayarray[i];
- if (tempstr != "") {
- tempstrdaypos = tempstr.search("p");
- week = tempstr.substring(1, tempstrdaypos);
- week = parseInt(week);
- dashpos = tempstr.search("-");
-
- if (dashpos != "-1") {
- var nonrepeatingfound = true;
- daypos = tempstr.substring(tempstrdaypos+1, dashpos);
- daypos = parseInt(daypos);
- monthpos = tempstr.search("m");
- tempstrdaypos = tempstr.search("d");
- month = tempstr.substring(monthpos+1, tempstrdaypos);
- month = parseInt(month);
- day = tempstr.substring(tempstrdaypos+1);
- day = parseInt(day);
- monthstr += month + ",";
- daystr += day + ",";
- nrtempID += tempstr + ",";
- } else {
- var repeatingfound = true;
- daypos = tempstr.substr(tempstrdaypos+1);
- daypos = parseInt(daypos);
- rtempFriendlyDay += daypos + ",";
- rtempID += daypos + ",";
- }
- }
- }
-
- //code below spits out friendly look format for nonrepeating schedules
- var foundEnd = false;
- var firstDayFound = false;
- var firstprint = false;
- var tempFriendlyMonthArray = monthstr.split(",");
- var tempFriendlyDayArray = daystr.split(",");
- var currentDay, firstDay, nextDay, currentMonth, nextMonth, firstDay, firstMonth = "";
- for (k = 0; k < tempFriendlyMonthArray.length; k++) {
- tempstr = tempFriendlyMonthArray[k];
- if (tempstr != "") {
- if (!firstDayFound) {
- firstDay = tempFriendlyDayArray[k];
- firstDay = parseInt(firstDay);
- firstMonth = tempFriendlyMonthArray[k];
- firstMonth = parseInt(firstMonth);
- firstDayFound = true;
- }
- currentDay = tempFriendlyDayArray[k];
- currentDay = parseInt(currentDay);
- //get next day
- nextDay = tempFriendlyDayArray[k+1];
- nextDay = parseInt(nextDay);
- //get next month
-
- currentDay++;
- if ((currentDay != nextDay) || (tempFriendlyMonthArray[k] != tempFriendlyMonthArray[k+1])) {
- if (firstprint) {
- nrtempFriendlyTime += ", ";
- }
- currentDay--;
- if (currentDay != firstDay) {
- nrtempFriendlyTime += month_array[firstMonth-1] + " " + firstDay + "-" + currentDay;
- } else {
- nrtempFriendlyTime += month_array[firstMonth-1] + " " + currentDay;
- }
- firstDayFound = false;
- firstprint = true;
- }
- }
- }
-
- //code below spits out friendly look format for repeating schedules
- foundEnd = false;
- firstDayFound = false;
- firstprint = false;
- tempFriendlyDayArray = rtempFriendlyDay.split(",");
- tempFriendlyDayArray.sort();
- currentDay, firstDay, nextDay = "";
- for (k = 0; k < tempFriendlyDayArray.length; k++) {
- tempstr = tempFriendlyDayArray[k];
- if (tempstr != "") {
- if (!firstDayFound) {
- firstDay = tempFriendlyDayArray[k];
- firstDay = parseInt(firstDay);
- firstDayFound = true;
- }
- currentDay = tempFriendlyDayArray[k];
- currentDay = parseInt(currentDay);
- //get next day
- nextDay = tempFriendlyDayArray[k+1];
- nextDay = parseInt(nextDay);
- currentDay++;
- if (currentDay != nextDay) {
- if (firstprint) {
- rtempFriendlyTime += ", ";
- }
- currentDay--;
- if (currentDay != firstDay) {
- rtempFriendlyTime += day_array[firstDay-1] + " - " + day_array[currentDay-1];
- } else {
- rtempFriendlyTime += day_array[firstDay-1];
- }
- firstDayFound = false;
- firstprint = true;
- }
- }
- }
-
- //sort the tempID
- var tempsortArray = rtempID.split(",");
- var isFirstdone = false;
- tempsortArray.sort();
- //clear tempID
- rtempID = "";
- for (t = 0; t < tempsortArray.length; t++) {
- if (tempsortArray[t] != "") {
- if (!isFirstdone) {
- rtempID += tempsortArray[t];
- isFirstdone = true;
- } else {
- rtempID += "," + tempsortArray[t];
- }
- }
- }
-
-
- //get time specified
- starttimehour = document.getElementById("starttimehour").value
- starttimemin = document.getElementById("starttimemin").value;
- stoptimehour = document.getElementById("stoptimehour").value;
- stoptimemin = document.getElementById("stoptimemin").value;
-
- timeRange = "||" + starttimehour + ":";
- timeRange += starttimemin + "-";
- timeRange += stoptimehour + ":";
- timeRange += stoptimemin;
-
- //get description for time range
- var tempdescr = document.getElementById("timerangedescr").value
-
- if (nonrepeatingfound) {
- nrtempTime += nrtempID;
- //add time ranges
- nrtempTime += timeRange;
- //add description
- nrtempTime += "||" + tempdescr;
- insertElements(nrtempFriendlyTime, starttimehour, starttimemin, stoptimehour, stoptimemin, tempdescr, nrtempTime, nrtempID);
- }
-
- if (repeatingfound) {
- rtempTime += rtempID;
- //add time ranges
- rtempTime += timeRange;
- //add description
- rtempTime += "||" + tempdescr;
- insertElements(rtempFriendlyTime, starttimehour, starttimemin, stoptimehour, stoptimemin, tempdescr, rtempTime, rtempID);
- }
-
- } else {
- //no days were selected, alert user
- alert ("You must select at least 1 day before adding time");
- }
-}
-
-function insertElements(tempFriendlyTime, starttimehour, starttimemin, stoptimehour, stoptimemin, tempdescr, tempTime, tempID) {
-
- //add it to the schedule list
- d = document;
- tbody = d.getElementById("scheduletable").getElementsByTagName("tbody").item(0);
- tr = d.createElement("tr");
- td = d.createElement("td");
- td.innerHTML= "<span class='vexpl'>" + tempFriendlyTime + "<\/span>";
- tr.appendChild(td);
-
- td = d.createElement("td");
- td.innerHTML="<input type='text' readonly class='vexpl' name='starttime" + schCounter + "' id='starttime" + schCounter + "' style=' word-wrap:break-word; width:100%; border:0px solid;' value='" + starttimehour + ":" + starttimemin + "' />";
- tr.appendChild(td);
-
- td = d.createElement("td");
- td.innerHTML="<input type='text' readonly class='vexpl' name='stoptime" + schCounter + "' id='stoptime" + schCounter + "' style=' word-wrap:break-word; width:100%; border:0px solid;' value='" + stoptimehour + ":" + stoptimemin + "' />";
- tr.appendChild(td);
-
- td = d.createElement("td");
- td.innerHTML="<input type='text' readonly class='vexpl' name='timedescr" + schCounter + "' id='timedescr" + schCounter + "' style=' word-wrap:break-word; width:100%; border:0px solid;' value='" + tempdescr + "' />";
- tr.appendChild(td);
-
- td = d.createElement("td");
- td.innerHTML = "<a onclick='editRow(\"" + tempTime + "\",this); return false;' href='#'><img border='0' src='/themes/" + theme + "/images/icons/icon_e.gif' alt='edit' /></\a>";
- tr.appendChild(td);
-
- td = d.createElement("td");
- td.innerHTML = "<a onclick='removeRow(this); return false;' href='#'><img border='0' src='/themes/" + theme + "/images/icons/icon_x.gif' alt='remove' /></\a>";
- tr.appendChild(td);
-
- td = d.createElement("td");
- td.innerHTML="<input type='hidden' id='schedule" + schCounter + "' name='schedule" + schCounter + "' value='" + tempID + "' />";
- tr.appendChild(td);
- tbody.appendChild(tr);
-
- schCounter++;
-
- //reset calendar and time and descr
- clearCalendar();
- clearTime();
- clearDescr();
-}
-
-
-function clearCalendar() {
- var tempstr, daycell = "";
- //clear days selected
- daysSelected = "";
- //loop through all 52 weeks
- for (j=1; j<=53; j++) {
- //loop through all 7 days
- for (k=1; k<8; k++) {
- tempstr = 'w' + j + 'p' + k;
- daycell = eval('document.getElementById(tempstr)');
- if (daycell != null) {
- daycell.style.backgroundColor = "#FFFFFF"; // white
- }
- }
- }
-}
-
-function clearTime() {
- document.getElementById("starttimehour").value = "0";
- document.getElementById("starttimemin").value = "00";
- document.getElementById("stoptimehour").value = "23";
- document.getElementById("stoptimemin").value = "59";
-}
-
-function clearDescr() {
- document.getElementById("timerangedescr").value = "";
-}
-
-function editRow(incTime, el) {
- var check = checkForRanges();
-
- if (check) {
-
- //reset calendar and time
- clearCalendar();
- clearTime();
-
- var starttimehour, descr, days, tempstr, starttimemin, hours, stoptimehour, stoptimemin = "";
-
- tempArray = incTime.split ("||");
-
- days = tempArray[0];
- hours = tempArray[1];
- descr = tempArray[2];
-
- var tempdayArray = days.split(",");
- var temphourArray = hours.split("-");
- tempstr = temphourArray[0];
- var temphourArray2 = tempstr.split(":");
-
- document.getElementById("starttimehour").value = temphourArray2[0];
- document.getElementById("starttimemin").value = temphourArray2[1];
-
- tempstr = temphourArray[1];
- temphourArray2 = tempstr.split(":");
-
- document.getElementById("stoptimehour").value = temphourArray2[0];
- document.getElementById("stoptimemin").value = temphourArray2[1];
-
- document.getElementById("timerangedescr").value = descr;
-
- //toggle the appropriate days
- for (i = 0; i < tempdayArray.length; i++) {
- if (tempdayArray[i]) {
- var tempweekstr = tempdayArray[i];
- dashpos = tempweekstr.search("-");
-
- if (dashpos == "-1") {
- tempstr = "w2p" + tempdayArray[i];
- } else {
- tempstr = tempdayArray[i];
- }
- daytoggle(tempstr);
- }
- }
- removeRownoprompt(el);
- }
-}
-
-function removeRownoprompt(el) {
- var cel;
- while (el && el.nodeName.toLowerCase() != "tr") {
- el = el.parentNode;
- }
-
- if (el && el.parentNode) {
- cel = el.getElementsByTagName("td").item(0);
- el.parentNode.removeChild(el);
- }
-}
-
-
-function removeRow(el) {
- var check = confirm ("Do you really want to delete this time range?");
- if (check) {
- var cel;
- while (el && el.nodeName.toLowerCase() != "tr") {
- el = el.parentNode;
- }
-
- if (el && el.parentNode) {
- cel = el.getElementsByTagName("td").item(0);
- el.parentNode.removeChild(el);
- }
- }
-}
-//]]>
-</script>
-EOD;
-?>
-
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC" onload="<?= $jsevents["body"]["onload"] ?>">
-
-
-<?php include("fbegin.inc"); echo $jscriptstr; ?>
-<?php if ($input_errors) print_input_errors($input_errors); ?>
-<div id="inputerrors"></div>
-
-<form action="firewall_schedule_edit.php" method="post" name="iform" id="iform">
- <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="firewall schedule">
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Schedule information");?></td>
- </tr>
- <tr>
- <td>
- <table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
- <tr>
- <td width="15%" valign="top" class="vncellreq"><?=gettext("Schedule Name");?></td>
- <td width="85%" class="vtable">
- <?php if (is_schedule_inuse($pconfig['name']) == true): ?>
- <input name="name" type="hidden" id="name" size="40" value="<?=htmlspecialchars($pconfig['name']);?>" />
- <?php echo $pconfig['name']; ?>
- <p>
- <span class="vexpl"><?=gettext("NOTE: This schedule is in use so the name may not be modified!");?></span>
- </p>
- <?php else: ?>
- <input name="name" type="text" id="name" size="40" maxlength="40" class="formfld unknown" value="<?=htmlspecialchars($pconfig['name']);?>" /><br />
- <span class="vexpl">
- <?=gettext("The name of the alias may only consist of the characters a-z, A-Z and 0-9");?>
- </span>
- <?php endif; ?>
- </td>
- </tr>
- <tr>
- <td width="15%" valign="top" class="vncell"><?=gettext("Description");?></td>
- <td width="85%" class="vtable"><input name="descr" type="text" id="descr" size="40" maxlength="40" class="formfld unknown" value="<?=htmlspecialchars($pconfig['descr']);?>" /><br />
- <span class="vexpl">
- <?=gettext("You may enter a description here for your reference (not parsed).");?>
- </span>
- </td>
- </tr>
- <!-- tr>
- </tr -->
- <tr>
- <td width="15%" valign="top" class="vncellreq"><?=gettext("Month");?></td>
- <td width="85%" class="vtable">
- <select name="monthsel" class="formselect" id="monthsel" onchange="update_month();">
- <?php
- $monthcounter = date("n");
- $monthlimit = $monthcounter + 12;
- $yearcounter = date("Y");
- for ($k = 0; $k < 12; $k++) {?>
- <option value="<?php echo $monthcounter;?>"><?php echo date("F_y", mktime(0, 0, 0, date($monthcounter), 1, date($yearcounter)));?></option>
- <?php
- if ($monthcounter == 12) {
- $monthcounter = 1;
- $yearcounter++;
- } else {
- $monthcounter++;
- }
- } ?>
- </select>
- <br /><br />
- <?php
- $firstmonth = TRUE;
- $monthcounter = date("n");
- $yearcounter = date("Y");
- for ($k = 0; $k < 12; $k++) {
- $firstdayofmonth = date("w", mktime(0, 0, 0, date($monthcounter), 1, date($yearcounter)));
- if ($firstdayofmonth == 0) {
- $firstdayofmonth = 7;
- }
-
- $daycounter = 1;
- //number of day in month
- $numberofdays = date("t", mktime(0, 0, 0, date($monthcounter), 1, date($yearcounter)));
- $firstdayprinted = FALSE;
- $lasttr = FALSE;
- $positioncounter = 1;//7 for Sun, 1 for Mon, 2 for Tues, etc
- ?>
- <div id="<?php echo date("F_y", mktime(0, 0, 0, date($monthcounter), 1, date($yearcounter)));?>" style=" position:relative; display:<?php if ($firstmonth)echo "block";else echo "none";?>">
- <table border="1" cellspacing="1" cellpadding="1" id="calTable<?=$monthcounter . $yearcounter;?>" class="tabcont" summary="month">
- <tr>
- <td colspan="7" align="center" class="listbg"><b><?php echo date("F_Y", mktime(0, 0, 0, date($monthcounter), 1, date($yearcounter)));?></b></td>
- </tr>
- <tr>
- <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p1');"><u><b><?=gettext("Mon");?></b></u></td>
- <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p2');"><u><b><?=gettext("Tue");?></b></u></td>
- <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p3');"><u><b><?=gettext("Wed");?></b></u></td>
- <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p4');"><u><b><?=gettext("Thu");?></b></u></td>
- <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p5');"><u><b><?=gettext("Fri");?></b></u></td>
- <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p6');"><u><b><?=gettext("Sat");?></b></u></td>
- <td align="center" class="listhdrr" style="cursor: pointer;" onclick="daytoggle('w1p7');"><u><b><?=gettext("Sun");?></b></u></td>
- </tr>
- <?php
- $firstmonth = FALSE;
- while ($daycounter<=$numberofdays) {
- $weekcounter = date("W", mktime(0, 0, 0, date($monthcounter), date($daycounter), date($yearcounter)));
- $weekcounter = ltrim($weekcounter, "0");
- if ($positioncounter == 1) {
- echo "<tr>";
- }
- if ($firstdayofmonth == $positioncounter) {
- ?>
- <td align="center" style="cursor: pointer;" class="listr" id="w<?=$weekcounter;?>p<?=$positioncounter;?>" onclick="daytoggle('w<?=$weekcounter;?>p<?=$positioncounter;?>-m<?=$monthcounter;?>d<?=$daycounter;?>');">
- <?php
- echo $daycounter;
- $daycounter++;
- $firstdayprinted = TRUE;
- echo "</td>";
- } elseif ($firstdayprinted == TRUE && $daycounter <= $numberofdays) {
- ?>
- <td align="center" style="cursor: pointer;" class="listr" id="w<?=$weekcounter;?>p<?=$positioncounter;?>" onclick="daytoggle('w<?=$weekcounter;?>p<?=$positioncounter;?>-m<?=$monthcounter;?>d<?=$daycounter;?>');">
- <?php
- echo $daycounter;
- $daycounter++;
- echo "</td>";
- } else {
- echo "<td align=\"center\" class=\"listr\"></td>";
- }
-
- if ($positioncounter == 7 || $daycounter > $numberofdays) {
- $positioncounter = 1;
- echo "</tr>";
- } else {
- $positioncounter++;
- }
-
- } //end while loop
- ?>
- </table>
- </div>
- <?php
- if ($monthcounter == 12) {
- $monthcounter = 1;
- $yearcounter++;
- } else {
- $monthcounter++;
- }
- } //end for loop
- ?>
- <br />
- <?=gettext("Click individual date to select that date only. Click the appropriate weekday Header to select all occurrences of that weekday.");?>
- </td>
- </tr>
- <tr>
- <td width="15%" valign="top" class="vncellreq"><?=gettext("Time");?></td>
- <td width="85%" class="vtable">
- <table cellspacing="2" class="tabcont" summary="time">
- <tr>
- <td class="listhdrr" align="center"><?=gettext("Start Time");?></td><td></td><td class="listhdrr" align="center"><?=gettext("Stop Time");?></td>
- </tr>
- <tr>
- <td>
- <select name="starttimehour" class="formselect" id="starttimehour">
- <?php
- for ($i = 0; $i < 24; $i++) {
- echo "<option value=\"$i\">";
- echo $i;
- echo "</option>";
- }
- ?>
- </select>&nbsp;<?=gettext("Hr"); ?>&nbsp;&nbsp;
- <select name="starttimemin" class="formselect" id="starttimemin">
- <option value="00">00</option>
- <option value="15">15</option>
- <option value="30">30</option>
- <option value="45">45</option>
- <option value="59">59</option>
- </select>&nbsp;<?=gettext("Min"); ?>
- </td>
- <td></td>
- <td>
- <select name="stoptimehour" class="formselect" id="stoptimehour">
- <?php
- for ($i = 0; $i < 24; $i++) {
- if ($i == 23) {
- $selected = "selected=\"selected\"";
- } else {
- $selected = "";
- }
-
- echo "<option value=\"$i\" $selected>";
- echo $i;
- echo "</option>";
- }
- ?>
- </select>&nbsp;<?=gettext("Hr");?>&nbsp;&nbsp;
- <select name="stoptimemin" class="formselect" id="stoptimemin">
- <option value="00">00</option>
- <option value="15">15</option>
- <option value="30">30</option>
- <option value="45">45</option>
- <option value="59" selected="selected">59</option>
- </select>&nbsp;<?=gettext("Min");?>
- </td>
- </tr>
- </table>
- <br />
- <?=gettext("Select the time range for the day(s) selected on the Month(s) above. A full day is 0:00-23:59.")?>
- </td>
- </tr>
- <tr>
- <td width="15%" valign="top" class="vncell"><?=gettext("Time Range Description")?></td>
- <td width="85%" class="vtable"><input name="timerangedescr" type="text" class="formfld unknown" id="timerangedescr" size="40" maxlength="40" /><br />
- <span class="vexpl">
- <?=gettext("You may enter a description here for your reference (not parsed).")?>
- </span>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- <input type="button" value="<?=gettext("Add Time");?>" class="formbtn" onclick="javascript:processEntries();" />&nbsp;&nbsp;&nbsp;
- <input type="button" value="<?=gettext("Clear Selection");?>" class="formbtn" onclick="javascript:clearCalendar(); clearTime(); clearDescr();" />
- </td>
- </tr>
- <tr>
- <td width="15%" valign="top" class="vtable"></td>
- <td width="85%" class="vtable"></td>
- </tr>
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Schedule repeat");?></td>
- </tr>
- <tr>
- <td width="15%" valign="top" class="vncellreq"><?=gettext("Configured Ranges");?></td>
- <td width="85%">
- <table id="scheduletable" summary="range">
- <tbody>
- <tr>
- <td align="center" class="listbg" width="35%"><?=gettext("Day(s)");?></td>
- <td align="center" class="listbg" width="12%"><?=gettext("Start Time");?></td>
- <td align="center" class="listbg" width="11%"><?=gettext("Stop Time");?></td>
- <td align="center" class="listbg" width="42%"><?=gettext("Description");?></td>
- </tr>
- <?php
- if ($getSchedule) {
- $counter = 0;
-
- foreach ($pconfig['timerange'] as $timerange) {
- $tempFriendlyTime = "";
- $tempID = "";
- if ($timerange) {
- $dayFriendly = "";
- $tempFriendlyTime = "";
- $timedescr = $timerange['rangedescr'];
-
- //get hours
- $temptimerange = $timerange['hour'];
- $temptimeseparator = strrpos($temptimerange, "-");
-
- $starttime = substr ($temptimerange, 0, $temptimeseparator);
- $stoptime = substr ($temptimerange, $temptimeseparator+1);
- $currentDay = "";
- $firstDay = "";
- $nextDay = "";
- $foundEnd = false;
- $firstDayFound = false;
- $firstPrint = false;
- $firstprint2 = false;
-
- if ($timerange['month']) {
- $tempmontharray = explode(",", $timerange['month']);
- $tempdayarray = explode(",", $timerange['day']);
- $arraycounter = 0;
- foreach ($tempmontharray as $monthtmp) {
- $month = $tempmontharray[$arraycounter];
- $day = $tempdayarray[$arraycounter];
- $daypos = date("w", mktime(0, 0, 0, date($month), date($day), date("Y")));
- //if sunday, set position to 7 to get correct week number. This is due to php limitations on ISO-8601. When we move to php5.1 we can change this.
- if ($daypos == 0) {
- $daypos = 7;
- }
- $weeknumber = date("W", mktime(0, 0, 0, date($month), date($day), date("Y")));
- $weeknumber = ltrim($weeknumber, "0");
-
- if ($firstPrint) {
- $tempID .= ",";
- }
- $tempID .= "w" . $weeknumber . "p" . $daypos . "-m" . $month . "d" . $day;
- $firstPrint = true;
-
- if (!$firstDayFound) {
- $firstDay = $day;
- $firstmonth = $month;
- $firstDayFound = true;
- }
-
- $currentDay = $day;
- $nextDay = $tempdayarray[$arraycounter+1];
- $currentDay++;
- if (($currentDay != $nextDay) || ($tempmontharray[$arraycounter] != $tempmontharray[$arraycounter+1])) {
- if ($firstprint2) {
- $tempFriendlyTime .= ", ";
- }
- $currentDay--;
- if ($currentDay != $firstDay) {
- $tempFriendlyTime .= $monthArray[$firstmonth-1] . " " . $firstDay . " - " . $currentDay ;
- } else {
- $tempFriendlyTime .= $monthArray[$month-1] . " " . $day;
- }
- $firstDayFound = false;
- $firstprint2 = true;
- }
- $arraycounter++;
- }
- } else {
- $dayFriendly = $timerange['position'];
- $tempID = $dayFriendly;
- }
-
- $tempTime = $tempID . "||" . $starttime . "-" . $stoptime . "||" . $timedescr;
-
- //following code makes the days friendly appearing, IE instead of Mon, Tues, Wed it will show Mon - Wed
- $foundEnd = false;
- $firstDayFound = false;
- $firstprint = false;
- $tempFriendlyDayArray = explode(",", $dayFriendly);
- $currentDay = "";
- $firstDay = "";
- $nextDay = "";
- $i = 0;
- if (!$timerange['month']) {
- foreach ($tempFriendlyDayArray as $day) {
- if ($day != "") {
- if (!$firstDayFound) {
- $firstDay = $tempFriendlyDayArray[$i];
- $firstDayFound = true;
- }
- $currentDay =$tempFriendlyDayArray[$i];
- //get next day
- $nextDay = $tempFriendlyDayArray[$i+1];
- $currentDay++;
- if ($currentDay != $nextDay) {
- if ($firstprint) {
- $tempFriendlyTime .= ", ";
- }
- $currentDay--;
- if ($currentDay != $firstDay) {
- $tempFriendlyTime .= $dayArray[$firstDay-1] . " - " . $dayArray[$currentDay-1];
- } else {
- $tempFriendlyTime .= $dayArray[$firstDay-1];
- }
- $firstDayFound = false;
- $firstprint = true;
- }
- $i++;
- }
- }
- }
- ?>
- <tr>
- <td>
- <span class="vexpl"><?php echo $tempFriendlyTime; ?></span>
- </td>
- <td>
- <input type='text' readonly='readonly' class='vexpl' name='starttime<?php echo $counter; ?>' id='starttime<?php echo $counter; ?>' style=' word-wrap:break-word; width:100%; border:0px solid;' value='<?php echo $starttime; ?>' />
- </td>
- <td>
- <input type='text' readonly='readonly' class='vexpl' name='stoptime<?php echo $counter; ?>' id='stoptime<?php echo $counter; ?>' style=' word-wrap:break-word; width:100%; border:0px solid;' value='<?php echo $stoptime; ?>' />
- </td>
- <td>
- <input type='text' readonly='readonly' class='vexpl' name='timedescr<?php echo $counter; ?>' id='timedescr<?php echo $counter; ?>' style=' word-wrap:break-word; width:100%; border:0px solid;' value='<?php echo $timedescr; ?>' />
- </td>
- <td>
- <a onclick='editRow("<?php echo $tempTime; ?>",this); return false;' href='#'><img border='0' src='/themes/<?php echo $g['theme']; ?>/images/icons/icon_e.gif' alt='edit' /></a>
- </td>
- <td>
- <a onclick='removeRow(this); return false;' href='#'><img border='0' src='/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif' alt='remove' /></a>
- </td>
- <td>
- <input type='hidden' id='schedule<?php echo $counter; ?>' name='schedule<?php echo $counter; ?>' value='<?php echo $tempID; ?>' />
- </td>
- </tr>
- <?php
- $counter++;
- }//end if
- } // end foreach
- }//end if
- ?>
- </tbody>
- </table>
- </td>
- </tr>
- <tr>
- <td width="15%" valign="top">&nbsp;</td>
- <td width="85%">
- <input id="submit" name="submit" type="submit" onclick="return checkForRanges();" class="formbtn" value="<?=gettext("Save"); ?>" />
- <input type="button" class="formbtn" value="<?=gettext("Cancel");?>" onclick="window.location.href='<?=$referer;?>'" />
- <input name="referer" type="hidden" value="<?=$referer;?>" />
- <?php if (isset($id) && $a_schedules[$id]): ?>
- <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
- <?php endif; ?>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
-</form>
-<?php include("fend.inc"); ?>
-</body>
-</html>
OpenPOWER on IntegriCloud