Преглед изворни кода

Reinitialize offset if greater than number of unread items

Frédéric Guillot пре 8 година
родитељ
комит
eefab601da
1 измењених фајлова са 12 додато и 7 уклоњено
  1. 12 7
      server/ui/controller/unread.go

+ 12 - 7
server/ui/controller/unread.go

@@ -16,18 +16,23 @@ func (c *Controller) ShowUnreadPage(ctx *core.Context, request *core.Request, re
 
 	builder := c.store.GetEntryQueryBuilder(user.ID, user.Timezone)
 	builder.WithStatus(model.EntryStatusUnread)
-	builder.WithOrder(model.DefaultSortingOrder)
-	builder.WithDirection(user.EntryDirection)
-	builder.WithOffset(offset)
-	builder.WithLimit(nbItemsPerPage)
-
-	entries, err := builder.GetEntries()
+	countUnread, err := builder.CountEntries()
 	if err != nil {
 		response.HTML().ServerError(err)
 		return
 	}
 
-	countUnread, err := builder.CountEntries()
+	if offset >= countUnread {
+		offset = 0
+	}
+
+	builder = c.store.GetEntryQueryBuilder(user.ID, user.Timezone)
+	builder.WithStatus(model.EntryStatusUnread)
+	builder.WithOrder(model.DefaultSortingOrder)
+	builder.WithDirection(user.EntryDirection)
+	builder.WithOffset(offset)
+	builder.WithLimit(nbItemsPerPage)
+	entries, err := builder.GetEntries()
 	if err != nil {
 		response.HTML().ServerError(err)
 		return