unread.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Copyright 2017 Frédéric Guillot. All rights reserved.
  2. // Use of this source code is governed by the Apache 2.0
  3. // license that can be found in the LICENSE file.
  4. package controller
  5. import (
  6. "github.com/miniflux/miniflux2/model"
  7. "github.com/miniflux/miniflux2/server/core"
  8. )
  9. // ShowUnreadPage render the page with all unread entries.
  10. func (c *Controller) ShowUnreadPage(ctx *core.Context, request *core.Request, response *core.Response) {
  11. user := ctx.GetLoggedUser()
  12. offset := request.GetQueryIntegerParam("offset", 0)
  13. builder := c.store.GetEntryQueryBuilder(user.ID, user.Timezone)
  14. builder.WithStatus(model.EntryStatusUnread)
  15. builder.WithOrder(model.DefaultSortingOrder)
  16. builder.WithDirection(model.DefaultSortingDirection)
  17. builder.WithOffset(offset)
  18. builder.WithLimit(NbItemsPerPage)
  19. entries, err := builder.GetEntries()
  20. if err != nil {
  21. response.Html().ServerError(err)
  22. return
  23. }
  24. countUnread, err := builder.CountEntries()
  25. if err != nil {
  26. response.Html().ServerError(err)
  27. return
  28. }
  29. response.Html().Render("unread", tplParams{
  30. "user": user,
  31. "countUnread": countUnread,
  32. "entries": entries,
  33. "pagination": c.getPagination(ctx.GetRoute("unread"), countUnread, offset),
  34. "menu": "unread",
  35. "csrf": ctx.GetCsrfToken(),
  36. })
  37. }