Cleanup of system gateway groups and edit, fixes #23

This commit is contained in:
Jos Schellevis 2015-01-09 16:07:53 +00:00
parent 9c51c50049
commit ce7c30a85f

View File

@ -151,8 +151,8 @@ include("head.inc");
?>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<body>
<?php include("fbegin.inc"); ?>
<?php
$gateway_protocol = build_gateway_protocol_map($a_gateways);
$gateway_array = array_keys($a_gateways);
@ -209,136 +209,153 @@ jQuery(function ($) {
});
//]]>
</script>
<section class="page-content-main">
<div class="container-fluid">
<div class="row">
<?php if ($input_errors) print_input_errors($input_errors); ?>
<div id="inputerrors"></div>
<section class="col-xs-12">
<?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" summary="system groups edit">
<tr>
<td colspan="2" valign="top" class="listtopic"><?=gettext("Edit gateway group entry"); ?></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("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"><?=gettext("Group Name"); ?></span></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Gateway Priority"); ?></td>
<td width="78%" class="vtable">
<table border="0" cellpadding="6" cellspacing="0" summary="gateway priority">
<tr>
<td class="listhdrr">Gateway</td>
<td class="listhdrr">Tier</td>
<td class="listhdrr">Virtual IP</td>
<td class="listhdrr">Description</td>
</tr>
<?php
foreach($a_gateways as $gwname => $gateway) {
if(!empty($pconfig['item'])) {
$af = explode("|", $pconfig['item'][0]);
$family = $a_gateways[$af[0]]['ipprotocol'];
if($gateway['ipprotocol'] != $family)
continue;
}
$interface = $gateway['friendlyiface'];
$selected = array();
foreach((array)$pconfig['item'] as $item) {
$itemsplit = explode("|", $item);
if($itemsplit[0] == $gwname) {
$selected[$itemsplit[1]] = "selected=\"selected\"";
break;
} else {
$selected[0] = "selected=\"selected\"";
}
}
$tr_id = $gwname . "_row";
echo "<tr class='gateway_row' id='{$tr_id}'>\n";
echo "<td class='listlr'>";
echo "<strong>{$gateway['name']} </strong>";
echo "</td><td class='listr'>";
echo "<select name='{$gwname}' class='gateway_tier_selector formfldselect' id='{$gwname}'>\n";
echo "<option value='0' $selected[0] >" . gettext("Never") . "</option>\n";
echo "<option value='1' $selected[1] >" . gettext("Tier 1") . "</option>\n";
echo "<option value='2' $selected[2] >" . gettext("Tier 2") . "</option>\n";
echo "<option value='3' $selected[3] >" . gettext("Tier 3") . "</option>\n";
echo "<option value='4' $selected[4] >" . gettext("Tier 4") . "</option>\n";
echo "<option value='5' $selected[5] >" . gettext("Tier 5") . "</option>\n";
echo "</select>\n";
echo "</td>";
<div class="content-box">
<header class="content-box-head container-fluid">
<h3><?=gettext("Edit gateway group entry");?></h3>
</header>
<div class="content-box-main col-xs-12">
$selected = array();
foreach((array)$pconfig['item'] as $item) {
$itemsplit = explode("|", $item);
if($itemsplit[0] == $gwname) {
$selected[$itemsplit[2]] = "selected=\"selected\"";
break;
} else {
$selected['address'] = "selected=\"selected\"";
}
}
echo "<td class='listr'>";
echo "<select name='{$gwname}_vip' class='gateway_vip_selector formfldselect' id='{$gwname}_vip'>\n";
echo "<option value='address' {$selected['address']} >" . gettext("Interface Address") . "</option>\n";
foreach($carplist as $vip => $address) {
echo "<!-- $vip - $address - $interface -->\n";
if(!preg_match("/^{$interface}_/i", $vip))
continue;
if(($gateway['ipprotocol'] == "inet") && (!is_ipaddrv4($address)))
continue;
if(($gateway['ipprotocol'] == "inet6") && (!is_ipaddrv6($address)))
continue;
echo "<option value='{$vip}' $selected[$vip] >$vip - $address</option>\n";
}
echo "</select></td>";
echo "<td class='listr'><strong>{$gateway['descr']}&nbsp;</strong>";
echo "</td></tr>";
}
?>
</table>
<br /><span class="vexpl">
<strong><?=gettext("Link Priority"); ?></strong> <br />
<?=gettext("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.") ?>
<br />
<strong><?=gettext("Virtual IP"); ?></strong> <br />
<?=gettext("The virtual IP field selects what (virtual) IP should be used when this group applies to a local Dynamic DNS, IPsec or OpenVPN endpoint") ?>
</span><br />
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Trigger Level"); ?></td>
<td width="78%" class="vtable">
<select name='trigger' class='formfldselect trigger_level_selector' id='trigger'>
<?php
foreach ($categories as $category => $categoryd) {
echo "<option value=\"$category\"";
if ($category == $pconfig['trigger']) echo " selected=\"selected\"";
echo ">" . htmlspecialchars($categoryd) . "</option>\n";
}
?>
</select>
<br /> <span class="vexpl"><?=gettext("When to trigger exclusion of a member"); ?></span></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("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"><?=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 name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>" />
<input type="button" class="formbtn" value="<?=gettext("Cancel");?>" onclick="window.location.href='<?=$referer;?>'" />
<?php if (isset($id) && $a_gateway_groups[$id]): ?>
<input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
<?php endif; ?>
</td>
</tr>
</table>
</form>
<form action="system_gateway_groups_edit.php" method="post" name="iform" id="iform">
<div class="table-responsive">
<table class="table table-striped" summary="system groups edit">
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("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"><?=gettext("Group Name"); ?></span></td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Gateway Priority"); ?></td>
<td width="78%" class="vtable">
<table border="0" cellpadding="6" cellspacing="0" summary="gateway priority">
<tr>
<td class="listhdrr">Gateway</td>
<td class="listhdrr">Tier</td>
<td class="listhdrr">Virtual IP</td>
<td class="listhdrr">Description</td>
</tr>
<?php
foreach($a_gateways as $gwname => $gateway) {
if(!empty($pconfig['item'])) {
$af = explode("|", $pconfig['item'][0]);
$family = $a_gateways[$af[0]]['ipprotocol'];
if($gateway['ipprotocol'] != $family)
continue;
}
$interface = $gateway['friendlyiface'];
$selected = array();
foreach((array)$pconfig['item'] as $item) {
$itemsplit = explode("|", $item);
if($itemsplit[0] == $gwname) {
$selected[$itemsplit[1]] = "selected=\"selected\"";
break;
} else {
$selected[0] = "selected=\"selected\"";
}
}
$tr_id = $gwname . "_row";
echo "<tr class='gateway_row' id='{$tr_id}'>\n";
echo "<td class='listlr'>";
echo "<strong>{$gateway['name']} </strong>";
echo "</td><td class='listr'>";
echo "<select name='{$gwname}' class='gateway_tier_selector formfldselect' id='{$gwname}'>\n";
echo "<option value='0' $selected[0] >" . gettext("Never") . "</option>\n";
echo "<option value='1' $selected[1] >" . gettext("Tier 1") . "</option>\n";
echo "<option value='2' $selected[2] >" . gettext("Tier 2") . "</option>\n";
echo "<option value='3' $selected[3] >" . gettext("Tier 3") . "</option>\n";
echo "<option value='4' $selected[4] >" . gettext("Tier 4") . "</option>\n";
echo "<option value='5' $selected[5] >" . gettext("Tier 5") . "</option>\n";
echo "</select>\n";
echo "</td>";
$selected = array();
foreach((array)$pconfig['item'] as $item) {
$itemsplit = explode("|", $item);
if($itemsplit[0] == $gwname) {
$selected[$itemsplit[2]] = "selected=\"selected\"";
break;
} else {
$selected['address'] = "selected=\"selected\"";
}
}
echo "<td class='listr'>";
echo "<select name='{$gwname}_vip' class='gateway_vip_selector formfldselect' id='{$gwname}_vip'>\n";
echo "<option value='address' {$selected['address']} >" . gettext("Interface Address") . "</option>\n";
foreach($carplist as $vip => $address) {
echo "<!-- $vip - $address - $interface -->\n";
if(!preg_match("/^{$interface}_/i", $vip))
continue;
if(($gateway['ipprotocol'] == "inet") && (!is_ipaddrv4($address)))
continue;
if(($gateway['ipprotocol'] == "inet6") && (!is_ipaddrv6($address)))
continue;
echo "<option value='{$vip}' $selected[$vip] >$vip - $address</option>\n";
}
echo "</select></td>";
echo "<td class='listr'><strong>{$gateway['descr']}&nbsp;</strong>";
echo "</td></tr>";
}
?>
</table>
<br /><span class="vexpl">
<strong><?=gettext("Link Priority"); ?></strong> <br />
<?=gettext("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.") ?>
<br />
<strong><?=gettext("Virtual IP"); ?></strong> <br />
<?=gettext("The virtual IP field selects what (virtual) IP should be used when this group applies to a local Dynamic DNS, IPsec or OpenVPN endpoint") ?>
</span><br />
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Trigger Level"); ?></td>
<td width="78%" class="vtable">
<select name='trigger' class='formfldselect trigger_level_selector' id='trigger'>
<?php
foreach ($categories as $category => $categoryd) {
echo "<option value=\"$category\"";
if ($category == $pconfig['trigger']) echo " selected=\"selected\"";
echo ">" . htmlspecialchars($categoryd) . "</option>\n";
}
?>
</select>
<br /> <span class="vexpl"><?=gettext("When to trigger exclusion of a member"); ?></span>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("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"><?=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 name="Submit" type="submit" class="btn btn-primary formbtn" value="<?=gettext("Save");?>" />
<input type="button" class="btn btn-default formbtn" value="<?=gettext("Cancel");?>" onclick="window.location.href='<?=$referer;?>'" />
<?php if (isset($id) && $a_gateway_groups[$id]): ?>
<input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
<?php endif; ?>
</td>
</tr>
</table>
</div>
</form>
</div>
</div>
</section>
</div>
</div>
</section>
<?php include("fend.inc"); ?>
</body>
</html>