X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Forder_pkg.js;h=d8ee790c285ae840b55b0138dffe1d874ad6bb58;hp=393b845c9bf223bbf5666db6a4f7301fc9eb075f;hb=ff8a7535a81005b7c66e8e75e5cfa8449a8cef04;hpb=8861d46820af163c7de7839178b6120c9b32ab2c diff --git a/httemplate/elements/order_pkg.js b/httemplate/elements/order_pkg.js index 393b845c9..d8ee790c2 100644 --- a/httemplate/elements/order_pkg.js +++ b/httemplate/elements/order_pkg.js @@ -1,14 +1,19 @@ function pkg_changed () { var form = document.OrderPkgForm; var discountnum = form.discountnum; + var opt = form.pkgpart.options[form.pkgpart.selectedIndex]; - if ( form.pkgpart.selectedIndex > 0 ) { + usageprice_pkg_changed( opt.value ); + + var date_button = document.getElementById('start_date_button'); + var date_button_disabled = document.getElementById('start_date_disabled'); + var date_text = document.getElementById('start_date_text'); - var opt = form.pkgpart.options[form.pkgpart.selectedIndex]; - var date_button = document.getElementById('start_date_button'); - var date_button_disabled = document.getElementById('start_date_button_disabled'); - 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_date = document.getElementById('start_on_date'); + if ( form.pkgpart.selectedIndex > 0 ) { form.submitButton.disabled = false; if ( discountnum ) { @@ -32,85 +37,57 @@ function pkg_changed () { date_text.disabled = false; date_button.style.display = ''; date_button_disabled.style.display = 'none'; - } else { + if ( radio_on_date ) { + // un-disable all the buttons that might get disabled + radio_now.disabled = false; + radio_on_hold.disabled = false; + radio_on_date.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 { // 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 ( 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; + } + } } - get_part_pkg_usageprice( opt.value, update_part_pkg_usageprice ); - } else { form.submitButton.disabled = true; - if ( discountnum ) { form.discountnum.disabled = true; } - discountnum_changed(form.discountnum); - } -} - -function update_part_pkg_usageprice(part_pkg_usageprice) { - - var table = document.getElementById('cust_pkg_usageprice_table'); - - // black the current usage price rows - for ( var r = table.rows.length - 1; r >= 0; r-- ) { - table.deleteRow(r); - } - - // add the new usage price rows - var rownum = 0; - var usagepriceArray = eval('(' + part_pkg_usageprice + ')' ); - for ( var s = 0; s < usagepriceArray.length; s=s+2 ) { - //surely this should be some kind of JSON structure - var html = usagepriceArray[s+0]; - var javascript = usagepriceArray[s+1]; - - // a lot like ("inspiried by") edit/elements/edit.html function spawn_<%$field%> - // XXX evaluate the javascript - //if (window.ActiveXObject) { - // window.execScript(newfunc); - //} else { /* (window.XMLHttpRequest) */ - // //window.eval(newfunc); - // setTimeout(newfunc, 0); - //} + date_text.style.backgroundColor = '#dddddd'; + date_text.disabled = true; + date_button.style.display = 'none'; + date_button_disabled.style.display = ''; + radio_now.disabled = true; + radio_on_date.disabled = true; + radio_on_hold.disabled = true; - var row = table.insertRow(rownum++); - - //var label_cell = document.createElement('TD'); - - //label_cell.id = '<% $field %>_label' + <%$field%>_fieldnum; - - //label_cell.style.textAlign = "right"; - //label_cell.style.verticalAlign = "top"; - //label_cell.style.borderTop = "1px solid black"; - //label_cell.style.paddingTop = "5px"; - - //label_cell.innerHTML = '<% $label %>'; - - //row.appendChild(label_cell); - - var widget_cell = document.createElement('TD'); - - //widget_cell.style.borderTop = "1px solid black"; - widget_cell.style.paddingTop = "3px"; - widget_cell.colSpan = "2"; - - widget_cell.innerHTML = html; - - row.appendChild(widget_cell); - - } - - if ( rownum > 0 ) { - document.getElementById('cust_pkg_usageprice_title').style.display = ''; - } else { - document.getElementById('cust_pkg_usageprice_title').style.display = 'none'; + if ( discountnum ) { form.discountnum.disabled = true; } + discountnum_changed(form.discountnum); } } - function standardize_new_location() { var form = document.OrderPkgForm; var loc = form.locationnum;