allow towers without sectors, #16398 continued
[freeside.git] / httemplate / browse / tower.html
1 <% include( 'elements/browse.html',
2                  'title'       => 'Towers',
3                  'name'        => 'towers',
4                  'menubar'     => [ 'Add a new tower' =>
5                                       $p.'edit/tower.html',
6                                   ],
7                  'query'       => { 'table' => 'tower', },
8                  'count_query' => 'SELECT COUNT(*) FROM tower',
9                  'disableable' => 1,
10                  'disabled_statuspos' => 1,
11                  'header'      => [ 'Name', 'Sectors', ],
12                  'fields'      => [ $tower_sub,
13                                     $sector_sub,
14                                   ],
15                  'links'       => [ ],
16              )
17 %>
18 <%init>
19
20 die "access denied"
21   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
22
23 my $num_svc_links = sub {
24   my ($query_string, $sectors) = @_;
25   return if !$sectors;
26   my $num_svc_broadband = FS::svc_broadband->count("sectornum IN($sectors)");
27   my $num_svc_acct =      FS::svc_acct->count("sectornum IN($sectors)");
28
29   {
30     'data' => $num_svc_broadband ? 
31                 '<B>'.$num_svc_broadband.'</B>'.
32                 ' broadband'
33                 : '',
34     'link' => $p.'search/svc_broadband.cgi?'.$query_string,
35     'size' => '-1',
36     'align'=> 'right',
37     'colspan'=> 2,
38   },
39
40   {
41     'data' => $num_svc_acct ? 
42                 '<B>'.$num_svc_acct.'</B>'.
43                 ' login'
44                 : '',
45     'link' => $p.'search/svc_acct.cgi?magic=advanced;'.$query_string,
46     'size' => '-1',
47     'align'=> 'right',
48     'colspan'=> 2,
49   },
50 };
51
52 my $tower_sub = sub {
53   my $tower = shift;
54   my $sectors = join(',', 
55     map { $_->sectornum } $tower->tower_sector, $tower->default_sector
56   );
57   [ #rows
58     [
59       { 'data' => $tower->towername, },
60       { 'data' => ' (edit) ', size => '-1', 
61         'link' => $p.'edit/tower.html?' . $tower->towernum },
62     ],
63     # turn these into rows
64     map { [ $_ ] } 
65       &{$num_svc_links}( 'towernum='.$tower->towernum, $sectors )
66   ] #rows
67 };
68
69 my $sector_sub = sub {
70   my $tower = shift;
71   
72   [ #rows
73     map {
74       my $sector = $_;
75       my $sectornum = $sector->sectornum;
76       [
77         {
78           'data' => $sector->sectorname,
79           'link' => ( $sector->ip_addr ? 'http://'. $sector->ip_addr : '' ),
80         },
81         
82         &{$num_svc_links}( 'sectornum='.$sectornum, $sectornum )
83       ]
84     } $tower->tower_sector
85   ] #rows
86
87 };
88
89 </%init>