[%#

=head1 pager

This controls the pager display at the bottom (by default) of the list
and search views. It expects a C<pager> template argument which responds
to the L<Data::Page> interface.

#%]
[%
IF pager AND pager.first_page != pager.last_page;
%]
<p class="pager">Pages: 
[%
    SET begin_page = pager.current_page - 10;
    IF begin_page < 1;
        SET begin_page = pager.first_page;
    END;
    SET end_page = pager.current_page + 10;
    IF pager.last_page < end_page;
        SET end_page = pager.last_page;
    END;
     FOREACH num = [begin_page .. end_page];
          IF num == pager.current_page;
            "<span class='current-page'>"; num; "</span>";
          ELSE;
            SET label = num;
            SET args = "?page=" _ num;
	    SET args = args _ "&order=" _ request.query.order
	      IF request.query.order;
	    SET args = args _ "&amp;o2=desc"
	      IF request.query.o2 == "desc";
            SET action = "list";
            FOR col = classmetadata.columns.list;
              IF request.query.$col;
                SET args = args _ "&" _ col _ "=" _ request.query.$col;
                SET action = "search";
              END;
            END;
            link(classmetadata.table, action, args, label);
          END;
     END;
%]
</p>
[% END %]
