X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=templates%2Ffactory%2Fpager;h=5f10f5905830ee5079b075af47f8f81d947f69b4;hb=0ac4811fdd89ce1736ddc797b13527f482298130;hp=9053098e37e2ec7eba8c49c47a91895e517dd46c;hpb=5cccc5a89004f9c514e9d611b5e2a02e9aa28ece;p=maypole.git diff --git a/templates/factory/pager b/templates/factory/pager index 9053098..5f10f59 100644 --- a/templates/factory/pager +++ b/templates/factory/pager @@ -1,16 +1,33 @@ +[%# + +=head1 pager + +This controls the pager display at the bottom (by default) of the list +and search views. It expects a C template argument which responds +to the L interface. + +#%] [% IF pager AND pager.first_page != pager.last_page; %]

Pages: [% - FOREACH num = [pager.first_page .. pager.last_page]; + 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; "["; num; "] "; ELSE; - ''; - "["; num; "]"; - ' '; + SET args = "?page=" _ num; # Order? + SET label = "[" _ num _ "]"; + link(classmetadata.table, "list", args, label); END; END; %]