X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Fselectlayers.html;h=785ee369ee5c632008128983d63ad1f7919b4a1d;hb=0d43df4e3b41cbd964d7ca32ac07d9f13a2b0a1d;hp=82f5dd1a74144171c9b31d21dbbc9975fe8e8839;hpb=477015901c379f8cd6ba46cfaa4a9ae284ae582d;p=freeside.git
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;
%once>
<%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;
}