X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Fselect-phonenum.html;h=dd1b847361887b3631b5c499802bb758ee746994;hp=18abe3dea29068f44cd07c874cc2bb71fd970aa8;hb=a983ba996fbd3d432443eff8afc4b09bb48ec443;hpb=e710e07e4451b7c615fb477799dc64bf3490248c diff --git a/httemplate/elements/select-phonenum.html b/httemplate/elements/select-phonenum.html index 18abe3dea..dd1b84736 100644 --- a/httemplate/elements/select-phonenum.html +++ b/httemplate/elements/select-phonenum.html @@ -1,3 +1,34 @@ +<%doc> +Selector for DID phone number. + +Options: + +- prefix: prefix for all the object IDs, field names, javascript functions, +etc. for including multiple DID selectors on a single page. + +- empty: text to display when no number is selected ("empty_label") + +- bulknum: allow bulk selection of up to this many numbers (self-service +only? wtf?) + +- svcpart: svcpart (required) + +- tollfree: pass "tollfree" to misc/phonenums.cgi, instead of passing an +exchange/region/anything else. + +- region: corresponds to the inverse of "get_dids_npa_select". The selector +creates an on-change handler telling the previous selector in the hierarchy +to update the list of phone numbers. If 'region' is true, it will look for +a previous selector named "region", and prefix the query it sends to +phonenums.cgi with '_REGION', which results in get_dids() being called +with a 'region' parameter instead of 'ratecenter' and 'state'. + + +Internally, this will set up an exchange_changed or region_changed function +to refresh the phone number list. The function will fetch misc/phonenums.cgi, +passing the exchange (or region) and + + <% include('/elements/xmlhttp.html', 'url' => $p.'misc/phonenums.cgi', 'subs' => [ $opt{'prefix'}. 'get_phonenums' ], @@ -17,7 +48,7 @@ what.form.<% $opt{'prefix'} %>phonenum.disabled = 'disabled'; what.form.<% $opt{'prefix'} %>phonenum.style.display = 'none'; var phonenumwait = document.getElementById('<% $opt{'prefix'} %>phonenumwait'); - phonenumwait.style.display = ''; + phonenumwait.style.display = 'inline'; var phonenumerror = document.getElementById('<% $opt{'prefix'} %>phonenumerror'); phonenumerror.style.display = 'none'; @@ -25,6 +56,7 @@ function <% $opt{'prefix'} %>update_phonenums(phonenums) { + var reply = JSON.parse(phonenums); // blank the current phonenum for ( var i = what.form.<% $opt{'prefix'} %>phonenum.length; i >= 0; i-- ) what.form.<% $opt{'prefix'} %>phonenum.options[i] = null; @@ -36,7 +68,7 @@ % } // add the new phonenums - var phonenumArray = eval('(' + phonenums + ')' ); + var phonenumArray = reply.phonenums; for ( var s = 0; s < phonenumArray.length; s++ ) { var phonenumLabel = phonenumArray[s]; if ( phonenumLabel == "" ) @@ -54,7 +86,12 @@ what.form.<% $opt{'prefix'} %>phonenum.style.display = ''; } else { var phonenumerror = document.getElementById('<% $opt{'prefix'} %>phonenumerror'); - phonenumerror.style.display = ''; + phonenumerror.style.display = 'inline'; + if ( reply.error ) { + phonenumerror.textContent = reply.error; + } else { + phonenumerror.textContent = 'Select a different <% $opt{'region'} ? 'region' : 'city/exchange' %>'; + } } //run the callback @@ -126,7 +163,7 @@ % unless ( $opt{'tollfree'} ) { - + % }