mail: navigation links to earlier files
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 6 Dec 2020 07:40:32 +0000 (08:40 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Sat, 19 Dec 2020 02:01:43 +0000 (03:01 +0100)
mail/index.php
widget/login/commits.php
widget/nav.php

index d4d4c29a2131ac54e8e779b164ad2c6e5aacd3bf..d8195f689f3eaa5f9eb1fa4f628581582512e363 100644 (file)
@@ -60,7 +60,13 @@ $rows = glob("$mailbox/*");
 if (!$rows) {
        throw new Exception('Kon inbox niet openen.');
 }
-array_splice($rows, 0, -50);
+
+$nav = [
+       'start' => $_GET['start'] ?? 0,
+       'n'     => $_GET['n'] ?? 10,
+       'total' => count($rows),
+];
+$rows = array_slice(array_reverse($rows), $nav['start'], $nav['n']);
 
 ob_start();
 print '<ul>';
@@ -86,4 +92,9 @@ foreach (array_reverse($rows) as $filename) {
        print "</a></li>\n";
 }
 print "</ul>\n";
+
+print $Page->widget('nav', [
+       "start=$nav[start]", "n=$nav[n]", "total=$nav[total]",
+]);
+
 $Page->place['maillist'] = ob_get_clean();
index c2d6449542afc46ee85571376385347927f7d271..0327f3fd6f7da25cd5f54e79548bedec5998fc3c 100644 (file)
@@ -26,7 +26,8 @@ if ( $log = popen($gitcmd, 'r') ) {
        print "</ul>\n\n";
        pclose($log);
 
-       $navoptions = ["start=$offset", "n=$pagesize", "total=$lines"];
+       $limit = $offset + $lines + 1; # assume one more
+       $navoptions = ["start=$offset", "n=$pagesize", "total=$limit"];
        if ($Page->handler != 'login/commits') {
                $navoptions[] = 'link=login/commits';
        }
index 38b571425e8700e6b3cdfba76ba635d5ac9cd883..8cf4b8b51bd9d1ee62eb8d4c120a520d62126327 100644 (file)
@@ -6,7 +6,7 @@ if (isset($Page->place['link'])) {
 
 $nav = [];
 $nav[] = sprintf('Pagina %d', ceil($Page->place['start'] / $Page->place['n']) + 1);
-if ($Page->place['total'] >= $Page->place['n']) {
+if ($Page->place['total'] > $Page->place['start'] + $Page->place['n']) {
        $nav[] = sprintf('<a href="%sstart=%d">%s</a>', $navbase, $Page->place['start'] + $Page->place['n'], 'eerder');
 }
 if ($Page->place['start'] > $Page->place['n']) {