summaryrefslogtreecommitdiffstats
path: root/src/usr/local/www/interfaces_groups_edit.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/local/www/interfaces_groups_edit.php')
-rw-r--r--src/usr/local/www/interfaces_groups_edit.php263
1 files changed, 71 insertions, 192 deletions
diff --git a/src/usr/local/www/interfaces_groups_edit.php b/src/usr/local/www/interfaces_groups_edit.php
index 22b8567..f9fc399 100644
--- a/src/usr/local/www/interfaces_groups_edit.php
+++ b/src/usr/local/www/interfaces_groups_edit.php
@@ -66,11 +66,10 @@ if (isset($id) && $a_ifgroups[$id]) {
$pconfig['descr'] = html_entity_decode($a_ifgroups[$id]['descr']);
}
-$iflist = get_configured_interface_with_descr();
-$iflist_disabled = get_configured_interface_with_descr(false, true);
+$interface_list = get_configured_interface_with_descr();
+$interface_list_disabled = get_configured_interface_with_descr(false, true);
if ($_POST) {
-
unset($input_errors);
$pconfig = $_POST;
@@ -103,11 +102,14 @@ if ($_POST) {
}
}
+ $members = isset($_POST['members']) ? join(' ', $_POST['members']) : "";
+
if (!$input_errors) {
$ifgroupentry = array();
$ifgroupentry['members'] = $members;
$ifgroupentry['descr'] = $_POST['descr'];
+ // Edit group name
if (isset($id) && $a_ifgroups[$id] && $_POST['ifname'] != $a_ifgroups[$id]['ifname']) {
if (!empty($config['filter']) && is_array($config['filter']['rule'])) {
foreach ($config['filter']['rule'] as $ridx => $rule) {
@@ -148,6 +150,8 @@ if ($_POST) {
}
$ifgroupentry['ifname'] = $_POST['ifname'];
$a_ifgroups[$id] = $ifgroupentry;
+
+ // Edit old group
} else if (isset($id) && $a_ifgroups[$id]) {
$omembers = explode(" ", $a_ifgroups[$id]['members']);
$nmembers = explode(" ", $members);
@@ -162,13 +166,14 @@ if ($_POST) {
}
$ifgroupentry['ifname'] = $_POST['ifname'];
$a_ifgroups[$id] = $ifgroupentry;
+
+ // Create new group
} else {
$ifgroupentry['ifname'] = $_POST['ifname'];
$a_ifgroups[] = $ifgroupentry;
}
write_config();
-
interface_group_setup($ifgroupentry);
header("Location: interfaces_groups.php");
@@ -181,198 +186,72 @@ if ($_POST) {
include("head.inc");
-?>
-
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC" onload="<?= $jsevents["body"]["onload"] ?>">
-<?php include("fbegin.inc"); ?>
-
-<script type="text/javascript">
-//<![CDATA[
-// Global Variables
-var rowname = new Array(9999);
-var rowtype = new Array(9999);
-var newrow = new Array(9999);
-var rowsize = new Array(9999);
-
-for (i = 0; i < 9999; i++) {
- rowname[i] = '';
- rowtype[i] = 'select';
- newrow[i] = '';
- rowsize[i] = '30';
-}
-
-var field_counter_js = 0;
-var loaded = 0;
-var is_streaming_progress_bar = 0;
-var temp_streaming_text = "";
-
-var addRowTo = (function() {
- return (function (tableId) {
- var d, tbody, tr, td, bgc, i, ii, j;
- d = document;
- tbody = d.getElementById(tableId).getElementsByTagName("tbody").item(0);
- tr = d.createElement("tr");
- for (i = 0; i < field_counter_js; i++) {
- td = d.createElement("td");
- <?php
- $innerHTML="\"<input type='hidden' value='\" + totalrows +\"' name='\" + rowname[i] + \"_row-\" + totalrows + \"' /><select size='1' name='\" + rowname[i] + totalrows + \"'>\" +\"";
-
- foreach ($iflist as $ifnam => $ifdescr) {
- $innerHTML .= "<option value='{$ifnam}'>{$ifdescr}<\/option>";
- }
- $innerHTML .= "<\/select>\";";
- ?>
- td.innerHTML=<?=$innerHTML;?>
- tr.appendChild(td);
- }
- td = d.createElement("td");
- td.rowSpan = "1";
-
- 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);
- tbody.appendChild(tr);
- totalrows++;
- });
-})();
-
-function removeRow(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);
- }
+if ($input_errors) {
+ print_input_errors($input_errors);
}
- rowname[0] = "members";
- rowtype[0] = "textbox";
- rowsize[0] = "30";
-
- rowname[2] = "detail";
- rowtype[2] = "textbox";
- rowsize[2] = "50";
-//]]>
-</script>
-<input type='hidden' name='members_type' value='textbox' class="formfld unknown" />
-
-<?php if ($input_errors) print_input_errors($input_errors); ?>
-<div id="inputerrors"></div>
-
-<form action="interfaces_groups_edit.php" method="post" name="iform" id="iform">
-<table width="100%" border="0" cellpadding="6" cellspacing="0" summary="interfaces groups edit">
- <tr>
- <td colspan="2" valign="top" class="listtopic"><?=gettext("Interface Groups Edit");?></td>
- </tr>
- <tr>
- <td valign="top" class="vncellreq"><?=gettext("Group Name");?></td>
- <td class="vtable">
- <input class="formfld unknown" name="ifname" id="ifname" maxlength="15" value="<?=htmlspecialchars($pconfig['ifname']);?>" />
- <br />
- <?=gettext("No numbers or spaces are allowed. Only characters in a-zA-Z");?>
- </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" class="vncellreq"><div id="membersnetworkport"><?=gettext("Member (s)");?></div></td>
- <td width="78%" class="vtable">
- <table id="maintable" summary="main table">
- <tbody>
- <tr>
- <td>
- <div id="onecolumn"><?=gettext("Interface");?></div>
- </td>
- </tr>
-<?php
- $counter = 0;
- $members = $pconfig['members'];
- if ($members <> "") {
- $item = explode(" ", $members);
- foreach ($item as $ww) {
- $members = $item[$counter];
- $tracker = $counter;
?>
- <tr>
- <td class="vtable">
- <select name="members<?php echo $tracker; ?>" class="formselect" id="members<?php echo $tracker; ?>">
+<div id="inputerrors"></div>
<?php
- $found = false;
- foreach ($iflist as $ifnam => $ifdescr) {
- echo "<option value=\"{$ifnam}\"";
- if ($ifnam == $members) {
- $found = true;
- echo " selected=\"selected\"";
- }
- echo ">{$ifdescr}</option>";
- }
+$tab_array = array();
+$tab_array[0] = array(gettext("Interface assignments"), false, "interfaces_assign.php");
+$tab_array[1] = array(gettext("Interface Groups"), true, "interfaces_groups.php");
+$tab_array[2] = array(gettext("Wireless"), false, "interfaces_wireless.php");
+$tab_array[3] = array(gettext("VLANs"), false, "interfaces_vlan.php");
+$tab_array[4] = array(gettext("QinQs"), false, "interfaces_qinq.php");
+$tab_array[5] = array(gettext("PPPs"), false, "interfaces_ppps.php");
+$tab_array[7] = array(gettext("GRE"), false, "interfaces_gre.php");
+$tab_array[8] = array(gettext("GIF"), false, "interfaces_gif.php");
+$tab_array[9] = array(gettext("Bridges"), false, "interfaces_bridge.php");
+$tab_array[10] = array(gettext("LAGG"), false, "interfaces_lagg.php");
+display_top_tabs($tab_array);
+
+require_once('classes/Form.class.php');
+$form = new Form;
+$section = new Form_Section('Interface Group Edit');
+
+$section->addInput(new Form_Input(
+ 'ifname',
+ 'Group Name',
+ 'text',
+ $pconfig['ifname'],
+ ['placeholder' => 'Group Name']
+))->setWidth(6)->setHelp('No numbers or spaces are allowed. '.
+ 'Only characters in a-zA-Z');
+
+$section->addInput(new Form_Input(
+ 'descr',
+ 'Group Description',
+ 'text',
+ $pconfig['descr'],
+ ['placeholder' => 'Group Description']
+))->setWidth(6)->setHelp('You may enter a group decsription '.
+ 'here for your reference (not parsed)');
+
+$section->addInput(new Form_Select(
+ 'members[]',
+ 'Group Members',
+ explode(' ', $pconfig['members']),
+ $interface_list,
+ true
+))->setWidth(6)->setHelp('NOTE: Rules for WAN type '.
+ 'interfaces in groups do not contain the reply-to mechanism upon which '.
+ 'Multi-WAN typically relies. '.
+ '<a href="https://doc.pfsense.org/index.php/ifgroups">More Information</a>');
- if ($found === false) {
- foreach ($iflist_disabled as $ifnam => $ifdescr) {
- if ($ifnam == $members) {
- echo "<option value=\"{$ifnam}\" selected=\"selected\">{$ifdescr}</option>";
- }
- }
- }
-?>
- </select>
- </td>
- <td>
- <a onclick="removeRow(this); return false;" href="#"><img border="0" src="/themes/<?echo $g['theme'];?>/images/icons/icon_x.gif" alt="remove" /></a>
- </td>
- </tr>
-<?php
- $counter++;
- } // end foreach
- } // end if
-?>
- </tbody>
- </table>
- <a onclick="javascript:addRowTo('maintable'); return false;" href="#">
- <img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="" title="<?=gettext("add another entry");?>" />
- </a>
- <br /><br />
- <strong><?php echo gettext("NOTE:");?></strong>
- <?php echo gettext("Rules for WAN type interfaces in groups do not contain the reply-to mechanism upon which Multi-WAN typically relies.");?>
- <a href="https://doc.pfsense.org/index.php/Interface_Groups"><?PHP echo gettext("More Information");?></a>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="top">&nbsp;</td>
- <td width="78%">
- <input id="submit" name="submit" type="submit" class="formbtn" value="<?=gettext("Save");?>" />
- <a href="interfaces_groups.php"><input id="cancelbutton" name="cancelbutton" type="button" class="formbtn" value="<?=gettext("Cancel");?>" /></a>
- <?php if (isset($id) && $a_ifgroups[$id]): ?>
- <input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
- <?php endif; ?>
- </td>
- </tr>
-</table>
-</form>
-
-<script type="text/javascript">
-//<![CDATA[
- field_counter_js = 1;
- rows = 1;
- totalrows = <?php echo $counter; ?>;
- loaded = <?php echo $counter; ?>;
-//]]>
-</script>
+if (isset($id) && $a_ifgroups[$id]) {
+ $form->addGlobal(new Form_Input(
+ 'id',
+ 'id',
+ 'hidden',
+ $id
+ ));
+}
-<?php
- unset($iflist);
- unset($iflist_disabled);
- include("fend.inc");
+$form->add($section);
+print $form;
+
+unset($interface_list);
+unset($interface_list_disabled);
+include("fend.inc");
?>
-</body>
-</html>
OpenPOWER on IntegriCloud