projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rearrange flow of batch download, #947
[freeside.git]
/
httemplate
/
elements
/
selectlayers.html
diff --git
a/httemplate/elements/selectlayers.html
b/httemplate/elements/selectlayers.html
index
3026217
..
89fe41b
100644
(file)
--- 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
#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,
{ label => 'fieldname2',
type => 'text', #implemented:
# text, money, fixed,
@@
-23,6
+23,7
@@
Example:
# select, select-agent,
# select-pkg_class,
# select-part_referral,
# select, select-agent,
# select-pkg_class,
# select-part_referral,
+ # select-taxclass,
# select-table,
#XXX tbd:
# more?
# select-table,
#XXX tbd:
# more?
@@
-32,6
+33,7
@@
Example:
'layer2' => [ 'l2fieldname',
...
],
'layer2' => [ 'l2fieldname',
...
],
+ },
#current values for layer fields above
'layer_values' => { 'layer' => { 'fieldname' => 'current_value',
#current values for layer fields above
'layer_values' => { 'layer' => { 'fieldname' => 'current_value',
@@
-44,6
+46,10
@@
Example:
...
},
...
},
+ #or manual control, instead of layer_fields and layer_values above
+ #called with args: my( $layer, $layer_fields, $layer_values, $layer_prefix )
+ 'layer_callback' =>
+
'html_between => '', #optional HTML displayed between the SELECT and the
#layers, scalar or coderef ('field' passed as a param)
'onchange' => '', #javascript code run when the SELECT changes
'html_between => '', #optional HTML displayed between the SELECT and the
#layers, scalar or coderef ('field' passed as a param)
'onchange' => '', #javascript code run when the SELECT changes
@@
-59,18
+65,29
@@
Example:
<SCRIPT TYPE="text/javascript">
% }
% unless ( grep $opt{$_}, qw(html_only select_only layers_only) ) {
<SCRIPT TYPE="text/javascript">
% }
% unless ( grep $opt{$_}, qw(html_only select_only layers_only) ) {
- //alert('start function define');
+
+% if ( $opt{layermap} ) {
+% my %map = %{ $opt{layermap} };
+ var layermap = { "":"",
+ <% join(',', map { qq("$_":"$map{$_}") } keys %map ) %>
+ };
+% }
+
function <% $key %>changed(what) {
<% $opt{'onchange'} %>
var <% $key %>layer = what.options[what.selectedIndex].value;
function <% $key %>changed(what) {
<% $opt{'onchange'} %>
var <% $key %>layer = what.options[what.selectedIndex].value;
-% foreach my $layer ( keys %$options ) {
-
+% foreach my $layer ( @layers ) {
+%
+% if ( $opt{layermap} ) {
+ if ( layermap[ <% $key %>layer ] == "<% $layer %>" ) {
+% } else {
if (<% $key %>layer == "<% $layer %>" ) {
if (<% $key %>layer == "<% $layer %>" ) {
+% }
-% foreach my $not ( grep { $_ ne $layer }
keys %$option
s ) {
+% foreach my $not ( grep { $_ ne $layer }
@layer
s ) {
% my $element = "document.getElementById('${key}d$not').style";
<% $element %>.display = "none";
<% $element %>.zIndex = 0;
% my $element = "document.getElementById('${key}d$not').style";
<% $element %>.display = "none";
<% $element %>.zIndex = 0;
@@
-86,7
+103,6
@@
Example:
//<% $opt{'onchange'} %>
}
//<% $opt{'onchange'} %>
}
- //alert('end function define');
% }
% unless ( grep $opt{$_}, qw(html_only js_only select_only layers_only) ) {
</SCRIPT>
% }
% unless ( grep $opt{$_}, qw(html_only js_only select_only layers_only) ) {
</SCRIPT>
@@
-120,16
+136,22
@@
Example:
%
% unless ( grep $opt{$_}, qw(js_only select_only) ) {
%
% 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;
+% }
<DIV ID="<% $key %>d<% $layer %>"
<DIV ID="<% $key %>d<% $layer %>"
- STYLE="<% $
layer eq $selected
+ STYLE="<% $
selected_layer eq $layer
? 'display: "" ; z-index: 1'
: 'display: none; z-index: 0'
%>"
>
? 'display: "" ; z-index: 1'
: 'display: none; z-index: 0'
%>"
>
- <%
layer_callback
($layer, $layer_fields, $layer_values, $layer_prefix) %>
+ <%
&{$layer_callback}
($layer, $layer_fields, $layer_values, $layer_prefix) %>
</DIV>
</DIV>
@@
-158,6
+180,14
@@
tie my %options, 'Tie::IxHash',
my $between = exists($opt{html_between}) ? $opt{html_between} : '';
my $options = \%options;
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...
my $selected = exists($opt{curr_value}) ? $opt{curr_value} : '';
#XXX eek. also eek $layer_fields in the layer_callback() call...
@@
-165,6
+195,8
@@
my $layer_fields = $opt{layer_fields};
my $layer_values = $opt{layer_values};
my $layer_prefix = $opt{layer_prefix};
my $layer_values = $opt{layer_values};
my $layer_prefix = $opt{layer_prefix};
+my $layer_callback = $opt{layer_callback} || \&layer_callback;
+
sub layer_callback {
my( $layer, $layer_fields, $layer_values, $layer_prefix ) = @_;
sub layer_callback {
my( $layer, $layer_fields, $layer_values, $layer_prefix ) = @_;