X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_export.cgi;h=32ed1fc94e7a758daa51a2cb94a317ad13f64b99;hb=8d534e61d74e561a15f0863a835cda4af639a9ea;hp=af89c4eadba85c6ba0eb0fba2308d8b91bdd128d;hpb=ffe9f4473c5c9c7cb7caeaa5b39160d7b3e8d137;p=freeside.git diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi index af89c4ead..32ed1fc94 100644 --- a/httemplate/edit/part_export.cgi +++ b/httemplate/edit/part_export.cgi @@ -1,5 +1,32 @@ - -<% +<% include('/elements/header.html', "$action Export", '', ' onLoad="visualize()"') %> + +<% include('/elements/error.html') %> + +
+ + +<% ntable("#cccccc",2) %> + + Export name + + + + + + Export host + + + + + + Export + <% $widget->html %> + +<% include('/elements/footer.html') %> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); #if ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) { # $cgi->param('clone', $1); @@ -32,7 +59,7 @@ my $widget = new HTML::Widgets::SelectLayers( 'options' => \%layers, 'form_name' => 'dummy', 'form_action' => 'process/part_export.cgi', - 'form_text' => [qw( exportnum machine )], + 'form_text' => [qw( exportnum exportname machine )], # 'form_checkbox' => [qw()], 'html_between' => "\n", 'layer_callback' => sub { @@ -45,15 +72,72 @@ my $widget = new HTML::Widgets::SelectLayers( if $layer; foreach my $option ( keys %{$exports->{$layer}{options}} ) { -# foreach my $option ( qw(url login password groupID ) ) { my $optinfo = $exports->{$layer}{options}{$option}; + die "Retreived non-ref export info option from $layer export: $optinfo" + unless ref($optinfo); my $label = $optinfo->{label}; + my $type = defined($optinfo->{type}) ? $optinfo->{type} : 'text'; my $value = $cgi->param($option) - || $part_export->option($option) - || (exists $optinfo->{default} ? $optinfo->{default} : ''); - $html .= qq!$label!. - qq!!. - ''; + || ( $part_export->exportnum && $part_export->option($option) ) + || ( (exists $optinfo->{default} && !$part_export->exportnum) + ? $optinfo->{default} + : '' + ); + # 'freeform': disables table formatting of options. Instead, each + # option can define "before" and "after" strings which are inserted + # around the selector. + my $freeform = $optinfo->{freeform}; + if ( $freeform ) { + $html .= $optinfo->{before} || ''; + } + else { + $html .= qq!$label!; + } + if ( $type eq 'select' ) { + my $size = defined($optinfo->{size}) ? " SIZE=" . $optinfo->{size} : ''; + my $multi = defined($optinfo->{multi}) ? ' MULTIPLE' : ''; + $html .= qq!'; + } elsif ( $type eq 'textarea' ) { + $html .= qq!'; + } elsif ( $type eq 'text' ) { + $html .= qq!'; + } elsif ( $type eq 'checkbox' ) { + $html .= qq!{after} || ''; + } + else { + $html .= ''; + } } $html .= ''; @@ -71,30 +155,4 @@ my $widget = new HTML::Widgets::SelectLayers( }, ); -%> -<%= header("$action Export", menubar( - 'Main Menu' => popurl(2), -), ' onLoad="visualize()"') -%> - -<% if ( $cgi->param('error') ) { %> - Error: <%= $cgi->param('error') %> -

-<% } %> - - - - -<%= ntable("#cccccc",2) %> - - Export host - - - - - - Export - <%= $widget->html %> - - - +