diff options
author | ivan <ivan> | 2004-02-13 11:28:18 +0000 |
---|---|---|
committer | ivan <ivan> | 2004-02-13 11:28:18 +0000 |
commit | a2741e7f3e85ca60ec7eda1d663a336ebf753c0e (patch) | |
tree | e07ca8e00d61f50ca7a552d97e9f57261b2d0e63 | |
parent | 066384c10b16779c6fef875a61b5e98840126f3c (diff) |
add mail alias browse to main menu and fix mail alias view to recognize new schema also
-rw-r--r-- | httemplate/index.html | 3 | ||||
-rwxr-xr-x | httemplate/search/svc_forward.cgi | 144 | ||||
-rwxr-xr-x | httemplate/view/svc_forward.cgi | 17 |
3 files changed, 127 insertions, 37 deletions
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 @@ <FORM ACTION="search/cust_main.cgi" METHOD="POST"><INPUT TYPE="hidden" NAME="phone_on" VALUE="1">Phone # <INPUT TYPE="text" NAME="phone_text"><INPUT TYPE="submit" VALUE="Search"></FORM> <BR><FORM ACTION="search/svc_acct.cgi" METHOD="POST">Username <INPUT TYPE="text" NAME="username"><SELECT NAME="username_type"><OPTION VALUE="All">(all)</OPTION><OPTION>Fuzzy</OPTION><OPTION>Substring</OPTION><OPTION SELECTED>Exact</OPTION></SELECT><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/svc_acct.cgi?username">all accounts by username</A> or <A HREF="search/svc_acct.cgi?uid">uid</A></FORM> <BR><FORM ACTION="search/svc_domain.cgi" METHOD="POST">Domain <INPUT TYPE="text" NAME="domain"><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/svc_domain.cgi?domain">all domains</A></FORM> -<!-- <LI><A HREF="search/svc_acct_sm.html">mail aliases (by domain, and optionally username)</A>--> -<!-- <LI><A HREF="search/svc_forward.html">mail forwards (by ?)</A>--> + <BR><A HREF="search/svc_forward.cgi?svcnum">all mail forwards by svcnum</A><BR> <BR> </TD></TR> </TABLE> 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 ) { %> <!-- mason kludge --> <% - eidiot "No matching forwards found!\n"; + eidiot "No matching domains found!\n"; } else { %> <!-- mason kludge --> <% - my $total = scalar(@svc_forward); - print header("Mail forward Search Results",''), <<END; + my($total)=scalar(@svc_domain); + print header("Domain Search Results",''), <<END; - $total matching mail forwards found + $total matching domains found <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0> <TR> - <TH>Service #<BR><FONT SIZE=-1>(click to view forward)</FONT></TH> - <TH>Mail to<BR><FONT SIZE=-1>(click to view account)</FONT></TH> + <TH>Service #</TH> + <TH>Domain</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 - 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 = "<I>(anything)</I>$src" if $src =~ /^@/; - if ( $svc_forward->srcsvc_acct ) { - $src = qq!<A HREF="${p}view/svc_acct.cgi?!. $svc_forward->srcsvc. '">'. - $svc_forward->srcsvc_acct->email. '</A>'; - } + #don't display all accounts here + my $rowspan = 1; - my $dst = $svc_forward->dst; - if ( $svc_forward->dstsvc_acct ) { - $dst = qq!<A HREF="${p}view/svc_acct.cgi?!. $svc_forward->dstsvc. '">'. - $svc_forward->dstsvc_acct->email. '</A>'; - } + #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!<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><A HREF="${p}view/svc_forward.cgi?$svcnum">$svcnum</A></TD> - <TD>$src</TD> - <TD>$dst</TD> - </TR> + <TR> + <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_domain.cgi?$svcnum">$svcnum</A></TD> + <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_domain.cgi?$svcnum">$domain</A></TD> END + #print @rows; + print "</TR>"; + } print <<END; @@ -76,4 +153,9 @@ sub svcnum_sort { $a->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; } |