% if ( ! $opt{'multiple'} ) {
<& /elements/select-table.html,
table => 'tower_sector',
name_col => 'description',
order_by => 'ORDER BY towernum,sectorname',
empty_label => ' ',
@_
&>
% }
% else { # currently only multiple sectors, not towers
<& /elements/select-table.html,
table => 'tower',
name_col => 'towername',
id => 'towernum',
field => 'dummy_towernum',
onchange => 'change_towernum(this.value);',
element_etc => 'STYLE="vertical-align:top"',
&>
<% $empty_label %>
% }
<%init>
my %opt = @_;
my %sectors_of;
my %default_of;
if ( $opt{'multiple'} ) {
foreach my $sector ( qsearch('tower_sector',{}) ) {
$sectors_of{$sector->towernum} ||= {};
$sectors_of{$sector->towernum}->{$sector->sectornum} = $sector->sectorname;
$sectors_of{''}->{$sector->sectornum} = $sector->description;
$default_of{$sector->towernum} = $sector->sectornum
if $sector->sectorname eq '_default';
}
}
foreach my $towernum (keys %sectors_of) {
# hide default sectors for towers that have real sectors defined
my $sectornum = $default_of{$towernum};
if ( keys %{ $sectors_of{$towernum} } > 1 ) {
delete $sectors_of{$towernum}->{$sectornum};
delete $sectors_of{''}->{$sectornum};
}
else {
# show default sectorname as '(all)'
$sectors_of{$towernum}->{$sectornum} = '(all)'
}
}
my $empty_label = $opt{'empty_label'} || 'Include services with no tower/sector';
%init>