X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Forder_pkg.js;h=a145cbb037283f70309fabc88ff7335071c2600b;hb=5f5fbed30812124e5865c4aaf20c927f7d2d01bd;hp=4e41fd64ab3a02a51ec7f2cf55997c16fd106025;hpb=6db14d0fe65daec3d136edaa33a32a1fb24ba06a;p=freeside.git diff --git a/httemplate/elements/order_pkg.js b/httemplate/elements/order_pkg.js index 4e41fd64a..a145cbb03 100644 --- a/httemplate/elements/order_pkg.js +++ b/httemplate/elements/order_pkg.js @@ -6,9 +6,12 @@ function pkg_changed () { 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_button_disabled = document.getElementById('start_date_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'); form.submitButton.disabled = false; if ( discountnum ) { @@ -21,8 +24,8 @@ function pkg_changed () { } } -// if this form element exists, then the start date is a future -// package change date; don't replace it + // if this form element exists, then the start date is a future + // package change date; don't replace it if ( form.delay ) { return; } @@ -32,13 +35,29 @@ function pkg_changed () { date_text.disabled = false; date_button.style.display = ''; date_button_disabled.style.display = 'none'; + if ( radio_on_date ) { + radio_on_date.disabled = false; + if ( form.start_date_text.value.length > 0 && radio_now.checked ) { + radio_now.checked = false; + radio_on_date.checked = true; + } + } } else { 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; + radio_now.checked = true; + } + radio_on_date.disabled = true; + } } + get_part_pkg_usageprice( opt.value, update_part_pkg_usageprice ); + } else { form.submitButton.disabled = true; if ( discountnum ) { form.discountnum.disabled = true; } @@ -46,6 +65,69 @@ function pkg_changed () { } } +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); + //} + + 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'; + } + +} + + function standardize_new_location() { var form = document.OrderPkgForm; var loc = form.locationnum;