From b220dec55bafb8c84dccf45cdd87b320e367c301 Mon Sep 17 00:00:00 2001 From: Andreas Mieke Date: Sat, 21 Jan 2017 00:00:31 +0100 Subject: [PATCH] Adds pagination to admin sites, using the "id" query parameter --- socialdragon/webapp.go | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/socialdragon/webapp.go b/socialdragon/webapp.go index e344dd1..3b54a4a 100644 --- a/socialdragon/webapp.go +++ b/socialdragon/webapp.go @@ -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) {