Allow filtering of interfaces_selection box

This commit is contained in:
Scott Ullrich 2005-07-03 23:21:25 +00:00
parent a812c95a36
commit c98e7fb75a
2 changed files with 64 additions and 4 deletions

50
usr/local/pkg/sasyncd.xml Normal file
View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8" ?>
<packagegui>
<name>sasyncd</name>
<version>0.1.0</version>
<title>Services: SASYNCD (VPN failover)</title>
<!-- configpath gets expanded out automatically and config items will be
stored in that location -->
<configpath>['installedpackages']['sasyncd']['config']</configpath>
<aftersaveredirect>pkg_edit.php?xml=sassyncd.xml&amp;id=0</aftersaveredirect>
<!-- Menu is where this packages menu will appear -->
<menu>
<name>SASYNCD (VPN failover)</name>
<tooltiptext>The sasyncd daemon synchronizes IPSec SA and SPD information between a number of failover IPsec gateways. The most typical scenario is to run sasyncd on hosts also running isakmpd and sharing a common IP-address using carp.</tooltiptext>
<section>Services</section>
<configfile>sasyncd.xml</configfile>
</menu>
<adddeleteeditpagefields>
<columnitem>
<fielddescr>Interface</fielddescr>
<fieldname>interface</fieldname>
</columnitem>
<columnitem>
<fielddescr>Peer IP</fielddescr>
<fieldname>peerip</fieldname>
</columnitem>
</adddeleteeditpagefields>
<!-- fields gets invoked when the user adds or edits a item. the following items
will be parsed and rendered for the user as a gui with input, and selectboxes. -->
<fields>
<field>
<fielddescr>Interface</fielddescr>
<fieldname>interface</fieldname>
<description>Select the carp interface to use</description>
<interface_filter>carp</interface_filter>
<type>interfaces_selection</type>
</field>
<field>
<fielddescr>Peer IP</fielddescr>
<fieldname>peerip</fieldname>
<description>Enter the peers ip address</description>
<type>input</type>
</field>
<field>
<fielddescr>Shared Key</fielddescr>
<fieldname>sharedkey</fieldname>
<description>The shared AES key used to encrypt messages between sasyncd(8) hosts. This configuration setting is required and must be either 16, 24 or 32 bytes long (corresponding to AES using a 128, 192 or 256 bit key).</description>
<type>input</type>
</field>
</fields>
</packagegui>

View File

@ -396,11 +396,21 @@ if ($pkg['tabs'] <> "") {
$ifname = $iface['descr'];
$SELECTED = "";
if($value == $ifdescr) $SELECTED = " SELECTED";
echo "<option value='" . $ifdescr . "'" . $SELECTED . ">" . $ifdescr . "</option>\n";
echo "<!-- {$value} -->";
$to_echo = "<option value='" . $ifdescr . "'" . $SELECTED . ">" . $ifdescr . "</option>\n";
$to_echo .= "<!-- {$value} -->";
$canecho = 0;
if($pkga['interface_filter'] <> "") {
if(stristr($value, $pkga['interface_filter']) == true)
$canecho = 1;
} else {
$canecho = 1;
}
}
if($canecho == 1) {
echo $to_echo;
echo "</select>\n";
echo "<br>" . fixup_string($pkga['description']) . "\n";
}
echo "</select>\n";
echo "<br>" . fixup_string($pkga['description']) . "\n";
} else if($pkga['type'] == "radio") {
echo "<input type='radio' name='" . $pkga['fieldname'] . "' value='" . $value . "'>";
} else if($pkga['type'] == "rowhelper") {