/usr/share/usermin/postgresql
Edit: /usr/share/usermin/postgresql/drop_tables.cgi (1763B)
#!/usr/bin/perl
# Delete multiple tables
require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
@tables = split(/\0/, $in{'d'});
@tables || &error($text{'tdrops_enone'});
if ($in{'confirm'}) {
# Drop the tables, views, sequences and indexes (tables last)
&error_setup($text{'tdrops_err'});
foreach $t (@tables) {
if ($t =~ /^\!(.*)$/) {
$qt = "e_table($1);
&execute_sql_logged($in{'db'}, "drop index $qt");
}
elsif ($t =~ /^\*(.*)$/) {
$qt = "e_table($1);
&execute_sql_logged($in{'db'}, "drop view $qt");
}
elsif ($t =~ /^\/(.*)$/) {
$qt = "e_table($1);
&execute_sql_logged($in{'db'}, "drop sequence $qt");
}
else {
push(@rest, $t);
}
}
foreach $t (@rest) {
$qt = "e_table($t);
&execute_sql_logged($in{'db'}, "drop table $qt");
}
&webmin_log("delete", "tables", scalar(@tables), \%in);
&redirect("edit_dbase.cgi?db=$in{'db'}");
}
else {
# Ask the user if he is sure..
&ui_print_header(undef, $text{'tdrops_title'}, "");
foreach $t (@tables) {
if ($t !~ /^\!/ && $t !~ /^\*/ && $t !~ /^\//) {
$qt = "e_table($t);
$d = &execute_sql_safe($in{'db'}, "select count(*) from $qt");
$rows += $d->{'data'}->[0]->[0];
}
}
$msg = defined($rows) ? 'tdrops_rusure' : 'tdrops_rusure2';
print "
", &text($msg, scalar(@tables),
"$in{'db'}", $rows),"\n";
print "
\n";
&ui_print_footer("edit_dbase.cgi?db=$in{'db'}",
$text{'dbase_return'});
}