summaryrefslogtreecommitdiff
path: root/httemplate/edit/part_export.cgi
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2014-12-28 23:27:48 -0800
committerMark Wells <mark@freeside.biz>2014-12-28 23:27:48 -0800
commite3503e19a5a6c876f410903a3946dd9f1597aa46 (patch)
tree6d361bb09fd1aa0f1d9b9578198a913a0950e955 /httemplate/edit/part_export.cgi
parentaf96802d080094c381dd06b74488adfb20396574 (diff)
voip.ms export, #31834
Diffstat (limited to 'httemplate/edit/part_export.cgi')
-rw-r--r--httemplate/edit/part_export.cgi16
1 files changed, 15 insertions, 1 deletions
diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi
index 2897cf3..0e53e29 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>!;
#}