X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Fselect-county.html;h=cce085f12aa630193fb0582f5d4c9b281096d534;hp=aa9f453fd6aa4daa5d1fc3e4b3d59cf61f06982c;hb=7b0bbc4117a7959b9f7b7b2cf999b8188ba34160;hpb=0b94e40c533288be69a4fe60da36a385d31eff7f diff --git a/httemplate/elements/select-county.html b/httemplate/elements/select-county.html index aa9f453fd..cce085f12 100644 --- a/httemplate/elements/select-county.html +++ b/httemplate/elements/select-county.html @@ -2,7 +2,7 @@ Example: - include( '/elements/select-county.html', + <& /elements/select-county.html, #recommended country => $current_country, state => $current_state, @@ -12,10 +12,10 @@ Example: prefix => $optional_unique_prefix, onchange => $javascript, disabled => 0, #bool - disable_empty => 1, #defaults to 1, disable the empty option + disable_empty => 1, #defaults to 1, set to 0 to disable the empty option empty_label => 'all', #label for empty option style => [ 'attribute:value', 'another:value' ], - ); + &> % if ( $countyflag ) { @@ -36,6 +36,8 @@ Example: function <% $pre %>state_changed(what, callback) { + what.form.<% $pre %>county.disabled = 'disabled'; + state = what.options[what.selectedIndex].value; country = what.form.<% $pre %>country.options[what.form.<% $pre %>country.selectedIndex].value; @@ -44,6 +46,10 @@ Example: // blank the current county list for ( var i = what.form.<% $pre %>county.length; i >= 0; i-- ) what.form.<% $pre %>county.options[i] = null; + +% unless ( $opt{disable_empty} ) { + opt( what.form.<% $pre %>county, '', <% $opt{empty_label} |js_string %> ); +% } // add the new counties var countiesArray = eval('(' + counties + ')' ); @@ -58,14 +64,20 @@ Example: if ( countiesArray.length > 1 ) { what.form.<% $pre %>county.style.display = ''; - //countyFormLabel.style.visibility = 'visible'; - countyFormLabel.style.display = ''; + if ( countyFormLabel ) { + //countyFormLabel.style.visibility = 'visible'; + countyFormLabel.style.display = ''; + } } else { what.form.<% $pre %>county.style.display = 'none'; - //countyFormLabel.style.visibility = 'hidden'; - countyFormLabel.style.display = 'none'; + if ( countyFormLabel ) { + //countyFormLabel.style.visibility = 'hidden'; + countyFormLabel.style.display = 'none'; + } } + what.form.<% $pre %>county.disabled = ''; + //run the callback if ( callback != null ) { callback(); @@ -136,7 +148,7 @@ my $onchange = ( $opt{'disable_cityupdate'} ? '' : $pre.'county_changed(this); ' ). $opt{'onchange'}; -$opt{'style'} ||= []; +my $county_style = $opt{'style'} ? [ @{ $opt{'style'} } ] : []; my @counties = (); if ( $countyflag ) { @@ -144,14 +156,14 @@ if ( $countyflag ) { @counties = map { length($_) ? $_ : $opt{'empty_data_value'} } counties( $opt{'state'}, $opt{'country'} ); - push @{ $opt{'style'} }, 'display:none' + push @$county_style, 'display:none' unless scalar(@counties) > 1; } my $style = - scalar(@{$opt{style}}) - ? 'STYLE="'. join(';', @{$opt{style}}). '"' + scalar(@$county_style) + ? 'STYLE="'. join(';', @$county_style). '"' : '';