Add pagination on moderation page

This commit is contained in:
Las Zenow 2012-10-31 10:24:17 +01:00
parent 5abab5f5dd
commit bbe10b76ff
4 changed files with 51 additions and 15 deletions

View file

@ -5,6 +5,7 @@ import (
"log"
"net/http"
"strings"
"strconv"
)
type settingsData struct {
@ -159,6 +160,9 @@ type newData struct {
S Status
Found int
Books []newBook
Page int
Next string
Prev string
}
func newHandler(w http.ResponseWriter, r *http.Request) {
@ -173,7 +177,16 @@ func newHandler(w http.ResponseWriter, r *http.Request) {
return
}
res, num, _ := db.GetNewBooks()
page := 0
if len(r.Form["p"]) != 0 {
var err error
page, err = strconv.Atoi(r.Form["p"][0])
if err != nil {
page = 0
}
}
res, num, _ := db.GetNewBooks(NEW_ITEMS_PAGE, page*NEW_ITEMS_PAGE)
var data newData
data.S = GetStatus(w, r)
data.Found = num
@ -183,6 +196,13 @@ func newHandler(w http.ResponseWriter, r *http.Request) {
_, data.Books[i].TitleFound, _ = db.GetBooks(buildQuery("title:"+b.Title), 1)
_, data.Books[i].AuthorFound, _ = db.GetBooks(buildQuery("author:"+strings.Join(b.Author, " author:")), 1)
}
data.Page = page+1
if num > (page+1)*NEW_ITEMS_PAGE {
data.Next = "/new/?p=" + strconv.Itoa(page+1)
}
if page > 0 {
data.Prev = "/new/?p=" + strconv.Itoa(page-1)
}
loadTemplate(w, "new", data)
}