diff --git a/nftables/delete_chain.cgi b/nftables/delete_chain.cgi
index 0a3156864..25b93990b 100644
--- a/nftables/delete_chain.cgi
+++ b/nftables/delete_chain.cgi
@@ -20,34 +20,13 @@ my @refs = grep {
($_->{'jump'} && $_->{'jump'} eq $in{'chain'}) ||
($_->{'goto'} && $_->{'goto'} eq $in{'chain'})
} @{$table->{'rules'}};
+@refs && error(text('delete_chain_inuse', $in{'chain'}, scalar(@refs)));
-if ($in{'confirm'}) {
- @refs && error(text('delete_chain_inuse', $in{'chain'}, scalar(@refs)));
+@{$table->{'rules'}} = grep { $_->{'chain'} ne $in{'chain'} } @{$table->{'rules'}};
+delete($table->{'chains'}->{$in{'chain'}});
- @{$table->{'rules'}} = grep { $_->{'chain'} ne $in{'chain'} } @{$table->{'rules'}};
- delete($table->{'chains'}->{$in{'chain'}});
-
- my $err = save_table_configuration($table, @tables);
- error(text('delete_chain_failed', $err)) if ($err);
- webmin_log("delete", "chain", $in{'chain'},
- { 'table' => $table->{'name'}, 'family' => $table->{'family'} });
- redirect("index.cgi?table=$in{'table'}");
-}
-
-ui_print_header(undef, $text{'delete_chain_title'}, "", "intro", 1, 1);
-print ui_form_start("delete_chain.cgi");
-print ui_hidden("table", $in{'table'});
-print ui_hidden("chain", $in{'chain'});
-print "
",
- text('delete_chain_confirm',
- "$in{'chain'}",
- "$table->{'family'} $table->{'name'}"),
- "";
-if (@refs) {
- print "
", text('delete_chain_inuse', $in{'chain'}, scalar(@refs));
-}
-print "\n";
-print ui_submit($text{'delete'}, "confirm");
-print "
\n";
-print ui_form_end();
-ui_print_footer("index.cgi?table=$in{'table'}", $text{'index_return'});
+my $err = save_table_configuration($table, @tables);
+error(text('delete_chain_failed', $err)) if ($err);
+webmin_log("delete", "chain", $in{'chain'},
+ { 'table' => $table->{'name'}, 'family' => $table->{'family'} });
+redirect("index.cgi?table=$in{'table'}");
diff --git a/nftables/delete_set.cgi b/nftables/delete_set.cgi
index 24c97759f..63b522b53 100755
--- a/nftables/delete_set.cgi
+++ b/nftables/delete_set.cgi
@@ -17,32 +17,12 @@ my $set = $table->{'sets'}->{$in{'set'}};
$set || error($text{'set_noset'});
my $refs = count_set_references($table, $in{'set'});
+$refs && error(text('delete_set_inuse', $in{'set'}, $refs));
-if ($in{'confirm'}) {
- $refs && error(text('delete_set_inuse', $in{'set'}, $refs));
+delete($table->{'sets'}->{$in{'set'}});
- delete($table->{'sets'}->{$in{'set'}});
- my $err = save_table_configuration($table, @tables);
- error(text('delete_set_failed', $err)) if ($err);
- webmin_log("delete", "set", $in{'set'},
- { 'table' => $table->{'name'}, 'family' => $table->{'family'} });
- redirect("index.cgi?table=$in{'table'}&view=sets");
-}
-
-ui_print_header(undef, $text{'delete_set_title'}, "", "intro", 1, 1);
-print ui_form_start("delete_set.cgi");
-print ui_hidden("table", $in{'table'});
-print ui_hidden("set", $in{'set'});
-print "",
- text('delete_set_confirm',
- "$in{'set'}",
- "$table->{'family'} $table->{'name'}"),
- "";
-if ($refs) {
- print "
", text('delete_set_inuse', $in{'set'}, $refs);
-}
-print "\n";
-print ui_submit($text{'delete'}, "confirm");
-print "
\n";
-print ui_form_end();
-ui_print_footer("index.cgi?table=$in{'table'}&view=sets", $text{'index_return'});
+my $err = save_table_configuration($table, @tables);
+error(text('delete_set_failed', $err)) if ($err);
+webmin_log("delete", "set", $in{'set'},
+ { 'table' => $table->{'name'}, 'family' => $table->{'family'} });
+redirect("index.cgi?table=$in{'table'}&view=sets");
diff --git a/nftables/lang/en b/nftables/lang/en
index 9fed1d4dc..92da50ba6 100644
--- a/nftables/lang/en
+++ b/nftables/lang/en
@@ -165,10 +165,8 @@ chain_edup=A chain with that name already exists
chain_notable=No such table selected
chain_nochain=No such chain selected
chain_ebase=Base chains require type, hook, priority, and policy.
-delete_chain_title=Delete chain
delete_chain_err=Failed to delete chain
delete_chain_failed=Failed to delete chain: $1
-delete_chain_confirm=Are you sure you want to delete chain $1 from table $2?
delete_chain_inuse=Chain $1 is referenced by $2 rule(s) via jump/goto. Remove those rules first.
delete_chains_err=Failed to delete selected chains
delete_chains_failed=Failed to delete selected chains: $1
@@ -222,10 +220,8 @@ set_edup=A set with that name already exists
set_etype=Set type is required
set_notable=No such table selected
set_noset=No such set selected
-delete_set_title=Delete set
delete_set_err=Failed to delete set
delete_set_failed=Failed to delete set: $1
-delete_set_confirm=Are you sure you want to delete set $1 from table $2?
delete_set_inuse=Set $1 is referenced by $2 rule(s). Remove those rules first.
delete_sets_err=Failed to delete selected sets
delete_sets_failed=Failed to delete selected sets: $1