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