From 320d1b016747ba4501da9417d9ce5f99368a5768 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Tue, 2 Jan 2018 22:04:48 -0800 Subject: Refactor packages to have more idiomatic code base --- ui/pagination.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 ui/pagination.go (limited to 'ui/pagination.go') diff --git a/ui/pagination.go b/ui/pagination.go new file mode 100644 index 0000000..751ba8a --- /dev/null +++ b/ui/pagination.go @@ -0,0 +1,46 @@ +// Copyright 2017 Frédéric Guillot. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package ui + +const ( + nbItemsPerPage = 100 +) + +type pagination struct { + Route string + Total int + Offset int + ItemsPerPage int + ShowNext bool + ShowPrev bool + NextOffset int + PrevOffset int +} + +func (c *Controller) getPagination(route string, total, offset int) pagination { + nextOffset := 0 + prevOffset := 0 + showNext := (total - offset) > nbItemsPerPage + showPrev := offset > 0 + + if showNext { + nextOffset = offset + nbItemsPerPage + } + + if showPrev { + prevOffset = offset - nbItemsPerPage + } + + return pagination{ + Route: route, + Total: total, + Offset: offset, + ItemsPerPage: nbItemsPerPage, + ShowNext: showNext, + NextOffset: nextOffset, + ShowPrev: showPrev, + PrevOffset: prevOffset, + } +} -- cgit v1.2.3