X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_export.cgi;h=5411feb5fba062f8424e070f0f871f628745823b;hp=1450ac3b3cf94c1e53bbd1fc42e5dd74833ba8d0;hb=6e638a436bee0c28fbb702374659d75b928a9a3a;hpb=fb4ab1073f0d15d660c6cdc4e07afebf68ef3924 diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi index 1450ac3b3..5411feb5f 100644 --- a/httemplate/edit/part_export.cgi +++ b/httemplate/edit/part_export.cgi @@ -2,6 +2,34 @@ <% include('/elements/error.html') %> +
@@ -13,12 +41,6 @@ - Export host - - - - - Export <% $widget->html %> @@ -63,17 +85,91 @@ my $widget = new HTML::Widgets::SelectLayers( 'options' => \%layers, 'form_name' => 'dummy', 'form_action' => 'process/part_export.cgi', - 'form_text' => [qw( exportnum exportname machine )], -# 'form_checkbox' => [qw()], + 'form_text' => [qw( exportnum exportname )], 'html_between' => "\n", 'layer_callback' => sub { my $layer = shift; + # create 'config_element' to generate the whole layer with a Mason component + if ( my $include = $exports->{$layer}{config_element} ) { + # might need to adjust the scope of this at some point + return $m->scomp($include, + part_export => $part_export, + layer => $layer, + export_info => $exports->{$layer} + ); + } my $html = qq!!. ntable("#cccccc",2); - $html .= 'Description'. - $exports->{$layer}{notes}. '' - if $layer; + if ( $layer ) { + $html .= 'Description'. + $exports->{$layer}{notes}. ''; + + if ( $exports->{$layer}{no_machine} ) { + $html .= ''. + ''; + } else { + $html .= 'Hostname or IP'; + my $machine = $part_export->machine; + if ( $exports->{$layer}{svc_machine} ) { + my( $N_CHK, $Y_CHK) = ( 'CHECKED', '' ); + my( $machine_DISABLED, $pem_DISABLED) = ( '', 'DISABLED' ); + my @part_export_machine; + my $default_machine = ''; + if ( $cgi->param('svc_machine') eq 'Y' + || $machine eq '_SVC_MACHINE' + ) + { + $Y_CHK = 'CHECKED'; + $N_CHK = 'CHECKED'; + $machine_DISABLED = 'DISABLED'; + $pem_DISABLED = ''; + $machine = ''; + @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="svc_machine_changed(this, '$layer')"); + $html .= qq[ + + +
+ +
+ Selected in each customer service from these choices: + +
+ Default: + ' + } else { + $html .= qq(). + ''; + } + $html .= ""; + } + + } foreach my $option ( keys %{$exports->{$layer}{options}} ) { my $optinfo = $exports->{$layer}{options}{$option}; @@ -87,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 . @@ -105,8 +205,18 @@ 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 = defined($optinfo->{multi}) ? ' MULTIPLE' : ''; + my $multi = ($optinfo->{multi} || $optinfo->{multiple}) + ? ' MULTIPLE' : ''; $html .= qq!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 .= '';