mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Show source/target branches on PR's list (#19747)
Add ability to show source/target branches for Pull Request's list. It can be useful to see which branches are used in each PR right in the list. Co-authored-by: Alexey Korobkov <akorobkov@cian.ru> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
		@@ -25,15 +25,16 @@ const (
 | 
				
			|||||||
	defaultMaxInSize = 50
 | 
						defaultMaxInSize = 50
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// get the repo IDs to be loaded later, these IDs are for issue.Repo and issue.PullRequest.HeadRepo
 | 
				
			||||||
func (issues IssueList) getRepoIDs() []int64 {
 | 
					func (issues IssueList) getRepoIDs() []int64 {
 | 
				
			||||||
	repoIDs := make(map[int64]struct{}, len(issues))
 | 
						repoIDs := make(map[int64]struct{}, len(issues))
 | 
				
			||||||
	for _, issue := range issues {
 | 
						for _, issue := range issues {
 | 
				
			||||||
		if issue.Repo != nil {
 | 
							if issue.Repo == nil {
 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if _, ok := repoIDs[issue.RepoID]; !ok {
 | 
					 | 
				
			||||||
			repoIDs[issue.RepoID] = struct{}{}
 | 
								repoIDs[issue.RepoID] = struct{}{}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							if issue.PullRequest != nil && issue.PullRequest.HeadRepo == nil {
 | 
				
			||||||
 | 
								repoIDs[issue.PullRequest.HeadRepoID] = struct{}{}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return container.KeysInt64(repoIDs)
 | 
						return container.KeysInt64(repoIDs)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -67,8 +68,11 @@ func (issues IssueList) loadRepositories(ctx context.Context) ([]*repo_model.Rep
 | 
				
			|||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			repoMaps[issue.RepoID] = issue.Repo
 | 
								repoMaps[issue.RepoID] = issue.Repo
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if issue.PullRequest != nil && issue.PullRequest.BaseRepo == nil {
 | 
							if issue.PullRequest != nil {
 | 
				
			||||||
			issue.PullRequest.BaseRepo = issue.Repo
 | 
								issue.PullRequest.BaseRepo = issue.Repo
 | 
				
			||||||
 | 
								if issue.PullRequest.HeadRepo == nil {
 | 
				
			||||||
 | 
									issue.PullRequest.HeadRepo = repoMaps[issue.PullRequest.HeadRepoID]
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return valuesRepository(repoMaps), nil
 | 
						return valuesRepository(repoMaps), nil
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -59,6 +59,27 @@
 | 
				
			|||||||
					{{else}}
 | 
										{{else}}
 | 
				
			||||||
						{{$.i18n.Tr .GetLastEventLabelFake $timeStr (.Poster.GetDisplayName | Escape) | Safe}}
 | 
											{{$.i18n.Tr .GetLastEventLabelFake $timeStr (.Poster.GetDisplayName | Escape) | Safe}}
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
 | 
										{{if .IsPull}}
 | 
				
			||||||
 | 
											<div class="branches">
 | 
				
			||||||
 | 
												<div class="branch">
 | 
				
			||||||
 | 
													<a class="bold" href="{{.PullRequest.BaseRepo.HTMLURL}}/src/branch/{{PathEscapeSegments .PullRequest.BaseBranch}}">
 | 
				
			||||||
 | 
														{{/* inline to remove the spaces between spans */}}
 | 
				
			||||||
 | 
														{{if ne .RepoID .PullRequest.BaseRepoID}}<span class="truncated-name">{{.PullRequest.BaseRepo.OwnerName}}</span>:{{end}}<span class="truncated-name">{{.PullRequest.BaseBranch}}</span>
 | 
				
			||||||
 | 
													</a>
 | 
				
			||||||
 | 
												</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
												«
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
												{{if .PullRequest.HeadRepo}}
 | 
				
			||||||
 | 
												<div class="branch">
 | 
				
			||||||
 | 
													<a class="bold" href="{{.PullRequest.HeadRepo.HTMLURL}}/src/branch/{{PathEscapeSegments .PullRequest.HeadBranch}}">
 | 
				
			||||||
 | 
														{{/* inline to remove the spaces between spans */}}
 | 
				
			||||||
 | 
														{{if ne .RepoID .PullRequest.HeadRepoID}}<span class="truncated-name">{{.PullRequest.HeadRepo.OwnerName}}</span>:{{end}}<span class="truncated-name">{{.PullRequest.HeadBranch}}</span>
 | 
				
			||||||
 | 
													</a>
 | 
				
			||||||
 | 
												</div>
 | 
				
			||||||
 | 
												{{end}}
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
										{{end}}
 | 
				
			||||||
					{{if and .Milestone (ne $.listType "milestone")}}
 | 
										{{if and .Milestone (ne $.listType "milestone")}}
 | 
				
			||||||
						<a class="milestone" {{if $.RepoLink}}href="{{$.RepoLink}}/milestone/{{.Milestone.ID}}"{{else}}href="{{.Repo.Link}}/milestone/{{.Milestone.ID}}"{{end}}>
 | 
											<a class="milestone" {{if $.RepoLink}}href="{{$.RepoLink}}/milestone/{{.Milestone.ID}}"{{else}}href="{{.Repo.Link}}/milestone/{{.Milestone.ID}}"{{end}}>
 | 
				
			||||||
							{{svg "octicon-milestone" 14 "mr-2"}}{{.Milestone.Name}}
 | 
												{{svg "octicon-milestone" 14 "mr-2"}}{{.Milestone.Name}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -119,6 +119,23 @@
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .branches {
 | 
				
			||||||
 | 
					    display: inline-flex;
 | 
				
			||||||
 | 
					    padding: 0 6px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .branch {
 | 
				
			||||||
 | 
					      background-color: var(--color-secondary);
 | 
				
			||||||
 | 
					      border-radius: 3px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .truncated-name {
 | 
				
			||||||
 | 
					      white-space: nowrap;
 | 
				
			||||||
 | 
					      overflow: hidden;
 | 
				
			||||||
 | 
					      text-overflow: ellipsis;
 | 
				
			||||||
 | 
					      max-width: 10em;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  > .item + .item {
 | 
					  > .item + .item {
 | 
				
			||||||
    border-top: 1px solid var(--color-secondary);
 | 
					    border-top: 1px solid var(--color-secondary);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user