Parent Directory | Revision Log
implement slinding pager which show context of 10 pages or 20 pages total if there is enough pages to display
1 | package Frey::Web::Links; |
2 | use Moose; |
3 | |
4 | =head1 NAME |
5 | |
6 | Frey::Web::Links - simple links to current page with one param |
7 | |
8 | =cut |
9 | |
10 | has 'name' => ( |
11 | 'is' => 'rw', |
12 | isa => 'Str', |
13 | required => 1, |
14 | ); |
15 | |
16 | has 'current' => ( |
17 | is => 'rw', |
18 | isa => 'Str', |
19 | required => 1, |
20 | ); |
21 | |
22 | has 'values' => ( |
23 | is => 'rw', |
24 | isa => 'ArrayRef[Str]', |
25 | required => 1, |
26 | ); |
27 | |
28 | has 'current_tag' => ( |
29 | is => 'rw', |
30 | isa => 'Str', |
31 | default => 'em', |
32 | ); |
33 | |
34 | has 'delimiter' => ( |
35 | is => 'rw', |
36 | isa => 'Str', |
37 | default => ' ', |
38 | ); |
39 | |
40 | has 'empty' => ( |
41 | is => 'rw', |
42 | isa => 'Str', |
43 | default => '[empty]', |
44 | ); |
45 | |
46 | sub links { |
47 | my $self = shift; |
48 | my @out = |
49 | map { |
50 | if ( $_ eq '' ) { |
51 | $self->empty |
52 | } elsif ( $self->current eq $_ ) { |
53 | '<' . $self->current_tag . '>' . $_ . '</' . $self->current_tag . '>' |
54 | } else { |
55 | qq|<a href="?| . $self->name . qq|=$_">$_</a>| |
56 | } |
57 | } ( @{ $self->values } ); |
58 | return @out if wantarray; |
59 | return join($self->delimiter, @out); |
60 | } |
61 | |
62 | 1; |
ViewVC Help | |
Powered by ViewVC 1.1.26 |