Project: show referenced PRs in issue cards (#14183)
Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
		
							parent
							
								
									172229966c
								
							
						
					
					
						commit
						ef85bf84ee
					
				
					 4 changed files with 38 additions and 4 deletions
				
			
		|  | @ -256,6 +256,10 @@ func (b *ProjectBoard) LoadIssues() (IssueList, error) { | ||||||
| 		issueList = append(issueList, issues...) | 		issueList = append(issueList, issues...) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if err := IssueList(issueList).LoadComments(); err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	b.Issues = issueList | 	b.Issues = issueList | ||||||
| 	return issueList, nil | 	return issueList, nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -280,10 +280,32 @@ func ViewProject(ctx *context.Context) { | ||||||
| 		boards[0].Title = ctx.Tr("repo.projects.type.uncategorized") | 		boards[0].Title = ctx.Tr("repo.projects.type.uncategorized") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if ctx.Data["Issues"], err = boards.LoadIssues(); err != nil { | 	issueList, err := boards.LoadIssues() | ||||||
|  | 	if err != nil { | ||||||
| 		ctx.ServerError("LoadIssuesOfBoards", err) | 		ctx.ServerError("LoadIssuesOfBoards", err) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  | 	ctx.Data["Issues"] = issueList | ||||||
|  | 
 | ||||||
|  | 	linkedPrsMap := make(map[int64][]*models.Issue) | ||||||
|  | 	for _, issue := range issueList { | ||||||
|  | 		var referencedIds []int64 | ||||||
|  | 		for _, comment := range issue.Comments { | ||||||
|  | 			if comment.RefIssueID != 0 && comment.RefIsPull { | ||||||
|  | 				referencedIds = append(referencedIds, comment.RefIssueID) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		if len(referencedIds) > 0 { | ||||||
|  | 			if linkedPrs, err := models.Issues(&models.IssuesOptions{ | ||||||
|  | 				IssueIDs: referencedIds, | ||||||
|  | 				IsPull:   util.OptionalBoolTrue, | ||||||
|  | 			}); err == nil { | ||||||
|  | 				linkedPrsMap[issue.ID] = linkedPrs | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	ctx.Data["LinkedPRs"] = linkedPrsMap | ||||||
| 
 | 
 | ||||||
| 	project.RenderedContent = string(markdown.Render([]byte(project.Description), ctx.Repo.RepoLink, ctx.Repo.Repository.ComposeMetas())) | 	project.RenderedContent = string(markdown.Render([]byte(project.Description), ctx.Repo.RepoLink, ctx.Repo.Repository.ComposeMetas())) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -166,13 +166,21 @@ | ||||||
| 								</span> | 								</span> | ||||||
| 								<a class="project-board-title" href="{{$.RepoLink}}/issues/{{.Index}}">#{{.Index}} {{.Title}}</a> | 								<a class="project-board-title" href="{{$.RepoLink}}/issues/{{.Index}}">#{{.Index}} {{.Title}}</a> | ||||||
| 							</div> | 							</div> | ||||||
|  | 							{{- if .MilestoneID }} | ||||||
| 							<div class="meta"> | 							<div class="meta"> | ||||||
| 								{{ if .MilestoneID }} |  | ||||||
| 								<a class="milestone" href="{{$.RepoLink}}/milestone/{{ .MilestoneID}}"> | 								<a class="milestone" href="{{$.RepoLink}}/milestone/{{ .MilestoneID}}"> | ||||||
| 									{{svg "octicon-milestone"}} {{ .Milestone.Name }} | 									{{svg "octicon-milestone"}} {{ .Milestone.Name }} | ||||||
| 								</a> | 								</a> | ||||||
| 								{{ end }} |  | ||||||
| 							</div> | 							</div> | ||||||
|  | 							{{- end }} | ||||||
|  | 							{{- range index $.LinkedPRs .ID }} | ||||||
|  | 							<div class="meta"> | ||||||
|  | 								<a href="{{$.RepoLink}}/pulls/{{ .ID }}"> | ||||||
|  | 									<span class="{{if .PullRequest.HasMerged}}purple{{else if .IsClosed}}red{{else}}green{{end}}">{{svg "octicon-git-merge"}}</span> | ||||||
|  | 									{{ .Title}} (#{{ .ID }}) | ||||||
|  | 								</a> | ||||||
|  | 							</div> | ||||||
|  | 							{{- end }} | ||||||
| 						</div> | 						</div> | ||||||
| 						<div class="extra content"> | 						<div class="extra content"> | ||||||
| 							{{ range .Labels }} | 							{{ range .Labels }} | ||||||
|  |  | ||||||
|  | @ -2921,7 +2921,7 @@ tbody.commit-list { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .board-card .content { | .board-card .content { | ||||||
|   padding: 5px 8px !important; |   padding: 8px 8px 5px !important; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .board-card .extra.content { | .board-card .extra.content { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue