visual and bugfixes
[freeside.git] / htdocs / search / svc_domain.cgi
index 7322652..778584d 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -Tw
 #
-# $Id: svc_domain.cgi,v 1.5 1999-02-07 09:59:39 ivan Exp $
+# $Id: svc_domain.cgi,v 1.6 1999-02-09 09:22:59 ivan Exp $
 #
 # Usage: post form to:
 #        http://server.name/path/svc_domain.cgi
 # display total, use FS::CGI now does browsing too ivan@sisd.com 98-jul-17
 #
 # $Log: svc_domain.cgi,v $
-# Revision 1.5  1999-02-07 09:59:39  ivan
+# Revision 1.6  1999-02-09 09:22:59  ivan
+# visual and bugfixes
+#
+# Revision 1.5  1999/02/07 09:59:39  ivan
 # more mod_perl fixes, and bugfixes Peter Wemm sent via email
 #
 # Revision 1.4  1999/01/19 05:14:17  ivan
@@ -32,7 +35,7 @@
 #
 
 use strict;
-use vars qw ( $cgi @svc_domain $sortby $query );
+use vars qw ( $cgi @svc_domain $sortby $query $conf );
 use CGI;
 use CGI::Carp qw(fatalsToBrowser);
 use FS::UID qw(cgisuidsetup);
@@ -42,6 +45,9 @@ use FS::CGI qw(header eidiot popurl);
 $cgi = new CGI;
 &cgisuidsetup($cgi);
 
+$conf = new FS::Conf;
+$mydomain = $conf->config('domain');
+
 ($query)=$cgi->keywords;
 if ( $query eq 'svcnum' ) {
   $sortby=\*svcnum_sort;
@@ -73,18 +79,17 @@ if ( scalar(@svc_domain) == 1 ) {
 } elsif ( scalar(@svc_domain) == 0 ) {
   eidiot "No matching domains found!\n";
 } else {
-  CGI::Base::SendHeaders(); # one guess
 
   my($total)=scalar(@svc_domain);
-  CGI::Base::SendHeaders(); # one guess
-  print header("Domain Search Results",''), <<END;
+  print $cgi->header, header("Domain Search Results",''), <<END;
 
     $total matching domains found
     <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
       <TR>
         <TH>Service #</TH>
         <TH>Domain</TH>
-        <TH></TH>
+        <TH>Mail to<BR><FONT SIZE=-1>(click to view mail alias)</FONT></TH>
+        <TH>Forwards to<BR><FONT SIZE=-1>(click to view account)</FONT></TH>
       </TR>
 END
 
@@ -97,30 +102,76 @@ END
       $svc_domain->svcnum,
       $svc_domain->domain,
     );
-    my($malias);
-    if ( qsearch('svc_acct_sm',{'domsvc'=>$svcnum}) ) {
-      $malias=(
-        qq|<FORM ACTION="svc_acct_sm.cgi" METHOD="post">|.
-          qq|<INPUT TYPE="hidden" NAME="domuser" VALUE="">|.
-          qq|<INPUT TYPE="hidden" NAME="domain" VALUE="$domain">|.
-          qq|<INPUT TYPE="submit" VALUE="(mail aliases)">|.
-          qq|</FORM>|
-      );
-    } else {
-      $malias='';
-    }
+    #my($malias);
+    #if ( qsearch('svc_acct_sm',{'domsvc'=>$svcnum}) ) {
+    #  $malias=(
+    #    qq|<FORM ACTION="svc_acct_sm.cgi" METHOD="post">|.
+    #      qq|<INPUT TYPE="hidden" NAME="domuser" VALUE="">|.
+    #      qq|<INPUT TYPE="hidden" NAME="domain" VALUE="$domain">|.
+    #      qq|<INPUT TYPE="submit" VALUE="(mail aliases)">|.
+    #      qq|</FORM>|
+    #  );
+    #} else {
+    #  $malias='';
+    #}
+
+    my @svc_acct_sm=qsearch('svc_acct_sm',{'domsvc' => $svcnum});
+    my $rowspan = scalar(@svc_acct_sm) || 1;
+
     print <<END;
     <TR>
-      <TD><A HREF="${p}view/svc_domain.cgi?$svcnum"><FONT SIZE=-1>$svcnum</FONT></A></TD>
-      <TD><FONT SIZE=-1>$domain</FONT></TD>
-      <TD><FONT SIZE=-1>$malias</FONT></TD>
-    </TR>
+      <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_domain.cgi?$svcnum"><FONT SIZE=-1>$svcnum</FONT></A></TD>
+      <TD ROWSPAN=$rowspan>$domain</TD>
 END
+
+    my $n1 = '';
+    # false laziness: this was stolen from search/svc_acct_sm.cgi.  but the
+    # web interface in general needs to be rewritten in a mucho cleaner way
+    my($svc_acct_sm);
+    foreach $svc_acct_sm (@svc_acct_sm) {
+      my($svcnum,$domuser,$domuid,$domsvc)=(
+        $svc_acct_sm->svcnum,
+        $svc_acct_sm->domuser,
+        $svc_acct_sm->domuid,
+        $svc_acct_sm->domsvc,
+      );
+      #my $svc_domain = qsearchs( 'svc_domain', { 'svcnum' => $domsvc } );
+      #if ( $svc_domain ) {
+      #  my $domain = $svc_domain->domain;
+
+        print qq!$n1<TD><A HREF="!. popurl(2). qq!view/svc_acct_sm.cgi?$svcnum">!,
+        #print '', ( ($domuser eq '*') ? "<I>(anything)</I>" : $domuser );
+              ( ($domuser eq '*') ? "<I>(anything)</I>" : $domuser ),
+              qq!\@$domain</A> </TD>!,
+        ;
+      #} else {
+      #  my $warning = "couldn't find svc_domain.svcnum $svcnum ( svc_acct_sm.svcnum $svcnum";
+      #  warn $warning;
+      #  print "$n1<TD>WARNING: $warning</TD>";
+      #}
+
+      my $svc_acct = qsearchs( 'svc_acct', { 'uid' => $domuid } );
+      if ( $svc_acct ) {
+        my $username = $svc_acct->username;
+        my $svc_acct_svcnum =$svc_acct->svcnum;
+        print qq!<TD><A HREF="!, popurl(2),
+              qq!view/svc_acct.cgi?$svc_acct_svcnum">$username\@$mydomain</A>!,
+              qq!</TD></TR>!
+        ;
+      } else {
+        my $warning = "couldn't find svc_acct.uid $domuid (svc_acct_sm.svcnum $svcnum)!";
+        warn $warning;
+        print "<TD>WARNING: $warning</TD>";
+      }
+      $n1 = "</TR><TR>";
+    }
+    #end of false laziness
+    print "</TR>";
+
   }
  
   print <<END;
     </TABLE>
-    </CENTER>
   </BODY>
 </HTML>
 END