2014-08-29 16:50:43 +04:00
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package admin
import (
2015-09-26 01:38:43 +03:00
"github.com/Unknwon/paginater"
2015-09-13 16:51:51 +03:00
"math"
2014-08-29 16:50:43 +04:00
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/middleware"
2015-09-26 01:38:43 +03:00
"github.com/gogits/gogs/modules/setting"
2014-08-29 16:50:43 +04:00
)
const (
REPOS base . TplName = "admin/repo/list"
)
2015-09-26 01:38:43 +03:00
//* TODO Remove after general using of github.com/Unknwon/paginater
2015-09-13 16:51:51 +03:00
func pagination ( ctx * middleware . Context , count int64 , pageNum int ) int {
p := ctx . QueryInt ( "p" )
if p < 1 {
p = 1
}
curCount := int64 ( ( p - 1 ) * pageNum + pageNum )
if curCount >= count {
p = int ( math . Ceil ( float64 ( count ) / float64 ( pageNum ) ) )
} else {
ctx . Data [ "NextPageNum" ] = p + 1
}
if p > 1 {
ctx . Data [ "LastPageNum" ] = p - 1
}
return p
}
2015-09-26 01:38:43 +03:00
//*/
2014-08-29 16:50:43 +04:00
func Repositories ( ctx * middleware . Context ) {
ctx . Data [ "Title" ] = ctx . Tr ( "admin.repositories" )
ctx . Data [ "PageIsAdmin" ] = true
ctx . Data [ "PageIsAdminRepositories" ] = true
2015-09-26 01:38:43 +03:00
total := models . CountRepositories ( )
page := ctx . QueryInt ( "page" )
if page <= 1 {
page = 1
}
ctx . Data [ "Page" ] = paginater . New ( int ( total ) , setting . AdminRepoPagingNum , page , 5 )
repos , err := models . RepositoriesWithUsers ( page , setting . AdminRepoPagingNum )
2014-08-29 16:50:43 +04:00
if err != nil {
2015-09-26 01:38:43 +03:00
ctx . Handle ( 500 , "RepositoriesWithUsers" , err )
2014-08-29 16:50:43 +04:00
return
}
2015-09-26 01:38:43 +03:00
ctx . Data [ "Repos" ] = repos
ctx . Data [ "Total" ] = total
2014-08-29 16:50:43 +04:00
ctx . HTML ( 200 , REPOS )
}