Add pagination to commit graph page (#8360)

Fixes #8308
tokarchuk/v1.17
jaqra 5 years ago committed by zeripath
parent 3083522620
commit 086bfb8b4b
  1. 3
      models/graph.go
  2. 2
      models/graph_test.go
  3. 6
      routers/repo/commit.go
  4. 1
      templates/repo/graph.tmpl

@ -30,7 +30,7 @@ type GraphItem struct {
type GraphItems []GraphItem type GraphItems []GraphItem
// GetCommitGraph return a list of commit (GraphItems) from all branches // GetCommitGraph return a list of commit (GraphItems) from all branches
func GetCommitGraph(r *git.Repository) (GraphItems, error) { func GetCommitGraph(r *git.Repository, page int) (GraphItems, error) {
var CommitGraph []GraphItem var CommitGraph []GraphItem
@ -43,6 +43,7 @@ func GetCommitGraph(r *git.Repository) (GraphItems, error) {
"-C", "-C",
"-M", "-M",
fmt.Sprintf("-n %d", setting.UI.GraphMaxCommitNum), fmt.Sprintf("-n %d", setting.UI.GraphMaxCommitNum),
fmt.Sprintf("--skip=%d", setting.UI.GraphMaxCommitNum*(page-1)),
"--date=iso", "--date=iso",
fmt.Sprintf("--pretty=format:%s", format), fmt.Sprintf("--pretty=format:%s", format),
) )

@ -19,7 +19,7 @@ func BenchmarkGetCommitGraph(b *testing.B) {
} }
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
graph, err := GetCommitGraph(currentRepo) graph, err := GetCommitGraph(currentRepo, 1)
if err != nil { if err != nil {
b.Error("Could get commit graph") b.Error("Could get commit graph")
} }

@ -91,7 +91,9 @@ func Graph(ctx *context.Context) {
return return
} }
graph, err := models.GetCommitGraph(ctx.Repo.GitRepo) page := ctx.QueryInt("page")
graph, err := models.GetCommitGraph(ctx.Repo.GitRepo, page)
if err != nil { if err != nil {
ctx.ServerError("GetCommitGraph", err) ctx.ServerError("GetCommitGraph", err)
return return
@ -103,8 +105,8 @@ func Graph(ctx *context.Context) {
ctx.Data["CommitCount"] = commitsCount ctx.Data["CommitCount"] = commitsCount
ctx.Data["Branch"] = ctx.Repo.BranchName ctx.Data["Branch"] = ctx.Repo.BranchName
ctx.Data["RequireGitGraph"] = true ctx.Data["RequireGitGraph"] = true
ctx.Data["Page"] = context.NewPagination(int(commitsCount), setting.UI.GraphMaxCommitNum, page, 5)
ctx.HTML(200, tplGraph) ctx.HTML(200, tplGraph)
} }
// SearchCommits render commits filtered by keyword // SearchCommits render commits filtered by keyword

@ -37,4 +37,5 @@
</div> </div>
</div> </div>
</div> </div>
{{template "base/paginate" .}}
{{template "base/footer" .}} {{template "base/footer" .}}

Loading…
Cancel
Save