3 # svc_domain.cgi: Search for domains (process form)
6 # http://server.name/path/svc_domain.cgi
8 # Note: Should be run setuid freeside as user nobody.
10 # ivan@voicenet.com 97-mar-5
12 # rewrite ivan@sisd.com 98-mar-14
14 # Changes to allow page to work at a relative position in server
15 # bmccane@maxbaud.net 98-apr-3
17 # display total, use FS::CGI now does browsing too ivan@sisd.com 98-jul-17
21 use CGI::Carp qw(fatalsToBrowser);
22 use FS::UID qw(cgisuidsetup);
23 use FS::Record qw(qsearch qsearchs);
24 use FS::CGI qw(header idiot);
26 my($req)=new CGI::Request;
27 &cgisuidsetup($req->cgi);
32 my($query)=$req->cgi->var('QUERY_STRING');
33 if ( $query eq 'svcnum' ) {
34 $sortby=\*svcnum_sort;
35 @svc_domain=qsearch('svc_domain',{});
36 } elsif ( $query eq 'domain' ) {
37 $sortby=\*domain_sort;
38 @svc_domain=qsearch('svc_domain',{});
39 } elsif ( $query eq 'UN_svcnum' ) {
40 $sortby=\*svcnum_sort;
41 @svc_domain = grep qsearchs('cust_svc',{
42 'svcnum' => $_->svcnum,
44 }), qsearch('svc_domain',{});
45 } elsif ( $query eq 'UN_domain' ) {
46 $sortby=\*domain_sort;
47 @svc_domain = grep qsearchs('cust_svc',{
48 'svcnum' => $_->svcnum,
50 }), qsearch('svc_domain',{});
52 $req->param('domain') =~ /^([\w\-\.]+)$/;
54 push @svc_domain, qsearchs('svc_domain',{'domain'=>$domain});
57 if ( scalar(@svc_domain) == 1 ) {
58 $req->cgi->redirect("../view/svc_domain.cgi?". $svc_domain[0]->svcnum);
60 } elsif ( scalar(@svc_domain) == 0 ) {
61 idiot "No matching domains found!\n";
64 CGI::Base::SendHeaders(); # one guess
66 my($total)=scalar(@svc_domain);
67 CGI::Base::SendHeaders(); # one guess
68 print header("Domain Search Results",''), <<END;
70 $total matching domains found
71 <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
83 sort $sortby grep(!$saw{$_->svcnum}++, @svc_domain)
90 if ( qsearch('svc_acct_sm',{'domsvc'=>$svcnum}) ) {
92 qq|<FORM ACTION="svc_acct_sm.cgi" METHOD="post">|.
93 qq|<INPUT TYPE="hidden" NAME="domuser" VALUE="">|.
94 qq|<INPUT TYPE="hidden" NAME="domain" VALUE="$domain">|.
95 qq|<INPUT TYPE="submit" VALUE="(mail aliases)">|.
103 <TD><A HREF="../view/svc_domain.cgi?$svcnum"><FONT SIZE=-1>$svcnum</FONT></A></TD>
104 <TD><FONT SIZE=-1>$domain</FONT></TD>
105 <TD><FONT SIZE=-1>$malias</FONT></TD>
108 if ($lcount-- == 0) { # lots of little tables instead of one big one
112 <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
132 $a->getfield('svcnum') <=> $b->getfield('svcnum');
136 $a->getfield('domain') cmp $b->getfield('doimain');