RT# 75817 - updated UI to be more intuitive
[freeside.git] / httemplate / misc / phonenums.cgi
index 2ed0f61..aae04f5 100644 (file)
@@ -1,29 +1,48 @@
-%# [ <% join(', ', map { qq("$_") } @exchanges) %> ]
-<% objToJson(\@exchanges) %>
+<% encode_json({ error => $error, phonenums => \@phonenums}) %>\
 <%init>
 
 my( $exchangestring, $svcpart ) = $cgi->param('arg');
 
-$exchangestring =~ /\((\d{3})-(\d{3})-XXXX\)\s*$/i
-  or die "unparsable exchange: $exchangestring";
-my( $areacode, $exchange ) = ( $1, $2 );
 my $part_svc = qsearchs('part_svc', { 'svcpart'=>$svcpart } );
 die "unknown svcpart $svcpart" unless $part_svc;
 
-my @exports = $part_svc->part_export_did;
-if ( scalar(@exports) > 1 ) {
-  die "more than one DID-providing export attached to svcpart $svcpart";
-} elsif ( ! @exports ) {
-  die "no DID providing export attached to svcpart $svcpart";
-}
-my $export = $exports[0];
+my @phonenums = ();
+my $error;
+
+if ( $exchangestring ) {
 
-my $something = $export->get_dids('areacode'=>$areacode,
-                                  'exchange'=>$exchange,
-                                 );
+  my @exports = $part_svc->part_export_did;
+  if ( scalar(@exports) > 1 ) {
+    die "more than one DID-providing export attached to svcpart $svcpart";
+  } elsif ( ! @exports ) {
+    die "no DID providing export attached to svcpart $svcpart";
+  }
+  my $export = $exports[0];
+    
+  my %opts = ();
+  if ( $exchangestring eq 'tollfree' ) {
+      $opts{'tollfree'} = 1;
+  } elsif ( $exchangestring =~ /^_REGION (.*)$/ ) {
+      $opts{'region'} = $1;
+  #} elsif ( $exchangestring =~ /^([\w\s\:\,\(\)\-]+), ([A-Z][A-Z])$/ ) {
+  } elsif ( $exchangestring =~ /^(.+), ([A-Z][A-Z])$/ ) {
+      $opts{'ratecenter'} = $1;
+      $opts{'state'} = $2;
+  } else {
+      $exchangestring =~ /\((\d{3})-(\d{3})-XXXX\)\s*$/i
+        or die "unparseable exchange: $exchangestring";
+      my( $areacode, $exchange ) = ( $1, $2 );
+      $opts{'areacode'} = $areacode;
+      $opts{'exchange'} = $exchange;
+  }
 
-#warn Dumper($something);
+  local $@;
+  local $SIG{__DIE__};
+  my $something = eval { $export->get_dids(%opts) };
+  $error = $@;
 
-my @exchanges = @{ $something };
+  @phonenums = @{ $something } if $something;
+
+}
 
 </%init>