X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_export.cgi;h=5411feb5fba062f8424e070f0f871f628745823b;hp=4dd253be8ceded0f3e8613c4775e496c2d929afd;hb=f822e27a1e00594332ffa487a1c284234c5580a6;hpb=a72a10f754f7465121d6137bb3dcee0a21ea6443 diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi index 4dd253be8..5411feb5f 100644 --- a/httemplate/edit/part_export.cgi +++ b/httemplate/edit/part_export.cgi @@ -2,6 +2,34 @@ <% include('/elements/error.html') %> +
@@ -58,7 +86,6 @@ my $widget = new HTML::Widgets::SelectLayers( 'form_name' => 'dummy', 'form_action' => 'process/part_export.cgi', 'form_text' => [qw( exportnum exportname )], -# 'form_checkbox' => [qw()], 'html_between' => "\n", 'layer_callback' => sub { my $layer = shift; @@ -87,7 +114,8 @@ my $widget = new HTML::Widgets::SelectLayers( if ( $exports->{$layer}{svc_machine} ) { my( $N_CHK, $Y_CHK) = ( 'CHECKED', '' ); my( $machine_DISABLED, $pem_DISABLED) = ( '', 'DISABLED' ); - my $part_export_machine = ''; + my @part_export_machine; + my $default_machine = ''; if ( $cgi->param('svc_machine') eq 'Y' || $machine eq '_SVC_MACHINE' ) @@ -97,38 +125,43 @@ my $widget = new HTML::Widgets::SelectLayers( $machine_DISABLED = 'DISABLED'; $pem_DISABLED = ''; $machine = ''; - $part_export_machine = - $cgi->param('part_export_machine') - || join "\n", + @part_export_machine = $cgi->param('part_export_machine'); + if (!@part_export_machine) { + @part_export_machine = map $_->machine, grep ! $_->disabled, $part_export->part_export_machine; + } + $default_machine = + $cgi->param('default_machine_name') + || $part_export->default_export_machine; } - my $oc = qq(onChange="${layer}_svc_machine_changed(this)"); + my $oc = qq(onChange="svc_machine_changed(this, '$layer')"); $html .= qq[
- Selected in each customer service from these choices - - - +
+ Selected in each customer service from these choices: + +
+ Default: + ' } else { $html .= qq(). ''; @@ -150,6 +183,10 @@ my $widget = new HTML::Widgets::SelectLayers( ? $optinfo->{default} : '' ); + + #handle these with post_config_element + next if $type eq 'custom'; + if ( $type eq 'title' ) { $html .= qq!! . $label . @@ -168,6 +205,15 @@ my $widget = new HTML::Widgets::SelectLayers( $html .= qq!$label!; } if ( $type eq 'select' ) { + + # 'select' options can specify options one of two ways: + # the "preferred" way: + # options: arrayref of allowed option values + # option_labels: hashref of option value => label + # OR the weird and semi-deprecated way: + # option_values: coderef to return a list of allowed option values + # option_label: coderef to take an option value and return its label + my $size = defined($optinfo->{size}) ? " SIZE=" . $optinfo->{size} : ''; my $multi = ($optinfo->{multi} || $optinfo->{multiple}) ? ' MULTIPLE' : ''; @@ -185,10 +231,15 @@ my $widget = new HTML::Widgets::SelectLayers( #} else { my $selected = ($multi ? grep {$_ eq $select_option} @values : $select_option eq $value ) ? ' SELECTED' : ''; my $label = $select_option; - if (defined($optinfo->{option_label})) { + if ( defined $optinfo->{option_label} ) { my $labelsub = $optinfo->{option_label}; $label = &$labelsub($select_option); + } elsif ( defined $optinfo->{option_labels} ) { + if (exists $optinfo->{option_labels}->{$select_option}) { + $label = $optinfo->{option_labels}->{$select_option}; + } } + $html .= qq!!; #} @@ -234,8 +285,24 @@ my $widget = new HTML::Widgets::SelectLayers( $html .= ''; } + $html .= 'Do not suspend services' . + 'no_suspend eq 'Y'; + $html .= '>'; + $html .= ''; + # false laziness with config_element above + # create 'post_config_element' to generate the whole layer with a Mason component + if ( my $include = $exports->{$layer}{post_config_element} ) { + # might need to adjust the scope of this at some point + $html .= $m->scomp($include, + part_export => $part_export, + layer => $layer, + export_info => $exports->{$layer} + ); + } + $html .= '';