X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Fselect-tower_sector.html;h=4dfd23dcc8e95713b3e75c98f22b151367a6dd8e;hp=a64d88608353e7552efbd07de7c15bdcd50632bc;hb=66fc0c9ba5d3f460a26a51ee72ee25923d644da8;hpb=e6f7e02b32ebaa471230819d36a88f88b98bed6a diff --git a/httemplate/elements/select-tower_sector.html b/httemplate/elements/select-tower_sector.html index a64d88608..4dfd23dcc 100644 --- a/httemplate/elements/select-tower_sector.html +++ b/httemplate/elements/select-tower_sector.html @@ -1,7 +1,73 @@ +% if ( ! $opt{'multiple'} ) { <& /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 => ' ', @_ &> +% } +% 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'; + +my $extra_sql = q(WHERE (disabled = '' OR disabled IS NULL)); +$extra_sql .= q( AND sectorname != '_default') if $opt{'sectorsonly'}; +