Merge branch 'master' of git.freeside.biz:/home/git/freeside
authorIvan Kohler <ivan@freeside.biz>
Thu, 11 Oct 2012 22:15:48 +0000 (15:15 -0700)
committerIvan Kohler <ivan@freeside.biz>
Thu, 11 Oct 2012 22:15:48 +0000 (15:15 -0700)
httemplate/elements/select-tiered.html

index 99b2852..e332eef 100644 (file)
@@ -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];