X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_export.cgi;h=30e4218e2e2837499b761444830153bc9d7b4c64;hb=ccdb2852a82946d7a9dca13345a390c31ea18d27;hp=2897cf39da7abd81cfac6bc2176286d43f2232cc;hpb=90d53f2bfaac6b65afb211e81c1f9aa160da9e1c;p=freeside.git
diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi
index 2897cf39d..30e4218e2 100644
--- a/httemplate/edit/part_export.cgi
+++ b/httemplate/edit/part_export.cgi
@@ -63,6 +63,8 @@ if ( $cgi->param('error') ) {
$part_export = new FS::part_export ( {
map { $_, scalar($cgi->param($_)) } fields('part_export')
} );
+} elsif ( $cgi->param('exportnum') ) {
+ $part_export = qsearchs('part_export', { 'exportnum' => $cgi->param('exportnum') } );
} elsif ( $query =~ /^(\d+)$/ ) {
$part_export = qsearchs('part_export', { 'exportnum' => $1 } );
} else {
@@ -183,6 +185,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 .
@@ -201,6 +207,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' : '';
@@ -218,10 +233,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!!.
qq!$label !;
#}
@@ -267,8 +287,42 @@ my $widget = new HTML::Widgets::SelectLayers(
$html .= ' ';
}
+ $html .= 'Do not suspend services ' .
+ ' no_suspend eq 'Y';
+ $html .= '> ';
+
+ foreach my $script ( keys %{$exports->{$layer}{scripts}} ) {
+ $html .= '' .
+ include('/elements/progress-init.html',
+ $part_export->exporttype,
+ [ $script.'_exportnum' ],
+ rooturl().'view/svc_export/run_script.cgi',
+ {
+ 'error_url' => rooturl().$exports->{$layer}{scripts}{$script}->{error_url}."exportnum=".$part_export->{Hash}->{exportnum},
+ 'reload_with_error' => '1',
+ 'url' => rooturl().'edit/part_export.cgi?'.$part_export->{Hash}->{exportnum},
+ 'message' => $exports->{$layer}{scripts}{$script}->{success_message},
+ },
+ $script,
+ ) .
+ '
+ '.$exports->{$layer}{scripts}{$script}->{html_label}.' ';
+ }
+
$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 .= ' ';