X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Fselect-tower_sector.html;h=4dfd23dcc8e95713b3e75c98f22b151367a6dd8e;hp=c783c4b571d9a31d0440df0e2bc184c1f5c61df3;hb=66fc0c9ba5d3f460a26a51ee72ee25923d644da8;hpb=b903b1b4874c103f1c532b1f326a7659630dd1b5 diff --git a/httemplate/elements/select-tower_sector.html b/httemplate/elements/select-tower_sector.html index c783c4b57..4dfd23dcc 100644 --- a/httemplate/elements/select-tower_sector.html +++ b/httemplate/elements/select-tower_sector.html @@ -2,6 +2,8 @@ <& /elements/select-table.html, table => 'tower_sector', name_col => 'description', + addl_from => 'JOIN tower USING (towernum)', + extra_sql => $extra_sql, order_by => 'ORDER BY towernum,sectorname', empty_label => ' ', @_ @@ -11,8 +13,9 @@ <& /elements/select-table.html, table => 'tower', name_col => 'towername', + hashref => { 'disabled' => '', }, id => 'towernum', - field => 'dummy_towernum', + field => 'towernum', onchange => 'change_towernum(this.value);', element_etc => 'STYLE="vertical-align:top"', &> @@ -40,12 +43,31 @@ change_towernum(''); 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'; } } -my $empty_label = $opt{'empty_label'} || 'Include services with no tower/sector'; +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'; + +my $extra_sql = q(WHERE (disabled = '' OR disabled IS NULL)); +$extra_sql .= q( AND sectorname != '_default') if $opt{'sectorsonly'};