render items using table or list
authorDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 16 Apr 2010 16:55:40 +0000 (18:55 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 16 Apr 2010 16:55:40 +0000 (18:55 +0200)
lib/MojoFacets/Data.pm
templates/data/items.html.ep [new file with mode: 0644]
templates/data/items/list.html.ep [new file with mode: 0644]
templates/data/items/table.html.ep [new file with mode: 0644]
templates/data/table.html.ep [deleted file]
templates/layouts/default.html.ep
templates/layouts/ui.html.ep

index c5a8b8a..de1a226 100644 (file)
@@ -157,7 +157,7 @@ sub filter {
 
        $self->session( 'offset' => 0 );
 
-       $self->redirect_to('/data/table');
+       $self->redirect_to('/data/items');
 }
 
 sub _filter_item {
@@ -196,7 +196,7 @@ sub _data_items {
        } @{ $data->{items} };
 }
 
-sub table {
+sub items {
     my $self = shift;
 
        $self->redirect_to('/data/index') unless $data->{items};
@@ -243,7 +243,7 @@ sub order {
        my $self = shift;
        $self->session('order', $self->param('order'));
        $self->session('sort', $self->param('sort'));
-       $self->redirect_to('/data/table');
+       $self->redirect_to('/data/items');
 }
 
 sub _is_numeric {
@@ -261,7 +261,7 @@ sub facet {
                my $f = $self->session('filters');
                delete $f->{$remove};
                $self->session( 'filters' => $f );
-               $self->redirect_to( '/data/table' );
+               $self->redirect_to( '/data/items' );
        }
 
        my $facet;
diff --git a/templates/data/items.html.ep b/templates/data/items.html.ep
new file mode 100644 (file)
index 0000000..6f04410
--- /dev/null
@@ -0,0 +1,65 @@
+% layout 'default';
+
+<style type="text/css">
+table {
+       border-collapse: collapse;
+}
+th {
+       white-space: nowrap;
+       background: #eee;
+}
+td.numeric {
+       text-align: right;
+}
+</style>
+
+<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>
+%  }
+<span class=count><%= $#filters_active + 1 %> active click to remove</span>
+% }
+
+showing 
+
+<select name=limit>
+% foreach my $on_page ( 10,20,50,100,1000 ) {
+<option <%= $limit == $on_page ? 'selected' : '' %>><%= $on_page %></option>
+% }
+</select>
+
+items
+
+<span class=count><%= $offset + 1 %>-<%= $offset + $limit %></span>
+
+<input type=submit value="refresh">
+
+</form>
+
+% my $show = param('show') || 'table';
+<%= include 'data/items/' . $show, filters => $filters %>
+
+<div class=pager>
+% foreach my $p ( 0 .. int( $rows / $limit ) ) {
+% my $o = $p * $limit;
+%      if ( $o == $offset ) {
+<b><%= $p + 1 %></b>
+%      } else {
+<a href="<%= url_for( action => 'table' )->query( offset => $p * $limit ) %>"><%= $p + 1 %></a>
+%      }
+% }
+</div>
+
+<ul class=debug>
+<li>rows: <%= $rows %> offset: <%= $offset %> limit: <%= $limit %>
+<li>columns: <%= join(',',@$columns) %>
+<li>numeric: <%= dumper $numeric %>
+<li>order: <%= session('order') %> sort: <%= session('sort') %>
+</ul>
diff --git a/templates/data/items/list.html.ep b/templates/data/items/list.html.ep
new file mode 100644 (file)
index 0000000..b160688
--- /dev/null
@@ -0,0 +1,10 @@
+
+% foreach my $row ( @$sorted ) {
+<ul>
+% foreach my $col ( @$columns ) {
+%  next unless exists $row->{$col};
+<li><%= $col %>: <%= ref $row->{$col} eq 'ARRAY' ? join(', ',@{ $row->{$col} }) : $row->{$col} %>
+% }
+</ul>
+% }
+
diff --git a/templates/data/items/table.html.ep b/templates/data/items/table.html.ep
new file mode 100644 (file)
index 0000000..388eeea
--- /dev/null
@@ -0,0 +1,25 @@
+<table border=1>
+
+<tr>
+% foreach my $n ( @$columns ) {
+<th>
+<a href="<%= url_for( action => 'facet' )->query( name => $n ) %>"><%== $filters->{$n} ? '&diams;' : '&loz;' %></a>
+% if ( session('order') ne $n ) {
+<a href="<%= url_for( action => 'order' )->query( order => $n ) %>"><%= $n %></a>
+% } else {
+<a href="<%= url_for( action => 'order' )->query( order => $n, sort => session('sort') eq 'a' ? 'd' : 'a' ) %>"><%= $n %></a>
+<%== session('sort') eq 'a' ? '&uarr;' : '&darr;' %>
+% }
+</th>
+% }
+</tr>
+
+% foreach my $row ( @$sorted ) {
+<tr>
+% foreach my $col ( @$columns ) {
+<td<%= $numeric->{$col} ? ' class=numeric' : '' %>><%= ref $row->{$col} eq 'ARRAY' ? join(', ',@{ $row->{$col} }) : $row->{$col} %></td>
+% }
+</tr>
+% }
+
+</table>
diff --git a/templates/data/table.html.ep b/templates/data/table.html.ep
deleted file mode 100644 (file)
index c27b1bd..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-% layout 'default';
-
-<style type="text/css">
-table {
-       border-collapse: collapse;
-}
-th {
-       white-space: nowrap;
-       background: #eee;
-}
-td.numeric {
-       text-align: right;
-}
-</style>
-
-<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>
-%  }
-<span class=count><%= $#filters_active + 1 %> active click to remove</span>
-% }
-
-showing 
-
-<select name=limit>
-% foreach my $on_page ( 10,20,50,100,1000 ) {
-<option <%= $limit == $on_page ? 'selected' : '' %>><%= $on_page %></option>
-% }
-</select>
-
-items
-
-<span class=count><%= $offset + 1 %>-<%= $offset + $limit %></span>
-
-<input type=submit value="refresh">
-
-</form>
-
-<table border=1>
-
-<tr>
-% foreach my $n ( @$columns ) {
-<th>
-<a href="<%= url_for( action => 'facet' )->query( name => $n ) %>"><%== $filters->{$n} ? '&diams;' : '&loz;' %></a>
-% if ( session('order') ne $n ) {
-<a href="<%= url_for( action => 'order' )->query( order => $n ) %>"><%= $n %></a>
-% } else {
-<a href="<%= url_for( action => 'order' )->query( order => $n, sort => session('sort') eq 'a' ? 'd' : 'a' ) %>"><%= $n %></a>
-<%== session('sort') eq 'a' ? '&uarr;' : '&darr;' %>
-% }
-</th>
-% }
-</tr>
-
-% foreach my $row ( @$sorted ) {
-<tr>
-% foreach my $col ( @$columns ) {
-<td<%= $numeric->{$col} ? ' class=numeric' : '' %>><%= ref $row->{$col} eq 'ARRAY' ? join(', ',@{ $row->{$col} }) : $row->{$col} %></td>
-% }
-</tr>
-% }
-
-</table>
-
-<div class=pager>
-% foreach my $p ( 0 .. int( $rows / $limit ) ) {
-% my $o = $p * $limit;
-%      if ( $o == $offset ) {
-<b><%= $p + 1 %></b>
-%      } else {
-<a href="<%= url_for( action => 'table' )->query( offset => $p * $limit ) %>"><%= $p + 1 %></a>
-%      }
-% }
-</div>
-
-<ul class=debug>
-<li>rows: <%= $rows %> offset: <%= $offset %> limit: <%= $limit %>
-<li>columns: <%= join(',',@$columns) %>
-<li>numeric: <%= dumper $numeric %>
-<li>order: <%= session('order') %> sort: <%= session('sort') %>
-</ul>
index eef9b51..000dc94 100644 (file)
@@ -8,7 +8,7 @@
 
 <a href="<%= url_for( action => 'index' ) %>">load</a>
 <a href="<%= url_for( action => 'columns' ) %>">columns</a>
-<a href="<%= url_for( action => 'table' ) %>">table</a>
+<a href="<%= url_for( action => 'items' ) %>">items</a>
 
 <%== content %>
 
index 6c604df..30ae271 100644 (file)
@@ -18,7 +18,7 @@
 
 <a href="<%= url_for( action => 'index' ) %>">load</a>
 <a href="<%= url_for( action => 'columns' ) %>">columns</a>
-<a href="<%= url_for( action => 'table' ) %>">table</a>
+<a href="<%= url_for( action => 'items' ) %>">items</a>
 
 <%== content %>