Fix the WIP prefix toggling on the sidebar
The WIP prefix toggling link on the sidebar only supported toggling the *first* prefix specified in `[repository.pullrequest].WORK_IN_PROGRESS_PREFIXES`. If the pull request had a title with any other prefix, the first prefix listed in the config was added (and then removed on toggling it off). This little change makes all of the prefixes available for the JavaScript function that does the toggling, and changes said function to find the used prefix first, and toggle that. When adding the prefix, it will still default to adding the first one listed in the configuration, but it will happily remove any others if those are present. Fixes #3377. Signed-off-by: Gergely Nagy <forgejo@gergo.csillger.hu> (cherry picked from commit a93a99eef39af9855b2d1a75c15ee855a2667a0f)
This commit is contained in:
parent
bbd204c30c
commit
e947fa7acc
2 changed files with 4 additions and 3 deletions
|
@ -114,7 +114,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{if and (or .HasIssuesOrPullsWritePermission .IsIssuePoster) (not .HasMerged) (not .Issue.IsClosed)}}
|
{{if and (or .HasIssuesOrPullsWritePermission .IsIssuePoster) (not .HasMerged) (not .Issue.IsClosed)}}
|
||||||
<div class="toggle-wip" data-title="{{.Issue.Title}}" data-wip-prefix="{{index .PullRequestWorkInProgressPrefixes 0}}" data-update-url="{{.Issue.Link}}/title">
|
<div class="toggle-wip" data-title="{{.Issue.Title}}" data-wip-prefixes="{{JsonUtils.EncodeToString .PullRequestWorkInProgressPrefixes}}" data-update-url="{{.Issue.Link}}/title">
|
||||||
<a class="muted">
|
<a class="muted">
|
||||||
{{if .IsPullWorkInProgress}}
|
{{if .IsPullWorkInProgress}}
|
||||||
{{ctx.Locale.Tr "repo.pulls.ready_for_review"}} {{ctx.Locale.Tr "repo.pulls.remove_prefix" (index .PullRequestWorkInProgressPrefixes 0)}}
|
{{ctx.Locale.Tr "repo.pulls.ready_for_review"}} {{ctx.Locale.Tr "repo.pulls.remove_prefix" (index .PullRequestWorkInProgressPrefixes 0)}}
|
||||||
|
|
|
@ -568,12 +568,13 @@ export function initRepoIssueWipToggle() {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const toggleWip = e.currentTarget.closest('.toggle-wip');
|
const toggleWip = e.currentTarget.closest('.toggle-wip');
|
||||||
const title = toggleWip.getAttribute('data-title');
|
const title = toggleWip.getAttribute('data-title');
|
||||||
const wipPrefix = toggleWip.getAttribute('data-wip-prefix');
|
const wipPrefixes = JSON.parse(toggleWip.getAttribute('data-wip-prefixes'));
|
||||||
const updateUrl = toggleWip.getAttribute('data-update-url');
|
const updateUrl = toggleWip.getAttribute('data-update-url');
|
||||||
|
const prefix = wipPrefixes.find((prefix) => title.startsWith(prefix));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const params = new URLSearchParams();
|
const params = new URLSearchParams();
|
||||||
params.append('title', title?.startsWith(wipPrefix) ? title.slice(wipPrefix.length).trim() : `${wipPrefix.trim()} ${title}`);
|
params.append('title', prefix !== undefined ? title.slice(prefix.length).trim() : `${wipPrefixes[0].trim()} ${title}`);
|
||||||
|
|
||||||
const response = await POST(updateUrl, {data: params});
|
const response = await POST(updateUrl, {data: params});
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
|
|
Loading…
Reference in a new issue