]> git.decadent.org.uk Git - maypole.git/blobdiff - templates/factory/pager
Unapply this patch.
[maypole.git] / templates / factory / pager
index 9053098e37e2ec7eba8c49c47a91895e517dd46c..5f10f5905830ee5079b075af47f8f81d947f69b4 100644 (file)
@@ -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<pager> template argument which responds
+to the L<Data::Page> interface.
+
+#%]
 [%
 IF pager AND pager.first_page != pager.last_page;
 %]
 
 <P ALIGN="center">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;
-          '<A HREF="'; base; table; "/list/?page="; num; '">';
-            "["; num; "]";
-          '</A> ';
+            SET args = "?page=" _ num; # Order?
+            SET label = "[" _ num _ "]";
+          link(classmetadata.table, "list", args, label);
           END;
      END;
 %]