/[SVNBrowser]/trunk/lib/SVNBrowser/View.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/lib/SVNBrowser/View.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 74 - (show annotations)
Thu Jan 31 21:13:49 2008 UTC (16 years, 3 months ago) by dpavlin
File size: 3024 byte(s)
cleanup and some design
1 package SVNBrowser::View;
2
3 # Dobrica Pavlinusic, <dpavlin@rot13.org> 09/03/07 22:14:24 CEST
4
5 use strict;
6 use warnings;
7
8 use Jifty::View::Declare -base;
9
10 use Data::Dump qw/dump/;
11
12 template '/x-list' => page {
13 h1 { _("SVN Repository browser") };
14
15 form {
16
17 my $filter = Jifty->web->new_action(
18 class => 'Filter',
19 moniker => 'filter_list',
20 );
21
22 render_param( $filter => 'author' );
23 render_param( $filter => 'branch' );
24 render_param( $filter => 'rel_path', default => get('rel_path') );
25 render_param( $filter => 'search' );
26
27 div { attr { class => 'inline' }
28
29 render_param( $filter => 'from_date' );
30 render_param( $filter => 'to_date' );
31 render_param( $filter => 'per_page' );
32 render_param( $filter => 'show_actions' );
33
34 };
35
36 form_submit(
37 label => _("Filter commits")
38 );
39
40 #warn "####",dump( $filter->result->content );
41
42 my $revisions = $filter->result->content('revisions');
43 if ( $revisions ) {
44
45 sub pager {
46 my ( $action, $collection ) = @_;
47
48 return if $collection->pager->last_page == 1;
49
50 div {
51 attr { class => 'pager' };
52
53 if ( $collection->pager->previous_page ) {
54 outs_raw $action->button(
55 submit => $action,
56 label => _("previous page"),
57 arguments => { page => $collection->pager->previous_page },
58 );
59 }
60
61 if ($collection->pager->last_page > 1) {
62 span {
63 _("page"), ' ', $collection->pager->current_page, ' ',_("of"), ' ', $collection->pager->last_page
64 }
65 };
66
67 if ($collection->pager->next_page) {
68 outs_raw( $action->button(
69 submit => $action,
70 label => _("next page"),
71 arguments => { page => $collection->pager->next_page },
72 ) );
73 }
74 }
75 }
76
77 pager( $filter, $revisions );
78
79 my $show_actions = get('show_actions') || $filter->argument_value('show_actions');
80 my $rel_path = get('rel_path') || $filter->argument_value('rel_path');
81 warn "### show_actions = $show_actions";
82
83 dl {
84 attr { class => 'results' };
85
86 while (my $r = $revisions->next ) {
87 dt {
88 attr { class => 'commit' }
89 tt { $r->revision }
90 span { attr { class => 'author' } $r->author }
91 span { attr { class => 'commit_date' } $r->commit_date }
92 }
93
94 dd {
95 pre { attr { class => 'commit_message' } $r->message };
96
97 if ( $show_actions ) {
98 my $actions = SVNBrowser::Model::ActionCollection->new();
99 $actions->unlimit;
100 $actions->limit( column => 'revision', value => $r->revision );
101 $actions->limit( column => 'rel_path', value => $rel_path, operator => 'STARTSWITH' ) if ($rel_path);
102
103 ul { attr { class => 'actions' };
104 while (my $a = $actions->next) {
105 li {
106 tt { attr { class => 'action-' . $a->type }
107 outs (
108 $a->type, ' ',
109 $a->branch
110 );
111 hyperlink(
112 label => $a->rel_path,
113 parameters => {
114 rel_path => $a->rel_path,
115 }
116 );
117 }
118 }
119 }
120 }
121 }
122 }
123 }
124 }
125
126 pager( $filter, $revisions );
127
128 }
129
130 }; #form
131
132 };
133

  ViewVC Help
Powered by ViewVC 1.1.26