From: ivan Date: Fri, 13 Feb 2004 11:28:18 +0000 (+0000) Subject: add mail alias browse to main menu and fix mail alias view to recognize new schema... X-Git-Tag: freeside_1_4_2beta1~254 X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;h=a2741e7f3e85ca60ec7eda1d663a336ebf753c0e;p=freeside.git add mail alias browse to main menu and fix mail alias view to recognize new schema also --- diff --git a/httemplate/index.html b/httemplate/index.html index 44c81dd80..6624a3f47 100644 --- a/httemplate/index.html +++ b/httemplate/index.html @@ -34,8 +34,7 @@
Phone #

Username or all accounts by username or uid

Domain or all domains
- - +
all mail forwards by svcnum

diff --git a/httemplate/search/svc_forward.cgi b/httemplate/search/svc_forward.cgi index 10094bc99..948b1d9ae 100755 --- a/httemplate/search/svc_forward.cgi +++ b/httemplate/search/svc_forward.cgi @@ -4,64 +4,141 @@ my $conf = new FS::Conf; my($query)=$cgi->keywords; $query ||= ''; #to avoid use of unitialized value errors -my(@svc_forward,$sortby); +my(@svc_domain,$sortby); if ( $query eq 'svcnum' ) { $sortby=\*svcnum_sort; - @svc_forward=qsearch('svc_forward',{}); + @svc_domain=qsearch('svc_domain',{}); +} elsif ( $query eq 'domain' ) { + $sortby=\*domain_sort; + @svc_domain=qsearch('svc_domain',{}); +} elsif ( $query eq 'UN_svcnum' ) { + $sortby=\*svcnum_sort; + @svc_domain = grep qsearchs('cust_svc',{ + 'svcnum' => $_->svcnum, + 'pkgnum' => '', + }), qsearch('svc_domain',{}); +} elsif ( $query eq 'UN_domain' ) { + $sortby=\*domain_sort; + @svc_domain = grep qsearchs('cust_svc',{ + 'svcnum' => $_->svcnum, + 'pkgnum' => '', + }), qsearch('svc_domain',{}); +} elsif ( $cgi->param('svcpart') =~ /^(\d+)$/ ) { + @svc_domain = + qsearch( 'svc_domain', {}, '', + " WHERE $1 = ( SELECT svcpart FROM cust_svc ". + " WHERE cust_svc.svcnum = svc_domain.svcnum ) " + ); + $sortby=\*svcnum_sort; } else { - eidiot('unimplemented'); + $cgi->param('domain') =~ /^([\w\-\.]+)$/; + my($domain)=$1; + #push @svc_domain, qsearchs('svc_domain',{'domain'=>$domain}); + @svc_domain = qsearchs('svc_domain',{'domain'=>$domain}); } -if ( scalar(@svc_forward) == 1 ) { - print $cgi->redirect(popurl(2). "view/svc_forward.cgi?". $svc_forward[0]->svcnum); +if ( scalar(@svc_domain) == 1 ) { + print $cgi->redirect(popurl(2). "view/svc_domain.cgi?". $svc_domain[0]->svcnum); #exit; -} elsif ( scalar(@svc_forward) == 0 ) { +} elsif ( scalar(@svc_domain) == 0 ) { %> <% - eidiot "No matching forwards found!\n"; + eidiot "No matching domains found!\n"; } else { %> <% - my $total = scalar(@svc_forward); - print header("Mail forward Search Results",''), < - Service #
(click to view forward) - Mail to
(click to view account) + Service # + Domain + END - foreach my $svc_forward ( - sort $sortby (@svc_forward) +# my(%saw); # if we've multiple domains with the same + # svcnum, then we've a corrupt database + + foreach my $svc_domain ( +# sort $sortby grep(!$saw{$_->svcnum}++, @svc_domain) + sort $sortby (@svc_domain) ) { - my $svcnum = $svc_forward->svcnum; + my($svcnum,$domain)=( + $svc_domain->svcnum, + $svc_domain->domain, + ); - my $src = $svc_forward->src; - $src = "(anything)$src" if $src =~ /^@/; - if ( $svc_forward->srcsvc_acct ) { - $src = qq!'. - $svc_forward->srcsvc_acct->email. ''; - } + #don't display all accounts here + my $rowspan = 1; - my $dst = $svc_forward->dst; - if ( $svc_forward->dstsvc_acct ) { - $dst = qq!'. - $svc_forward->dstsvc_acct->email. ''; - } + #my @svc_acct=qsearch('svc_acct',{'domsvc' => $svcnum}); + #my $rowspan = 0; + # + #my $n1 = ''; + #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_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!$destination!, + # qq!! + # ; + # }else{ + # push @forwards, qq!$dst! + # ; + # } + # } + # + # push @rows, qq!$n1!, + # #print '', ( ($domuser eq '*') ? "(anything)" : $domuser ); + # ( ($username eq '*') ? "(anything)" : $username ), + # qq!\@$domain !, + # ; + # + # push @rows, @forwards; + # + # $rowspan += (scalar(@svc_forward) || 1); + # $n1 = ""; + #} + ##end of false laziness + # + # print < - $svcnum - $src - $dst - + + $svcnum + $domain END + #print @rows; + print ""; + } print <getfield('svcnum') <=> $b->getfield('svcnum'); } +sub domain_sort { + $a->getfield('domain') cmp $b->getfield('domain'); +} + + %> diff --git a/httemplate/view/svc_forward.cgi b/httemplate/view/svc_forward.cgi index c8d1d6213..e50109be2 100755 --- a/httemplate/view/svc_forward.cgi +++ b/httemplate/view/svc_forward.cgi @@ -39,16 +39,25 @@ my($srcsvc,$dstsvc,$dst) = ( $svc_forward->dstsvc, $svc_forward->dst, ); +my $src = $svc_forward->dbdef_table->column('src') ? $svc_forward->src : ''; + my $svc = $part_svc->svc; -my $svc_acct = qsearchs('svc_acct',{'svcnum'=>$srcsvc}) - or die "Corrupted database: no svc_acct.svcnum matching srcsvc $srcsvc"; -my $source = $svc_acct->email; + +my $source; +if ($srcsvc) { + my $svc_acct = qsearchs('svc_acct',{'svcnum'=>$srcsvc}) + or die "Corrupted database: no svc_acct.svcnum matching srcsvc $srcsvc"; + $source = $svc_acct->email; +} else { + $source = $src; +} + my $destination; if ($dstsvc) { my $svc_acct = qsearchs('svc_acct',{'svcnum'=>$dstsvc}) or die "Corrupted database: no svc_acct.svcnum matching dstsvc $dstsvc"; $destination = $svc_acct->email; -}else{ +} else { $destination = $dst; }