Adds pagination to admin sites, using the "id" query parameter

This commit is contained in:
Andreas Mieke 2017-01-21 00:00:31 +01:00
parent a50018f64f
commit b220dec55b

View file

@ -27,20 +27,39 @@ func renderHomepage(c *gin.Context) {
// Admin
func renderAdminInbox(c *gin.Context) {
var ITs []database.Item
database.Db.Order("created_at ASC").Find(&ITs, "state = ?", database.Inbox)
c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon Admin Inbox", "state": database.Inbox})
id := c.DefaultQuery("id", "0")
if id == "0" {
database.Db.Where("state = ?", database.Inbox).Order("created_at ASC").Limit(20).Find(&ITs)
c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon Admin Inbox", "state": database.Inbox})
} else {
database.Db.Where("state = ? and id > ?", database.Inbox, id).Order("created_at ASC").Limit(20).Find(&ITs)
c.JSON(200, ITs)
}
}
func renderAdminApproved(c *gin.Context) {
var ITs []database.Item
database.Db.Order("updated_at DESC").Find(&ITs, "state = ?", database.Approved)
c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon Admin Approved", "state": database.Approved})
id := c.DefaultQuery("id", "0")
if id == "0" {
database.Db.Where("state = ?", database.Approved).Order("updated_at DESC").Limit(20).Find(&ITs)
c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon Admin Approved", "state": database.Approved})
} else {
database.Db.Where("state = ? and id < ?", database.Approved, id).Order("updated_at DESC").Limit(20).Find(&ITs)
c.JSON(200, ITs)
}
}
func renderAdminRejected(c *gin.Context) {
var ITs []database.Item
database.Db.Order("updated_at DESC").Find(&ITs, "state = ?", database.Rejected)
c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon Admin Rejected", "state": database.Rejected})
id := c.DefaultQuery("id", "0")
if id == "0" {
database.Db.Where("state = ?", database.Rejected).Order("updated_at DESC").Limit(20).Find(&ITs)
c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon Admin Rejected", "state": database.Rejected})
} else {
database.Db.Where("state = ? and id < ?", database.Rejected, id).Order("updated_at DESC").Limit(20).Find(&ITs)
c.JSON(200, ITs)
}
}
func approveSnap(c *gin.Context) {