aboutsummaryrefslogtreecommitdiffhomepage
path: root/ui/pagination.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-01-02 22:04:48 -0800
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-01-02 22:04:48 -0800
commit320d1b016747ba4501da9417d9ce5f99368a5768 (patch)
tree1054d96afde6022951b76cc4a09b78e1e3f05058 /ui/pagination.go
parentc39f2e1a8d2de6d412bcc673d29eb0f7a2d1f5f7 (diff)
Refactor packages to have more idiomatic code base
Diffstat (limited to 'ui/pagination.go')
-rw-r--r--ui/pagination.go46
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,
+ }
+}