v4 style
[freeside.git] / httemplate / elements / select-county.html
index aa9f453..cce085f 100644 (file)
@@ -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' ],
-  );
+  &>
 
 </%doc>
 % 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). '"'
     : '';
 
 </%init>