/[Arh]/lib/Arh/View/Units.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 /lib/Arh/View/Units.pm

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

revision 67 by dpavlin, Tue Apr 8 23:22:22 2008 UTC revision 78 by dpavlin, Sat Apr 19 21:36:07 2008 UTC
# Line 11  use Data::Dump qw/dump/; Line 11  use Data::Dump qw/dump/;
11  sub object_type { 'Unit' };  sub object_type { 'Unit' };
12    
13  sub per_page {  sub per_page {
14          my $per_page = get('per_page') || 5;          my $per_page = get('per_page') || 3;
15          warn "## Units per_page = $per_page\n";          warn "## Units per_page = $per_page\n";
16          return $per_page;          return $per_page;
17  };  };
# Line 104  template 'list' => sub { Line 104  template 'list' => sub {
104    
105  =cut  =cut
106    
107    =head2 single
108    
109    display singe unit on page, using C<id>
110    
111    =cut
112    
113    template 'single' => page {
114            my $self = shift;
115    
116            my $id = get('id') || die "no id?";
117    
118            my $item = Arh::Model::Unit->new;
119            $item->load( $id );
120            die _("Can't find item %1", $id) unless $item->id;
121    
122            title is $item->name;
123    
124            render_region(
125                    name => 'item-' . $item->id,
126                    path => $self->fragment_for('view'),
127                    defaults => { id => $item->id, object_type => $self->object_type }
128            );
129    
130    };
131    
132  private template 'paging_top' => sub {  private template 'paging_top' => sub {
133          my $self           = shift;          my $self           = shift;
134          my $collection = shift;          my $collection = shift;
# Line 123  private template 'paging_top' => sub { Line 148  private template 'paging_top' => sub {
148                          );                          );
149                  }                  }
150          }          }
151            show( './paging_bottom', $collection, $page );
152    };
153    
154    private template paging_bottom => sub {
155            my $self           = shift;
156            my $collection = shift;
157            my $page           = shift || 0;
158            div {
159                    { class is 'paging' };
160                    if ( $collection->pager->previous_page ) {
161                            span {
162                                    hyperlink(
163                                            label   => _("Previous Page"),
164                                            onclick => {
165                                                    args => { page => $collection->pager->previous_page }
166                                            }
167                                    );
168                            }
169                    }
170    
171                    my ( $f_p, $t_p ) = ( '...', '...' );
172    
173                    my $from = $page - 15;
174                    if ( $from < 0 ) {
175                            $from = $collection->pager->first_page;
176                            $f_p = '';
177                    }
178                    my $to = $page + 15;
179                    if ( $to > $collection->pager->last_page ) {
180                            $to = $collection->pager->last_page;
181                            $t_p = '';
182                    }
183    
184                    outs $f_p;
185    
186                    foreach my $p ( $from .. $to ) {
187                            if ( $p == $page ) {
188                                    b { $p }
189                            } else {
190                                    span {
191                                            hyperlink(
192                                                    label   => $p,
193                                                    onclick =>
194                                                            { args => { page => $p } }
195                                            );
196                                    }
197                            }
198                    }
199    
200                    outs $t_p;
201    
202                    if ( $collection->pager->next_page ) {
203                            span {
204                                    hyperlink(
205                                            label   => _("Next Page"),
206                                            onclick =>
207                                                    { args => { page => $collection->pager->next_page } }
208                                    );
209                            }
210                    }
211            };
212  };  };
213    
214    

Legend:
Removed from v.67  
changed lines
  Added in v.78

  ViewVC Help
Powered by ViewVC 1.1.26