|
From: Lubomir Rintel <lkundrak <at> v3.sk>
Subject: [PATCH 1/2] gitweb: Make it possible to paginate projects Newsgroups: gmane.comp.version-control.git Date: 2010-08-25 00:18:55 GMT (1 year, 24 weeks, 16 hours and 13 minutes ago)
This adds simple pagination (next and prev links), to project lists,
analogous to what is done for commit history lists.
---
gitweb/gitweb.perl | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index d0687f4..135ca55 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -255,6 +255,9 @@ our %highlight_ext = (
map { $_ => 'xml' } qw(xhtml html htm),
);
+# Set this to non-zero to enable project list pagination
+our $projects_per_page = 0;
+
# You define site-wide feature defaults here; override them with
# $GITWEB_CONFIG as necessary.
our %feature = (
@@ -4613,9 +4616,19 @@ sub git_project_list_body {
my @projects = fill_project_list_info($projlist, $check_forks);
$order ||= $default_projects_order;
+ $page ||= 0;
+ if ($projects_per_page) {
+ $from = $page * $projects_per_page unless defined $from;
+ $to = $from + $projects_per_page - 1 unless defined $to;
+ }
$from = 0 unless defined $from;
$to = $#projects if (!defined $to || $#projects < $to);
+ my $prev_link = $cgi->a({-href => href(-replay=>1, page=>$page-1),
+ -accesskey => "p", -title => "Alt-p"}, "prev") if ($page > 0);
+ my $next_link = $cgi->a({-href => href(-replay=>1, page=>$page+1),
+ -accesskey => "n", -title => "Alt-n"}, "next") if ($#$projlist > $to);
+
my %order_info = (
project => { key => 'path', type => 'str' },
descr => { key => 'descr_long', type => 'str' },
@@ -4709,6 +4722,19 @@ sub git_project_list_body {
print "<td colspan=\"5\">$extra</td>\n" .
"</tr>\n";
}
+
+ if ($prev_link or $next_link) {
+ print "<tr>\n";
+ if ($check_forks) {
+ print "<td></td>\n";
+ }
+ print "<td colspan=\"5\">";
+ print $prev_link if $prev_link;
+ print " ⋅ " if $prev_link and $next_link;
+ print $next_link if $next_link;
+ print "</td>\n</tr>\n";
+ }
+
print "</table>\n";
}
--
1.7.2.1
|
|