Skip to content

Commit e186b5c

Browse files
GustedOtto
authored andcommitted
feat: reduce amount of morphing for milestone (go-gitea#8350)
- Avoid morphing too much HTML, only morph the currently selected milestone text. - Changes that the milestone dropdown is not morphed, which contains event listeners and newer versions of the morphing library seem does not preserve event listeners in most cases. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8350 Reviewed-by: Otto <[email protected]> Co-authored-by: Gusted <[email protected]> Co-committed-by: Gusted <[email protected]>
1 parent 5158493 commit e186b5c

File tree

5 files changed

+15
-18
lines changed

5 files changed

+15
-18
lines changed

routers/web/repo/issue.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2401,10 +2401,6 @@ func UpdateIssueMilestone(ctx *context.Context) {
24012401
}
24022402

24032403
if ctx.FormBool("htmx") {
2404-
renderMilestones(ctx)
2405-
if ctx.Written() {
2406-
return
2407-
}
24082404
prepareHiddenCommentType(ctx)
24092405
if ctx.Written() {
24102406
return
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<div id="insert-timeline" hx-swap-oob="beforebegin">
22
{{template "repo/issue/view_content/comments" .}}
33
</div>
4-
{{template "repo/issue/view_content/sidebar/milestones" .}}
4+
{{template "repo/issue/milestone/selected" .}}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<div id="selected-milestone" class="ui select-milestone list">
2+
<span class="no-select item {{if .Issue.Milestone}}tw-hidden{{end}}">{{ctx.Locale.Tr "repo.issues.new.no_milestone"}}</span>
3+
<div class="selected">
4+
{{if .Issue.Milestone}}
5+
<a class="item muted sidebar-item-link" href="{{.RepoLink}}/milestone/{{.Issue.Milestone.ID}}">
6+
{{svg "octicon-milestone" 18 "tw-mr-2"}}
7+
{{.Issue.Milestone.Name}}
8+
</a>
9+
{{end}}
10+
</div>
11+
</div>
Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div id="milestone-section" hx-swap="morph" hx-target="this" hx-indicator="this">
1+
<div id="milestone-section" hx-swap="morph" hx-target="#selected-milestone" hx-indicator="this">
22
<div class="ui {{if or (not .HasIssuesOrPullsWritePermission) .Repository.IsArchived}}disabled{{end}} floating jump select-milestone dropdown">
33
<a class="text muted flex-text-block">
44
<strong>{{ctx.Locale.Tr "repo.issues.new.milestone"}}</strong>
@@ -10,15 +10,5 @@
1010
{{template "repo/issue/milestone/select_menu" .}}
1111
</div>
1212
</div>
13-
<div class="ui select-milestone list">
14-
<span class="no-select item {{if .Issue.Milestone}}tw-hidden{{end}}">{{ctx.Locale.Tr "repo.issues.new.no_milestone"}}</span>
15-
<div class="selected">
16-
{{if .Issue.Milestone}}
17-
<a class="item muted sidebar-item-link" href="{{.RepoLink}}/milestone/{{.Issue.Milestone.ID}}">
18-
{{svg "octicon-milestone" 18 "tw-mr-2"}}
19-
{{.Issue.Milestone.Name}}
20-
</a>
21-
{{end}}
22-
</div>
23-
</div>
13+
{{template "repo/issue/milestone/selected" .}}
2414
</div>

tests/e2e/issue-sidebar.test.e2e.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ test('Issue: Milestone', async ({page}, workerInfo) => {
221221
const response = await page.goto('/user2/repo1/issues/1');
222222
expect(response?.status()).toBe(200);
223223

224-
const selectedMilestone = page.locator('.issue-content-right .select-milestone.list');
224+
const selectedMilestone = page.locator('.issue-content-right #selected-milestone');
225225
const milestoneDropdown = page.locator('.issue-content-right .select-milestone.dropdown');
226226
await expect(selectedMilestone).toContainText('No milestone');
227227

0 commit comments

Comments
 (0)