history.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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/miniflux/model"
  7. "github.com/miniflux/miniflux/server/core"
  8. )
  9. // ShowHistoryPage renders the page with all read entries.
  10. func (c *Controller) ShowHistoryPage(ctx *core.Context, request *core.Request, response *core.Response) {
  11. user := ctx.LoggedUser()
  12. offset := request.QueryIntegerParam("offset", 0)
  13. args, err := c.getCommonTemplateArgs(ctx)
  14. if err != nil {
  15. response.HTML().ServerError(err)
  16. return
  17. }
  18. builder := c.store.NewEntryQueryBuilder(user.ID)
  19. builder.WithStatus(model.EntryStatusRead)
  20. builder.WithOrder(model.DefaultSortingOrder)
  21. builder.WithDirection(user.EntryDirection)
  22. builder.WithOffset(offset)
  23. builder.WithLimit(nbItemsPerPage)
  24. entries, err := builder.GetEntries()
  25. if err != nil {
  26. response.HTML().ServerError(err)
  27. return
  28. }
  29. count, err := builder.CountEntries()
  30. if err != nil {
  31. response.HTML().ServerError(err)
  32. return
  33. }
  34. response.HTML().Render("history", args.Merge(tplParams{
  35. "entries": entries,
  36. "total": count,
  37. "pagination": c.getPagination(ctx.Route("history"), count, offset),
  38. "menu": "history",
  39. }))
  40. }
  41. // FlushHistory changes all "read" items to "removed".
  42. func (c *Controller) FlushHistory(ctx *core.Context, request *core.Request, response *core.Response) {
  43. user := ctx.LoggedUser()
  44. err := c.store.FlushHistory(user.ID)
  45. if err != nil {
  46. response.HTML().ServerError(err)
  47. return
  48. }
  49. response.Redirect(ctx.Route("history"))
  50. }