ae32ccd7ee443d41d20650e554dfa1b62432a87d
[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
33 <!-- mason kludge -->
34 %
35 %  eidiot "No matching ip address found!\n";
36 %} else {
37 %
38
39 <!-- mason kludge -->
40 %
41 %  my($total)=scalar(@svc_broadband);
42 %  print header("IP Address Search Results",''), <<END;
43 %
44 %    $total matching broadband services found
45 %    <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
46 %      <TR>
47 %        <TH>Service #</TH>
48 %       <TH>Router</TH>
49 %        <TH>IP Address</TH>
50 %      </TR>
51 %END
52 %
53 %  foreach my $svc_broadband (
54 %    sort $sortby (@svc_broadband)
55 %  ) {
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,
61 %    );
62 %
63 %    my $rowspan = 1;
64 %
65 %    print <<END;
66 %    <TR>
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>
70 %END
71 %
72 %    #print @rows;
73 %    print "</TR>";
74 %
75 %  }
76
77 %  print <<END;
78 %    </TABLE>
79 %  </BODY>
80 %</HTML>
81 %END
82 %
83 %}
84 %
85 %sub svcnum_sort {
86 %  $a->getfield('svcnum') <=> $b->getfield('svcnum');
87 %}
88 %
89 %sub blocknum_sort {
90 %  if ($a->getfield('blocknum') == $b->getfield('blocknum')) {
91 %    $a->getfield('ip_addr') cmp $b->getfield('ip_addr');
92 %  } else {
93 %    $a->getfield('blocknum') cmp $b->getfield('blocknum');
94 %  }
95 %}
96 %
97 %
98 %
99