This commit was generated by cvs2svn to compensate for changes in r4407,
[freeside.git] / httemplate / search / svc_broadband.cgi
1 <%
2
3 my $conf = new FS::Conf;
4
5 my($query)=$cgi->keywords;
6 $query ||= ''; #to avoid use of unitialized value errors
7 my(@svc_broadband,$sortby);
8 if ( $query eq 'svcnum' ) {
9   $sortby=\*svcnum_sort;
10   @svc_broadband=qsearch('svc_broadband',{});
11 } elsif ( $query eq 'blocknum' ) {
12   $sortby=\*blocknum_sort;
13   @svc_broadband=qsearch('svc_broadband',{});
14 } else {
15   $cgi->param('ip_addr') =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/; 
16   my($ip_addr)=$1;
17   @svc_broadband = qsearchs('svc_broadband',{'ip_addr'=>$ip_addr});
18 }
19
20 my %routerbyblock = ();
21 foreach my $router (qsearch('router', {})) {
22   foreach ($router->addr_block) {
23     $routerbyblock{$_->blocknum} = $router;
24   }
25 }
26
27 if ( scalar(@svc_broadband) == 1 ) {
28   print $cgi->redirect(popurl(2). "view/svc_broadband.cgi?". $svc_broadband[0]->svcnum);
29   #exit;
30 } elsif ( scalar(@svc_broadband) == 0 ) {
31 %>
32 <!-- mason kludge -->
33 <%
34   eidiot "No matching ip address found!\n";
35 } else {
36 %>
37 <!-- mason kludge -->
38 <%
39   my($total)=scalar(@svc_broadband);
40   print header("IP Address Search Results",''), <<END;
41
42     $total matching broadband services found
43     <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
44       <TR>
45         <TH>Service #</TH>
46         <TH>Router</TH>
47         <TH>IP Address</TH>
48       </TR>
49 END
50
51   foreach my $svc_broadband (
52     sort $sortby (@svc_broadband)
53   ) {
54     my($svcnum,$ip_addr,$routername,$routernum)=(
55       $svc_broadband->svcnum,
56       $svc_broadband->ip_addr,
57       $routerbyblock{$svc_broadband->blocknum}->routername,
58       $routerbyblock{$svc_broadband->blocknum}->routernum,
59     );
60
61     my $rowspan = 1;
62
63     print <<END;
64     <TR>
65       <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_broadband.cgi?$svcnum">$svcnum</A></TD>
66       <TD ROWSPAN=$rowspan><A HREF="${p}view/router.cgi?$routernum">$routername</A></TD>
67       <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_broadband.cgi?$svcnum">$ip_addr</A></TD>
68 END
69
70     #print @rows;
71     print "</TR>";
72
73   }
74  
75   print <<END;
76     </TABLE>
77   </BODY>
78 </HTML>
79 END
80
81 }
82
83 sub svcnum_sort {
84   $a->getfield('svcnum') <=> $b->getfield('svcnum');
85 }
86
87 sub blocknum_sort {
88   if ($a->getfield('blocknum') == $b->getfield('blocknum')) {
89     $a->getfield('ip_addr') cmp $b->getfield('ip_addr');
90   } else {
91     $a->getfield('blocknum') cmp $b->getfield('blocknum');
92   }
93 }
94
95
96 %>