]> git.decadent.org.uk Git - maypole.git/blob - templates/factory/pager
A pager that doesn't suck when there are 400 pages.
[maypole.git] / templates / factory / pager
1 [%#
2
3 =head1 pager
4
5 This controls the pager display at the bottom (by default) of the list
6 and search views. It expects a C<pager> template argument which responds
7 to the L<Data::Page> interface.
8
9 #%]
10 [%
11 IF pager AND pager.first_page != pager.last_page;
12 %]
13
14 <P ALIGN="center">Pages: 
15 [%
16     SET begin_page = pager.current_page - 10;
17     IF begin_page < 1;
18         SET begin_page = pager.first_page;
19     END;
20     SET end_page = pager.current_page + 10;
21     IF pager.last_page < end_page;
22         SET end_page = pager.last_page;
23     END;
24      FOREACH num = [begin_page .. end_page];
25           IF num == pager.current_page;
26             "["; num; "] ";
27           ELSE;
28             SET args = "?page=" _ num; # Order?
29             SET label = "[" _ num _ "]";
30           link(classmetadata.table, "list", args, label);
31           END;
32      END;
33 %]
34 </P>
35 [% END %]