% include( 'elements/browse.html',
'title' => 'Towers',
'name' => 'towers',
'menubar' => [ 'Add a new tower' =>
$p.'edit/tower.html',
],
'query' => { 'table' => 'tower', },
'count_query' => 'SELECT COUNT(*) FROM tower',
'disableable' => 1,
'disabled_statuspos' => 1,
'header' => [ 'Name', 'Location', 'Sectors', ],
'fields' => [ $tower_sub,
$coord_sub,
$sector_sub,
],
'links' => [ ],
'cell_style' => [ $tagdesc_style ],
)
%>
<%init>
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
#false laziness w/ browse/part_tag.html
my $tagdesc_style = sub { 'background-color:#'.shift->color };
my $num_svc_links = sub {
my ($query_string, $sectors) = @_;
return if !$sectors;
my $num_svc_broadband = FS::svc_broadband->count("sectornum IN($sectors)");
my $num_svc_acct = FS::svc_acct->count("sectornum IN($sectors)");
{
'data' => $num_svc_broadband ?
''.$num_svc_broadband.''.
' broadband'
: '',
'link' => $p.'search/svc_broadband.cgi?'.$query_string,
'size' => '-1',
'align'=> 'right',
'colspan'=> 2,
},
{
'data' => $num_svc_acct ?
''.$num_svc_acct.''.
' login'
: '',
'link' => $p.'search/svc_acct.cgi?magic=advanced;'.$query_string,
'size' => '-1',
'align'=> 'right',
'colspan'=> 2,
},
};
my $coord_sub = sub {
my $tower = shift;
my $coords = $m->scomp("/elements/coord-links.html", $tower->latitude, $tower->longitude, $tower->towername);
[
[
{ 'data' => "Latitude: ". $tower->latitude.
"
Longitude: ". $tower->longitude.
"
Altitude: ". $tower->altitude.
"
Height: ". $tower->height.
"
Veg. height: ". $tower->veg_height,
},
{ 'data' => $coords, 'link' => "Coordinates", },
],
]
};
my $tower_sub = sub {
my $tower = shift;
my $sectors = join(',',
map { $_->sectornum } $tower->tower_sector, $tower->default_sector
);
[ #rows
[
{ 'data' => $tower->towername. ' ', },
{ 'data' => ' (edit) ', size => '-1',
'link' => $p.'edit/tower.html?' . $tower->towernum },
],
# turn these into rows
map { [ $_ ] }
&{$num_svc_links}( 'towernum='.$tower->towernum, $sectors )
] #rows
};
my $sector_sub = sub {
my $tower = shift;
[ #rows
map {
my $sector = $_;
my $sectornum = $sector->sectornum;
[
{
'data' => $sector->sectorname. ' ',
'link' => ( $sector->ip_addr ? 'http://'. $sector->ip_addr : '' ),
},
&{$num_svc_links}( 'sectornum='.$sectornum, $sectornum )
]
} $tower->tower_sector
] #rows
};
%init>