hoist the page list into preload.tmpl
authorTony Cook <tony@develop-help.com>
Fri, 15 Jun 2012 01:46:29 +0000 (11:46 +1000)
committerTony Cook <tony@develop-help.com>
Wed, 20 Jun 2012 04:43:37 +0000 (14:43 +1000)
reduces hate from building page list displays

site/cgi-bin/modules/BSE/Variables.pm
site/templates/admin/tagcats.tmpl
site/templates/preload.tmpl

index 1a1db45..8adaa8c 100644 (file)
@@ -4,7 +4,7 @@ use Scalar::Util qw(blessed);
 use BSE::TB::Site;
 use BSE::Util::HTML;
 
-our $VERSION = "1.003";
+our $VERSION = "1.004";
 
 sub _base_variables {
   my ($self, %opts) = @_;
@@ -173,6 +173,8 @@ sub _paged {
      next_page => ( $p < $pcount ? $p + 1 : 0 ),
      previous_page => ($p > 1 ? $p - 1 : 0 ),
      pages => \@pages,
+     pname => $pname,
+     ppname => $ppname,
     };
 }
 
@@ -286,6 +288,10 @@ page - the current page number
 
 =item *
 
+pagecount - the number of pages.
+
+=item *
+
 pp - the number of items per page.
 
 =item *
@@ -343,6 +349,14 @@ current page.
 
 =back
 
+=item *
+
+pname - the name of the page number parameter
+
+=item *
+
+ppname - the name of the items per page parameter
+
 =back
 
 =back
index 6b4a767..0fbeb13 100644 (file)
 <:.for cat in pcats.items :>
 <li><a href="<:= cfg.admin_url2("add", "tagcat", { "id":-1, "cat":cat}) |html:>"><:= cat | html :></a></li>
 <:.end for:>
-<div class="pagelist">
-<:.for p in pcats.pages :>
-<:.if p.link :>
-<a href="<:= cfg.admin_url2("add", "tagcats", { "id":-1, "p":p.page, "pp":pcats.pp }) | html:>"><:= p.page |html :></a>
-<:.else:>
-<span><:= p.page |html:></span>
-<:.end if:>
-<:.end for:>
-</div>
+</ul>
+<:.call "page_list",
+  "base":cfg.admin_url2("add", "tagcats", { "id":-1 }),
+  "pages":pcats :>
index a2d8ff0..1b02be6 100644 (file)
@@ -9,3 +9,36 @@
   <:-.end for-:>
   </select>
 <:-.end define -:>
+<:#
+page_list expects:
+base - base url for links
+pages - the result of the bse.pages call
+ :>
+<:-.define page_list-:>
+<:.set sep = base =~ /\?/ ? "&" : "?" -:>
+<:.set base = base _ sep :>
+<div class="pagelist">
+Page <:= pages.page :> of <:= pages.pagecount :>
+<:.if pages.previous_page -:>
+<a href="<:= base |html:><:= pages.pname | uri :>=1&amp;<:= pages.ppname | uri :>=<:= pages.pp | uri :>">&lt;&lt</a>
+<a href="<:= base |html:><:= pages.pname | uri :>=<:= pages.previous_page |uri:>&amp;<:= pages.ppname | uri :>=<:= pages.pp | uri :>">&lt;</a>
+<:.else -:>
+<span>&lt&lt</span>
+<span>&lt</span>
+<:.end if -:>
+<:.for p in pcats.pages :>
+<:.if p.link -:>
+<a href="<:= base |html :><:= pages.pname | uri:>=<:= p.page | uri :>&amp;<:=pages.ppname | uri :>=<:= pages.pp | uri :>"><:= p.page |html :></a>
+<:.else -:>
+<span><:= p.page |html:></span>
+<:.end if -:>
+<:.end for:>
+<:.if pages.next_page -:>
+<a href="<:= base |html:><:= pages.pname | uri :>=<:= pages.next_page |uri:>&amp;<:= pages.ppname | uri :>=<:= pages.pp | uri :>">&gt;</a>
+<a href="<:= base |html:><:= pages.pname | uri :>=<:= pages.pagecount |uri:>&amp;<:= pages.ppname | uri :>=<:= pages.pp | uri :>">&gt;&gt</a>
+<:.else -:>
+<span>&gt&gt</span>
+<span>&gt</span>
+<:.end if -:>
+</div>
+<:-.end define -:>
\ No newline at end of file