Skip to content
4 changes: 2 additions & 2 deletions models/issues/pull_list.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ func listPullRequestStatement(baseRepoID int64, opts *PullRequestsOptions) (*xor
func GetUnmergedPullRequestsByHeadInfo(repoID int64, branch string) ([]*PullRequest, error) {
prs := make([]*PullRequest, 0, 2)
return prs, db.GetEngine(db.DefaultContext).
Where("head_repo_id = ? AND head_branch = ? AND has_merged = ? AND issue.is_closed = ? AND flow = ?",
repoID, branch, false, false, PullRequestFlowGithub).
Where("head_repo_id = ? AND head_branch = ? AND has_merged = ? AND flow = ?",
repoID, branch, false, PullRequestFlowGithub).
Join("INNER", "issue", "issue.id = pull_request.issue_id").
Find(&prs)
}
Expand Down
17 changes: 11 additions & 6 deletions routers/web/repo/issue.go
Original file line number Diff line number Diff line change
Expand Up @@ -1420,11 +1420,11 @@ func ViewIssue(ctx *context.Context) {
}

var (
role issues_model.RoleDescriptor
ok bool
marked = make(map[int64]issues_model.RoleDescriptor)
comment *issues_model.Comment
participants = make([]*user_model.User, 1, 10)
role issues_model.RoleDescriptor
ok bool
marked = make(map[int64]issues_model.RoleDescriptor)
participants = make([]*user_model.User, 1, 10)
latestCloseCommentIndex int
)
if ctx.Repo.Repository.IsTimetrackerEnabled(ctx) {
if ctx.IsSigned {
Expand Down Expand Up @@ -1468,7 +1468,7 @@ func ViewIssue(ctx *context.Context) {

// Render comments and and fetch participants.
participants[0] = issue.Poster
for _, comment = range issue.Comments {
for i, comment := range issue.Comments {
comment.Issue = issue

if err := comment.LoadPoster(ctx); err != nil {
Expand Down Expand Up @@ -1622,9 +1622,14 @@ func ViewIssue(ctx *context.Context) {
comment.Type == issues_model.CommentTypeStopTracking {
// drop error since times could be pruned from DB..
_ = comment.LoadTime()
} else if comment.Type == issues_model.CommentTypeClose {
// record latest index of close comment.
latestCloseCommentIndex = i
}
}

ctx.Data["LatestCloseCommentIndex"] = latestCloseCommentIndex

// Combine multiple label assignments into a single comment
combineLabelComments(issue)

Expand Down
2 changes: 1 addition & 1 deletion routers/web/repo/pull.go
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ func PrepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C
ctx.Data["HeadBranchCommitID"] = headBranchSha
ctx.Data["PullHeadCommitID"] = sha

if pull.HeadRepo == nil || !headBranchExist || headBranchSha != sha {
if pull.HeadRepo == nil || !headBranchExist || (!pull.Issue.IsClosed && (headBranchSha != sha)) {
ctx.Data["IsPullRequestBroken"] = true
if pull.IsSameRepo() {
ctx.Data["HeadTarget"] = pull.HeadBranch
Expand Down
7 changes: 6 additions & 1 deletion templates/repo/issue/view_content/comments.tmpl
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{{template "base/alert"}}
{{range .Issue.Comments}}
<div>
{{range $idx, $comment := .Issue.Comments}}
{{if call $.ShouldShowCommentType .Type}}
{{$createdStr:= TimeSinceUnix .CreatedUnix $.locale}}

Expand Down Expand Up @@ -117,6 +118,9 @@
{{end}}
</span>
</div>
{{if and .Issue.IsClosed (eq $.LatestCloseCommentIndex $idx)}}
{{break}}
{{end}}
{{else if eq .Type 28}}
<div class="timeline-item event" id="{{.HashTag}}">
<span class="badge gt-bg-purple gt-text-white">{{svg "octicon-git-merge"}}</span>
Expand Down Expand Up @@ -796,3 +800,4 @@
{{end}}
{{end}}
{{end}}
</div>