From 891391689a26e0bc3dcb1558512d3c2b6857232d Mon Sep 17 00:00:00 2001
From: jladbrook <jhladbrook@gmail.com>
Date: Fri, 3 Feb 2023 06:24:45 +0000
Subject: [PATCH] Update button is shown when a Pull Request is marked WIP -
 Issue #21740 (#22683)

Fix #21740.

Updated the Pull Request template so that the 'Update branch by merge'
button is visible for WIP PR's. Making the behaviour match a non WIP-PR.

Previous WIP page with changes pending on the branch:


![image](https://user-images.githubusercontent.com/1656302/215738307-e68a2f92-5ff8-4f48-a541-35ca81d1f1a4.png)

Updated UI adding the update button:


![image](https://user-images.githubusercontent.com/1656302/215737872-e0e9d712-b7aa-4b90-b7ed-6a92a14fc182.png)

## Notes

* have not removed the **$canAutoMerge** variable from the pull.tmpl on
this
[line](https://github.com/go-gitea/gitea/blob/36dc11869d0401b796a7a3f74627fec842a4a89a/templates/repo/issue/view_content/pull.tmpl#L131)
- doesn't appear to be used elsewhere but wasn't sure
* In order to avoid duplicating code corresponding UI code was added to
a new tmpl file, ```update_branch_by_merge.tmpl``` and is called in two
places from ```pull.tmpl```.

---------

Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
---
 templates/repo/issue/view_content/pull.tmpl   | 40 +------------------
 .../view_content/update_branch_by_merge.tmpl  | 39 ++++++++++++++++++
 2 files changed, 41 insertions(+), 38 deletions(-)
 create mode 100644 templates/repo/issue/view_content/update_branch_by_merge.tmpl

diff --git a/templates/repo/issue/view_content/pull.tmpl b/templates/repo/issue/view_content/pull.tmpl
index 1f94001db0..dc671eb6d6 100644
--- a/templates/repo/issue/view_content/pull.tmpl
+++ b/templates/repo/issue/view_content/pull.tmpl
@@ -190,6 +190,7 @@
 						{{end}}
 					</div>
 				</div>
+				{{template "repo/issue/view_content/update_branch_by_merge" (dict "locale" .locale "Issue" .Issue  "UpdateAllowed" .UpdateAllowed "UpdateByRebaseAllowed" .UpdateByRebaseAllowed "Link" .Link)}}
 			{{else if .Issue.PullRequest.IsChecking}}
 				<div class="item">
 					<i class="icon icon-octicon">{{svg "octicon-sync"}}</i>
@@ -282,44 +283,7 @@
 						</div>
 					{{end}}
 				{{end}}
-				{{if and (gt .Issue.PullRequest.CommitsBehind 0) (not  .Issue.IsClosed) (not .Issue.PullRequest.IsChecking) (not .IsPullFilesConflicted) (not .IsPullRequestBroken) (not $canAutoMerge)}}
-					<div class="ui divider"></div>
-					<div class="item item-section">
-						<div class="item-section-left">
-							<i class="icon icon-octicon">{{svg "octicon-alert"}}</i>
-							{{$.locale.Tr "repo.pulls.outdated_with_base_branch"}}
-						</div>
-						<div class="item-section-right">
-							{{if and .UpdateAllowed .UpdateByRebaseAllowed}}
-								<div class="dib">
-									<div class="ui buttons update-button">
-										<button class="ui button" data-do="{{.Link}}/update" data-redirect="{{.Link}}">
-											<span class="button-text">
-												{{$.locale.Tr "repo.pulls.update_branch"}}
-											</span>
-										</button>
-
-										<div class="ui dropdown icon button no-text">
-											{{svg "octicon-triangle-down" 14 "dropdown icon"}}
-											<div class="menu">
-												<div class="item active selected" data-do="{{.Link}}/update">{{$.locale.Tr "repo.pulls.update_branch"}}</div>
-												<div class="item" data-do="{{.Link}}/update?style=rebase">{{$.locale.Tr "repo.pulls.update_branch_rebase"}}</div>
-											</div>
-										</div>
-									</div>
-								</div>
-							{{end}}
-							{{if and .UpdateAllowed (not .UpdateByRebaseAllowed)}}
-								<form action="{{.Link}}/update" method="post" class="ui update-branch-form">
-									{{.CsrfTokenHtml}}
-									<button class="ui compact button" data-do="update">
-										<span class="ui text">{{$.locale.Tr "repo.pulls.update_branch"}}</span>
-									</button>
-								</form>
-							{{end}}
-						</div>
-					</div>
-				{{end}}
+				{{template "repo/issue/view_content/update_branch_by_merge" (dict "locale" .locale "Issue" .Issue  "UpdateAllowed" .UpdateAllowed "UpdateByRebaseAllowed" .UpdateByRebaseAllowed "Link" .Link)}}
 				{{if .Issue.PullRequest.IsEmpty}}
 					<div class="ui divider"></div>
 
diff --git a/templates/repo/issue/view_content/update_branch_by_merge.tmpl b/templates/repo/issue/view_content/update_branch_by_merge.tmpl
new file mode 100644
index 0000000000..3bc8dcca97
--- /dev/null
+++ b/templates/repo/issue/view_content/update_branch_by_merge.tmpl
@@ -0,0 +1,39 @@
+{{$canAutoMerge := false}}
+{{if and (gt .Issue.PullRequest.CommitsBehind 0) (not  .Issue.IsClosed) (not .Issue.PullRequest.IsChecking) (not .IsPullFilesConflicted) (not .IsPullRequestBroken) (not $canAutoMerge)}}
+	<div class="ui divider"></div>
+	<div class="item item-section">
+		<div class="item-section-left">
+			<i class="icon icon-octicon">{{svg "octicon-alert"}}</i>
+			{{$.locale.Tr "repo.pulls.outdated_with_base_branch"}}
+		</div>
+		<div class="item-section-right">
+			{{if and .UpdateAllowed .UpdateByRebaseAllowed}}
+				<div class="dib">
+					<div class="ui buttons update-button">
+						<button class="ui button" data-do="{{.Link}}/update" data-redirect="{{.Link}}">
+							<span class="button-text">
+								{{$.locale.Tr "repo.pulls.update_branch"}}
+							</span>
+						</button>
+
+						<div class="ui dropdown icon button no-text">
+							{{svg "octicon-triangle-down" 14 "dropdown icon"}}
+							<div class="menu">
+								<div class="item active selected" data-do="{{.Link}}/update">{{$.locale.Tr "repo.pulls.update_branch"}}</div>
+								<div class="item" data-do="{{.Link}}/update?style=rebase">{{$.locale.Tr "repo.pulls.update_branch_rebase"}}</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			{{end}}
+			{{if and .UpdateAllowed (not .UpdateByRebaseAllowed)}}
+				<form action="{{.Link}}/update" method="post" class="ui update-branch-form">
+					{{.CsrfTokenHtml}}
+					<button class="ui compact button" data-do="update">
+						<span class="ui text">{{$.locale.Tr "repo.pulls.update_branch"}}</span>
+					</button>
+				</form>
+			{{end}}
+		</div>
+	</div>
+{{end}}