/[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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.65  
changed lines
  Added in v.77

  ViewVC Help
Powered by ViewVC 1.1.26