-
- {{if .LastPageNum}}
- « {{.i18n.Tr "admin.prev"}} {{end}} - {{if .NextPageNum}}
- » {{.i18n.Tr "admin.next"}} {{end}} -
diff --git a/conf/app.ini b/conf/app.ini index 097047545..21464edd0 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -19,8 +19,10 @@ EXPLORE_PAGING_NUM = 20 ISSUE_PAGING_NUM = 10 [ui.admin] -; Numer of users that are showed in one page +; Number of users that are showed in one page USER_PAGING_NUM = 50 +; Number of notices that are showed in one page +NOTICE_PAGING_NUM = 50 [markdown] ; Enable hard line break extension diff --git a/models/admin.go b/models/admin.go index 493cc7afc..e24e0026b 100644 --- a/models/admin.go +++ b/models/admin.go @@ -50,11 +50,10 @@ func CountNotices() int64 { return count } -// GetNotices returns given number of notices with offset. -func GetNotices(num, offset int) ([]*Notice, error) { - notices := make([]*Notice, 0, num) - err := x.Limit(num, offset).Desc("id").Find(¬ices) - return notices, err +// Notices returns number of notices in given page. +func Notices(page, pageSize int) ([]*Notice, error) { + notices := make([]*Notice, 0, pageSize) + return notices, x.Limit(pageSize, (page-1)*pageSize).Desc("id").Find(¬ices) } // DeleteNotice deletes a system notice by given ID. diff --git a/modules/setting/setting.go b/modules/setting/setting.go index c326ed379..1d6bf4d62 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -94,6 +94,7 @@ var ( ExplorePagingNum int IssuePagingNum int AdminUserPagingNum int + AdminNoticePagingNum int // Markdown sttings. Markdown struct { @@ -370,6 +371,7 @@ func NewContext() { sec = Cfg.Section("ui.admin") AdminUserPagingNum = sec.Key("USER_PAGING_NUM").MustInt(50) + AdminNoticePagingNum = sec.Key("NOTICE_PAGING_NUM").MustInt(50) sec = Cfg.Section("picture") PictureService = sec.Key("SERVICE").In("server", []string{"server"}) diff --git a/routers/admin/notice.go b/routers/admin/notice.go index b43194636..b3cadc254 100644 --- a/routers/admin/notice.go +++ b/routers/admin/notice.go @@ -6,11 +6,13 @@ package admin import ( "github.com/Unknwon/com" + "github.com/Unknwon/paginater" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/middleware" + "github.com/gogits/gogs/modules/setting" ) const ( @@ -22,15 +24,20 @@ func Notices(ctx *middleware.Context) { ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminNotices"] = true - pageNum := 50 - p := pagination(ctx, models.CountNotices(), pageNum) - - notices, err := models.GetNotices(pageNum, (p-1)*pageNum) + total := models.CountNotices() + page := ctx.QueryInt("page") + if page <= 1 { + page = 1 + } + ctx.Data["Page"] = paginater.New(int(total), setting.AdminNoticePagingNum, page, 5) + + notices, err := models.Notices(page, setting.AdminNoticePagingNum) if err != nil { - ctx.Handle(500, "GetNotices", err) + ctx.Handle(500, "Notices", err) return } ctx.Data["Notices"] = notices + ctx.Data["Total"] = total ctx.HTML(200, NOTICES) } diff --git a/templates/admin/notice.tmpl b/templates/admin/notice.tmpl index a3ae2a10d..d32b4c981 100644 --- a/templates/admin/notice.tmpl +++ b/templates/admin/notice.tmpl @@ -1,54 +1,64 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -