X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FMojoFacets%2FData.pm;h=1426ba99dd561ff7a27e1228562d1283df1b8858;hb=7409c4c81245aca07a321661a507c563defed846;hp=d12b1a7b84b7d14e7d89056bf868ffe456178fa6;hpb=4381f17b4d162b47985f7f695fe8d5e83778fb5c;p=MojoFacets.git diff --git a/lib/MojoFacets/Data.pm b/lib/MojoFacets/Data.pm index d12b1a7..1426ba9 100644 --- a/lib/MojoFacets/Data.pm +++ b/lib/MojoFacets/Data.pm @@ -951,19 +951,21 @@ sub facet { } } - my $checked = $self->_checked( @{ $filters->{$name} } ) if defined $filters->{$name}; + my $checked_values = $self->_checked( @{ $filters->{$name} } ) if defined $filters->{$name}; if ( my $code = $self->param('code') ) { my $out; - my $checked_values = $checked; foreach my $value ( keys %$facet ) { my $count = $facet->{$value}; - my $checked = defined $checked_values->{$value}; + my $checked = $checked_values->{$value}; eval $code; if ( $@ ) { $out = $@; warn "ERROR: $@\n$code\n"; last; + } elsif ( $checked != $checked_values->{$value} ) { + warn "checked $value $count -> $checked\n"; + $checked_values->{$value} = $checked; } } warn "out ",dump( $out ); @@ -999,7 +1001,7 @@ sub facet { $result; } @facet_names; - $self->render( name => $name, facet => $facet, checked => $checked, + $self->render( name => $name, facet => $facet, checked => $checked_values, facet_names => \@facet_names, sort => $sort, numeric => $numeric, ); }