diff options
| author | Mark Wells <mark@freeside.biz> | 2014-12-28 23:26:26 -0800 |
|---|---|---|
| committer | Mark Wells <mark@freeside.biz> | 2014-12-28 23:26:39 -0800 |
| commit | a52edcc909e5873a2c8790ce33b03917d6e1d29c (patch) | |
| tree | d1ead7d87e2b60d6eef4787852eb58dac1c52700 /httemplate/edit/part_export.cgi | |
| parent | 7e07d384748a5d0c5307fd711e4af520bf3b3802 (diff) | |
voip.ms export, #31834
Diffstat (limited to 'httemplate/edit/part_export.cgi')
| -rw-r--r-- | httemplate/edit/part_export.cgi | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi index 2897cf39d..0e53e29d0 100644 --- a/httemplate/edit/part_export.cgi +++ b/httemplate/edit/part_export.cgi @@ -201,6 +201,15 @@ my $widget = new HTML::Widgets::SelectLayers( $html .= qq!<TR><TD ALIGN="right">$label</TD><TD>!; } 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 +227,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!<OPTION VALUE="$select_option"$selected>!. qq!$label</OPTION>!; #} |
