소스 검색

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