RT# 75817 - updated UI to be more intuitive
[freeside.git] / httemplate / misc / exchanges.cgi
index f5860cf..d626791 100644 (file)
@@ -1,5 +1,4 @@
-%# [ <% join(', ', map { qq("$_") } @exchanges) %> ]
-<% objToJson(\@exchanges) %>
+<% encode_json({ error => $error, exchanges => \@exchanges}) %>\
 <%init>
 
 my( $areacode, $svcpart ) = $cgi->param('arg');
@@ -7,18 +6,26 @@ my( $areacode, $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 @exchanges = ();
+my $error;
+
+if ( $areacode ) {
 
-my $something = $export->get_dids('areacode'=>$areacode);
+  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('areacode'=>$areacode) };
+  $error = $@;
 
-my @exchanges = @{ $something };
+  @exchanges = @{ $something } if $something;
+
+}
 
 </%init>