From 1ad547a47f16b4230762e752fbe48d460ed997e1 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Tue, 18 Sep 2012 02:18:04 -0700 Subject: export host selection per service, RT#17914 --- httemplate/browse/part_export.cgi | 17 ++++++-- httemplate/edit/part_export.cgi | 74 ++++++++++++++++++++++++++++----- httemplate/edit/process/part_export.cgi | 5 +++ 3 files changed, 82 insertions(+), 14 deletions(-) (limited to 'httemplate') diff --git a/httemplate/browse/part_export.cgi b/httemplate/browse/part_export.cgi index 8e28f4fc6..beed70887 100755 --- a/httemplate/browse/part_export.cgi +++ b/httemplate/browse/part_export.cgi @@ -36,10 +36,19 @@ function part_export_areyousure(href) { <% $part_export->exportnum %> -% if( $part_export->exportname ) { - <% $part_export->exportname %>:
-% } -<% $part_export->exporttype %> to <% $part_export->machine %> (edit | delete) +% if( $part_export->exportname ) { + <% $part_export->exportname %>:
+% } + <% $part_export->exporttype %> + <% $part_export->machine + ? 'to '. ( $part_export->machine eq '_SVC_MACHINE' + ? 'per-service hostname' + : $part_export->machine + ) + : '' + %> + (edit | delete) + <% itable() %> diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi index d7219b74a..0407ee77b 100644 --- a/httemplate/edit/part_export.cgi +++ b/httemplate/edit/part_export.cgi @@ -12,12 +12,6 @@ - - Export host - - - - Export <% $widget->html %> @@ -63,7 +57,7 @@ my $widget = new HTML::Widgets::SelectLayers( 'options' => \%layers, 'form_name' => 'dummy', 'form_action' => 'process/part_export.cgi', - 'form_text' => [qw( exportnum exportname machine )], + 'form_text' => [qw( exportnum exportname )], # 'form_checkbox' => [qw()], 'html_between' => "\n", 'layer_callback' => sub { @@ -71,9 +65,69 @@ my $widget = new HTML::Widgets::SelectLayers( 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 = ''; + 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') + || join "\n", + map $_->machine, + grep ! $_->disabled, + $part_export->part_export_machine; + } + my $oc = qq(onChange="${layer}_svc_machine_changed(this)"); + $html .= qq[ + + +
+ + Selected in each customer service from these choices + + + + ]; + } else { + $html .= qq(). + ''; + } + $html .= ""; + } + + } foreach my $option ( keys %{$exports->{$layer}{options}} ) { my $optinfo = $exports->{$layer}{options}{$option}; diff --git a/httemplate/edit/process/part_export.cgi b/httemplate/edit/process/part_export.cgi index 21150ef67..6432d6b15 100644 --- a/httemplate/edit/process/part_export.cgi +++ b/httemplate/edit/process/part_export.cgi @@ -28,6 +28,11 @@ my $new = new FS::part_export ( { } fields('part_export') } ); +if ( $cgi->param('svc_machine') eq 'Y' ) { + $new->machine('_SVC_MACHINE'); + $new->part_export_machine_textarea( $cgi->param('part_export_machine') ); +} + my $error; if ( $exportnum ) { #warn $old; -- cgit v1.2.1