diff --git a/bind8/bind8-lib.pl b/bind8/bind8-lib.pl index e557c7751..4a01fa62d 100644 --- a/bind8/bind8-lib.pl +++ b/bind8/bind8-lib.pl @@ -593,11 +593,12 @@ $dir = { 'name' => $_[0], 'type' => 1, 'members' => \@vals }; } # forwarders_input(text, name, &config) +# Returns a form field containing a table of forwarding IPs and ports sub forwarders_input { -local($v, $rv, $av, @ips, @prs); -$v = &find($_[1], $_[2]); -foreach $av (@{$v->{'members'}}) { +my $v = &find($_[1], $_[2]); +my (@ips, @prs); +foreach my $av (@{$v->{'members'}}) { push(@ips, $av->{'name'}); if ($av->{'values'}->[0] eq 'port') { push(@prs, $av->{'values'}->[1]); @@ -606,18 +607,16 @@ foreach $av (@{$v->{'members'}}) { push(@prs, undef); } } -$rv = "$_[0] \n"; -$rv .= "\n"; -$rv .= " ". - "\n"; -for($i=0; $i<@ips+3; $i++) { - $rv .= "\n"; - $rv .= "\n"; - $rv .= "\n"; - $rv .= "\n"; +my @table; +for(my $i=0; $i<@ips+3; $i++) { + push(@table, [ &ui_textbox("$_[1]_ip_$i", $ips[$i], 20), + &ui_opt_textbox("$_[1]_pr_$i", $prs[$i], 5, + $text{'default'}), + ]); } -$rv .= "
$text{'forwarding_ip'}$text{'forwarding_port'}
\n"; -return $rv; +return &ui_table_row($_[0], + &ui_columns_table([ $text{'forwarding_ip'}, $text{'forwarding_port'} ], + undef, \@table, undef, 1), 3); } # save_forwarders(name, &parent, indent) @@ -627,7 +626,7 @@ local ($i, $ip, $pr, @vals); for($i=0; defined($ip = $in{"$_[0]_ip_$i"}); $i++) { next if (!$ip); &check_ipaddress($ip) || &error(&text('eip', $ip)); - $pr = $in{"$_[0]_pr_$i"}; + $pr = $in{"$_[0]_pr_${i}_def"} ? undef : $in{"$_[0]_pr_$i"}; !$pr || $pr =~ /^\d+$/ || &error(&text('eport', $pr)); push(@vals, { 'name' => $ip, 'values' => $pr ? [ "port", $pr ] : [ ] }); diff --git a/bind8/conf_forwarding.cgi b/bind8/conf_forwarding.cgi index b682b98ae..3c62e57cc 100755 --- a/bind8/conf_forwarding.cgi +++ b/bind8/conf_forwarding.cgi @@ -10,40 +10,29 @@ $conf = &get_config(); $options = &find("options", $conf); $mems = $options->{'members'}; -print "
\n"; -print "\n"; -print "\n"; -print "
$text{'forwarding_header'}
\n"; +# Start of the form +print &ui_form_start("save_forwarding.cgi"); +print &ui_table_start($text{'forwarding_header'}, "width=100%", 4); -print "\n"; print &forwarders_input($text{'forwarding_fwders'}, 'forwarders', $mems); -print "\n"; -print "\n"; print &choice_input($text{'forwarding_fwd'}, 'forward', $mems, $text{'yes'}, 'first', $text{'no'}, 'only', $text{'default'}, undef); -print "\n"; -print "\n"; print &opt_input($text{'forwarding_max'}, "max-transfer-time-in", $mems, $text{'default'}, 4, $text{'forwarding_minutes'}); -print "\n"; -print "\n"; print &choice_input($text{'forwarding_format'}, 'transfer-format', $mems, $text{'forwarding_one'}, 'one-answer', $text{'forwarding_many'}, 'many-answers', $text{'default'}, undef); -print "\n"; -print "\n"; print &opt_input($text{'forwarding_in'}, "transfers-in", $mems, $text{'default'}, 4); -print "\n"; -print "
\n"; -print "
\n"; +print &ui_table_end(); +print &ui_form_end([ [ undef, $text{'save'} ] ]); &ui_print_footer("", $text{'index_return'}); diff --git a/bind8/lang/en b/bind8/lang/en index 3eaa47e62..3d4745a54 100644 --- a/bind8/lang/en +++ b/bind8/lang/en @@ -558,7 +558,7 @@ forwarding_emins=Missing or invalid maximum transfer time forwarding_etrans=Missing or invalid maximum concurrent transfers forwarding_minutes=minutes forwarding_ip=IP address -forwarding_port=Port (optional) +forwarding_port=Port net_title=Addresses and Topology net_ecannot=You are not allowed to edit address and topology options