diff options
Diffstat (limited to 'httemplate/elements')
-rw-r--r-- | httemplate/elements/order_pkg.js | 24 | ||||
-rw-r--r-- | httemplate/elements/tr-select-cust-part_pkg.html | 17 |
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 ); } |