3 %my $conf = new FS::Conf;
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',{});
15 % $cgi->param('ip_addr') =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/;
17 % @svc_broadband = qsearchs('svc_broadband',{'ip_addr'=>$ip_addr});
20 %my %routerbyblock = ();
21 %foreach my $router (qsearch('router', {})) {
22 % foreach ($router->addr_block) {
23 % $routerbyblock{$_->blocknum} = $router;
27 %if ( scalar(@svc_broadband) == 1 ) {
28 % print $cgi->redirect(popurl(2). "view/svc_broadband.cgi?". $svc_broadband[0]->svcnum);
30 %} elsif ( scalar(@svc_broadband) == 0 ) {
35 % eidiot "No matching ip address found!\n";
41 % my($total)=scalar(@svc_broadband);
42 % print header("IP Address Search Results",''), <<END;
44 % $total matching broadband services found
45 % <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
53 % foreach my $svc_broadband (
54 % sort $sortby (@svc_broadband)
56 % my($svcnum,$ip_addr,$routername,$routernum)=(
57 % $svc_broadband->svcnum,
58 % $svc_broadband->ip_addr,
59 % $routerbyblock{$svc_broadband->blocknum}->routername,
60 % $routerbyblock{$svc_broadband->blocknum}->routernum,
67 % <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_broadband.cgi?$svcnum">$svcnum</A></TD>
68 % <TD ROWSPAN=$rowspan><A HREF="${p}view/router.cgi?$routernum">$routername</A></TD>
69 % <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_broadband.cgi?$svcnum">$ip_addr</A></TD>
86 % $a->getfield('svcnum') <=> $b->getfield('svcnum');
90 % if ($a->getfield('blocknum') == $b->getfield('blocknum')) {
91 % $a->getfield('ip_addr') cmp $b->getfield('ip_addr');
93 % $a->getfield('blocknum') cmp $b->getfield('blocknum');