]> source.dussan.org Git - gitea.git/commitdiff
#14699 Make branch names in PR description clickable (#14716)
authorJimmy Praet <jimmy.praet@telenet.be>
Thu, 18 Feb 2021 02:45:49 +0000 (03:45 +0100)
committerGitHub <noreply@github.com>
Thu, 18 Feb 2021 02:45:49 +0000 (03:45 +0100)
models/pull.go
routers/repo/pull.go
templates/repo/issue/view_title.tmpl

index 0d4691aac94b68f3b8902ddba8e0c231a2e54c87..0eba65db4fada835fa129576393f0f4d9f01d047 100644 (file)
@@ -13,6 +13,7 @@ import (
        "code.gitea.io/gitea/modules/log"
        "code.gitea.io/gitea/modules/setting"
        "code.gitea.io/gitea/modules/timeutil"
+       "code.gitea.io/gitea/modules/util"
 )
 
 // PullRequestType defines pull request type
@@ -638,3 +639,27 @@ func (pr *PullRequest) updateCommitDivergence(e Engine, ahead, behind int) error
 func (pr *PullRequest) IsSameRepo() bool {
        return pr.BaseRepoID == pr.HeadRepoID
 }
+
+// GetBaseBranchHTMLURL returns the HTML URL of the base branch
+func (pr *PullRequest) GetBaseBranchHTMLURL() string {
+       if err := pr.LoadBaseRepo(); err != nil {
+               log.Error("LoadBaseRepo: %v", err)
+               return ""
+       }
+       if pr.BaseRepo == nil {
+               return ""
+       }
+       return pr.BaseRepo.HTMLURL() + "/src/branch/" + util.PathEscapeSegments(pr.BaseBranch)
+}
+
+// GetHeadBranchHTMLURL returns the HTML URL of the head branch
+func (pr *PullRequest) GetHeadBranchHTMLURL() string {
+       if err := pr.LoadHeadRepo(); err != nil {
+               log.Error("LoadHeadRepo: %v", err)
+               return ""
+       }
+       if pr.HeadRepo == nil {
+               return ""
+       }
+       return pr.HeadRepo.HTMLURL() + "/src/branch/" + util.PathEscapeSegments(pr.HeadBranch)
+}
index d3dd9e4fb5442f980b9d7c2d9684a6b11392fe7f..15af2a2a3f33bc52a0c45a2ab25bc1faf7156f47 100644 (file)
@@ -301,6 +301,8 @@ func setMergeTarget(ctx *context.Context, pull *models.PullRequest) {
                ctx.Data["HeadTarget"] = pull.MustHeadUserName() + "/" + pull.HeadRepo.Name + ":" + pull.HeadBranch
        }
        ctx.Data["BaseTarget"] = pull.BaseBranch
+       ctx.Data["HeadBranchHTMLURL"] = pull.GetHeadBranchHTMLURL()
+       ctx.Data["BaseBranchHTMLURL"] = pull.GetBaseBranchHTMLURL()
 }
 
 // PrepareMergedViewPullInfo show meta information for a merged pull request view page
index 8956bf5e65d1b606a8c870342f8b166649a8a922..2f2787d67ceb7beaf7c97081428b1f1696972a72 100644 (file)
        {{end}}
 
        {{if .Issue.IsPull}}
+               {{$headHref := .HeadTarget|Escape}}
+               {{if .HeadBranchHTMLURL}}
+                       {{$headHref = printf "<a href=\"%s\">%s</a>" .HeadBranchHTMLURL $headHref}}
+               {{end}}
+               {{$baseHref := .BaseTarget|Escape}}
+               {{if .BaseBranchHTMLURL}}
+                       {{$baseHref = printf "<a href=\"%s\">%s</a>" .BaseBranchHTMLURL $baseHref}}
+               {{end}}
                {{if .Issue.PullRequest.HasMerged}}
                        {{ $mergedStr:= TimeSinceUnix .Issue.PullRequest.MergedUnix $.Lang }}
                        {{if .Issue.OriginalAuthor }}
                                {{.Issue.OriginalAuthor}}
-                               <span class="pull-desc">{{$.i18n.Tr "repo.pulls.merged_title_desc" .NumCommits (.HeadTarget|Escape) (.BaseTarget|Escape) $mergedStr | Str2html}}</span>
+                               <span class="pull-desc">{{$.i18n.Tr "repo.pulls.merged_title_desc" .NumCommits $headHref $baseHref $mergedStr | Str2html}}</span>
                        {{else}}
                                <a {{if gt .Issue.PullRequest.Merger.ID 0}}href="{{.Issue.PullRequest.Merger.HomeLink}}"{{end}}>{{.Issue.PullRequest.Merger.GetDisplayName}}</a>
-                               <span class="pull-desc">{{$.i18n.Tr "repo.pulls.merged_title_desc" .NumCommits (.HeadTarget|Escape) (.BaseTarget|Escape) $mergedStr | Str2html}}</span>
+                               <span class="pull-desc">{{$.i18n.Tr "repo.pulls.merged_title_desc" .NumCommits $headHref $baseHref $mergedStr | Str2html}}</span>
                        {{end}}
                {{else}}
                        {{if .Issue.OriginalAuthor }}
-                               <span id="pull-desc" class="pull-desc">{{.Issue.OriginalAuthor}} {{$.i18n.Tr "repo.pulls.title_desc" .NumCommits (.HeadTarget|Escape) (.BaseTarget|Escape) | Str2html}}</span>
+                               <span id="pull-desc" class="pull-desc">{{.Issue.OriginalAuthor}} {{$.i18n.Tr "repo.pulls.title_desc" .NumCommits $headHref $baseHref | Str2html}}</span>
                        {{else}}
                                <span id="pull-desc" class="pull-desc">
-                                <a {{if gt .Issue.Poster.ID 0}}href="{{.Issue.Poster.HomeLink}}"{{end}}>{{.Issue.Poster.GetDisplayName}}</a>
-                                {{$.i18n.Tr "repo.pulls.title_desc" .NumCommits (.HeadTarget|Escape) (.BaseTarget|Escape) | Str2html}}
-                                       </span>
+                                       <a {{if gt .Issue.Poster.ID 0}}href="{{.Issue.Poster.HomeLink}}"{{end}}>{{.Issue.Poster.GetDisplayName}}</a>
+                                       {{$.i18n.Tr "repo.pulls.title_desc" .NumCommits $headHref $baseHref | Str2html}}
+                               </span>
                        {{end}}
                        <span id="pull-desc-edit" style="display: none">
                                                                <div class="ui floating filter dropdown">