X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Fselect-phonenum.html;h=dd1b847361887b3631b5c499802bb758ee746994;hb=8eb6542c022ac84b125416f3fb0828b278ba600a;hp=a8d9a7c3eb70d0cfcb55abd5be889688731afd10;hpb=db3e520bad7240b3f6f0d53a2b55a64ef116890b;p=freeside.git diff --git a/httemplate/elements/select-phonenum.html b/httemplate/elements/select-phonenum.html index a8d9a7c3e..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' ], @@ -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 == "" ) @@ -55,6 +87,11 @@ } else { var phonenumerror = document.getElementById('<% $opt{'prefix'} %>phonenumerror'); 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'} ) { - + % }