stray closing /TABLE in the no-ticket case
[freeside.git] / httemplate / misc / areacodes.cgi
index 69c9573..afbe93e 100644 (file)
@@ -1,5 +1,4 @@
-%# [ <% join(', ', map { qq("$_") } @areacodes) %> ]
-<% objToJson(\@areacodes) %>
+<% encode_json({ error => $error, areacodes => \@areacodes}) %>\
 <%init>
 
 my( $state, $svcpart ) = $cgi->param('arg');
@@ -7,18 +6,26 @@ my( $state, $svcpart ) = $cgi->param('arg');
 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 @areacodes = ();
+my $error;
+
+if ( $state ) {
 
-my $something = $export->get_dids('state'=>$state);
+  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];
 
-#warn Dumper($something);
+  local $@;
+  local $SIG{__DIE__};
+  my $something = eval { $export->get_dids('state'=>$state) };
+  $error = $@;
 
-my @areacodes = @{ $something };
+  @areacodes = @{ $something } if $something;
+
+}
 
 </%init>