--- trunk/share/web/templates/list 2006/12/05 17:16:39 9 +++ trunk/share/web/templates/list 2006/12/07 00:37:28 20 @@ -1,33 +1,49 @@ <%args> -$page => 1 - +$page => undef; $author => undef; - +$show_actions => undef; +$per_page => undef; +$from_date => undef; +$to_date => undef; +$search => undef; <%init> my $filter = Jifty->web->new_action( class => 'Filter', moniker => 'filer_list', +# arguments => { +# author => $author, +# show_actions => $show_actions, +# }, ); my $revisions = SVNBrowser::Model::RevisionCollection->new(); $author ||= $filter->argument_value('author'); +$show_actions ||= $filter->argument_value('show_actions'); +$page ||= $filter->argument_value('page') || 1; +$per_page ||= $filter->argument_value('per_page') || 10; +$from_date ||= $filter->argument_value('from_date'); +$to_date ||= $filter->argument_value('to_date'); +$search ||= $filter->argument_value('search'); + +$revisions->unlimit(); + +$revisions->limit( column => 'author', value => $author, entry_aggregator => 'AND' ) if ($author); +$revisions->limit( column => 'commit_date', operator => '>=', value => $from_date, entry_aggregator => 'AND' ) if ($from_date); +$revisions->limit( column => 'commit_date', operator => '<=', value => $to_date, entry_aggregator => 'AND' ) if ($to_date); + +$revisions->limit( column => 'message', operator => 'LIKE', value => '%' . $search . '%' ) if ($search); -if ($author) { - $revisions->limit( - column => 'author', - value => $author, - ); -} else { - $revisions->unlimit(); -} $revisions->order_by({ column => 'commit_date', order => 'desc' }); $revisions->set_page_info( current_page => $page, - per_page => 20, + per_page => $per_page, ); + +warn $revisions->build_select_query; + $revisions->goto_first_item; @@ -35,18 +51,22 @@ -<&| /_elements/wrapper, title => "Statistics" &> +<&| /_elements/wrapper, title => "SVN Reporitory Browser" &> <% Jifty->web->form->start %> <% $filter->form_field('author', default_value => $author ) %> -<% $filter->button( label => 'Show just this commiter' ) %> -<% Jifty->web->form->end %> +<% $filter->button( label => 'Filter commits' ) %> +<% $filter->form_field('show_actions', default_value => $show_actions ) %> +<% $filter->form_field('per_page', default_value => $per_page ) %> +<% $filter->form_field('from_date', default_value => $from_date ) %> +<% $filter->form_field('to_date', default_value => $to_date ) %> +<% $filter->form_field('search', default_value => $search ) %> <%perl> if (my $nr = $revisions->pager->total_entries) { - $m->out("Found $nr revisions"); + $m->out("$nr revisions found"); } else { - $m->out("No revisions found.") + $m->out("No revisions found in repository"); } @@ -61,21 +81,27 @@
<% $r->message %>
-
% } % if ($revisions->pager->previous_page) { - <% Jifty->web->link( - label => "Previous", - onclick => { args => { page => $revisions->pager->previous_page } } + <% $filter->button( + label => "<<", + escape_label => 0, + arguments => { + page => $revisions->pager->previous_page, + } ) %> % } @@ -84,11 +110,15 @@ % } % if ($revisions->pager->next_page) { - <% Jifty->web->link( - label => "Next", - onclick => { args => { page => $revisions->pager->next_page } } + <% $filter->button( + label => ">>", + escape_label => 0, + arguments => { + page => $revisions->pager->next_page, + } ) %> % } - +<% Jifty->web->form->end %> +