aboutsummaryrefslogtreecommitdiffstats
path: root/routers/repo
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2020-08-06 09:04:08 +0100
committerGitHub <noreply@github.com>2020-08-06 09:04:08 +0100
commit2c1ae6c82d0b3fa62dda7e6a30fb91e27aba6e04 (patch)
treebe14ac1376125be2482e6ca7de3eedc276203304 /routers/repo
parentf1a42f5d5ee0279ddec7973a1ba9236c70bd5b5e (diff)
downloadgitea-2c1ae6c82d0b3fa62dda7e6a30fb91e27aba6e04.tar.gz
gitea-2c1ae6c82d0b3fa62dda7e6a30fb91e27aba6e04.zip
Render the git graph on the server (#12333)
Rendering the git graph on the server means that we can properly track flows and switch from the Canvas implementation to a SVG implementation. * This implementation provides a 16 limited color selection * The uniqued color numbers are also provided * And there is also a monochrome version *In addition is a hover highlight that allows users to highlight commits on the same flow. Closes #12209 Signed-off-by: Andrew Thornton art27@cantab.net Co-authored-by: silverwind <me@silverwind.io>
Diffstat (limited to 'routers/repo')
-rw-r--r--routers/repo/commit.go11
1 files changed, 9 insertions, 2 deletions
diff --git a/routers/repo/commit.go b/routers/repo/commit.go
index 004d4915df..d9547cc51d 100644
--- a/routers/repo/commit.go
+++ b/routers/repo/commit.go
@@ -90,6 +90,11 @@ func Commits(ctx *context.Context) {
func Graph(ctx *context.Context) {
ctx.Data["PageIsCommits"] = true
ctx.Data["PageIsViewCode"] = true
+ mode := strings.ToLower(ctx.QueryTrim("mode"))
+ if mode != "monochrome" {
+ mode = "color"
+ }
+ ctx.Data["Mode"] = mode
commitsCount, err := ctx.Repo.GetCommitsCount()
if err != nil {
@@ -105,7 +110,7 @@ func Graph(ctx *context.Context) {
page := ctx.QueryInt("page")
- graph, err := gitgraph.GetCommitGraph(ctx.Repo.GitRepo, page)
+ graph, err := gitgraph.GetCommitGraph(ctx.Repo.GitRepo, page, 0)
if err != nil {
ctx.ServerError("GetCommitGraph", err)
return
@@ -116,7 +121,9 @@ func Graph(ctx *context.Context) {
ctx.Data["Reponame"] = ctx.Repo.Repository.Name
ctx.Data["CommitCount"] = commitsCount
ctx.Data["Branch"] = ctx.Repo.BranchName
- ctx.Data["Page"] = context.NewPagination(int(allCommitsCount), setting.UI.GraphMaxCommitNum, page, 5)
+ paginator := context.NewPagination(int(allCommitsCount), setting.UI.GraphMaxCommitNum, page, 5)
+ paginator.AddParam(ctx, "mode", "Mode")
+ ctx.Data["Page"] = paginator
ctx.HTML(200, tplGraph)
}