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>
This commit is contained in:
parent
a3829d3e72
commit
a93a99eef3
2 changed files with 4 additions and 3 deletions
|
@ -114,7 +114,7 @@
|
|||
</div>
|
||||
</div>
|
||||
{{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">
|
||||
{{if .IsPullWorkInProgress}}
|
||||
{{ctx.Locale.Tr "repo.pulls.ready_for_review"}} {{ctx.Locale.Tr "repo.pulls.remove_prefix" (index .PullRequestWorkInProgressPrefixes 0)}}
|
||||
|
|
|
@ -583,12 +583,13 @@ export function initRepoIssueWipToggle() {
|
|||
e.preventDefault();
|
||||
const toggleWip = e.currentTarget.closest('.toggle-wip');
|
||||
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 prefix = wipPrefixes.find((prefix) => title.startsWith(prefix));
|
||||
|
||||
try {
|
||||
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});
|
||||
if (!response.ok) {
|
||||
|
|
Loading…
Reference in a new issue