$self->render(
message => 'Select columns to display',
stats => $stats,
+ checked => $self->_checked( $self->_perm_array('columns') ),
);
}
if ( @array ) {
$self->session($name => [ @array ]);
- } else {
- @array = @{ $self->session($name) };
+ } elsif ( my $session = $self->session($name) ) {
+ if ( ref $session eq 'ARRAY' ) {
+ @array = @$session;
+ } else {
+ die "$name not array ",dump($session);
+ }
}
warn "# $name ",dump @array;
return @array;
return $scalar;
}
+sub filter {
+ my $self = shift;
+
+ my $name = $self->param('filter_name') || die "name?";
+ my @vals = $self->param('filter_vals');
+
+ warn "# filter $name vals ",dump(@vals);
+
+
+ my $filters = $self->session('filters');
+ $filters->{$name} = [ @vals ];
+ $self->session( 'filters' => $filters );
+
+ warn "# filters ",dump($self->session('filters'));
+
+ $self->redirect_to('/data/table');
+}
+
sub table {
my $self = shift;
}
+
sub facet {
my $self = shift;
# warn "# facet $name ",dump $facet;
- $self->render( name => $name, facet => $facet )
+ my $checked;
+ if ( my $f = $self->session('filters') ) {
+ if ( defined $f->{$name} ) {
+ $checked = $self->_checked( @{ $f->{$name} } );
+ }
+ }
+
+ $self->render( name => $name, facet => $facet, checked => $checked );
+}
+
+sub _checked {
+ my $self = shift;
+ my $checked;
+ $checked->{$_}++ foreach @_;
+ warn "# _checked ",dump($checked);
+ return $checked;
}
1;
<%#= dumper $facet %>
+<form method=post action=/data/filter >
+<input type=hidden name=filter_name value="<%= $name %>">
+<input type=submit value="Filter <%= $name %>">
+
<ul>
% foreach my $n ( sort { $facet->{$b} <=> $facet->{$a} } keys %$facet ) {
<li>
+<label>
+<input type=checkbox name="filter_vals" value="<%= $n %>" <%= $checked->{$n} ? 'checked' : '' %>>
<%= $n %>
<span class="count"><%= $facet->{$n} %></span>
+</label>
% }
</ul>
+
+<input type=submit value="Filter <%= $name %>">
+
+</form>
% layout 'default';
-columns: <%= join(',',@$columns) %>
-
<table border=1>
<tr>
% }
</div>
+<ul>
+<li>rows: <%= $rows %> offset: <%= $offset %> limit: <%= $limit %>
+<li>columns: <%= join(',',@$columns) %>
+<li>filters: <%= dumper session 'filters' %>
+</ul>