RT# 75817 - updated UI to be more intuitive
[freeside.git] / httemplate / misc / phonenums.cgi
index 5084628..aae04f5 100644 (file)
@@ -1,4 +1,4 @@
-<% objToJson(\@phonenums) %>
+<% encode_json({ error => $error, phonenums => \@phonenums}) %>\
 <%init>
 
 my( $exchangestring, $svcpart ) = $cgi->param('arg');
@@ -7,6 +7,7 @@ my $part_svc = qsearchs('part_svc', { 'svcpart'=>$svcpart } );
 die "unknown svcpart $svcpart" unless $part_svc;
 
 my @phonenums = ();
+my $error;
 
 if ( $exchangestring ) {
 
@@ -29,14 +30,18 @@ if ( $exchangestring ) {
       $opts{'state'} = $2;
   } else {
       $exchangestring =~ /\((\d{3})-(\d{3})-XXXX\)\s*$/i
-        or die "unparsable exchange: $exchangestring";
+        or die "unparseable exchange: $exchangestring";
       my( $areacode, $exchange ) = ( $1, $2 );
       $opts{'areacode'} = $areacode;
       $opts{'exchange'} = $exchange;
   }
 
-  my $something = $export->get_dids(%opts);
-  @phonenums = @{ $something };
+  local $@;
+  local $SIG{__DIE__};
+  my $something = eval { $export->get_dids(%opts) };
+  $error = $@;
+
+  @phonenums = @{ $something } if $something;
 
 }