X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Fselectlayers.html;h=785ee369ee5c632008128983d63ad1f7919b4a1d;hp=82f5dd1a74144171c9b31d21dbbc9975fe8e8839;hb=ff27c3f36240aee48ed50153dd5d8fe3ac3f2443;hpb=477015901c379f8cd6ba46cfaa4a9ae284ae582d diff --git a/httemplate/elements/selectlayers.html b/httemplate/elements/selectlayers.html index 82f5dd1a7..785ee369e 100644 --- a/httemplate/elements/selectlayers.html +++ b/httemplate/elements/selectlayers.html @@ -14,7 +14,7 @@ Example: #XXX put this handling it its own selectlayers-fields.html element? 'layer_prefix' => 'prefix_', #optional prefix for fieldnames - 'layer_fields' => [ 'layer' => [ 'fieldname', + 'layer_fields' => { 'layer' => [ 'fieldname', { label => 'fieldname2', type => 'text', #implemented: # text, money, fixed, @@ -23,6 +23,7 @@ Example: # select, select-agent, # select-pkg_class, # select-part_referral, + # select-taxclass, # select-table, #XXX tbd: # more? @@ -32,6 +33,7 @@ Example: 'layer2' => [ 'l2fieldname', ... ], + }, #current values for layer fields above 'layer_values' => { 'layer' => { 'fieldname' => 'current_value', @@ -63,18 +65,29 @@ Example: @@ -109,7 +121,7 @@ Example: + ><% $options->{$option} |h %> % } @@ -124,11 +136,17 @@ Example: % % unless ( grep $opt{$_}, qw(js_only select_only) ) { -% foreach my $layer ( keys %$options ) { +% foreach my $layer ( @layers ) { +% my $selected_layer; +% if ( $opt{layermap} ) { +% $selected_layer = $opt{layermap}->{$selected}; +% } else { +% $selected_layer = $selected; +% }
@@ -144,6 +162,7 @@ Example: my $conf = new FS::Conf; my $money_char = $conf->config('money_char') || '$'; +my $date_noinit = 0; <%init> @@ -162,6 +181,14 @@ tie my %options, 'Tie::IxHash', my $between = exists($opt{html_between}) ? $opt{html_between} : ''; my $options = \%options; +my @layers = (); +if ( $opt{layermap} ) { + my %layers = map { $opt{layermap}->{$_} => 1 } keys %options; + @layers = keys %layers; +} else { + @layers = keys %options; +} + my $selected = exists($opt{curr_value}) ? $opt{curr_value} : ''; #XXX eek. also eek $layer_fields in the layer_callback() call... @@ -194,10 +221,24 @@ sub layer_callback { my $type = $lf->{type} || 'text'; my $include = $type; - $include = "input-$include" if $include =~ /^(text|money)$/; - $include = "tr-$include" unless $include eq 'hidden'; - $html .= include( "/elements/$include.html", + if ( $include eq 'date' ) { + # several important differences from other tr-* + $html .= include( '/elements/tr-input-date-field.html', + { + 'name' => "$layer_prefix$field", + 'value' => $value, + 'label' => $lf->{label}, + 'format'=> $lf->{format}, + 'noinit'=> $date_noinit, + } + ); + $date_noinit = 1; + } + else { + $include = "input-$include" if $include =~ /^(text|money|percentage)$/; + $include = "tr-$include" unless $include eq 'hidden'; + $html .= include( "/elements/$include.html", %$lf, 'field' => "$layer_prefix$field", 'id' => "$layer_prefix$field", #separate? @@ -207,8 +248,8 @@ sub layer_callback { 'value' => ( $lf->{'value'} || $value ), #hmm. 'curr_value' => $value, ); - - } + } + } #foreach $field $html .= ''; return $html; }