summaryrefslogtreecommitdiff
path: root/httemplate/elements
diff options
context:
space:
mode:
authorivan <ivan>2010-01-30 20:05:16 +0000
committerivan <ivan>2010-01-30 20:05:16 +0000
commitd6be23266fb627a4e7831055bf55ae675dbad4e9 (patch)
tree8fb86afdd53f5b1dee3534f4515836e9fb4fdbfe /httemplate/elements
parent2d5f9e43a60773a9b079e96c330cb9e0e089800a (diff)
discounts, RT#6679
Diffstat (limited to 'httemplate/elements')
-rw-r--r--httemplate/elements/select-part_pkg.html1
-rw-r--r--httemplate/elements/select-table.html9
-rw-r--r--httemplate/elements/tr-select-cust-part_pkg.html14
3 files changed, 21 insertions, 3 deletions
diff --git a/httemplate/elements/select-part_pkg.html b/httemplate/elements/select-part_pkg.html
index 6b697abdf..e11f02038 100644
--- a/httemplate/elements/select-part_pkg.html
+++ b/httemplate/elements/select-part_pkg.html
@@ -23,6 +23,7 @@ Example:
'empty_label' => 'Select package', #should this be the default?
'label_callback' => sub { shift->pkg_comment },
'hashref' => \%hash,
+ 'extra_option_attributes' => [ 'can_discount' ],
%opt,
)
%>
diff --git a/httemplate/elements/select-table.html b/httemplate/elements/select-table.html
index 45585a8ff..4d8d9a988 100644
--- a/httemplate/elements/select-table.html
+++ b/httemplate/elements/select-table.html
@@ -45,6 +45,10 @@ Example:
#<SELECT> element
'onchange' => '', #javascript code
+ #params (well, a param) controlling the <OPTION>s
+ 'extra_option_attributes' => [ 'field' ], #field or method in $table objects
+ #(are prefixed w/data- per HTML5)
+
#special return options
'js_only' => 0, #set true to return only the JS portions (i.e. nothing)
'html_only' => 0, #set true to return only the HTML portions (no-op, i.e. return everything)
@@ -89,6 +93,9 @@ Example:
<% $opt{'all_selected'} || ref($value) && $value->{$recvalue} || $value == $recvalue
? ' SELECTED' : ''
%>
+% foreach my $att ( @{ $opt{'extra_option_attributes'} } ) {
+ data-<% $att %>="<% $record->$att() |h %>"
+% }
><% $opt{'label_showkey'} ? "$recvalue: " : '' %>
<% $opt{'label_callback'}
? &{ $opt{'label_callback'} }( $record )
@@ -106,6 +113,8 @@ my( %opt ) = @_;
warn "elements/select-table.html: \n". Dumper(%opt)
if exists $opt{debug} && $opt{debug};
+$opt{'extra_option_attributes'} ||= [];
+
my $onchange = '';
if ( $opt{'onchange'} ) {
$onchange = $opt{'onchange'};
diff --git a/httemplate/elements/tr-select-cust-part_pkg.html b/httemplate/elements/tr-select-cust-part_pkg.html
index 75f1f6f0a..69400f16a 100644
--- a/httemplate/elements/tr-select-cust-part_pkg.html
+++ b/httemplate/elements/tr-select-cust-part_pkg.html
@@ -8,8 +8,9 @@
<SCRIPT TYPE="text/javascript">
- function opt(what,value,text) {
+ function part_pkg_opt(what,value,text,can_discount) {
var optionName = new Option(text, value, false, false);
+ optionName.setAttribute('data-can_discount', can_discount);
var length = what.length;
what.options[length] = optionName;
}
@@ -18,6 +19,10 @@
what.form.pkgpart.disabled = 'disabled'; //disable part_pkg dropdown
what.form.submit.disabled = true; //disable the submit button
+ var discountnum = what.form.discountnum;
+ if ( discountnum ) {
+ discountnum.disabled = true; //disable discount dropdown
+ }
classnum = what.options[what.selectedIndex].value;
@@ -30,9 +35,12 @@
// add the new packages
opt(what.form.pkgpart, '', 'Select package');
var packagesArray = eval('(' + part_pkg + ')' );
- for ( var s = 0; s < packagesArray.length; s=s+2 ) {
+ for ( var s = 0; s < packagesArray.length; s=s+3 ) {
var packagesLabel = packagesArray[s+1];
- opt(what.form.pkgpart, packagesArray[s], packagesLabel);
+ var can_discount = packagesArray[s+2];
+ part_pkg_opt(
+ what.form.pkgpart, packagesArray[s], packagesLabel, can_discount
+ );
}
what.form.pkgpart.disabled = ''; //re-enable part_pkg dropdown