mirror of
https://github.com/gogs/gogs.git
synced 2025-05-27 17:52:21 +00:00
editor: fix cannot redirect to correct pull request URL
Was only possible to correctly redirect to pull request page within same repository. And didn't take care of case when upstream has disabled pull request. Also add a new method 'PullRequestURL' to unify the code.
This commit is contained in:
parent
266c8f5a85
commit
5ec21d56ef
@ -98,6 +98,16 @@ func (r *Repository) GetEditorconfig() (*editorconfig.Editorconfig, error) {
|
||||
return editorconfig.ParseBytes(data)
|
||||
}
|
||||
|
||||
// PullRequestURL returns URL for composing a pull request.
|
||||
// This function does not check if the repository can actually compose a pull request.
|
||||
func (r *Repository) PullRequestURL(baseBranch, headBranch string) string {
|
||||
repoLink := r.RepoLink
|
||||
if r.PullRequest.BaseRepo != nil {
|
||||
repoLink = r.PullRequest.BaseRepo.Link()
|
||||
}
|
||||
return fmt.Sprintf("%s/compare/%s...%s:%s", repoLink, baseBranch, r.Owner.Name, headBranch)
|
||||
}
|
||||
|
||||
func RetrieveBaseRepo(ctx *Context, repo *models.Repository) {
|
||||
// Non-fork repository will not return error in this method.
|
||||
if err := repo.GetBaseRepo(); err != nil {
|
||||
|
@ -279,8 +279,8 @@ func editFilePost(ctx *context.Context, form auth.EditRepoFileForm, isNewFile bo
|
||||
return
|
||||
}
|
||||
|
||||
if form.IsNewBrnach() {
|
||||
ctx.Redirect(ctx.Repo.RepoLink + "/compare/" + oldBranchName + "..." + form.NewBranchName)
|
||||
if form.IsNewBrnach() && ctx.Repo.PullRequest.Allowed {
|
||||
ctx.Redirect(ctx.Repo.PullRequestURL(oldBranchName, form.NewBranchName))
|
||||
} else {
|
||||
ctx.Redirect(ctx.Repo.RepoLink + "/src/" + branchName + "/" + template.EscapePound(form.TreePath))
|
||||
}
|
||||
@ -382,8 +382,8 @@ func DeleteFilePost(ctx *context.Context, form auth.DeleteRepoFileForm) {
|
||||
return
|
||||
}
|
||||
|
||||
if form.IsNewBrnach() {
|
||||
ctx.Redirect(ctx.Repo.RepoLink + "/compare/" + oldBranchName + "..." + form.NewBranchName)
|
||||
if form.IsNewBrnach() && ctx.Repo.PullRequest.Allowed {
|
||||
ctx.Redirect(ctx.Repo.PullRequestURL(oldBranchName, form.NewBranchName))
|
||||
} else {
|
||||
ctx.Flash.Success(ctx.Tr("repo.editor.file_delete_success", ctx.Repo.TreePath))
|
||||
ctx.Redirect(ctx.Repo.RepoLink + "/src/" + branchName)
|
||||
@ -503,8 +503,8 @@ func UploadFilePost(ctx *context.Context, form auth.UploadRepoFileForm) {
|
||||
return
|
||||
}
|
||||
|
||||
if form.IsNewBrnach() {
|
||||
ctx.Redirect(ctx.Repo.RepoLink + "/compare/" + oldBranchName + "..." + form.NewBranchName)
|
||||
if form.IsNewBrnach() && ctx.Repo.PullRequest.Allowed {
|
||||
ctx.Redirect(ctx.Repo.PullRequestURL(oldBranchName, form.NewBranchName))
|
||||
} else {
|
||||
ctx.Redirect(ctx.Repo.RepoLink + "/src/" + branchName + "/" + form.TreePath)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user