Option to ignore old CDRs, RT#81480
[freeside.git] / httemplate / browse / tower.html
1 <& elements/browse.html,
2   'title'       => 'Towers',
3   'name'        => 'towers',
4   'menubar'     => [ 'Add a new tower' =>
5                       $p.'edit/tower.html',
6                      #'Sector coverage maps' =>
7                      # $p.'search/sector.html',
8                      'Tower map' =>
9                       $p.'search/tower-map.html',
10                      'Download CSV for towercoverage.com' =>
11                       $p.'misc/tower-export.html?format=tc'
12                   ],
13   'query'       => { 'table' => 'tower', },
14   'count_query' => 'SELECT COUNT(*) FROM tower',
15   'disableable' => 1,
16   'disabled_statuspos' => 1,
17   'header'      => [ 'Name', 'Location', 'Sectors', ],
18   'fields'      => [ $tower_sub,
19                     $coord_sub,
20                     $sector_sub,
21                   ],
22   'links'       => [ ],
23   'cell_style'    => [ $tagdesc_style ],
24 &>
25 <%init>
26
27 die "access denied"
28   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
29
30 #false laziness w/ browse/part_tag.html
31 my $tagdesc_style = sub { 'background-color:#'.shift->color };
32
33 my $num_svc_links = sub {
34   my ($query_string, $sectors) = @_;
35   return if !$sectors;
36   my $num_svc_broadband = FS::svc_broadband->count("sectornum IN($sectors)");
37   my $num_svc_acct =      FS::svc_acct->count("sectornum IN($sectors)");
38
39   {
40     'data' => $num_svc_broadband ? 
41                 '<B>'.$num_svc_broadband.'</B>'.
42                 ' broadband'
43                 : '',
44     'link' => $p.'search/svc_broadband.cgi?'.$query_string,
45     'size' => '-1',
46     'align'=> 'right',
47     'colspan'=> 2,
48   },
49
50   {
51     'data' => $num_svc_acct ? 
52                 '<B>'.$num_svc_acct.'</B>'.
53                 ' login'
54                 : '',
55     'link' => $p.'search/svc_acct.cgi?magic=advanced;'.$query_string,
56     'size' => '-1',
57     'align'=> 'right',
58     'colspan'=> 2,
59   },
60 };
61
62 my $coord_sub = sub {
63   my $tower = shift;
64
65   my $coords = $m->scomp("/elements/coord-links.html", $tower->latitude, $tower->longitude, $tower->towername);
66
67   [
68     [
69       { 'data' => "Latitude: ".              $tower->latitude.
70                   "<br>Longitude: ".         $tower->longitude.
71                   "<br>Altitude: ".          $tower->altitude.
72                   "<br>Height: ".            $tower->height.
73                   "<br>Veg. height: ". $tower->veg_height,
74       },
75       { 'data' => $coords, 'link' => "Coordinates", },
76     ],
77   ]
78 };
79
80 my $tower_sub = sub {
81   my $tower = shift;
82   my $sectors = join(',', 
83     map { $_->sectornum } $tower->tower_sector, $tower->default_sector
84   );
85   [ #rows
86     [
87       { 'data' => $tower->towername. '&nbsp;', },
88       { 'data' => ' (edit) ', size => '-1', 
89         'link' => $p.'edit/tower.html?' . $tower->towernum },
90     ],
91     # turn these into rows
92     map { [ $_ ] } 
93       &{$num_svc_links}( 'towernum='.$tower->towernum, $sectors )
94   ] #rows
95 };
96
97 my $sector_sub = sub {
98   my $tower = shift;
99   
100   [ #rows
101     map {
102       my $sector = $_;
103       my $sectornum = $sector->sectornum;
104       [
105         {
106           'data' => $sector->sectorname. '&nbsp;',
107           'link' => ( $sector->ip_addr ? 'http://'. $sector->ip_addr : '' ),
108         },
109         
110         &{$num_svc_links}( 'sectornum='.$sectornum, $sectornum )
111       ]
112     } $tower->tower_sector
113   ] #rows
114
115 };
116
117 </%init>