% if ( ! $opt{'multiple'} ) { <& /elements/select-table.html, table => 'tower_sector', name_col => 'description', addl_from => 'JOIN tower USING (towernum)', extra_sql => q(WHERE disabled = '' OR disabled IS NULL), order_by => 'ORDER BY towernum,sectorname', empty_label => ' ', @_ &> % } % else { # currently only multiple sectors, not towers <& /elements/select-table.html, table => 'tower', name_col => 'towername', hashref => { 'disabled' => '', }, id => 'towernum', field => '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 sector';