From: Mischa POSLAWSKY Date: Sun, 6 Dec 2020 07:28:11 +0000 (+0100) Subject: login/commits: nav widget for common pagination links X-Git-Tag: v5.0~24 X-Git-Url: http://git.shiar.net/minimedit.git/commitdiff_plain/2573a637bff34caeb3de0f3489c0c6dfbf6d2a1d login/commits: nav widget for common pagination links --- diff --git a/widget/login/commits.php b/widget/login/commits.php index 72f897e..c2d6449 100644 --- a/widget/login/commits.php +++ b/widget/login/commits.php @@ -26,17 +26,9 @@ if ( $log = popen($gitcmd, 'r') ) { print "\n\n"; pclose($log); - $navbase = $Page->handler == 'login/commits' ? '?' : '/login/commits?'; - $nav = []; - $nav[] = sprintf('Pagina %d', ceil($offset / $pagesize) + 1); - if ($lines >= $pagesize) { - $nav[] = sprintf('%s', $navbase, $offset + $pagesize, 'eerder'); + $navoptions = ["start=$offset", "n=$pagesize", "total=$lines"]; + if ($Page->handler != 'login/commits') { + $navoptions[] = 'link=login/commits'; } - if ($offset > $pagesize) { - $nav[] = sprintf('%s', $navbase, $offset - $pagesize, 'later'); - } - if ($offset > 0) { - $nav[] = sprintf('%s', $navbase, 'laatste'); - } - printf(''."\n\n", implode(' • ', $nav)); + print $Page->widget('nav', $navoptions); } diff --git a/widget/nav.php b/widget/nav.php new file mode 100644 index 0000000..38b5714 --- /dev/null +++ b/widget/nav.php @@ -0,0 +1,18 @@ +place['link'])) { + $navbase = '/'.$Page->place['link'].'?'; +} + +$nav = []; +$nav[] = sprintf('Pagina %d', ceil($Page->place['start'] / $Page->place['n']) + 1); +if ($Page->place['total'] >= $Page->place['n']) { + $nav[] = sprintf('%s', $navbase, $Page->place['start'] + $Page->place['n'], 'eerder'); +} +if ($Page->place['start'] > $Page->place['n']) { + $nav[] = sprintf('%s', $navbase, $Page->place['start'] - $Page->place['n'], 'later'); +} +if ($Page->place['start'] > 0) { + $nav[] = sprintf('%s', $navbase, 'laatste'); +} +printf(''."\n\n", implode(' • ', $nav));