Added issue link rendering in commit messages

This commit is contained in:
dennis-smurf 2014-12-05 11:02:52 +01:00
parent e577f2fff3
commit 528c075ad6
5 changed files with 26 additions and 6 deletions

View file

@ -5,12 +5,14 @@
package repo
import (
"container/list"
"path"
"github.com/Unknwon/com"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/git"
"github.com/gogits/gogs/modules/middleware"
"github.com/gogits/gogs/modules/setting"
)
@ -72,6 +74,7 @@ func Commits(ctx *middleware.Context) {
ctx.Handle(500, "CommitsByRange", err)
return
}
commits = RenderIssueLinks(commits, ctx.Repo.RepoLink)
commits = models.ValidateCommitsWithEmails(commits)
ctx.Data["Commits"] = commits
@ -83,6 +86,16 @@ func Commits(ctx *middleware.Context) {
ctx.HTML(200, COMMITS)
}
func RenderIssueLinks(oldCommits *list.List, repoLink string) *list.List {
newCommits := list.New()
for e := oldCommits.Front(); e != nil; e = e.Next() {
c := e.Value.(*git.Commit)
c.CommitMessage = string(base.RenderissueIndexPattern([]byte(c.CommitMessage), repoLink))
newCommits.PushBack(c)
}
return newCommits
}
func SearchCommits(ctx *middleware.Context) {
ctx.Data["IsSearchPage"] = true
ctx.Data["IsRepoToolbarCommits"] = true
@ -110,6 +123,7 @@ func SearchCommits(ctx *middleware.Context) {
ctx.Handle(500, "SearchCommits", err)
return
}
commits = RenderIssueLinks(commits, ctx.Repo.RepoLink)
commits = models.ValidateCommitsWithEmails(commits)
ctx.Data["Keyword"] = keyword
@ -171,6 +185,7 @@ func FileHistory(ctx *middleware.Context) {
ctx.Handle(500, "repo.FileHistory(CommitsByRange)", err)
return
}
commits = RenderIssueLinks(commits, ctx.Repo.RepoLink)
commits = models.ValidateCommitsWithEmails(commits)
ctx.Data["Commits"] = commits
@ -191,7 +206,7 @@ func Diff(ctx *middleware.Context) {
commitId := ctx.Repo.CommitId
commit := ctx.Repo.Commit
commit.CommitMessage = string(base.RenderissueIndexPattern([]byte(commit.CommitMessage), ctx.Repo.RepoLink))
diff, err := models.GetDiffCommit(models.RepoPath(userName, repoName),
commitId, setting.MaxGitDiffLines)
if err != nil {