diff options
Diffstat (limited to 'httemplate/edit/bulk-part_pkg.html')
| -rw-r--r-- | httemplate/edit/bulk-part_pkg.html | 74 | 
1 files changed, 74 insertions, 0 deletions
diff --git a/httemplate/edit/bulk-part_pkg.html b/httemplate/edit/bulk-part_pkg.html new file mode 100644 index 000000000..751bf7e5d --- /dev/null +++ b/httemplate/edit/bulk-part_pkg.html @@ -0,0 +1,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 %><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>  | 
