diff options
author | Frédéric Guillot <fred@miniflux.net> | 2018-01-02 22:04:48 -0800 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2018-01-02 22:04:48 -0800 |
commit | 320d1b016747ba4501da9417d9ce5f99368a5768 (patch) | |
tree | 1054d96afde6022951b76cc4a09b78e1e3f05058 /ui/pagination.go | |
parent | c39f2e1a8d2de6d412bcc673d29eb0f7a2d1f5f7 (diff) |
Refactor packages to have more idiomatic code base
Diffstat (limited to 'ui/pagination.go')
-rw-r--r-- | ui/pagination.go | 46 |
1 files changed, 46 insertions, 0 deletions
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, + } +} |