From 262665f4e59c8eb504c53b012af3c57066f7d9df Mon Sep 17 00:00:00 2001 From: Jens Bissinger Date: Wed, 8 Oct 2014 15:59:26 +0200 Subject: [PATCH] Remove PaginationController interface and pass context instead. Refs #835. --- controller.go | 8 -------- utils/pagination/controller.go | 15 ++++----------- utils/pagination/doc.go | 2 +- 3 files changed, 5 insertions(+), 20 deletions(-) diff --git a/controller.go b/controller.go index e7eaa468..72ba323b 100644 --- a/controller.go +++ b/controller.go @@ -93,14 +93,6 @@ type ControllerInterface interface { URLMapping() } -func (c *Controller) GetCtx() *context.Context { - return c.Ctx -} - -func (c *Controller) GetData() map[interface{}]interface{} { - return c.Data -} - // Init generates default values of controller operations. func (c *Controller) Init(ctx *context.Context, controllerName, actionName string, app interface{}) { c.Layout = "" diff --git a/utils/pagination/controller.go b/utils/pagination/controller.go index da92bd69..28473f8a 100644 --- a/utils/pagination/controller.go +++ b/utils/pagination/controller.go @@ -18,16 +18,9 @@ import ( "github.com/astaxie/beego/context" ) -type PaginationController interface { - GetCtx() *context.Context - GetData() map[interface{}]interface{} -} - -// Instantiates a Paginator and assigns it to controller.Data["paginator"]. -func SetPaginator(controller PaginationController, per int, nums int64) (paginator *Paginator) { - request := controller.GetCtx().Request - paginator = NewPaginator(request, per, nums) - data := controller.GetData() - data["paginator"] = paginator +// Instantiates a Paginator and assigns it to context.Input.Data["paginator"]. +func SetPaginator(context *context.Context, per int, nums int64) (paginator *Paginator) { + paginator = NewPaginator(context.Request, per, nums) + context.Input.Data["paginator"] = paginator return } diff --git a/utils/pagination/doc.go b/utils/pagination/doc.go index db8cd57e..df0fa3b7 100644 --- a/utils/pagination/doc.go +++ b/utils/pagination/doc.go @@ -18,7 +18,7 @@ In your beego.Controller: func (this *PostsController) ListAllPosts() { // sets this.Data["paginator"] with the current offset (from the url query param) postsPerPage := 20 - paginator := pagination.SetPaginator(this, postsPerPage, CountPosts()) + paginator := pagination.SetPaginator(this.Ctx, postsPerPage, CountPosts()) // fetch the next 20 posts this.Data["posts"] = ListPostsByOffsetAndLimit(paginator.Offset(), postsPerPage)