summaryrefslogtreecommitdiff
path: root/httemplate/elements
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/elements')
-rw-r--r--httemplate/elements/order_pkg.js24
-rw-r--r--httemplate/elements/tr-select-cust-part_pkg.html17
2 files changed, 28 insertions, 13 deletions
diff --git a/httemplate/elements/order_pkg.js b/httemplate/elements/order_pkg.js
index a145cbb03..3586a54cb 100644
--- a/httemplate/elements/order_pkg.js
+++ b/httemplate/elements/order_pkg.js
@@ -10,7 +10,7 @@ function pkg_changed () {
var date_text = document.getElementById('start_date_text');
var radio_now = document.getElementById('start_now');
- //var radio_on_hold = document.getElementById('start_on_hold');
+ var radio_on_hold = document.getElementById('start_on_hold');
var radio_on_date = document.getElementById('start_on_date');
form.submitButton.disabled = false;
@@ -36,23 +36,35 @@ function pkg_changed () {
date_button.style.display = '';
date_button_disabled.style.display = 'none';
if ( radio_on_date ) {
+ // un-disable all the buttons that might get disabled
radio_on_date.disabled = false;
- if ( form.start_date_text.value.length > 0 && radio_now.checked ) {
+ radio_now.disabled = false;
+ // if a start date has been entered, assume the user wants it
+ if ( form.start_date_text.value.length > 0 ) {
radio_now.checked = false;
radio_on_date.checked = true;
+ } else {
+ // if not, default to now
+ radio_now.checked = true;
}
}
- } else {
+ } else { // the package is either fixed start date or start-on-hold
date_text.style.backgroundColor = '#dddddd';
date_text.disabled = true;
date_button.style.display = 'none';
date_button_disabled.style.display = '';
if ( radio_on_date ) {
- if ( radio_on_date.checked ) {
- radio_on_date.checked = false;
+ if ( opt.getAttribute('data-start_on_hold') == 1 ) {
+ // disallow all options but "On hold"
+ radio_on_hold.checked = true;
+ radio_now.checked = false;
+ radio_now.disabled = true;
+ } else {
+ // disallow all options but "On date"
+ radio_on_hold.checked = false;
radio_now.checked = true;
+ radio_now.disabled = false;
}
- radio_on_date.disabled = true;
}
}
diff --git a/httemplate/elements/tr-select-cust-part_pkg.html b/httemplate/elements/tr-select-cust-part_pkg.html
index 696baff9f..0db989aed 100644
--- a/httemplate/elements/tr-select-cust-part_pkg.html
+++ b/httemplate/elements/tr-select-cust-part_pkg.html
@@ -5,9 +5,10 @@
<SCRIPT TYPE="text/javascript">
- function part_pkg_opt(what, value, text, can_discount, can_start_date, start_date) {
+ function part_pkg_opt(what, value, text, can_discount, start_on_hold, can_start_date, start_date) {
var optionName = new Option(text, value, false, false);
optionName.setAttribute('data-can_discount', can_discount);
+ optionName.setAttribute('data-start_on_hold', start_on_hold);
optionName.setAttribute('data-can_start_date', can_start_date);
optionName.setAttribute('data-start_date', start_date || '');
var length = what.length;
@@ -37,14 +38,16 @@
// add the new packages
opt(what.form.pkgpart, '', 'Select package');
var packagesArray = eval('(' + part_pkg + ')' );
- for ( var s = 0; s < packagesArray.length; s=s+5 ) {
+ while (packagesArray.length > 0) {
//surely this should be some kind of JSON structure
- var packagesLabel = packagesArray[s+1];
- var can_discount = packagesArray[s+2];
- var can_start_date = packagesArray[s+3];
- var start_date = packagesArray[s+4];
+ var pkgpart = packagesArray.shift();
+ var label = packagesArray.shift();
+ var can_discount = packagesArray.shift();
+ var start_on_hold = packagesArray.shift();
+ var can_start_date = packagesArray.shift();
+ var start_date = packagesArray.shift();
part_pkg_opt(
- what.form.pkgpart, packagesArray[s], packagesLabel, can_discount, can_start_date, start_date
+ what.form.pkgpart, pkgpart, label, can_discount, start_on_hold, can_start_date, start_date
);
}