diff options
-rw-r--r-- | httemplate/elements/select-tiered.html | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/httemplate/elements/select-tiered.html b/httemplate/elements/select-tiered.html index 99b285274..e332eeff8 100644 --- a/httemplate/elements/select-tiered.html +++ b/httemplate/elements/select-tiered.html @@ -59,7 +59,11 @@ main argument list, and will be applied to the last tier. > % if ( $i == 0 ) { % my $options = $tiers_by_key->[0]->{''}; -% foreach ( sort keys %$options ) { +% #foreach ( sort keys %$options ) { +% foreach ( sort { lc($options->{$a}) cmp lc($options->{$b}) } +% keys %$options +% ) +% { <OPTION VALUE="<%$_ |h%>" <% $curr_values->[$i] eq $_ ? 'SELECTED' : ''%>> <% $options->{$_} |h%></OPTION> % } @@ -68,8 +72,8 @@ main argument list, and will be applied to the last tier. </SELECT> <% $tier->{after} %> % } #foreach $tier + <SCRIPT type="text/javascript"> -% my $json = JSON->new->canonical; #sort var <% $pre %>tiers = <% $json->encode($tiers_by_key) %>; var <% $pre %>curr_values = <% $json->encode($curr_values) %>; function <% $pre %>select_change(select_this, i) { @@ -120,6 +124,16 @@ my %opt = @_; my $pre = $opt{prefix} || ''; my $tiers = $opt{tiers} or die "no tiers defined"; +#my $json = JSON->new()->canonical(); #sort +# something super weird and broken going on with JSON's auto-loading, just +# using JSON alone errors out with +# Can't locate object method "new" via package "null" (perhaps you forgot to +# load "null"?) +# yes, "null", not "JSON". so instead, using JSON::XS explicity... +use JSON::XS; +my $json = JSON::XS->new(); +$json->canonical; + my $i; for( $i = 0; $i < @$tiers; $i++ ) { my $tier = $tiers->[$i]; |