<%
-#
-# $Id: svc_domain.cgi,v 1.1 2001-07-30 07:36:04 ivan Exp $
-#
-# Usage: post form to:
-# http://server.name/path/svc_domain.cgi
-#
-# ivan@voicenet.com 97-mar-5
-#
-# rewrite ivan@sisd.com 98-mar-14
-#
-# Changes to allow page to work at a relative position in server
-# bmccane@maxbaud.net 98-apr-3
-#
-# display total, use FS::CGI now does browsing too ivan@sisd.com 98-jul-17
-#
-# $Log: svc_domain.cgi,v $
-# Revision 1.1 2001-07-30 07:36:04 ivan
-# templates!!!
-#
-# Revision 1.11 2000/03/03 18:22:44 ivan
-# changes from 1.2.3 release, fixes from webdemo
-#
-# Revision 1.10 1999/07/17 10:38:52 ivan
-# scott nelson <scott@ultimanet.com> noticed this mod_perl-triggered bug and
-# gave me a great bugreport at the last rhythmethod
-#
-# Revision 1.9 1999/04/15 13:39:16 ivan
-# $cgi->header( '-expires' => 'now' )
-#
-# Revision 1.8 1999/02/28 00:03:57 ivan
-# removed misleading comments
-#
-# Revision 1.7 1999/02/23 08:09:24 ivan
-# beginnings of one-screen new customer entry and some other miscellania
-#
-# 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
-# for mod_perl: no more top-level my() variables; use vars instead
-# also the last s/create/new/;
-#
-# Revision 1.3 1998/12/23 03:06:50 ivan
-# $cgi->keywords instead of $cgi->query_string
-#
-# Revision 1.2 1998/12/17 09:41:12 ivan
-# s/CGI::(Base|Request)/CGI.pm/;
-#
+# <!-- $Id: svc_domain.cgi,v 1.3 2001-08-21 02:31:57 ivan Exp $ -->
use strict;
use vars qw ( $cgi @svc_domain $sortby $query $conf $mydomain );
use FS::CGI qw(header eidiot popurl);
use FS::svc_domain;
use FS::cust_svc;
-use FS::svc_acct_sm;
use FS::svc_acct;
+use FS::svc_forward;
$cgi = new CGI;
&cgisuidsetup($cgi);
<TR>
<TH>Service #</TH>
<TH>Domain</TH>
- <TH>Mail to<BR><FONT SIZE=-1>(click to view mail alias)</FONT></TH>
+ <TH>Mail to<BR><FONT SIZE=-1>(click to view account)</FONT></TH>
<TH>Forwards to<BR><FONT SIZE=-1>(click to view account)</FONT></TH>
</TR>
END
- my(%saw,$svc_domain);
+# my(%saw); # if we've multiple domains with the same
+ # svcnum, then we've a corrupt database
+
+ my($svc_domain);
my $p = popurl(2);
foreach $svc_domain (
- sort $sortby grep(!$saw{$_->svcnum}++, @svc_domain)
+# sort $sortby grep(!$saw{$_->svcnum}++, @svc_domain)
+ sort $sortby (@svc_domain)
) {
my($svcnum,$domain)=(
$svc_domain->svcnum,
# $malias='';
#}
- my @svc_acct_sm=qsearch('svc_acct_sm',{'domsvc' => $svcnum});
- my $rowspan = scalar(@svc_acct_sm) || 1;
-
- print <<END;
- <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 @svc_acct=qsearch('svc_acct',{'domsvc' => $svcnum});
+ my $rowspan = 0;
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_acct, @rows);
+ foreach $svc_acct (
+ sort {$b->getfield('username') cmp $a->getfield('username')} (@svc_acct)
+ ) {
+
+ my (@forwards) = ();
+
+ my($svcnum,$username)=(
+ $svc_acct->svcnum,
+ $svc_acct->username,
);
- #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>";
+
+ my @svc_forward = qsearch( 'svc_forward', { 'srcsvc' => $svcnum } );
+ my $svc_forward;
+ foreach $svc_forward (@svc_forward) {
+ my($dstsvc,$dst) = (
+ $svc_forward->dstsvc,
+ $svc_forward->dst,
+ );
+ if ($dstsvc) {
+ my $dst_svc_acct=qsearchs( 'svc_acct', { 'svcnum' => $dstsvc } );
+ my $destination=$dst_svc_acct->email;
+ push @forwards, qq!<TD><A HREF="!, popurl(2),
+ qq!view/svc_acct.cgi?$dstsvc">$destination</A>!,
+ qq!</TD></TR>!
+ ;
+ }else{
+ push @forwards, qq!<TD>$dst</TD></TR>!
+ ;
+ }
}
+
+ push @rows, qq!$n1<TD ROWSPAN=!, (scalar(@svc_forward) || 1),
+ qq!><A HREF="!. popurl(2). qq!view/svc_acct.cgi?$svcnum">!,
+ #print '', ( ($domuser eq '*') ? "<I>(anything)</I>" : $domuser );
+ ( ($username eq '*') ? "<I>(anything)</I>" : $username ),
+ qq!\@$domain</A> </TD>!,
+ ;
+
+ push @rows, @forwards;
+
+ $rowspan += (scalar(@svc_forward) || 1);
$n1 = "</TR><TR>";
}
#end of false laziness
+
+
+
+ print <<END;
+ <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
+
+ print @rows;
print "</TR>";
}
}
sub domain_sort {
- $a->getfield('domain') cmp $b->getfield('doimain');
+ $a->getfield('domain') cmp $b->getfield('domain');
}