<?php
-$pagesize = 20;
+$pagesize = intval(@$_GET['pagesize']) ?: 20;
$gitcmd = "git log -n $pagesize --pretty='%at\t%an\t%s'";
+if ( $offset = intval(@$_GET['start']) ) {
+ $gitcmd .= " --skip=$offset";
+}
+
if ( $log = popen($gitcmd, 'r') ) {
+ $lines = 0;
print "<ul>\n";
while ( $line = fgets($log) ) {
list ($atime, $author, $message) = explode("\t", $line, 3);
printf('<li>%s <small class="date">%s • %s</small></li>'."\n",
$message, $author, strftime('%F %H:%M', $atime)
);
+ $lines++;
}
print "</ul>\n\n";
pclose($log);
+
+ $navbase = $Page == 'admin/commits' ? '?' : '/admin/commits?';
+ $nav = [];
+ $nav[] = sprintf('Pagina %d', ceil($offset / $pagesize) + 1);
+ if ($lines >= $pagesize) {
+ $nav[] = sprintf('<a href="%sstart=%d">%s</a>', $navbase, $offset + $pagesize, 'eerder');
+ }
+ if ($offset > $pagesize) {
+ $nav[] = sprintf('<a href="%sstart=%d">%s</a>', $navbase, $offset - $pagesize, 'later');
+ }
+ if ($offset > 0) {
+ $nav[] = sprintf('<a href="%s">%s</a>', $navbase, 'laatste');
+ }
+ printf("<p>%s</p>\n\n", implode(' • ', $nav));
}