1 |
<%args> |
<%args> |
2 |
$page => 1 |
$page => undef; |
|
|
|
3 |
$author => undef; |
$author => undef; |
4 |
|
$show_actions => undef; |
5 |
|
$per_page => undef; |
6 |
|
$from_date => undef; |
7 |
|
$to_date => undef; |
8 |
|
$search => undef; |
9 |
</%args> |
</%args> |
10 |
|
|
11 |
<%init> |
<%init> |
12 |
my $filter = Jifty->web->new_action( |
my $filter = Jifty->web->new_action( |
13 |
class => 'Filter', |
class => 'Filter', |
14 |
moniker => 'filer_list', |
moniker => 'filer_list', |
15 |
|
# arguments => { |
16 |
|
# author => $author, |
17 |
|
# show_actions => $show_actions, |
18 |
|
# }, |
19 |
); |
); |
20 |
|
|
21 |
my $revisions = SVNBrowser::Model::RevisionCollection->new(); |
my $revisions = SVNBrowser::Model::RevisionCollection->new(); |
22 |
|
|
23 |
$author ||= $filter->argument_value('author'); |
$author ||= $filter->argument_value('author'); |
24 |
|
$show_actions ||= $filter->argument_value('show_actions'); |
25 |
|
$page ||= $filter->argument_value('page') || 1; |
26 |
|
$per_page ||= $filter->argument_value('per_page') || 10; |
27 |
|
$from_date ||= $filter->argument_value('from_date'); |
28 |
|
$to_date ||= $filter->argument_value('to_date'); |
29 |
|
$search ||= $filter->argument_value('search'); |
30 |
|
|
31 |
|
$revisions->unlimit(); |
32 |
|
|
33 |
|
$revisions->limit( column => 'author', value => $author, entry_aggregator => 'AND' ) if ($author); |
34 |
|
$revisions->limit( column => 'commit_date', operator => '>=', value => $from_date, entry_aggregator => 'AND' ) if ($from_date); |
35 |
|
$revisions->limit( column => 'commit_date', operator => '<=', value => $to_date, entry_aggregator => 'AND' ) if ($to_date); |
36 |
|
|
37 |
|
$revisions->limit( column => 'message', operator => 'LIKE', value => '%' . $search . '%' ) if ($search); |
38 |
|
|
|
if ($author) { |
|
|
$revisions->limit( |
|
|
column => 'author', |
|
|
value => $author, |
|
|
); |
|
|
} else { |
|
|
$revisions->unlimit(); |
|
|
} |
|
39 |
$revisions->order_by({ column => 'commit_date', order => 'desc' }); |
$revisions->order_by({ column => 'commit_date', order => 'desc' }); |
40 |
$revisions->set_page_info( |
$revisions->set_page_info( |
41 |
current_page => $page, |
current_page => $page, |
42 |
per_page => 20, |
per_page => $per_page, |
43 |
); |
); |
44 |
|
|
45 |
|
warn $revisions->build_select_query; |
46 |
|
|
47 |
$revisions->goto_first_item; |
$revisions->goto_first_item; |
48 |
|
|
49 |
|
|
50 |
|
my $actions = SVNBrowser::Model::ActionCollection->new(); |
51 |
|
|
52 |
</%init> |
</%init> |
53 |
|
|
54 |
<&| /_elements/wrapper, title => "Statistics" &> |
<&| /_elements/wrapper, title => "SVN Reporitory Browser" &> |
55 |
|
|
56 |
<% Jifty->web->form->start %> |
<% Jifty->web->form->start %> |
57 |
<% $filter->form_field('author', default_value => $author ) %> |
<% $filter->form_field('author', default_value => $author ) %> |
58 |
<% $filter->button( label => 'Show just this commiter' ) %> |
<% $filter->button( label => 'Filter commits' ) %> |
59 |
<% Jifty->web->form->end %> |
<% $filter->form_field('show_actions', default_value => $show_actions ) %> |
60 |
|
<% $filter->form_field('per_page', default_value => $per_page ) %> |
61 |
|
<% $filter->form_field('from_date', default_value => $from_date ) %> |
62 |
|
<% $filter->form_field('to_date', default_value => $to_date ) %> |
63 |
|
<% $filter->form_field('search', default_value => $search ) %> |
64 |
|
|
65 |
<%perl> |
<%perl> |
66 |
if (my $nr = $revisions->pager->total_entries) { |
if (my $nr = $revisions->pager->total_entries) { |
67 |
$m->out("Found $nr revisions"); |
$m->out("$nr revisions found"); |
68 |
} else { |
} else { |
69 |
$m->out("No revisions found.") |
$m->out("No revisions found in repository"); |
70 |
} |
} |
71 |
</%perl> |
</%perl> |
72 |
|
|
80 |
<span class="commit_date"><% $r->commit_date %></span> |
<span class="commit_date"><% $r->commit_date %></span> |
81 |
</dt> |
</dt> |
82 |
<dd> |
<dd> |
83 |
<pre> |
<pre class="commit_message"><% $r->message %></pre> |
84 |
<% $r->message %> |
% if ($show_actions) { |
85 |
</pre> |
<ul class="actions"> |
86 |
|
% $actions->limit( column => 'revision', value => $r->revision ); |
87 |
|
% while (my $a = $actions->next) { |
88 |
|
<li><tt class="action-<% $a->type %>"><% $a->type %> <% $a->branch %> <% $a->rel_path %></tt></li> |
89 |
|
% } |
90 |
|
</ul> |
91 |
|
% } |
92 |
|
|
93 |
</dd> |
</dd> |
94 |
% } |
% } |
95 |
</dl> |
</dl> |
96 |
|
|
97 |
% if ($revisions->pager->previous_page) { |
% if ($revisions->pager->previous_page) { |
98 |
<% Jifty->web->link( |
<% $filter->button( |
99 |
label => "Previous", |
label => "<<", |
100 |
onclick => { args => { page => $revisions->pager->previous_page } } |
escape_label => 0, |
101 |
|
arguments => { |
102 |
|
page => $revisions->pager->previous_page, |
103 |
|
} |
104 |
) %> |
) %> |
105 |
% } |
% } |
106 |
|
|
109 |
% } |
% } |
110 |
|
|
111 |
% if ($revisions->pager->next_page) { |
% if ($revisions->pager->next_page) { |
112 |
<% Jifty->web->link( |
<% $filter->button( |
113 |
label => "Next", |
label => ">>", |
114 |
onclick => { args => { page => $revisions->pager->next_page } } |
escape_label => 0, |
115 |
|
arguments => { |
116 |
|
page => $revisions->pager->next_page, |
117 |
|
} |
118 |
) %> |
) %> |
119 |
% } |
% } |
120 |
|
|
121 |
</&> |
<% Jifty->web->form->end %> |
122 |
|
|
123 |
|
</&> |