#!/usr/local/bin/perl
# edit_view.cgi
# Display options for an existing view
require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$view = $conf->[$in{'index'}];
$vconf = $view->{'members'};
$access{'views'} || &error($text{'view_ecannot'});
&can_edit_view($view) || &error($text{'view_ecannot'});
&ui_print_header(undef, $text{'view_title'}, "",
undef, undef, undef, undef, &restart_links());
# Form header
print &ui_form_start("save_view.cgi", "post");
print &ui_hidden("index", $in{'index'});
print &ui_table_start($text{'view_opts'}, "width=100%", 4,
[ "width=30%", undef, "width=30%", undef ]);
# View name
@v = @{$view->{'values'}};
print &ui_table_row($text{'view_name'}, "$v[0]");
# Class (not editable)
print &ui_table_row($text{'view_class'},
$v[1] ? "$v[1]" : "$text{'default'} (IN)");
print &addr_match_input($text{'view_match'}, "match-clients", $vconf);
print &choice_input($text{'view_recursion'}, 'recursion', $vconf,
$text{'yes'}, 'yes', $text{'no'}, 'no',
$text{'default'}, undef);
print &ui_table_end();
# Options for zones in view
print &ui_table_start($text{'view_opts2'}, "width=100%", 4,
[ "width=30%", undef, "width=30%", undef ]);
print &address_input($text{'master_transfer'}, "allow-transfer", $vconf);
print &address_input($text{'master_query'}, "allow-query", $vconf);
print &address_input($text{'master_notify2'}, "also-notify", $vconf);
print &address_input($text{'master_notify3'}, "allow-notify", $vconf);
print &ui_table_end();
if ($access{'ro'}) {
print &ui_form_end();
}
else {
print &ui_form_end([ [ undef, $text{'save'} ] ]);
# Delete button
print &ui_hr();
print &ui_buttons_start();
print &ui_buttons_row("delete_view.cgi",
$text{'view_delete'}, $text{'view_deletemsg'},
&ui_hidden("index", $in{'index'}));
print &ui_buttons_end();
}
&ui_print_footer("", $text{'index_return'});