From 2573a637bff34caeb3de0f3489c0c6dfbf6d2a1d Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sun, 6 Dec 2020 08:28:11 +0100 Subject: [PATCH] login/commits: nav widget for common pagination links --- widget/login/commits.php | 16 ++++------------ widget/nav.php | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 widget/nav.php 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)); -- 2.30.0