check just facets available in current dataset
authorDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 24 May 2010 16:52:01 +0000 (18:52 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 24 May 2010 16:52:01 +0000 (18:52 +0200)
This allows us to use facet from other dataset, and quickly filter it
just to values which are available in current set.

lib/MojoFacets/Data.pm
templates/data/facet.html.ep

index 5559fd7..b4f1258 100644 (file)
@@ -547,7 +547,7 @@ sub facet {
                } elsif ( $sort =~ m/d/i ) {
                        $numeric ? $b <=> $a : lc $b cmp lc $a;
                } elsif ( $sort =~ m/c/i ) {
-                       $facet->{$b} <=> $facet->{$a};
+                       ( $facet->{$b} || -1 ) <=> ( $facet->{$a} || -1 )
                } else {
                        warn "unknown sort: $sort";
                        $a cmp $b;
index d073ba9..5c907e0 100644 (file)
 % foreach my $n ( @$facet_names ) {
 <li>
 <label>
-<input type=checkbox name="filter_vals" value="<%= $n %>" <%= $checked->{$n} ? 'checked' : '' %>>
+<input type=checkbox name="filter_vals" value="<%= $n %>" <%= $checked->{$n} && defined $facet->{$n} ? 'checked' : '' %>>
 <%= $n %>
 </label>
+%  if ( defined $facet->{$n} ) {
 <span class="count"><%= $facet->{$n} %></span>
+%  }
 % }
 </ul>