From 086bfb8b4b655f46ac9471cbea9df70e912c315d Mon Sep 17 00:00:00 2001 From: jaqra <48099350+jaqra@users.noreply.github.com> Date: Tue, 15 Oct 2019 00:38:35 +0300 Subject: [PATCH] Add pagination to commit graph page (#8360) Fixes #8308 --- models/graph.go | 3 ++- models/graph_test.go | 2 +- routers/repo/commit.go | 6 ++++-- templates/repo/graph.tmpl | 1 + 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/models/graph.go b/models/graph.go index 5f68abaf7..0efb51b3f 100644 --- a/models/graph.go +++ b/models/graph.go @@ -30,7 +30,7 @@ type GraphItem struct { type GraphItems []GraphItem // 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 @@ -43,6 +43,7 @@ func GetCommitGraph(r *git.Repository) (GraphItems, error) { "-C", "-M", fmt.Sprintf("-n %d", setting.UI.GraphMaxCommitNum), + fmt.Sprintf("--skip=%d", setting.UI.GraphMaxCommitNum*(page-1)), "--date=iso", fmt.Sprintf("--pretty=format:%s", format), ) diff --git a/models/graph_test.go b/models/graph_test.go index 5c78e3877..c1f0bc90d 100644 --- a/models/graph_test.go +++ b/models/graph_test.go @@ -19,7 +19,7 @@ func BenchmarkGetCommitGraph(b *testing.B) { } for i := 0; i < b.N; i++ { - graph, err := GetCommitGraph(currentRepo) + graph, err := GetCommitGraph(currentRepo, 1) if err != nil { b.Error("Could get commit graph") } diff --git a/routers/repo/commit.go b/routers/repo/commit.go index 3cedf7031..550e4c3a9 100644 --- a/routers/repo/commit.go +++ b/routers/repo/commit.go @@ -91,7 +91,9 @@ func Graph(ctx *context.Context) { return } - graph, err := models.GetCommitGraph(ctx.Repo.GitRepo) + page := ctx.QueryInt("page") + + graph, err := models.GetCommitGraph(ctx.Repo.GitRepo, page) if err != nil { ctx.ServerError("GetCommitGraph", err) return @@ -103,8 +105,8 @@ func Graph(ctx *context.Context) { ctx.Data["CommitCount"] = commitsCount ctx.Data["Branch"] = ctx.Repo.BranchName ctx.Data["RequireGitGraph"] = true + ctx.Data["Page"] = context.NewPagination(int(commitsCount), setting.UI.GraphMaxCommitNum, page, 5) ctx.HTML(200, tplGraph) - } // SearchCommits render commits filtered by keyword diff --git a/templates/repo/graph.tmpl b/templates/repo/graph.tmpl index 2e8d0b5d9..20fe3d152 100644 --- a/templates/repo/graph.tmpl +++ b/templates/repo/graph.tmpl @@ -37,4 +37,5 @@ +{{template "base/paginate" .}} {{template "base/footer" .}}