combine ticket notification scrips, #15353
[freeside.git] / httemplate / elements / select-state.html
index f7ac2c7..785b2ec 100644 (file)
@@ -14,6 +14,7 @@ Example:
     disable_empty => 1, #defaults to 1, disable the empty option
     empty_label   => 'all', #label for empty option
     disable_countyupdate => 0, #bool - disabled update of the select-state.html
+    style         => [ 'attribute:value', 'another:value' ],
   );
 
 </%doc>
@@ -21,6 +22,8 @@ Example:
 <SELECT NAME     = "<% $pre %>state"
         ID       = "<% $pre %>state"
         onChange = "<% $onchange %>"
+        <% $opt{'disabled'} %>
+        <% $style %>
 >
 
 % unless ( $opt{'disable_empty'} ) {
@@ -29,7 +32,7 @@ Example:
 
 % foreach my $state ( keys %states ) { 
 
-  <OPTION VALUE="<% $state |h %>"<% $state eq $opt{'state'} ? ' SELECTED' : '' %>><% $states{$state} || '(n/a)' %>
+  <OPTION VALUE="<% $state |h %>"<% $state eq $opt{'state'} ? ' SELECTED' : '' %>><% $states{$state} || '(n/a)' |h %>
 
 % } 
 
@@ -39,7 +42,9 @@ Example:
 <%init>
 
 my %opt = @_;
-foreach my $opt (qw( state country prefix onchange disabled empty_label )) {
+foreach my $opt (qw(
+  state country prefix onchange disabled empty_label svcpart
+)) {
   $opt{$opt} = '' unless exists($opt{$opt}) && defined($opt{$opt});
 }
 
@@ -51,7 +56,24 @@ my $onchange =
   ( $opt{'disable_countyupdate'} ? '' : $pre.'state_changed(this); ' ).
   $opt{'onchange'};
 
+$opt{'style'} ||= [];
+my $style =
+  scalar(@{$opt{style}})
+    ? 'STYLE="'. join(';', @{$opt{style}}). '"'
+    : '';
+
 tie my %states, 'Tie::IxHash', states_hash( $opt{'country'} ); 
 
+if ( $opt{'svcpart'} ) {
+
+  my $sth = dbh->prepare(
+    'SELECT DISTINCT state FROM phone_avail WHERE svcnum IS NULL'
+  ) or die dbh->errstr;
+  $sth->execute or die $sth->errstr;
+  my %avail_states = map { $_->[0] => 1 } @{ $sth->fetchall_arrayref };
+
+  delete $states{$_} foreach grep ! $avail_states{$_}, keys %states;
+}
+
 </%init>