1#!/usr/local/bin/perl 2# delete_packs.cgi 3# Ask if the user wants to delete multiple packages, and if so do it 4# XXX logging 5 6require './software-lib.pl'; 7&ReadParse(); 8&error_setup($text{'deletes_err'}); 9foreach $d (split(/\0/, $in{'del'})) { 10 local ($p, $v) = split(/\s/, $d); 11 local @pinfo; 12 (@pinfo = &package_info($p, $v)) || 13 &error(&text('delete_epack', $p)); 14 push(@packs, $p); 15 push(@vers, $v); 16 push(@infos, \@pinfo); 17 } 18@packs || &error($text{'deletes_enone'}); 19 20&ui_print_header(undef, $text{'deletes_title'}, "", "delete"); 21 22if ($in{'sure'}) { 23 # do the deletion 24 print "<p>\n"; 25 if (defined(&delete_packages)) { 26 # Can just use one function 27 print &text('deletes_desc', "<tt>".join(" ", @packs)."</tt>"), 28 "<p>\n"; 29 $error = &delete_packages(\@packs, \%in, \@vers); 30 if ($error) { 31 print "<b>",&text('deletes_failed2', $error),"</b><p>\n"; 32 } 33 else { 34 print "$text{'deletes_success2'}<p>\n"; 35 } 36 } 37 else { 38 # Need to use a loop 39 for($i=0; $i<@packs; $i++) { 40 $error = &delete_package($packs[$i], \%in, $vers[$i]); 41 if ($error) { 42 print "<b>",&text('deletes_failed1', "<tt>$packs[$i]</tt>", $error),"</b><br>\n"; 43 } 44 else { 45 print &text('deletes_success1', "<tt>$packs[$i]</tt>"),"<br>\n"; 46 } 47 } 48 } 49 &webmin_log("deletes", "package", undef, { 'packs' => \@packs }); 50 } 51else { 52 # Ask if the user is sure.. 53 print "<center>\n"; 54 print &text('deletes_rusure', "<tt>".join(" ", @packs)."</tt>"), 55 "<p>\n"; 56 print &ui_form_start("delete_packs.cgi", "post"); 57 foreach $d (split(/\0/, $in{'del'})) { 58 print &ui_hidden("del", $d); 59 } 60 print &ui_hidden("sure", 1); 61 print &ui_hidden("search", $in{'search'}); 62 print &ui_submit($text{'deletes_ok'}),"<p>\n"; 63 if (defined(&delete_options)) { 64 &delete_options($packs[0]); 65 } 66 print &ui_form_end(),"</center>\n"; 67 68 } 69 70&ui_print_footer("search.cgi?search=$in{'search'}", $text{'search_return'}); 71 72