<INPUT TYPE="hidden" NAME="exportnum" VALUE="<% $part_export->exportnum %>">
<% ntable("#cccccc",2) %>
+<TR>
+ <TD ALIGN="right">Export name</TD>
+ <TD>
+ <INPUT TYPE="text" NAME="exportname" VALUE="<% $part_export->exportname %>">
+ </TD>
+</TR>
<TR>
<TD ALIGN="right">Export host</TD>
<TD>
'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' => "</TD></TR></TABLE>\n",
'layer_callback' => sub {
? $optinfo->{default}
: ''
);
- $html .= qq!<TR><TD ALIGN="right">$label</TD><TD>!;
+ # '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!<TR><TD ALIGN="right">$label</TD><TD>!;
+ }
if ( $type eq 'select' ) {
- $html .= qq!<SELECT NAME="$option">!;
- foreach my $select_option ( @{$optinfo->{options}} ) {
+ my $size = defined($optinfo->{size}) ? " SIZE=" . $optinfo->{size} : '';
+ my $multi = defined($optinfo->{multi}) ? ' MULTIPLE' : '';
+ $html .= qq!<SELECT NAME="$option"$multi$size>!;
+ my @values = split '\s+', $value if $multi;
+ my @options;
+ if (defined($optinfo->{option_values})) {
+ my $valsub = $optinfo->{option_values};
+ @options = &$valsub();
+ } elsif (defined($optinfo->{options})) {
+ @options = @{$optinfo->{options}};
+ }
+ foreach my $select_option ( @options ) {
#if ( ref($select_option) ) {
#} else {
- my $selected = $select_option eq $value ? ' SELECTED' : '';
+ my $selected = ($multi ? grep {$_ eq $select_option} @values : $select_option eq $value ) ? ' SELECTED' : '';
+ my $label = $select_option;
+ if (defined($optinfo->{option_label})) {
+ my $labelsub = $optinfo->{option_label};
+ $label = &$labelsub($select_option);
+ }
$html .= qq!<OPTION VALUE="$select_option"$selected>!.
- qq!$select_option</OPTION>!;
+ qq!$label</OPTION>!;
#}
}
$html .= '</SELECT>';
$html .= qq!<TEXTAREA NAME="$option" COLS=80 ROWS=8 WRAP="virtual">!.
encode_entities($value). '</TEXTAREA>';
} elsif ( $type eq 'text' ) {
- $html .= qq!<INPUT TYPE="text" NAME="$option" VALUE="!.
+ $html .= qq!<INPUT TYPE="text" NAME="$option" VALUE="!. #"
encode_entities($value). '" SIZE=64>';
} elsif ( $type eq 'checkbox' ) {
$html .= qq!<INPUT TYPE="checkbox" NAME="$option" VALUE="1"!;
} else {
$html .= "unknown type $type";
}
- $html .= '</TD></TR>';
+ if ( $freeform ) {
+ $html .= $optinfo->{after} || '';
+ }
+ else {
+ $html .= '</TD></TR>';
+ }
}
$html .= '</TABLE>';