summaryrefslogtreecommitdiffstats
path: root/usr/local/www
diff options
context:
space:
mode:
authorSeth Mos <seth.mos@xs4all.nl>2008-06-18 08:28:12 +0000
committerSeth Mos <seth.mos@xs4all.nl>2008-06-18 08:28:12 +0000
commit5ccd98577afcb96bed6b5be7ab816a6f2d3aca61 (patch)
tree76e73e99e4c36cee9de6c96ff3d9ca82c651b9c2 /usr/local/www
parentda669e7fb1a0b4d80f0d275fb5f33f6dcc085200 (diff)
downloadpfsense-5ccd98577afcb96bed6b5be7ab816a6f2d3aca61.zip
pfsense-5ccd98577afcb96bed6b5be7ab816a6f2d3aca61.tar.gz
Add gateway groups edit page.
Diffstat (limited to 'usr/local/www')
-rwxr-xr-xusr/local/www/system_gateway_groups.php16
-rwxr-xr-xusr/local/www/system_gateway_groups_edit.php192
2 files changed, 204 insertions, 4 deletions
diff --git a/usr/local/www/system_gateway_groups.php b/usr/local/www/system_gateway_groups.php
index 481370d..647bb42 100755
--- a/usr/local/www/system_gateway_groups.php
+++ b/usr/local/www/system_gateway_groups.php
@@ -35,6 +35,7 @@ if (!is_array($config['gateways']['gateway_group']))
$config['gateways']['gateway_group'] = array();
$a_gateway_groups = &$config['gateways']['gateway_group'];
+$a_gateways = &$config['gateways']['gateway_item'];
$changedesc = "Gateway Groups: ";
if ($_POST) {
@@ -77,7 +78,7 @@ include("head.inc");
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php include("fbegin.inc"); ?>
-<form action="system_gateways.php" method="post">
+<form action="system_gateway_groups.php" method="post">
<input type="hidden" name="y1" value="1">
<?php if ($savemsg) print_info_box($savemsg); ?>
<?php if (file_exists($d_staticroutesdirty_path)): ?><p>
@@ -123,12 +124,19 @@ effect.");?><br>
</td>
<td class="listr" ondblclick="document.location='system_gateway_groups_edit.php?id=<?=$i;?>';">
<?php
- echo htmlspecialchars($gateway_group['members']); ?>
+ foreach($gateway_group['item'] as $item) {
+ $itemsplit = explode("|", $item);
+ echo htmlspecialchars($itemsplit[0]) . "<br/>\n";
+ }
+ ?>
</td>
<td class="listr" ondblclick="document.location='system_gateway_groups_edit.php?id=<?=$i;?>';">
<?php
- echo htmlspecialchars($gateway_group['priorities']); ?>
- ?>
+ foreach($gateway_group['item'] as $item) {
+ $itemsplit = explode("|", $item);
+ echo "Tier ". htmlspecialchars($itemsplit[1]) . "<br/>\n";
+ }
+ ?>
</td>
<td class="listbg" ondblclick="document.location='system_gateway_groups_edit.php?id=<?=$i;?>';">
<font color="#FFFFFF"><?=htmlspecialchars($gateway_group['descr']);?>&nbsp;
diff --git a/usr/local/www/system_gateway_groups_edit.php b/usr/local/www/system_gateway_groups_edit.php
new file mode 100755
index 0000000..34557ca
--- /dev/null
+++ b/usr/local/www/system_gateway_groups_edit.php
@@ -0,0 +1,192 @@
+<?php
+/* $Id$ */
+/*
+ system_gateway_groups_edit.php
+ part of pfSense (http://pfsense.com)
+
+ Copyright (C) 2007 Seth Mos <seth.mos@xs4all.nl>.
+ 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.
+*/
+
+require("guiconfig.inc");
+
+if (!is_array($config['gateways']['gateway_item']))
+ $config['gateways']['gateway_item'] = array();
+
+$a_gateway_groups = &$config['gateways']['gateway_group'];
+$a_gateways = &$config['gateways']['gateway_item'];
+
+$id = $_GET['id'];
+if (isset($_POST['id']))
+ $id = $_POST['id'];
+
+if (isset($_GET['dup'])) {
+ $id = $_GET['dup'];
+}
+
+if (isset($id) && $a_gateway_groups[$id]) {
+ $pconfig['name'] = $a_gateway_groups[$id]['name'];
+ $pconfig['item'] = &$a_gateway_groups[$id]['item'];
+ $pconfig['descr'] = $a_gateway_groups[$id]['descr'];
+}
+
+if (isset($_GET['dup']))
+ unset($id);
+
+if ($_POST) {
+
+ unset($input_errors);
+ $pconfig = $_POST;
+
+ /* input validation */
+ $reqdfields = explode(" ", "name");
+ $reqdfieldsn = explode(",", "Name");
+
+ do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
+
+ if (! isset($_POST['name'])) {
+ $input_errors[] = "A valid gateway group name must be specified.";
+ }
+
+ /* check for overlaps */
+ foreach ($a_gateway_groups as $gateway_group) {
+ if (isset($id) && ($a_gateway_groups[$id]) && ($a_gateway_groups[$id] === $gateway_group))
+ continue;
+
+ if ($gateway_group['name'] == $_POST['name']) {
+ $input_errors[] = "A gateway group with this name \"{$_POST['name']}\" already exists.";
+ break;
+ }
+ }
+
+ /* Build list of items in group with priority */
+ $pconfig['item'] = array();
+ foreach($a_gateways as $gateway) {
+ if($_POST[$gateway['name']] > 0) {
+ /* we have a priority above 0 (disabled), add item to list */
+ $pconfig['item'][] = "{$gateway[name]}|{$_POST[$gateway['name']]}";
+ }
+
+ }
+ if(count($pconfig['item']) == 0) {
+ $input_errors[] = "No gateway(s) have been selected to be used in this group";
+ }
+
+ if (!$input_errors) {
+ $gateway_group = array();
+ $gateway_group['name'] = $_POST['name'];
+ $gateway_group['item'] = $pconfig['item'];
+ $gateway_group['descr'] = $_POST['descr'];
+
+ if (isset($id) && $a_gateway_groups[$id])
+ $a_gateway_groups[$id] = $gateway_group;
+ else
+ $a_gateway_groups[] = $gateway_group;
+
+ touch($d_staticroutesdirty_path);
+
+ write_config();
+
+ header("Location: system_gateway_groups.php");
+ exit;
+ }
+}
+
+$pgtitle = array("System","Gateways","Edit gateway");
+include("head.inc");
+
+?>
+
+<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
+<?php include("fbegin.inc"); ?>
+<?php if ($input_errors) print_input_errors($input_errors); ?>
+ <form action="system_gateway_groups_edit.php" method="post" name="iform" id="iform">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tr>
+ <td width="22%" valign="top" class="vncellreq">Group Name</td>
+ <td width="78%" class="vtable">
+ <input name="name" type="text" class="formfld unknown" id="name" size="20" value="<?=htmlspecialchars($pconfig['name']);?>">
+ <br> <span class="vexpl">Group Name</span></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq">Gateway Priority</td>
+ <td width="78%" class="vtable">
+ <?php
+ foreach($a_gateways as $gateway) {
+ $selected = array();
+ $name = $gateway['name'];
+ $interface = $gateway['interface'];
+ foreach($pconfig['item'] as $item) {
+ $itemsplit = explode("|", $item);
+ if($itemsplit[0] == $name) {
+ $selected[$itemsplit[1]] = "selected";
+ } else {
+ $selected[0] = "selected";
+ }
+
+ }
+ echo "<select name='{$name}' class='formfldselect' id='{$name}'>";
+ echo "<option value='0' $selected[0] >Never</option>";
+ echo "<option value='1' $selected[1] >Tier 1</option>";
+ echo "<option value='2' $selected[2] >Tier 2</option>";
+ echo "<option value='3' $selected[3]>Tier 3</option>";
+ echo "<option value='4' $selected[4]>Tier 4</option>";
+ echo "<option value='5' $selected[5]>Tier 5</option>";
+ echo "</select> <strong>$name ({$interface})</strong><br/>";
+ }
+ ?>
+ <br/><span class="vexpl">
+ <strong>Link Priority</strong> <br />
+ The priority selected here defines in what order failover and balancing of links will be done.
+ Multiple links of the same priority will balance connections until all links in the priority will be exhausted.
+ If all links in a priority level are exhausted we will use the next available link(s) in the next priority level.
+ </span><br />
+ </td>
+ </tr>
+ </td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Description</td>
+ <td width="78%" class="vtable">
+ <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>">
+ <br> <span class="vexpl">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 name="Submit" type="submit" class="formbtn" value="Save"> <input type="button" value="Cancel" class="formbtn" onclick="history.back()">
+ <?php if (isset($id) && $a_gateways[$id]): ?>
+ <input name="id" type="hidden" value="<?=$id;?>">
+ <?php endif; ?>
+ </td>
+ </tr>
+ </table>
+</form>
+<?php include("fend.inc"); ?>
+<script language="JavaScript">
+ enable_change();
+</script>
+</body>
+</html>
OpenPOWER on IntegriCloud