fix(ui): Make 'Clear milestone' work with HTMX (#8266)

Disable the 'clear milestone' button in the issue sidebar when no milestone is set and update this state after a milestone is set or cleared.

Fixes #7949

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8266
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: iamyaash <iamyaash@outlook.com>
Co-committed-by: iamyaash <iamyaash@outlook.com>
This commit is contained in:
iamyaash 2025-08-11 20:10:10 +02:00 committed by Gusted
commit 4eac7adcc9
5 changed files with 7 additions and 2 deletions

View file

@ -2414,6 +2414,7 @@ func UpdateIssueMilestone(ctx *context.Context) {
ctx.ServerError("GetMilestoneByRepoID", err) ctx.ServerError("GetMilestoneByRepoID", err)
return return
} }
ctx.Data["OpenMilestones"] = true
} else { } else {
issue.Milestone = nil issue.Milestone = nil
} }

View file

@ -1,3 +1,4 @@
{{template "repo/issue/milestone/clear_milestone" dict "." . "UseHTMX" true}}
<div id="insert-timeline" hx-swap-oob="beforebegin"> <div id="insert-timeline" hx-swap-oob="beforebegin">
{{template "repo/issue/view_content/comments" .}} {{template "repo/issue/view_content/comments" .}}
</div> </div>

View file

@ -0,0 +1,3 @@
<div hx-swap-oob="true" id="clear-milestone" class="{{if and .UseHTMX (or (and (not .OpenMilestones) (not .ClosedMilestones)) (not .Issue.Milestone))}}disabled {{end}}no-select item"{{if .UseHTMX}} hx-post="{{$.RepoLink}}/issues/milestone?issue_ids={{.Issue.ID}}&htmx=true"{{end}}>
{{ctx.Locale.Tr "repo.issues.new.clear_milestone"}}
</div>

View file

@ -6,7 +6,7 @@
</div> </div>
<div class="divider"></div> <div class="divider"></div>
{{end}} {{end}}
<div class="no-select item"{{if $useHTMX}} hx-post="{{$.RepoLink}}/issues/milestone?issue_ids={{$.Issue.ID}}&htmx=true"{{end}}>{{ctx.Locale.Tr "repo.issues.new.clear_milestone"}}</div> {{template "repo/issue/milestone/clear_milestone" dict "." . "UseHTMX" $useHTMX}}
{{if and (not .OpenMilestones) (not .ClosedMilestones)}} {{if and (not .OpenMilestones) (not .ClosedMilestones)}}
<div class="disabled item"> <div class="disabled item">
{{ctx.Locale.Tr "repo.issues.new.no_items"}} {{ctx.Locale.Tr "repo.issues.new.no_items"}}

View file

@ -1,4 +1,4 @@
<div id="selected-milestone" class="ui select-milestone list"> <div hx-swap-oob="true" id="selected-milestone" class="ui select-milestone list">
<span class="no-select item {{if .Issue.Milestone}}tw-hidden{{end}}">{{ctx.Locale.Tr "repo.issues.new.no_milestone"}}</span> <span class="no-select item {{if .Issue.Milestone}}tw-hidden{{end}}">{{ctx.Locale.Tr "repo.issues.new.no_milestone"}}</span>
<div class="selected"> <div class="selected">
{{if .Issue.Milestone}} {{if .Issue.Milestone}}