mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Provide button to delete merged pull request (#441)
* provide button to delete merged pull request * golint fix
This commit is contained in:
		@@ -518,6 +518,7 @@ func runWeb(ctx *cli.Context) error {
 | 
				
			|||||||
		}, context.RepoRef())
 | 
							}, context.RepoRef())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// m.Get("/branches", repo.Branches)
 | 
							// m.Get("/branches", repo.Branches)
 | 
				
			||||||
 | 
							m.Post("/branches/:name/delete", reqSignIn, reqRepoWriter, repo.DeleteBranchPost)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		m.Group("/wiki", func() {
 | 
							m.Group("/wiki", func() {
 | 
				
			||||||
			m.Get("/?:page", repo.Wiki)
 | 
								m.Get("/?:page", repo.Wiki)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -588,6 +588,7 @@ pulls.cannot_auto_merge_desc = This pull request can't be merged automatically b
 | 
				
			|||||||
pulls.cannot_auto_merge_helper = Please merge manually in order to resolve the conflicts.
 | 
					pulls.cannot_auto_merge_helper = Please merge manually in order to resolve the conflicts.
 | 
				
			||||||
pulls.merge_pull_request = Merge Pull Request
 | 
					pulls.merge_pull_request = Merge Pull Request
 | 
				
			||||||
pulls.open_unmerged_pull_exists = `You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
 | 
					pulls.open_unmerged_pull_exists = `You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
 | 
				
			||||||
 | 
					pulls.delete_branch = Delete Branch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
milestones.new = New Milestone
 | 
					milestones.new = New Milestone
 | 
				
			||||||
milestones.open_tab = %d Open
 | 
					milestones.open_tab = %d Open
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,7 @@
 | 
				
			|||||||
package repo
 | 
					package repo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
 | 
						"code.gitea.io/git"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/base"
 | 
						"code.gitea.io/gitea/modules/base"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/context"
 | 
						"code.gitea.io/gitea/modules/context"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -30,3 +31,21 @@ func Branches(ctx *context.Context) {
 | 
				
			|||||||
	ctx.Data["Branches"] = brs
 | 
						ctx.Data["Branches"] = brs
 | 
				
			||||||
	ctx.HTML(200, tplBranch)
 | 
						ctx.HTML(200, tplBranch)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// DeleteBranchPost responses for delete merged branch
 | 
				
			||||||
 | 
					func DeleteBranchPost(ctx *context.Context) {
 | 
				
			||||||
 | 
						branchName := ctx.Params(":name")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := ctx.Repo.GitRepo.DeleteBranch(branchName, git.DeleteBranchOptions{
 | 
				
			||||||
 | 
							Force: false,
 | 
				
			||||||
 | 
						}); err != nil {
 | 
				
			||||||
 | 
							ctx.Handle(500, "DeleteBranch", err)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						redirectTo := ctx.Query("redirect_to")
 | 
				
			||||||
 | 
						if len(redirectTo) == 0 {
 | 
				
			||||||
 | 
							redirectTo = ctx.Repo.RepoLink
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						ctx.Redirect(redirectTo)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -661,6 +661,15 @@ func ViewIssue(ctx *context.Context) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if issue.IsPull {
 | 
				
			||||||
 | 
							pull := issue.PullRequest
 | 
				
			||||||
 | 
							ctx.Data["IsPullBranchDeletable"] = ctx.Repo.IsWriter() && ctx.Repo.GitRepo.IsBranchExist(pull.HeadBranch)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							deleteBranchURL := ctx.Repo.RepoLink + "/branches/" + pull.HeadBranch + "/delete"
 | 
				
			||||||
 | 
							queryParams := "?redirect_to=" + ctx.Data["Link"].(string)
 | 
				
			||||||
 | 
							ctx.Data["DeleteBranchLink"] = deleteBranchURL + queryParams
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.Data["Participants"] = participants
 | 
						ctx.Data["Participants"] = participants
 | 
				
			||||||
	ctx.Data["NumParticipants"] = len(participants)
 | 
						ctx.Data["NumParticipants"] = len(participants)
 | 
				
			||||||
	ctx.Data["Issue"] = issue
 | 
						ctx.Data["Issue"] = issue
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -163,6 +163,15 @@
 | 
				
			|||||||
								<div class="item text purple">
 | 
													<div class="item text purple">
 | 
				
			||||||
									{{$.i18n.Tr "repo.pulls.has_merged"}}
 | 
														{{$.i18n.Tr "repo.pulls.has_merged"}}
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
 | 
													{{if .IsPullBranchDeletable}}
 | 
				
			||||||
 | 
														<div class="ui divider"></div>
 | 
				
			||||||
 | 
														<div>
 | 
				
			||||||
 | 
															<form class="ui form" action="{{.DeleteBranchLink}}" method="post">
 | 
				
			||||||
 | 
																{{.CsrfTokenHtml}}
 | 
				
			||||||
 | 
																<button class="ui red button">{{$.i18n.Tr "repo.pulls.delete_branch"}}</button>
 | 
				
			||||||
 | 
															</form>
 | 
				
			||||||
 | 
														</div>
 | 
				
			||||||
 | 
													{{end}}
 | 
				
			||||||
							{{else if .Issue.IsClosed}}
 | 
												{{else if .Issue.IsClosed}}
 | 
				
			||||||
								<div class="item text grey">
 | 
													<div class="item text grey">
 | 
				
			||||||
									{{$.i18n.Tr "repo.pulls.reopen_to_merge"}}
 | 
														{{$.i18n.Tr "repo.pulls.reopen_to_merge"}}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user