blob: a1c6f0c9b19ad66c863ce9c02b82ad070c130fa5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
<& /elements/header.html, 'Edit package report classes' &>
%# change that title if we add any other editing controls
%# this should be centralized somewhere
<STYLE TYPE="text/css">
.row0 { background-color: #eeeeee; }
.row1 { background-color: #ffffff; }
</STYLE>
<FORM ACTION="process/bulk-part_pkg.html" METHOD="POST">
<DIV>
The following packages will be changed:<BR>
% foreach my $pkgpart (sort keys(%part_pkg)) {
<INPUT TYPE="hidden" NAME="pkgpart" VALUE="<% $pkgpart %>">
<% $part_pkg{$pkgpart}->pkg_comment |h %><BR>
% }
</DIV>
<BR>
<& /elements/table-grid.html &>\
<& /elements/tr-justtitle.html, value => mt('Report classes') &>
% my $row = 0;
% foreach my $num (sort keys %report_class) {
<TR CLASS="row<%$row % 2%>">
<TD>
% if ( defined $initial_state{$num} ) {
<& /elements/checkbox.html,
field => 'report_option_'.$num,
value => 1,
curr_value => $initial_state{$num}
&>
% } else {
% # needs to be a tristate so that you can say "don't change it"
<& /elements/checkbox-tristate.html, field => 'report_option_'.$num &>
% }
</TD>
<TD><% $report_class{$num}->name %></TD>
</TR>
% $row++;
% }
</TABLE>
<BR>
<INPUT TYPE="submit">
</FORM>
<& /elements/footer.html &>
<%init>
die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Bulk edit package definitions');
my @pkgparts = $cgi->param('pkgpart')
or die "no package definitions selected";
my %part_pkg = map { $_ => FS::part_pkg->by_key($_) } @pkgparts;
my %part_pkg_option = map { $_ => { $part_pkg{$_}->options } } @pkgparts;
my %report_class = map { $_->num => $_ }
qsearch('part_pkg_report_option', { disabled => '' });
my %initial_state;
foreach my $num (keys %report_class) {
my $yes = 0;
my $no = 0;
foreach my $option (values %part_pkg_option) {
if ( $option->{"report_option_$num"} ) {
$yes = 1;
} else {
$no = 1;
}
}
if ( $yes and $no ) {
$initial_state{$num} = undef;
} elsif ( $yes ) {
$initial_state{$num} = 1;
} elsif ( $no ) {
$initial_state{$num} = 0;
} # else, uh, you didn't provide any pkgparts
}
</%init>
|