From 4381f17b4d162b47985f7f695fe8d5e83778fb5c Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Tue, 29 Jun 2010 14:12:46 +0200 Subject: [PATCH] facet code eval with $value, $count and $checked --- README | 5 +++++ lib/MojoFacets/Data.pm | 7 ++++--- templates/data/facet.html.ep | 14 +++++++++----- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/README b/README index 14d7b0e..28e99a8 100644 --- a/README +++ b/README @@ -71,6 +71,11 @@ They use column1,column2.description.pl notatition so only snippets which have a column will be shown. +Facet code eval: + +Code snippet will be executed for each facet $value and will report $count and $checked state. + + Export data: All exported data is stored in public/export/database/ diff --git a/lib/MojoFacets/Data.pm b/lib/MojoFacets/Data.pm index 0f894bd..d12b1a7 100644 --- a/lib/MojoFacets/Data.pm +++ b/lib/MojoFacets/Data.pm @@ -951,10 +951,14 @@ sub facet { } } + my $checked = $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}; eval $code; if ( $@ ) { $out = $@; @@ -968,14 +972,11 @@ sub facet { # warn "# facet $name ",dump $facet; - my $checked; my @facet_names = $all ? keys %$facet : defined $filters->{$name} ? @{ $filters->{$name} } : keys %$facet; - $checked = $self->_checked( @{ $filters->{$name} } ) if defined $filters->{$name}; - my $numeric = $self->_is_numeric($name); my $sort = $self->param('sort'); diff --git a/templates/data/facet.html.ep b/templates/data/facet.html.ep index 689b4ad..3a4cc0a 100644 --- a/templates/data/facet.html.ep +++ b/templates/data/facet.html.ep @@ -55,14 +55,18 @@ First <%= $max_facets %> shown -% if ( my $out = stash('out') ) { -
<%= dumper $out %>
-% }
+
Eval code on each facet $value and $count -$out->{sum} += $value * $count -
+
+$out->{sum} += $value * $count;
+$out->{sum}->{ $checked ? 'on' : 'off' } += $count;
+
+
+% if ( my $out = stash('out') ) { +
<%= dumper $out %>
+% } -- 2.20.1