Mercurial > hg > mlmmj
changeset 547:ccba16f72354
Added pagination
author | xi |
---|---|
date | Fri, 30 Jun 2006 22:38:00 +1000 |
parents | 82f9cc69709e |
children | 79b94f047b30 |
files | contrib/web/perl-admin/htdocs/subscribers.cgi contrib/web/perl-admin/templates/subscribers.html |
diffstat | 2 files changed, 32 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/web/perl-admin/htdocs/subscribers.cgi Fri Jun 30 19:50:52 2006 +1000 +++ b/contrib/web/perl-admin/htdocs/subscribers.cgi Fri Jun 30 22:38:00 2006 +1000 @@ -134,8 +134,32 @@ $subscribers = get_subscribers(); +my $paginator = ''; +my $page = $q->param('page'); +$page = 0 unless $page =~ /^\d+$/; +if (keys %$subscribers > 50) { + $paginator = 'Pages: '; + my $pages = (keys %$subscribers) / 50; + $page = 0 unless ($page >= 0 && $page < $pages); + my $searchstr = defined $search ? '&search='.uri_escape($search) : ''; + + for (my $i = 0; $ i < $pages; ++$i) { + if ($page == $i) { + $paginator .= ($i + 1)." "; + } else { + $paginator .= "<a href=\"?list=".uri_escape($list)."&page=$i$searchstr\">".($i + 1)."</a> "; + } + } +} + my $i = 0; -for my $address (sort {lc $a cmp lc $b} keys %$subscribers) { +my @addresses = sort {lc $a cmp lc $b} keys %$subscribers; +if ($paginator ne '') { + @addresses = @addresses[$page * 50 .. ($page + 1) * 50 - 1]; + pop @addresses until defined $addresses[@addresses - 1]; +} + +for my $address (@addresses) { $tpl->assign(EMAIL => $address, ID => $i++, SCHECKED => $subscribers->{$address}->{subscriber} ? 'checked' : '', @@ -148,8 +172,10 @@ } $tpl->assign(LIST => encode_entities($list), - MAXID => scalar(keys %$subscribers), - SEARCH => defined $search ? $search : ''); + MAXID => scalar(@addresses), + SEARCH => defined $search ? $search : '', + PAGINATOR => $paginator, + PAGE => $page); print "Content-type: text/html\n\n";
--- a/contrib/web/perl-admin/templates/subscribers.html Fri Jun 30 19:50:52 2006 +1000 +++ b/contrib/web/perl-admin/templates/subscribers.html Fri Jun 30 22:38:00 2006 +1000 @@ -9,6 +9,7 @@ <form action="subscribers.cgi" method="post"> <input type="hidden" name="list" value="$LIST"> <input type="hidden" name="maxid" value="$MAXID"> +<input type="hidden" name="page" value="$PAGE"> <table><tr><td rowspan="5" valign="top">Add subscriber: </td> <td>Email address: <input type="text" name="email"></td></tr> <tr><td>Normal subscriber: <input type="checkbox" name="subscriber" value="1" checked></td></tr> @@ -21,10 +22,12 @@ <tr><td><input type="submit" name="searchsubmit" value="Search"></td></tr> </table> <hr> +$PAGINATOR <table border="1"> <tr><th>Email address</th><th>Normal subscriber</th><th>Digest subscriber</th><th>No-mail subscriber</th></tr> $ROWS </table> +$PAGINATOR <p><input type="submit" name="update" value="Update subscriptions"></p> </form> </body></html>