8 my $svcpart = $clone || $part_svc->svcpart; # may be undef
10 # get a list of applicable part_exports
12 my $export_info = FS::part_export::export_info($svcdb);
13 foreach ( keys %{ $export_info } ) {
14 push @part_export, qsearch('part_export', { exporttype => $_ });
16 # and a hash of which ones are already assigned to this part_svc
19 %export_svc = map { $_->exportnum => $_ }
20 qsearch('export_svc', { svcpart => $svcpart });
27 <script type="text/javascript">
28 function toggle_selectrole() {
29 var selectrole = document.getElementById( this.name + '_selectrole' );
31 selectrole.style.visibility = (this.checked) ? '' : 'hidden';
34 <&| /elements/onload.js &>
35 var boxes = document.getElementsByClassName('checkbox_export');
36 for ( var i = 0; i < boxes.length; i++ ) {
37 boxes[i].onchange = toggle_selectrole;
38 toggle_selectrole.apply(boxes[i]);
42 <FONT CLASS="fsinnerbox-title">Exports</FONT>
43 <TABLE CLASS="fsinnerbox">
46 % foreach my $part_export (@part_export) {
47 % my $exportnum = $part_export->exportnum;
49 <INPUT CLASS="checkbox_export"
51 NAME="exportnum<% $exportnum %>" \
53 <% $export_svc{$exportnum} ? 'CHECKED' : '' %>>
54 <% $part_export->label_html %>
55 % if ( $part_export->info->{roles} ) {
56 % my $role_info = $part_export->info->{roles};
57 % my @role_names = keys %$role_info;
58 % my %role_labels = map { %_ => $role_info->{$_}->{label} } @role_names;
59 % my $curr_role = $export_svc{$exportnum} ? $export_svc{$exportnum}->role
61 <SPAN CLASS="selectrole" ID="exportnum<%$exportnum%>_selectrole">
63 <& /elements/select.html,
64 'field' => "exportnum${exportnum}_role",
65 'options' => \@role_names,
66 'labels' => \%role_labels,
67 'curr_value' => $curr_role,
68 'empty_label' => 'select',
71 % # XXX should lock out roles that don't apply to the selected svcdb,
72 % # but that's a pain in the ass
78 % if ( $count % $columns == 0 ) {