auto submit form on limit change
[MojoFacets.git] / templates / data / items.html.ep
index fa75dcb..0a25c75 100644 (file)
@@ -1,4 +1,4 @@
-% layout 'default';
+% layout 'ui';
 
 <style type="text/css">
 table {
@@ -16,13 +16,14 @@ td.numeric {
 <form class=info>
 <b><%= $rows %></b> items 
 
-% my $filters = session('filters');
 % my @filters_active = keys %$filters;
 % if ( @filters_active ) {
 filter 
 %  foreach my $n ( @filters_active ) {
-<a href="<%= url_for( action => 'facet' )->query( remove => $n ) %>"
-       title="<%= join(', ', @{ $filters->{$n} }) %>"><%= $n %></a>
+%  my $title = $#{ $filters->{$n} } + 1;
+%  $title .= $title > 25 ? ' values' : ': ' . join(', ', @{ $filters->{$n} });
+<a href="<%= url_for( action => 'facet' )->query( remove => $n ) %>" title="<%= $title %>">
+<%= $n %></a>
 %  }
 <span class=count><%= $#filters_active + 1 %> active click to remove</span>
 % }
@@ -37,21 +38,27 @@ showing
 
 items
 
+% if ( $offset + $limit > $rows ) {
+<span class=count>all</span>
+% } else {
 <span class=count><%= $offset + 1 %>-<%= $offset + $limit %></span>
+% }
 
 <input type=submit value="refresh">
 
 </form>
 
-<%= include 'data/items/' . session('show'), filters => $filters %>
+<%= include 'data/items/' . session('show') %>
 
 <div class=pager>
+% my $url = url_for( action => 'items' )->query( offset => 0 );
+% $url =~ s{=0}{=}; # FIXME url_for is very very slow
 % foreach my $p ( 0 .. int( $rows / $limit ) ) {
 % my $o = $p * $limit;
 %      if ( $o == $offset ) {
 <b><%= $p + 1 %></b>
 %      } else {
-<a href="<%= url_for( action => 'items' )->query( offset => $p * $limit ) %>"><%= $p + 1 %></a>
+<a href="<%= $url . ( $p * $limit ) %>"><%= $p + 1 %></a>
 %      }
 % }
 </div>
@@ -62,3 +69,12 @@ items
 <li>numeric: <%= dumper $numeric %>
 <li>order: <%= session('order') %> sort: <%= session('sort') %>
 </ul>
+
+<script type="text/javascript">
+$(document).ready( function(){
+       $('select[name=limit]').change( function(){
+               console.debug( 'limit changed', this );
+               $(this).closest('form').submit();
+       });
+});
+</script>