count/all links for facets
authorDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 20 May 2010 19:27:17 +0000 (21:27 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 20 May 2010 19:27:17 +0000 (21:27 +0200)
Count link will show just selected facets, while all will show all
facets in dataset

lib/MojoFacets/Data.pm
templates/data/items/table.html.ep

index d2573db..aea766d 100644 (file)
@@ -277,6 +277,8 @@ sub _data_items {
        my $path = $self->session('path') || $self->redirect_to( '/data/index' );
        my $data = $self->_loaded( 'data' );
 
+       return @{ $data->{items} } if defined $self->session('all');
+
        my $filters = $self->_current_filters;
        my $filter_value;
        foreach my $f ( keys %$filters ) {
@@ -418,13 +420,13 @@ sub facet {
 #      warn "# facet $name ",dump $facet;
 
        my $checked;
-       my @facet_names;
-       if ( defined $filters->{$name} ) {
-               @facet_names = @{ $filters->{$name} };
-               $checked = $self->_checked( @facet_names );
-       } else {
-               @facet_names = keys %$facet;
-       }
+       my $all = $self->_perm_scalar('all', 0);
+       my @facet_names =
+                 $all                      ? keys %$facet
+               : defined $filters->{$name} ? @{ $filters->{$name} }
+               : keys %$facet;
+
+       $checked = $self->_checked( @{ $filters->{$name} } ) if defined $filters->{$name};
 
        my $sort = $self->param('sort') || 'c';
 
index 4954137..e8578ae 100644 (file)
 <%== session('sort') eq 'a' ? '&uarr;' : '&darr;' %>
 % }
 <div class="col_opts">
-<a title="filter by this facet" href="<%= url_for( action => 'facet' )->query( name => $n ) %>">
+<a title="filter by this facet" href="<%= url_for( action => 'facet' )->query( name => $n, all => 0 ) %>">
 % if ( defined $filters->{$n} ) {
 <%= $#{ $filters->{$n} } + 1 %></a>&nbsp;
-<a title="show all values" href="<%= url_for( action => 'facet' )->query( name => $n, show => 'all' ) %>">all
+<a title="show all values" href="<%= url_for( action => 'facet' )->query( name => $n, all => 1 ) %>">all
 % } else {
 filter
 % }