communigate (phase 2): rules: start of adding conditions and actions to rule edit...
[freeside.git] / httemplate / elements / select.html
1 % unless ( $opt{'js_only'} ) {
2
3 <SELECT NAME          = "<% $opt{field} %>"
4         ID            = "<% $opt{id} %>"
5         previousValue = "<% $curr_value %>"
6         previousText  = "<% $labels->{$curr_value} || $curr_value %>"
7         <% $onchange %>
8 >
9
10 % if ( $opt{options} ) {
11 %
12 %   foreach my $option ( @{ $opt{options} } ) { #just arrayref for now
13
14       <OPTION VALUE="<% $option %>"
15               <% $opt{curr_value} eq $option ? 'SELECTED' : '' %>
16       >
17         <% $labels->{$option} || $option %>
18       </OPTION>
19
20 %   }
21 %
22 % } else { #deprecated weird value hashref used only by reason.html
23 %
24 %   my $aref = $opt{'value'}->{'values'};
25 %   my $vkey = $opt{'value'}->{'vcolumn'};
26 %   my $ckey = $opt{'value'}->{'ccolumn'};
27 %   foreach my $v (@$aref) {
28
29       <OPTION VALUE="<% $v->$vkey %>"
30               <% ($opt{curr_value} eq $v->$vkey) ? 'SELECTED' : '' %>
31       >
32         <% $v->$ckey %>
33       </OPTION>
34
35 %   }
36 %
37 % }
38
39 </SELECT>
40
41 % }
42 <%init>
43
44 my %opt = @_;
45
46 my $onchange = $opt{'onchange'}
47                  ? 'onChange="'. $opt{'onchange'}. '(this)"'
48                  : '';
49
50 my $labels = $opt{'option_labels'} || $opt{'labels'};
51
52 my $curr_value = $opt{'curr_value'};
53
54 my $onchange = '';
55 if ( $opt{'onchange'} ) {
56   $onchange = $opt{'onchange'};
57   $onchange .= '(this)' unless $onchange =~ /\(\w*\);?$/;
58   $onchange =~ s/\(what\);/\(this\);/g; #ugh, terrible hack.  all onchange
59                                         #callbacks should act the same
60   $onchange = 'onChange="'. $onchange. '"' unless $onchange =~ /^onChange=/i;
61 }
62
63 </%init>