fix(mr): deleted verdict notes, split-layout note links and verdict labels
- commit
- 06682af77afcca45e84c6bb28b8592340fef3853
- author
- brice · · 2026-10-19 05:58 UTC
- parent
- 3872b20
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
12 files · +421 -292
M docs/tokens.md +1 -1
| @@ -6,7 +6,7 @@ ermite token list | |||
| 6 | 6 | ermite token revoke <id> | |
| 7 | 7 | ``` | |
| 8 | 8 | ||
| 9 | - | The secret is printed once. Presets and `--scope` add up. The full scope list is in [`skills/ermite/CLI.md`](../skills/ermite/CLI.md). `mr:review` lets a token give a merge request verdict (`--approve`, `--request-changes`); the `cli` preset includes it, the `agent` preset does not. A token created before `mr:review` existed lacks it: recreate it with `--preset cli` to keep the owner's rights. | |
| 9 | + | The secret is printed once. Presets and `--scope` add up. The full scope list is in [`skills/ermite/CLI.md`](../skills/ermite/CLI.md). `mr:review` lets a token give a merge request verdict (`--approve`, `--request-changes`); the `cli` preset includes it, the `agent` preset does not. A token created before `mr:review` existed lacks it: recreate it with `--preset cli` using the root token or from a signed-in owner web session (an old token lacking `mr:review` cannot grant it), then replace the stored CLI secret and revoke the old token to keep the owner's rights. | |
| 10 | 10 | ||
| 11 | 11 | | Preset | For | | |
| 12 | 12 | |---|---| | |
| @@ -6,7 +6,7 @@ ermite token list | |||||
| 6 | ermite token revoke <id> | 6 | ermite token revoke <id> | ||
| 7 | ``` | 7 | ``` | ||
| 8 | 8 | ||||
| 9 | - | The secret is printed once. Presets and `--scope` add up. The full scope list is in [`skills/ermite/CLI.md`](../skills/ermite/CLI.md). `mr:review` lets a token give a merge request verdict (`--approve`, `--request-changes`); the `cli` preset includes it, the `agent` preset does not. A token created before `mr:review` existed lacks it: recreate it with `--preset cli` to keep the owner's rights. | 9 | + | The secret is printed once. Presets and `--scope` add up. The full scope list is in [`skills/ermite/CLI.md`](../skills/ermite/CLI.md). `mr:review` lets a token give a merge request verdict (`--approve`, `--request-changes`); the `cli` preset includes it, the `agent` preset does not. A token created before `mr:review` existed lacks it: recreate it with `--preset cli` using the root token or from a signed-in owner web session (an old token lacking `mr:review` cannot grant it), then replace the stored CLI secret and revoke the old token to keep the owner's rights. |
| 10 | 10 | ||||
| 11 | | Preset | For | | 11 | | Preset | For | | ||
| 12 | |---|---| | 12 | |---|---| | ||
M internal/adapters/web/jstest/mr.test.mjs +30 -0
| @@ -62,3 +62,33 @@ test('quote opens the thread reply and prefills and focuses its textarea', () => | |||
| 62 | 62 | assert.equal(field.value,'> source\n\n^2 '); | |
| 63 | 63 | assert.equal(focused,true); | |
| 64 | 64 | }); | |
| 65 | + | ||
| 66 | + | test('reveal selects the split note, including after lazy loading', async () => { | |
| 67 | + | const saved = globalThis.document; | |
| 68 | + | const savedRAF = globalThis.requestAnimationFrame; | |
| 69 | + | let scrolled = ''; | |
| 70 | + | const details = {open:false}; | |
| 71 | + | const node = id => ({id, querySelector(){return null;}, closest(){return details;}, scrollIntoView(){scrolled=id;}}); | |
| 72 | + | const nodes = new Map([['c12',node('c12')],['c12-s',node('c12-s')]]); | |
| 73 | + | const ph = {dataset:{notes:'c12'}}; | |
| 74 | + | globalThis.document = { | |
| 75 | + | querySelector: sel => sel === '#diffs' ? {dataset:{diff:'split'}} : null, | |
| 76 | + | querySelectorAll: () => [ph], | |
| 77 | + | getElementById: id => nodes.get(id), | |
| 78 | + | }; | |
| 79 | + | globalThis.requestAnimationFrame = fn => fn(); | |
| 80 | + | try { | |
| 81 | + | assert.equal(window.ermiteMR.reveal('c12'),false); | |
| 82 | + | assert.equal(scrolled,'c12-s'); | |
| 83 | + | assert.equal(details.open,true); | |
| 84 | + | nodes.clear(); scrolled=''; details.open=false; | |
| 85 | + | assert.equal(window.ermiteMR.reveal('c12'),true); | |
| 86 | + | nodes.set('c12',node('c12')); nodes.set('c12-s',node('c12-s')); | |
| 87 | + | await Promise.resolve(); | |
| 88 | + | assert.equal(scrolled,'c12-s'); | |
| 89 | + | assert.equal(details.open,true); | |
| 90 | + | } finally { | |
| 91 | + | globalThis.document=saved; | |
| 92 | + | globalThis.requestAnimationFrame=savedRAF; | |
| 93 | + | } | |
| 94 | + | }); | |
| @@ -62,3 +62,33 @@ test('quote opens the thread reply and prefills and focuses its textarea', () => | |||||
| 62 | assert.equal(field.value,'> source\n\n^2 '); | 62 | assert.equal(field.value,'> source\n\n^2 '); | ||
| 63 | assert.equal(focused,true); | 63 | assert.equal(focused,true); | ||
| 64 | }); | 64 | }); | ||
| 65 | + | ||||
| 66 | + | test('reveal selects the split note, including after lazy loading', async () => { | |||
| 67 | + | const saved = globalThis.document; | |||
| 68 | + | const savedRAF = globalThis.requestAnimationFrame; | |||
| 69 | + | let scrolled = ''; | |||
| 70 | + | const details = {open:false}; | |||
| 71 | + | const node = id => ({id, querySelector(){return null;}, closest(){return details;}, scrollIntoView(){scrolled=id;}}); | |||
| 72 | + | const nodes = new Map([['c12',node('c12')],['c12-s',node('c12-s')]]); | |||
| 73 | + | const ph = {dataset:{notes:'c12'}}; | |||
| 74 | + | globalThis.document = { | |||
| 75 | + | querySelector: sel => sel === '#diffs' ? {dataset:{diff:'split'}} : null, | |||
| 76 | + | querySelectorAll: () => [ph], | |||
| 77 | + | getElementById: id => nodes.get(id), | |||
| 78 | + | }; | |||
| 79 | + | globalThis.requestAnimationFrame = fn => fn(); | |||
| 80 | + | try { | |||
| 81 | + | assert.equal(window.ermiteMR.reveal('c12'),false); | |||
| 82 | + | assert.equal(scrolled,'c12-s'); | |||
| 83 | + | assert.equal(details.open,true); | |||
| 84 | + | nodes.clear(); scrolled=''; details.open=false; | |||
| 85 | + | assert.equal(window.ermiteMR.reveal('c12'),true); | |||
| 86 | + | nodes.set('c12',node('c12')); nodes.set('c12-s',node('c12-s')); | |||
| 87 | + | await Promise.resolve(); | |||
| 88 | + | assert.equal(scrolled,'c12-s'); | |||
| 89 | + | assert.equal(details.open,true); | |||
| 90 | + | } finally { | |||
| 91 | + | globalThis.document=saved; | |||
| 92 | + | globalThis.requestAnimationFrame=savedRAF; | |||
| 93 | + | } | |||
| 94 | + | }); | |||
M internal/adapters/web/mr.go +15 -11
| @@ -106,7 +106,7 @@ type CommentView struct { | |||
| 106 | 106 | When string | |
| 107 | 107 | WhenAt string | |
| 108 | 108 | Abs string | |
| 109 | - | Body template.HTML | |
| 109 | + | Body, BodySplit template.HTML | |
| 110 | 110 | Replies []CommentView | |
| 111 | 111 | Edited, Deleted bool | |
| 112 | 112 | Verdict, Range, Quote string | |
| @@ -796,7 +796,7 @@ func (s *Server) placeComments(p *MRPage, repo string, n int64, comments []domai | |||
| 796 | 796 | exists := noteIDs(comments) | |
| 797 | 797 | children := map[int64][]domain.Comment{} | |
| 798 | 798 | for _, c := range comments { | |
| 799 | - | if c.ReplyTo != 0 { | |
| 799 | + | if c.ReplyTo != 0 && !c.Deleted { | |
| 800 | 800 | children[c.ReplyTo] = append(children[c.ReplyTo], c) | |
| 801 | 801 | } | |
| 802 | 802 | if !c.Deleted { | |
| @@ -806,14 +806,18 @@ func (s *Server) placeComments(p *MRPage, repo string, n int64, comments []domai | |||
| 806 | 806 | p.NUnresolved++ | |
| 807 | 807 | } | |
| 808 | 808 | } | |
| 809 | - | var view func(domain.Comment) CommentView | |
| 810 | - | view = func(c domain.Comment) CommentView { | |
| 809 | + | var view func(domain.Comment, bool) CommentView | |
| 810 | + | view = func(c domain.Comment, replyable bool) CommentView { | |
| 811 | 811 | cid := strconv.FormatInt(c.ID, 10) | |
| 812 | 812 | body, err := s.md.renderNote([]byte(c.Text.String()), repo, head, "c"+cid+"-", exists) | |
| 813 | 813 | if err != nil { | |
| 814 | 814 | body = "" | |
| 815 | 815 | } | |
| 816 | - | v := CommentView{ID: cid, Author: s.who(c.Author), Body: body, Resolved: c.Resolved, Deleted: c.Deleted, Edited: !c.EditedAt.IsZero(), Verdict: c.Verdict.String(), Outdated: !c.CommitID.IsZero() && c.CommitID.String() != head} | |
| 816 | + | bodySplit, err := s.md.renderNote([]byte(c.Text.String()), repo, head, "c"+cid+"-s-", exists) | |
| 817 | + | if err != nil { | |
| 818 | + | bodySplit = "" | |
| 819 | + | } | |
| 820 | + | v := CommentView{BodySplit: bodySplit, ID: cid, Author: s.who(c.Author), Body: body, Resolved: c.Resolved, Deleted: c.Deleted, Edited: !c.EditedAt.IsZero(), Verdict: c.Verdict.String(), Outdated: !c.CommitID.IsZero() && c.CommitID.String() != head} | |
| 817 | 821 | v.When, v.WhenAt = whenOf(now, c.CreatedAt) | |
| 818 | 822 | if !c.CreatedAt.IsZero() { | |
| 819 | 823 | v.Abs = absolute(c.CreatedAt) | |
| @@ -827,7 +831,9 @@ func (s *Server) placeComments(p *MRPage, repo string, n int64, comments []domai | |||
| 827 | 831 | if c.ReplyTo != 0 { | |
| 828 | 832 | root = strconv.FormatInt(c.ReplyTo, 10) | |
| 829 | 833 | } | |
| 830 | - | v.Quote = "> " + strings.ReplaceAll(c.Text.String(), "\n", "\n> ") + "\n\n^" + cid + " " | |
| 834 | + | if replyable { | |
| 835 | + | v.Quote = "> " + strings.ReplaceAll(c.Text.String(), "\n", "\n> ") + "\n\n^" + cid + " " | |
| 836 | + | } | |
| 831 | 837 | if c.ReplyTo == 0 { | |
| 832 | 838 | v.Reply = &CommentForm{ID: "reply-" + cid, Action: mrHref(repo, n, "comments"), Title: "Reply", ReplyTo: root, From: from} | |
| 833 | 839 | } | |
| @@ -837,18 +843,16 @@ func (s *Server) placeComments(p *MRPage, repo string, n int64, comments []domai | |||
| 837 | 843 | } | |
| 838 | 844 | } | |
| 839 | 845 | for _, reply := range children[c.ID] { | |
| 840 | - | if !reply.Deleted { | |
| 841 | - | v.Replies = append(v.Replies, view(reply)) | |
| 842 | - | } | |
| 846 | + | v.Replies = append(v.Replies, view(reply, replyable)) | |
| 843 | 847 | } | |
| 844 | 848 | return v | |
| 845 | 849 | } | |
| 846 | 850 | for _, c := range comments { | |
| 847 | - | if c.ReplyTo != 0 || c.Deleted && len(children[c.ID]) == 0 { | |
| 851 | + | if c.ReplyTo != 0 || c.Deleted && c.Verdict == domain.VerdictNone && len(children[c.ID]) == 0 { | |
| 848 | 852 | continue | |
| 849 | 853 | } | |
| 850 | 854 | cid := strconv.FormatInt(c.ID, 10) | |
| 851 | - | v := view(c) | |
| 855 | + | v := view(c, canWrite && !c.Deleted) | |
| 852 | 856 | general := c.Path == "" | |
| 853 | 857 | fi, listed := fileAt[c.Path] | |
| 854 | 858 | if !general && listed && p.Files[fi].Lazy { | |
| @@ -106,7 +106,7 @@ type CommentView struct { | |||||
| 106 | When string | 106 | When string | ||
| 107 | WhenAt string | 107 | WhenAt string | ||
| 108 | Abs string | 108 | Abs string | ||
| 109 | - | Body template.HTML | 109 | + | Body, BodySplit template.HTML |
| 110 | Replies []CommentView | 110 | Replies []CommentView | ||
| 111 | Edited, Deleted bool | 111 | Edited, Deleted bool | ||
| 112 | Verdict, Range, Quote string | 112 | Verdict, Range, Quote string | ||
| @@ -796,7 +796,7 @@ func (s *Server) placeComments(p *MRPage, repo string, n int64, comments []domai | |||||
| 796 | exists := noteIDs(comments) | 796 | exists := noteIDs(comments) | ||
| 797 | children := map[int64][]domain.Comment{} | 797 | children := map[int64][]domain.Comment{} | ||
| 798 | for _, c := range comments { | 798 | for _, c := range comments { | ||
| 799 | - | if c.ReplyTo != 0 { | 799 | + | if c.ReplyTo != 0 && !c.Deleted { |
| 800 | children[c.ReplyTo] = append(children[c.ReplyTo], c) | 800 | children[c.ReplyTo] = append(children[c.ReplyTo], c) | ||
| 801 | } | 801 | } | ||
| 802 | if !c.Deleted { | 802 | if !c.Deleted { | ||
| @@ -806,14 +806,18 @@ func (s *Server) placeComments(p *MRPage, repo string, n int64, comments []domai | |||||
| 806 | p.NUnresolved++ | 806 | p.NUnresolved++ | ||
| 807 | } | 807 | } | ||
| 808 | } | 808 | } | ||
| 809 | - | var view func(domain.Comment) CommentView | 809 | + | var view func(domain.Comment, bool) CommentView |
| 810 | - | view = func(c domain.Comment) CommentView { | 810 | + | view = func(c domain.Comment, replyable bool) CommentView { |
| 811 | cid := strconv.FormatInt(c.ID, 10) | 811 | cid := strconv.FormatInt(c.ID, 10) | ||
| 812 | body, err := s.md.renderNote([]byte(c.Text.String()), repo, head, "c"+cid+"-", exists) | 812 | body, err := s.md.renderNote([]byte(c.Text.String()), repo, head, "c"+cid+"-", exists) | ||
| 813 | if err != nil { | 813 | if err != nil { | ||
| 814 | body = "" | 814 | body = "" | ||
| 815 | } | 815 | } | ||
| 816 | - | v := CommentView{ID: cid, Author: s.who(c.Author), Body: body, Resolved: c.Resolved, Deleted: c.Deleted, Edited: !c.EditedAt.IsZero(), Verdict: c.Verdict.String(), Outdated: !c.CommitID.IsZero() && c.CommitID.String() != head} | 816 | + | bodySplit, err := s.md.renderNote([]byte(c.Text.String()), repo, head, "c"+cid+"-s-", exists) |
| 817 | + | if err != nil { | |||
| 818 | + | bodySplit = "" | |||
| 819 | + | } | |||
| 820 | + | v := CommentView{BodySplit: bodySplit, ID: cid, Author: s.who(c.Author), Body: body, Resolved: c.Resolved, Deleted: c.Deleted, Edited: !c.EditedAt.IsZero(), Verdict: c.Verdict.String(), Outdated: !c.CommitID.IsZero() && c.CommitID.String() != head} | |||
| 817 | v.When, v.WhenAt = whenOf(now, c.CreatedAt) | 821 | v.When, v.WhenAt = whenOf(now, c.CreatedAt) | ||
| 818 | if !c.CreatedAt.IsZero() { | 822 | if !c.CreatedAt.IsZero() { | ||
| 819 | v.Abs = absolute(c.CreatedAt) | 823 | v.Abs = absolute(c.CreatedAt) | ||
| @@ -827,7 +831,9 @@ func (s *Server) placeComments(p *MRPage, repo string, n int64, comments []domai | |||||
| 827 | if c.ReplyTo != 0 { | 831 | if c.ReplyTo != 0 { | ||
| 828 | root = strconv.FormatInt(c.ReplyTo, 10) | 832 | root = strconv.FormatInt(c.ReplyTo, 10) | ||
| 829 | } | 833 | } | ||
| 830 | - | v.Quote = "> " + strings.ReplaceAll(c.Text.String(), "\n", "\n> ") + "\n\n^" + cid + " " | 834 | + | if replyable { |
| 835 | + | v.Quote = "> " + strings.ReplaceAll(c.Text.String(), "\n", "\n> ") + "\n\n^" + cid + " " | |||
| 836 | + | } | |||
| 831 | if c.ReplyTo == 0 { | 837 | if c.ReplyTo == 0 { | ||
| 832 | v.Reply = &CommentForm{ID: "reply-" + cid, Action: mrHref(repo, n, "comments"), Title: "Reply", ReplyTo: root, From: from} | 838 | v.Reply = &CommentForm{ID: "reply-" + cid, Action: mrHref(repo, n, "comments"), Title: "Reply", ReplyTo: root, From: from} | ||
| 833 | } | 839 | } | ||
| @@ -837,18 +843,16 @@ func (s *Server) placeComments(p *MRPage, repo string, n int64, comments []domai | |||||
| 837 | } | 843 | } | ||
| 838 | } | 844 | } | ||
| 839 | for _, reply := range children[c.ID] { | 845 | for _, reply := range children[c.ID] { | ||
| 840 | - | if !reply.Deleted { | 846 | + | v.Replies = append(v.Replies, view(reply, replyable)) |
| 841 | - | v.Replies = append(v.Replies, view(reply)) | |||
| 842 | - | } | |||
| 843 | } | 847 | } | ||
| 844 | return v | 848 | return v | ||
| 845 | } | 849 | } | ||
| 846 | for _, c := range comments { | 850 | for _, c := range comments { | ||
| 847 | - | if c.ReplyTo != 0 || c.Deleted && len(children[c.ID]) == 0 { | 851 | + | if c.ReplyTo != 0 || c.Deleted && c.Verdict == domain.VerdictNone && len(children[c.ID]) == 0 { |
| 848 | continue | 852 | continue | ||
| 849 | } | 853 | } | ||
| 850 | cid := strconv.FormatInt(c.ID, 10) | 854 | cid := strconv.FormatInt(c.ID, 10) | ||
| 851 | - | v := view(c) | 855 | + | v := view(c, canWrite && !c.Deleted) |
| 852 | general := c.Path == "" | 856 | general := c.Path == "" | ||
| 853 | fi, listed := fileAt[c.Path] | 857 | fi, listed := fileAt[c.Path] | ||
| 854 | if !general && listed && p.Files[fi].Lazy { | 858 | if !general && listed && p.Files[fi].Lazy { | ||
M internal/adapters/web/mr.templ +10 -2
| @@ -248,10 +248,18 @@ templ commentView(c CommentView, suffix string) { | |||
| 248 | 248 | } | |
| 249 | 249 | </p> | |
| 250 | 250 | if c.Deleted { | |
| 251 | - | <p class="mute">deleted note</p> | |
| 251 | + | if c.Verdict != "" { | |
| 252 | + | <p class="mute">text deleted</p> | |
| 253 | + | } else { | |
| 254 | + | <p class="mute">deleted note</p> | |
| 255 | + | } | |
| 252 | 256 | } else { | |
| 253 | 257 | <div class="c-body prose"> | |
| 254 | - | @templ.Raw(string(c.Body)) | |
| 258 | + | if suffix == "-s" { | |
| 259 | + | @templ.Raw(string(c.BodySplit)) | |
| 260 | + | } else { | |
| 261 | + | @templ.Raw(string(c.Body)) | |
| 262 | + | } | |
| 255 | 263 | </div> | |
| 256 | 264 | } | |
| 257 | 265 | if c.Edited { | |
| @@ -248,10 +248,18 @@ templ commentView(c CommentView, suffix string) { | |||||
| 248 | } | 248 | } | ||
| 249 | </p> | 249 | </p> | ||
| 250 | if c.Deleted { | 250 | if c.Deleted { | ||
| 251 | - | <p class="mute">deleted note</p> | 251 | + | if c.Verdict != "" { |
| 252 | + | <p class="mute">text deleted</p> | |||
| 253 | + | } else { | |||
| 254 | + | <p class="mute">deleted note</p> | |||
| 255 | + | } | |||
| 252 | } else { | 256 | } else { | ||
| 253 | <div class="c-body prose"> | 257 | <div class="c-body prose"> | ||
| 254 | - | @templ.Raw(string(c.Body)) | 258 | + | if suffix == "-s" { |
| 259 | + | @templ.Raw(string(c.BodySplit)) | |||
| 260 | + | } else { | |||
| 261 | + | @templ.Raw(string(c.Body)) | |||
| 262 | + | } | |||
| 255 | </div> | 263 | </div> | ||
| 256 | } | 264 | } | ||
| 257 | if c.Edited { | 265 | if c.Edited { | ||
M internal/adapters/web/mr_notes_test.go +47 -0
| @@ -110,3 +110,50 @@ func TestNotePosts(t *testing.T) { | |||
| 110 | 110 | require.NoError(t, err) | |
| 111 | 111 | assert.Equal(t, "/demo/merge-requests/1#c2", to) | |
| 112 | 112 | } | |
| 113 | + | ||
| 114 | + | func TestDeletedNoteRendering(t *testing.T) { | |
| 115 | + | t.Parallel() | |
| 116 | + | text, err := domain.ParsePlainText("surviving reply") | |
| 117 | + | require.NoError(t, err) | |
| 118 | + | s := &Server{cfg: Config{Now: time.Now}, md: newMarkdown()} | |
| 119 | + | p := MRPage{} | |
| 120 | + | s.placeComments(&p, "demo", 1, []domain.Comment{ | |
| 121 | + | {ID: 1, Author: "reviewer", Deleted: true, Verdict: domain.VerdictApprove}, | |
| 122 | + | {ID: 2, Deleted: true}, | |
| 123 | + | {ID: 3, ReplyTo: 2, Deleted: true}, | |
| 124 | + | {ID: 4, Deleted: true}, | |
| 125 | + | {ID: 5, ReplyTo: 4, Text: text}, | |
| 126 | + | }, "", true, true, nil) | |
| 127 | + | require.Len(t, p.General, 2) | |
| 128 | + | assert.Equal(t, "1", p.General[0].ID) | |
| 129 | + | assert.Equal(t, "4", p.General[1].ID) | |
| 130 | + | var b bytes.Buffer | |
| 131 | + | require.NoError(t, commentView(p.General[0], "").Render(context.Background(), &b)) | |
| 132 | + | assert.Contains(t, b.String(), `<span class="c-who">owner</span>`) | |
| 133 | + | assert.Contains(t, b.String(), "approve") | |
| 134 | + | assert.Contains(t, b.String(), "text deleted") | |
| 135 | + | b.Reset() | |
| 136 | + | require.NoError(t, commentView(p.General[1], "").Render(context.Background(), &b)) | |
| 137 | + | assert.Contains(t, b.String(), "surviving reply") | |
| 138 | + | assert.NotContains(t, b.String(), "Quote") | |
| 139 | + | assert.NotContains(t, b.String(), "data-quote") | |
| 140 | + | } | |
| 141 | + | ||
| 142 | + | func TestInlineNoteHeadingIDs(t *testing.T) { | |
| 143 | + | t.Parallel() | |
| 144 | + | text, err := domain.ParsePlainText("# H\n[jump](#h)") | |
| 145 | + | require.NoError(t, err) | |
| 146 | + | s := &Server{cfg: Config{Now: time.Now}, md: newMarkdown()} | |
| 147 | + | p := MRPage{Files: []DiffFile{{Key: "a", ID: "f1", Hunks: []DiffHunk{{Lines: []DiffLine{{Kind: "add", newN: 1}}}}}}} | |
| 148 | + | s.placeComments(&p, "demo", 1, []domain.Comment{{ID: 12, Path: "a", Side: domain.SideNew, Line: 1, Text: text}}, "", true, true, nil) | |
| 149 | + | notes := p.Files[0].Hunks[0].Lines[0].Notes | |
| 150 | + | require.Len(t, notes, 1) | |
| 151 | + | var b bytes.Buffer | |
| 152 | + | require.NoError(t, commentView(notes[0], "").Render(context.Background(), &b)) | |
| 153 | + | require.NoError(t, commentView(notes[0], "-s").Render(context.Background(), &b)) | |
| 154 | + | html := b.String() | |
| 155 | + | assert.Equal(t, 1, strings.Count(html, `id="c12-h"`)) | |
| 156 | + | assert.Equal(t, 1, strings.Count(html, `id="c12-s-h"`)) | |
| 157 | + | assert.Contains(t, html, `href="#c12-h"`) | |
| 158 | + | assert.Contains(t, html, `href="#c12-s-h"`) | |
| 159 | + | } | |
| @@ -110,3 +110,50 @@ func TestNotePosts(t *testing.T) { | |||||
| 110 | require.NoError(t, err) | 110 | require.NoError(t, err) | ||
| 111 | assert.Equal(t, "/demo/merge-requests/1#c2", to) | 111 | assert.Equal(t, "/demo/merge-requests/1#c2", to) | ||
| 112 | } | 112 | } | ||
| 113 | + | ||||
| 114 | + | func TestDeletedNoteRendering(t *testing.T) { | |||
| 115 | + | t.Parallel() | |||
| 116 | + | text, err := domain.ParsePlainText("surviving reply") | |||
| 117 | + | require.NoError(t, err) | |||
| 118 | + | s := &Server{cfg: Config{Now: time.Now}, md: newMarkdown()} | |||
| 119 | + | p := MRPage{} | |||
| 120 | + | s.placeComments(&p, "demo", 1, []domain.Comment{ | |||
| 121 | + | {ID: 1, Author: "reviewer", Deleted: true, Verdict: domain.VerdictApprove}, | |||
| 122 | + | {ID: 2, Deleted: true}, | |||
| 123 | + | {ID: 3, ReplyTo: 2, Deleted: true}, | |||
| 124 | + | {ID: 4, Deleted: true}, | |||
| 125 | + | {ID: 5, ReplyTo: 4, Text: text}, | |||
| 126 | + | }, "", true, true, nil) | |||
| 127 | + | require.Len(t, p.General, 2) | |||
| 128 | + | assert.Equal(t, "1", p.General[0].ID) | |||
| 129 | + | assert.Equal(t, "4", p.General[1].ID) | |||
| 130 | + | var b bytes.Buffer | |||
| 131 | + | require.NoError(t, commentView(p.General[0], "").Render(context.Background(), &b)) | |||
| 132 | + | assert.Contains(t, b.String(), `<span class="c-who">owner</span>`) | |||
| 133 | + | assert.Contains(t, b.String(), "approve") | |||
| 134 | + | assert.Contains(t, b.String(), "text deleted") | |||
| 135 | + | b.Reset() | |||
| 136 | + | require.NoError(t, commentView(p.General[1], "").Render(context.Background(), &b)) | |||
| 137 | + | assert.Contains(t, b.String(), "surviving reply") | |||
| 138 | + | assert.NotContains(t, b.String(), "Quote") | |||
| 139 | + | assert.NotContains(t, b.String(), "data-quote") | |||
| 140 | + | } | |||
| 141 | + | ||||
| 142 | + | func TestInlineNoteHeadingIDs(t *testing.T) { | |||
| 143 | + | t.Parallel() | |||
| 144 | + | text, err := domain.ParsePlainText("# H\n[jump](#h)") | |||
| 145 | + | require.NoError(t, err) | |||
| 146 | + | s := &Server{cfg: Config{Now: time.Now}, md: newMarkdown()} | |||
| 147 | + | p := MRPage{Files: []DiffFile{{Key: "a", ID: "f1", Hunks: []DiffHunk{{Lines: []DiffLine{{Kind: "add", newN: 1}}}}}}} | |||
| 148 | + | s.placeComments(&p, "demo", 1, []domain.Comment{{ID: 12, Path: "a", Side: domain.SideNew, Line: 1, Text: text}}, "", true, true, nil) | |||
| 149 | + | notes := p.Files[0].Hunks[0].Lines[0].Notes | |||
| 150 | + | require.Len(t, notes, 1) | |||
| 151 | + | var b bytes.Buffer | |||
| 152 | + | require.NoError(t, commentView(notes[0], "").Render(context.Background(), &b)) | |||
| 153 | + | require.NoError(t, commentView(notes[0], "-s").Render(context.Background(), &b)) | |||
| 154 | + | html := b.String() | |||
| 155 | + | assert.Equal(t, 1, strings.Count(html, `id="c12-h"`)) | |||
| 156 | + | assert.Equal(t, 1, strings.Count(html, `id="c12-s-h"`)) | |||
| 157 | + | assert.Contains(t, html, `href="#c12-h"`) | |||
| 158 | + | assert.Contains(t, html, `href="#c12-s-h"`) | |||
| 159 | + | } | |||
M internal/adapters/web/mr_templ.go +281 -267
| @@ -1407,160 +1407,174 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1407 | 1407 | return templ_7745c5c3_Err | |
| 1408 | 1408 | } | |
| 1409 | 1409 | if c.Deleted { | |
| 1410 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "<p class=\"mute\">deleted note</p>") | |
| 1411 | - | if templ_7745c5c3_Err != nil { | |
| 1412 | - | return templ_7745c5c3_Err | |
| 1410 | + | if c.Verdict != "" { | |
| 1411 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "<p class=\"mute\">text deleted</p>") | |
| 1412 | + | if templ_7745c5c3_Err != nil { | |
| 1413 | + | return templ_7745c5c3_Err | |
| 1414 | + | } | |
| 1415 | + | } else { | |
| 1416 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "<p class=\"mute\">deleted note</p>") | |
| 1417 | + | if templ_7745c5c3_Err != nil { | |
| 1418 | + | return templ_7745c5c3_Err | |
| 1419 | + | } | |
| 1413 | 1420 | } | |
| 1414 | 1421 | } else { | |
| 1415 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "<div class=\"c-body prose\">") | |
| 1422 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "<div class=\"c-body prose\">") | |
| 1416 | 1423 | if templ_7745c5c3_Err != nil { | |
| 1417 | 1424 | return templ_7745c5c3_Err | |
| 1418 | 1425 | } | |
| 1419 | - | templ_7745c5c3_Err = templ.Raw(string(c.Body)).Render(ctx, templ_7745c5c3_Buffer) | |
| 1420 | - | if templ_7745c5c3_Err != nil { | |
| 1421 | - | return templ_7745c5c3_Err | |
| 1426 | + | if suffix == "-s" { | |
| 1427 | + | templ_7745c5c3_Err = templ.Raw(string(c.BodySplit)).Render(ctx, templ_7745c5c3_Buffer) | |
| 1428 | + | if templ_7745c5c3_Err != nil { | |
| 1429 | + | return templ_7745c5c3_Err | |
| 1430 | + | } | |
| 1431 | + | } else { | |
| 1432 | + | templ_7745c5c3_Err = templ.Raw(string(c.Body)).Render(ctx, templ_7745c5c3_Buffer) | |
| 1433 | + | if templ_7745c5c3_Err != nil { | |
| 1434 | + | return templ_7745c5c3_Err | |
| 1435 | + | } | |
| 1422 | 1436 | } | |
| 1423 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "</div>") | |
| 1437 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "</div>") | |
| 1424 | 1438 | if templ_7745c5c3_Err != nil { | |
| 1425 | 1439 | return templ_7745c5c3_Err | |
| 1426 | 1440 | } | |
| 1427 | 1441 | } | |
| 1428 | 1442 | if c.Edited { | |
| 1429 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "<span class=\"mute\">edited</span> ") | |
| 1443 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "<span class=\"mute\">edited</span> ") | |
| 1430 | 1444 | if templ_7745c5c3_Err != nil { | |
| 1431 | 1445 | return templ_7745c5c3_Err | |
| 1432 | 1446 | } | |
| 1433 | 1447 | } | |
| 1434 | 1448 | if c.Verdict != "" { | |
| 1435 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "<span class=\"c-state\">") | |
| 1449 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "<span class=\"c-state\">") | |
| 1436 | 1450 | if templ_7745c5c3_Err != nil { | |
| 1437 | 1451 | return templ_7745c5c3_Err | |
| 1438 | 1452 | } | |
| 1439 | 1453 | var templ_7745c5c3_Var70 string | |
| 1440 | 1454 | templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict) | |
| 1441 | 1455 | if templ_7745c5c3_Err != nil { | |
| 1442 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 261, Col: 36} | |
| 1456 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 269, Col: 36} | |
| 1443 | 1457 | } | |
| 1444 | 1458 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70)) | |
| 1445 | 1459 | if templ_7745c5c3_Err != nil { | |
| 1446 | 1460 | return templ_7745c5c3_Err | |
| 1447 | 1461 | } | |
| 1448 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "</span> ") | |
| 1462 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "</span> ") | |
| 1449 | 1463 | if templ_7745c5c3_Err != nil { | |
| 1450 | 1464 | return templ_7745c5c3_Err | |
| 1451 | 1465 | } | |
| 1452 | 1466 | } | |
| 1453 | 1467 | if c.Range != "" { | |
| 1454 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "<span class=\"mute\">") | |
| 1468 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "<span class=\"mute\">") | |
| 1455 | 1469 | if templ_7745c5c3_Err != nil { | |
| 1456 | 1470 | return templ_7745c5c3_Err | |
| 1457 | 1471 | } | |
| 1458 | 1472 | var templ_7745c5c3_Var71 string | |
| 1459 | 1473 | templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range) | |
| 1460 | 1474 | if templ_7745c5c3_Err != nil { | |
| 1461 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 264, Col: 31} | |
| 1475 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 272, Col: 31} | |
| 1462 | 1476 | } | |
| 1463 | 1477 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71)) | |
| 1464 | 1478 | if templ_7745c5c3_Err != nil { | |
| 1465 | 1479 | return templ_7745c5c3_Err | |
| 1466 | 1480 | } | |
| 1467 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "</span> ") | |
| 1481 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "</span> ") | |
| 1468 | 1482 | if templ_7745c5c3_Err != nil { | |
| 1469 | 1483 | return templ_7745c5c3_Err | |
| 1470 | 1484 | } | |
| 1471 | 1485 | } | |
| 1472 | 1486 | if c.Quote != "" { | |
| 1473 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "<button type=\"button\" class=\"btn\" data-js data-quote=\"") | |
| 1487 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "<button type=\"button\" class=\"btn\" data-js data-quote=\"") | |
| 1474 | 1488 | if templ_7745c5c3_Err != nil { | |
| 1475 | 1489 | return templ_7745c5c3_Err | |
| 1476 | 1490 | } | |
| 1477 | 1491 | var templ_7745c5c3_Var72 string | |
| 1478 | 1492 | templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote) | |
| 1479 | 1493 | if templ_7745c5c3_Err != nil { | |
| 1480 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 267, Col: 65} | |
| 1494 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 275, Col: 65} | |
| 1481 | 1495 | } | |
| 1482 | 1496 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var72) | |
| 1483 | 1497 | if templ_7745c5c3_Err != nil { | |
| 1484 | 1498 | return templ_7745c5c3_Err | |
| 1485 | 1499 | } | |
| 1486 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "\">Quote</button> ") | |
| 1500 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "\">Quote</button> ") | |
| 1487 | 1501 | if templ_7745c5c3_Err != nil { | |
| 1488 | 1502 | return templ_7745c5c3_Err | |
| 1489 | 1503 | } | |
| 1490 | 1504 | } | |
| 1491 | 1505 | if c.Edit != nil { | |
| 1492 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "<details><summary>Edit</summary><form method=\"post\" action=\"") | |
| 1506 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "<details><summary>Edit</summary><form method=\"post\" action=\"") | |
| 1493 | 1507 | if templ_7745c5c3_Err != nil { | |
| 1494 | 1508 | return templ_7745c5c3_Err | |
| 1495 | 1509 | } | |
| 1496 | 1510 | var templ_7745c5c3_Var73 templ.SafeURL | |
| 1497 | 1511 | templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action)) | |
| 1498 | 1512 | if templ_7745c5c3_Err != nil { | |
| 1499 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 270, Col: 92} | |
| 1513 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 278, Col: 92} | |
| 1500 | 1514 | } | |
| 1501 | 1515 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73)) | |
| 1502 | 1516 | if templ_7745c5c3_Err != nil { | |
| 1503 | 1517 | return templ_7745c5c3_Err | |
| 1504 | 1518 | } | |
| 1505 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "\"><input type=\"hidden\" name=\"from\" value=\"") | |
| 1519 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "\"><input type=\"hidden\" name=\"from\" value=\"") | |
| 1506 | 1520 | if templ_7745c5c3_Err != nil { | |
| 1507 | 1521 | return templ_7745c5c3_Err | |
| 1508 | 1522 | } | |
| 1509 | 1523 | var templ_7745c5c3_Var74 string | |
| 1510 | 1524 | templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From)) | |
| 1511 | 1525 | if templ_7745c5c3_Err != nil { | |
| 1512 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 270, Col: 153} | |
| 1526 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 278, Col: 153} | |
| 1513 | 1527 | } | |
| 1514 | 1528 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var74) | |
| 1515 | 1529 | if templ_7745c5c3_Err != nil { | |
| 1516 | 1530 | return templ_7745c5c3_Err | |
| 1517 | 1531 | } | |
| 1518 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "\"><textarea name=\"text\" maxlength=\"8000\">") | |
| 1532 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "\"><textarea name=\"text\" maxlength=\"8000\">") | |
| 1519 | 1533 | if templ_7745c5c3_Err != nil { | |
| 1520 | 1534 | return templ_7745c5c3_Err | |
| 1521 | 1535 | } | |
| 1522 | 1536 | var templ_7745c5c3_Var75 string | |
| 1523 | 1537 | templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text) | |
| 1524 | 1538 | if templ_7745c5c3_Err != nil { | |
| 1525 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 270, Col: 209} | |
| 1539 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 278, Col: 209} | |
| 1526 | 1540 | } | |
| 1527 | 1541 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var75)) | |
| 1528 | 1542 | if templ_7745c5c3_Err != nil { | |
| 1529 | 1543 | return templ_7745c5c3_Err | |
| 1530 | 1544 | } | |
| 1531 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "</textarea><button class=\"btn\" type=\"submit\">Save</button></form></details> ") | |
| 1545 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "</textarea><button class=\"btn\" type=\"submit\">Save</button></form></details> ") | |
| 1532 | 1546 | if templ_7745c5c3_Err != nil { | |
| 1533 | 1547 | return templ_7745c5c3_Err | |
| 1534 | 1548 | } | |
| 1535 | 1549 | } | |
| 1536 | 1550 | if c.Delete != nil { | |
| 1537 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "<details><summary>Delete</summary><form method=\"post\" action=\"") | |
| 1551 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<details><summary>Delete</summary><form method=\"post\" action=\"") | |
| 1538 | 1552 | if templ_7745c5c3_Err != nil { | |
| 1539 | 1553 | return templ_7745c5c3_Err | |
| 1540 | 1554 | } | |
| 1541 | 1555 | var templ_7745c5c3_Var76 templ.SafeURL | |
| 1542 | 1556 | templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action)) | |
| 1543 | 1557 | if templ_7745c5c3_Err != nil { | |
| 1544 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 273, Col: 96} | |
| 1558 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 281, Col: 96} | |
| 1545 | 1559 | } | |
| 1546 | 1560 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var76)) | |
| 1547 | 1561 | if templ_7745c5c3_Err != nil { | |
| 1548 | 1562 | return templ_7745c5c3_Err | |
| 1549 | 1563 | } | |
| 1550 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "\"><input type=\"hidden\" name=\"from\" value=\"") | |
| 1564 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "\"><input type=\"hidden\" name=\"from\" value=\"") | |
| 1551 | 1565 | if templ_7745c5c3_Err != nil { | |
| 1552 | 1566 | return templ_7745c5c3_Err | |
| 1553 | 1567 | } | |
| 1554 | 1568 | var templ_7745c5c3_Var77 string | |
| 1555 | 1569 | templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From)) | |
| 1556 | 1570 | if templ_7745c5c3_Err != nil { | |
| 1557 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 273, Col: 159} | |
| 1571 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 281, Col: 159} | |
| 1558 | 1572 | } | |
| 1559 | 1573 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var77) | |
| 1560 | 1574 | if templ_7745c5c3_Err != nil { | |
| 1561 | 1575 | return templ_7745c5c3_Err | |
| 1562 | 1576 | } | |
| 1563 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "\"><p>Delete this note?</p><button class=\"btn\" type=\"submit\">Confirm delete</button></form></details> ") | |
| 1577 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "\"><p>Delete this note?</p><button class=\"btn\" type=\"submit\">Confirm delete</button></form></details> ") | |
| 1564 | 1578 | if templ_7745c5c3_Err != nil { | |
| 1565 | 1579 | return templ_7745c5c3_Err | |
| 1566 | 1580 | } | |
| @@ -1572,7 +1586,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1572 | 1586 | } | |
| 1573 | 1587 | } | |
| 1574 | 1588 | if c.Reply != nil { | |
| 1575 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "<details data-reply><summary>Reply</summary>") | |
| 1589 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "<details data-reply><summary>Reply</summary>") | |
| 1576 | 1590 | if templ_7745c5c3_Err != nil { | |
| 1577 | 1591 | return templ_7745c5c3_Err | |
| 1578 | 1592 | } | |
| @@ -1580,80 +1594,80 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1580 | 1594 | if templ_7745c5c3_Err != nil { | |
| 1581 | 1595 | return templ_7745c5c3_Err | |
| 1582 | 1596 | } | |
| 1583 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "</details> ") | |
| 1597 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "</details> ") | |
| 1584 | 1598 | if templ_7745c5c3_Err != nil { | |
| 1585 | 1599 | return templ_7745c5c3_Err | |
| 1586 | 1600 | } | |
| 1587 | 1601 | } | |
| 1588 | 1602 | if c.Resolve != nil { | |
| 1589 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "<form class=\"c-act\" method=\"post\" action=\"") | |
| 1603 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "<form class=\"c-act\" method=\"post\" action=\"") | |
| 1590 | 1604 | if templ_7745c5c3_Err != nil { | |
| 1591 | 1605 | return templ_7745c5c3_Err | |
| 1592 | 1606 | } | |
| 1593 | 1607 | var templ_7745c5c3_Var78 templ.SafeURL | |
| 1594 | 1608 | templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action)) | |
| 1595 | 1609 | if templ_7745c5c3_Err != nil { | |
| 1596 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 284, Col: 77} | |
| 1610 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 77} | |
| 1597 | 1611 | } | |
| 1598 | 1612 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78)) | |
| 1599 | 1613 | if templ_7745c5c3_Err != nil { | |
| 1600 | 1614 | return templ_7745c5c3_Err | |
| 1601 | 1615 | } | |
| 1602 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "\"><input type=\"hidden\" name=\"resolved\" value=\"") | |
| 1616 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "\"><input type=\"hidden\" name=\"resolved\" value=\"") | |
| 1603 | 1617 | if templ_7745c5c3_Err != nil { | |
| 1604 | 1618 | return templ_7745c5c3_Err | |
| 1605 | 1619 | } | |
| 1606 | 1620 | var templ_7745c5c3_Var79 string | |
| 1607 | 1621 | templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value)) | |
| 1608 | 1622 | if templ_7745c5c3_Err != nil { | |
| 1609 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 285, Col: 74} | |
| 1623 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 293, Col: 74} | |
| 1610 | 1624 | } | |
| 1611 | 1625 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var79) | |
| 1612 | 1626 | if templ_7745c5c3_Err != nil { | |
| 1613 | 1627 | return templ_7745c5c3_Err | |
| 1614 | 1628 | } | |
| 1615 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "\"> ") | |
| 1629 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "\"> ") | |
| 1616 | 1630 | if templ_7745c5c3_Err != nil { | |
| 1617 | 1631 | return templ_7745c5c3_Err | |
| 1618 | 1632 | } | |
| 1619 | 1633 | if c.Resolve.From > 0 { | |
| 1620 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "<input type=\"hidden\" name=\"from\" value=\"") | |
| 1634 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "<input type=\"hidden\" name=\"from\" value=\"") | |
| 1621 | 1635 | if templ_7745c5c3_Err != nil { | |
| 1622 | 1636 | return templ_7745c5c3_Err | |
| 1623 | 1637 | } | |
| 1624 | 1638 | var templ_7745c5c3_Var80 string | |
| 1625 | 1639 | templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From)) | |
| 1626 | 1640 | if templ_7745c5c3_Err != nil { | |
| 1627 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 287, Col: 66} | |
| 1641 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 295, Col: 66} | |
| 1628 | 1642 | } | |
| 1629 | 1643 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80) | |
| 1630 | 1644 | if templ_7745c5c3_Err != nil { | |
| 1631 | 1645 | return templ_7745c5c3_Err | |
| 1632 | 1646 | } | |
| 1633 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "\"> ") | |
| 1647 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "\"> ") | |
| 1634 | 1648 | if templ_7745c5c3_Err != nil { | |
| 1635 | 1649 | return templ_7745c5c3_Err | |
| 1636 | 1650 | } | |
| 1637 | 1651 | } | |
| 1638 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "<button type=\"submit\" class=\"btn\">") | |
| 1652 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "<button type=\"submit\" class=\"btn\">") | |
| 1639 | 1653 | if templ_7745c5c3_Err != nil { | |
| 1640 | 1654 | return templ_7745c5c3_Err | |
| 1641 | 1655 | } | |
| 1642 | 1656 | var templ_7745c5c3_Var81 string | |
| 1643 | 1657 | templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label) | |
| 1644 | 1658 | if templ_7745c5c3_Err != nil { | |
| 1645 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 289, Col: 55} | |
| 1659 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 297, Col: 55} | |
| 1646 | 1660 | } | |
| 1647 | 1661 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81)) | |
| 1648 | 1662 | if templ_7745c5c3_Err != nil { | |
| 1649 | 1663 | return templ_7745c5c3_Err | |
| 1650 | 1664 | } | |
| 1651 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "</button></form>") | |
| 1665 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "</button></form>") | |
| 1652 | 1666 | if templ_7745c5c3_Err != nil { | |
| 1653 | 1667 | return templ_7745c5c3_Err | |
| 1654 | 1668 | } | |
| 1655 | 1669 | } | |
| 1656 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "</div>") | |
| 1670 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "</div>") | |
| 1657 | 1671 | if templ_7745c5c3_Err != nil { | |
| 1658 | 1672 | return templ_7745c5c3_Err | |
| 1659 | 1673 | } | |
| @@ -1690,198 +1704,198 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1690 | 1704 | templ_7745c5c3_Var82 = templ.NopComponent | |
| 1691 | 1705 | } | |
| 1692 | 1706 | ctx = templ.ClearChildren(ctx) | |
| 1693 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "<form class=\"cform\" method=\"post\" action=\"") | |
| 1707 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "<form class=\"cform\" method=\"post\" action=\"") | |
| 1694 | 1708 | if templ_7745c5c3_Err != nil { | |
| 1695 | 1709 | return templ_7745c5c3_Err | |
| 1696 | 1710 | } | |
| 1697 | 1711 | var templ_7745c5c3_Var83 templ.SafeURL | |
| 1698 | 1712 | templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action)) | |
| 1699 | 1713 | if templ_7745c5c3_Err != nil { | |
| 1700 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 67} | |
| 1714 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 312, Col: 67} | |
| 1701 | 1715 | } | |
| 1702 | 1716 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var83)) | |
| 1703 | 1717 | if templ_7745c5c3_Err != nil { | |
| 1704 | 1718 | return templ_7745c5c3_Err | |
| 1705 | 1719 | } | |
| 1706 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "\"><label for=\"") | |
| 1720 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "\"><label for=\"") | |
| 1707 | 1721 | if templ_7745c5c3_Err != nil { | |
| 1708 | 1722 | return templ_7745c5c3_Err | |
| 1709 | 1723 | } | |
| 1710 | 1724 | var templ_7745c5c3_Var84 string | |
| 1711 | 1725 | templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | |
| 1712 | 1726 | if templ_7745c5c3_Err != nil { | |
| 1713 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 305, Col: 28} | |
| 1727 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 313, Col: 28} | |
| 1714 | 1728 | } | |
| 1715 | 1729 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var84) | |
| 1716 | 1730 | if templ_7745c5c3_Err != nil { | |
| 1717 | 1731 | return templ_7745c5c3_Err | |
| 1718 | 1732 | } | |
| 1719 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "\">") | |
| 1733 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "\">") | |
| 1720 | 1734 | if templ_7745c5c3_Err != nil { | |
| 1721 | 1735 | return templ_7745c5c3_Err | |
| 1722 | 1736 | } | |
| 1723 | 1737 | var templ_7745c5c3_Var85 string | |
| 1724 | 1738 | templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title) | |
| 1725 | 1739 | if templ_7745c5c3_Err != nil { | |
| 1726 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 305, Col: 40} | |
| 1740 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 313, Col: 40} | |
| 1727 | 1741 | } | |
| 1728 | 1742 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85)) | |
| 1729 | 1743 | if templ_7745c5c3_Err != nil { | |
| 1730 | 1744 | return templ_7745c5c3_Err | |
| 1731 | 1745 | } | |
| 1732 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "</label> <textarea id=\"") | |
| 1746 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "</label> <textarea id=\"") | |
| 1733 | 1747 | if templ_7745c5c3_Err != nil { | |
| 1734 | 1748 | return templ_7745c5c3_Err | |
| 1735 | 1749 | } | |
| 1736 | 1750 | var templ_7745c5c3_Var86 string | |
| 1737 | 1751 | templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | |
| 1738 | 1752 | if templ_7745c5c3_Err != nil { | |
| 1739 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 307, Col: 21} | |
| 1753 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 315, Col: 21} | |
| 1740 | 1754 | } | |
| 1741 | 1755 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var86) | |
| 1742 | 1756 | if templ_7745c5c3_Err != nil { | |
| 1743 | 1757 | return templ_7745c5c3_Err | |
| 1744 | 1758 | } | |
| 1745 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "\" name=\"text\" rows=\"3\" maxlength=\"8000\" placeholder=\"Markdown, 8000 characters at most\"") | |
| 1759 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "\" name=\"text\" rows=\"3\" maxlength=\"8000\" placeholder=\"Markdown, 8000 characters at most\"") | |
| 1746 | 1760 | if templ_7745c5c3_Err != nil { | |
| 1747 | 1761 | return templ_7745c5c3_Err | |
| 1748 | 1762 | } | |
| 1749 | 1763 | if f.Focus { | |
| 1750 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, " autofocus") | |
| 1764 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, " autofocus") | |
| 1751 | 1765 | if templ_7745c5c3_Err != nil { | |
| 1752 | 1766 | return templ_7745c5c3_Err | |
| 1753 | 1767 | } | |
| 1754 | 1768 | } | |
| 1755 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "></textarea> ") | |
| 1769 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "></textarea> ") | |
| 1756 | 1770 | if templ_7745c5c3_Err != nil { | |
| 1757 | 1771 | return templ_7745c5c3_Err | |
| 1758 | 1772 | } | |
| 1759 | 1773 | if f.Path != "" { | |
| 1760 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "<input type=\"hidden\" name=\"path\" value=\"") | |
| 1774 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "<input type=\"hidden\" name=\"path\" value=\"") | |
| 1761 | 1775 | if templ_7745c5c3_Err != nil { | |
| 1762 | 1776 | return templ_7745c5c3_Err | |
| 1763 | 1777 | } | |
| 1764 | 1778 | var templ_7745c5c3_Var87 string | |
| 1765 | 1779 | templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path) | |
| 1766 | 1780 | if templ_7745c5c3_Err != nil { | |
| 1767 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 317, Col: 50} | |
| 1781 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 325, Col: 50} | |
| 1768 | 1782 | } | |
| 1769 | 1783 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var87) | |
| 1770 | 1784 | if templ_7745c5c3_Err != nil { | |
| 1771 | 1785 | return templ_7745c5c3_Err | |
| 1772 | 1786 | } | |
| 1773 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "\"> <input type=\"hidden\" name=\"line\" value=\"") | |
| 1787 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "\"> <input type=\"hidden\" name=\"line\" value=\"") | |
| 1774 | 1788 | if templ_7745c5c3_Err != nil { | |
| 1775 | 1789 | return templ_7745c5c3_Err | |
| 1776 | 1790 | } | |
| 1777 | 1791 | var templ_7745c5c3_Var88 string | |
| 1778 | 1792 | templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line) | |
| 1779 | 1793 | if templ_7745c5c3_Err != nil { | |
| 1780 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 50} | |
| 1794 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 326, Col: 50} | |
| 1781 | 1795 | } | |
| 1782 | 1796 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var88) | |
| 1783 | 1797 | if templ_7745c5c3_Err != nil { | |
| 1784 | 1798 | return templ_7745c5c3_Err | |
| 1785 | 1799 | } | |
| 1786 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "\"> <input type=\"hidden\" name=\"side\" value=\"") | |
| 1800 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "\"> <input type=\"hidden\" name=\"side\" value=\"") | |
| 1787 | 1801 | if templ_7745c5c3_Err != nil { | |
| 1788 | 1802 | return templ_7745c5c3_Err | |
| 1789 | 1803 | } | |
| 1790 | 1804 | var templ_7745c5c3_Var89 string | |
| 1791 | 1805 | templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side) | |
| 1792 | 1806 | if templ_7745c5c3_Err != nil { | |
| 1793 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 319, Col: 50} | |
| 1807 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 327, Col: 50} | |
| 1794 | 1808 | } | |
| 1795 | 1809 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89) | |
| 1796 | 1810 | if templ_7745c5c3_Err != nil { | |
| 1797 | 1811 | return templ_7745c5c3_Err | |
| 1798 | 1812 | } | |
| 1799 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "\"> <label>from line <input type=\"number\" name=\"start_line\" min=\"1\" value=\"") | |
| 1813 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\"> <label>from line <input type=\"number\" name=\"start_line\" min=\"1\" value=\"") | |
| 1800 | 1814 | if templ_7745c5c3_Err != nil { | |
| 1801 | 1815 | return templ_7745c5c3_Err | |
| 1802 | 1816 | } | |
| 1803 | 1817 | var templ_7745c5c3_Var90 string | |
| 1804 | 1818 | templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine) | |
| 1805 | 1819 | if templ_7745c5c3_Err != nil { | |
| 1806 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 320, Col: 86} | |
| 1820 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 328, Col: 86} | |
| 1807 | 1821 | } | |
| 1808 | 1822 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90) | |
| 1809 | 1823 | if templ_7745c5c3_Err != nil { | |
| 1810 | 1824 | return templ_7745c5c3_Err | |
| 1811 | 1825 | } | |
| 1812 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\"></label> ") | |
| 1826 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "\"></label> ") | |
| 1813 | 1827 | if templ_7745c5c3_Err != nil { | |
| 1814 | 1828 | return templ_7745c5c3_Err | |
| 1815 | 1829 | } | |
| 1816 | 1830 | } | |
| 1817 | 1831 | if f.ReplyTo != "" { | |
| 1818 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "<input type=\"hidden\" name=\"reply_to\" value=\"") | |
| 1832 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "<input type=\"hidden\" name=\"reply_to\" value=\"") | |
| 1819 | 1833 | if templ_7745c5c3_Err != nil { | |
| 1820 | 1834 | return templ_7745c5c3_Err | |
| 1821 | 1835 | } | |
| 1822 | 1836 | var templ_7745c5c3_Var91 string | |
| 1823 | 1837 | templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo) | |
| 1824 | 1838 | if templ_7745c5c3_Err != nil { | |
| 1825 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 57} | |
| 1839 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 331, Col: 57} | |
| 1826 | 1840 | } | |
| 1827 | 1841 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91) | |
| 1828 | 1842 | if templ_7745c5c3_Err != nil { | |
| 1829 | 1843 | return templ_7745c5c3_Err | |
| 1830 | 1844 | } | |
| 1831 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "\"> ") | |
| 1845 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "\"> ") | |
| 1832 | 1846 | if templ_7745c5c3_Err != nil { | |
| 1833 | 1847 | return templ_7745c5c3_Err | |
| 1834 | 1848 | } | |
| 1835 | 1849 | } | |
| 1836 | 1850 | if f.Path == "" && f.ReplyTo == "" { | |
| 1837 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "<fieldset><legend>Verdict</legend><label><input type=\"radio\" name=\"verdict\" value=\"\" checked>Note</label><label><input type=\"radio\" name=\"verdict\" value=\"approve\">Approve</label><label><input type=\"radio\" name=\"verdict\" value=\"changes_requested\">Request changes</label></fieldset>") | |
| 1851 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "<fieldset><legend>Verdict</legend><label><input type=\"radio\" name=\"verdict\" value=\"\" checked>Note</label><label><input type=\"radio\" name=\"verdict\" value=\"approve\">Approve</label><label><input type=\"radio\" name=\"verdict\" value=\"changes_requested\">Request changes</label></fieldset>") | |
| 1838 | 1852 | if templ_7745c5c3_Err != nil { | |
| 1839 | 1853 | return templ_7745c5c3_Err | |
| 1840 | 1854 | } | |
| 1841 | 1855 | } | |
| 1842 | 1856 | if f.From > 0 { | |
| 1843 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "<input type=\"hidden\" name=\"from\" value=\"") | |
| 1857 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, "<input type=\"hidden\" name=\"from\" value=\"") | |
| 1844 | 1858 | if templ_7745c5c3_Err != nil { | |
| 1845 | 1859 | return templ_7745c5c3_Err | |
| 1846 | 1860 | } | |
| 1847 | 1861 | var templ_7745c5c3_Var92 string | |
| 1848 | 1862 | templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From)) | |
| 1849 | 1863 | if templ_7745c5c3_Err != nil { | |
| 1850 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 329, Col: 56} | |
| 1864 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 337, Col: 56} | |
| 1851 | 1865 | } | |
| 1852 | 1866 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) | |
| 1853 | 1867 | if templ_7745c5c3_Err != nil { | |
| 1854 | 1868 | return templ_7745c5c3_Err | |
| 1855 | 1869 | } | |
| 1856 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, "\">") | |
| 1870 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "\">") | |
| 1857 | 1871 | if templ_7745c5c3_Err != nil { | |
| 1858 | 1872 | return templ_7745c5c3_Err | |
| 1859 | 1873 | } | |
| 1860 | 1874 | } | |
| 1861 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "<div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Comment</button> ") | |
| 1875 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "<div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Comment</button> ") | |
| 1862 | 1876 | if templ_7745c5c3_Err != nil { | |
| 1863 | 1877 | return templ_7745c5c3_Err | |
| 1864 | 1878 | } | |
| 1865 | 1879 | if f.Cancel != "" { | |
| 1866 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "<a class=\"btn\" href=\"") | |
| 1880 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "<a class=\"btn\" href=\"") | |
| 1867 | 1881 | if templ_7745c5c3_Err != nil { | |
| 1868 | 1882 | return templ_7745c5c3_Err | |
| 1869 | 1883 | } | |
| 1870 | 1884 | var templ_7745c5c3_Var93 templ.SafeURL | |
| 1871 | 1885 | templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel)) | |
| 1872 | 1886 | if templ_7745c5c3_Err != nil { | |
| 1873 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 334, Col: 49} | |
| 1887 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 342, Col: 49} | |
| 1874 | 1888 | } | |
| 1875 | 1889 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var93)) | |
| 1876 | 1890 | if templ_7745c5c3_Err != nil { | |
| 1877 | 1891 | return templ_7745c5c3_Err | |
| 1878 | 1892 | } | |
| 1879 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "\">Cancel</a>") | |
| 1893 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "\">Cancel</a>") | |
| 1880 | 1894 | if templ_7745c5c3_Err != nil { | |
| 1881 | 1895 | return templ_7745c5c3_Err | |
| 1882 | 1896 | } | |
| 1883 | 1897 | } | |
| 1884 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "</div></form>") | |
| 1898 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "</div></form>") | |
| 1885 | 1899 | if templ_7745c5c3_Err != nil { | |
| 1886 | 1900 | return templ_7745c5c3_Err | |
| 1887 | 1901 | } | |
| @@ -1910,20 +1924,20 @@ func mrRail(p MRPage) templ.Component { | |||
| 1910 | 1924 | templ_7745c5c3_Var94 = templ.NopComponent | |
| 1911 | 1925 | } | |
| 1912 | 1926 | ctx = templ.ClearChildren(ctx) | |
| 1913 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "<section aria-labelledby=\"r-files\" class=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">") | |
| 1927 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "<section aria-labelledby=\"r-files\" class=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">") | |
| 1914 | 1928 | if templ_7745c5c3_Err != nil { | |
| 1915 | 1929 | return templ_7745c5c3_Err | |
| 1916 | 1930 | } | |
| 1917 | 1931 | var templ_7745c5c3_Var95 string | |
| 1918 | 1932 | templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | |
| 1919 | 1933 | if templ_7745c5c3_Err != nil { | |
| 1920 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 343, Col: 49} | |
| 1934 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 351, Col: 49} | |
| 1921 | 1935 | } | |
| 1922 | 1936 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95)) | |
| 1923 | 1937 | if templ_7745c5c3_Err != nil { | |
| 1924 | 1938 | return templ_7745c5c3_Err | |
| 1925 | 1939 | } | |
| 1926 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "</span><kbd aria-hidden=\"true\">g f</kbd> <button type=\"button\" class=\"btn icon fold\" data-js aria-expanded=\"true\" title=\"fold the list of files\" hx-on:click=\"ermiteMR.foldFiles()\"><span class=\"ico i-chevron\" aria-hidden=\"true\"></span><span class=\"sr\">fold the list of files</span></button></h2>") | |
| 1940 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 174, "</span><kbd aria-hidden=\"true\">g f</kbd> <button type=\"button\" class=\"btn icon fold\" data-js aria-expanded=\"true\" title=\"fold the list of files\" hx-on:click=\"ermiteMR.foldFiles()\"><span class=\"ico i-chevron\" aria-hidden=\"true\"></span><span class=\"sr\">fold the list of files</span></button></h2>") | |
| 1927 | 1941 | if templ_7745c5c3_Err != nil { | |
| 1928 | 1942 | return templ_7745c5c3_Err | |
| 1929 | 1943 | } | |
| @@ -1931,71 +1945,71 @@ func mrRail(p MRPage) templ.Component { | |||
| 1931 | 1945 | if templ_7745c5c3_Err != nil { | |
| 1932 | 1946 | return templ_7745c5c3_Err | |
| 1933 | 1947 | } | |
| 1934 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 174, "</section>") | |
| 1948 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "</section>") | |
| 1935 | 1949 | if templ_7745c5c3_Err != nil { | |
| 1936 | 1950 | return templ_7745c5c3_Err | |
| 1937 | 1951 | } | |
| 1938 | 1952 | if len(p.Verdicts) > 0 { | |
| 1939 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "<section><h2>Verdicts</h2><ul>") | |
| 1953 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<section><h2>Verdicts</h2><ul>") | |
| 1940 | 1954 | if templ_7745c5c3_Err != nil { | |
| 1941 | 1955 | return templ_7745c5c3_Err | |
| 1942 | 1956 | } | |
| 1943 | 1957 | for _, v := range p.Verdicts { | |
| 1944 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<li><a href=\"") | |
| 1958 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "<li><a href=\"") | |
| 1945 | 1959 | if templ_7745c5c3_Err != nil { | |
| 1946 | 1960 | return templ_7745c5c3_Err | |
| 1947 | 1961 | } | |
| 1948 | 1962 | var templ_7745c5c3_Var96 templ.SafeURL | |
| 1949 | 1963 | templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href)) | |
| 1950 | 1964 | if templ_7745c5c3_Err != nil { | |
| 1951 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 356, Col: 37} | |
| 1965 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 364, Col: 37} | |
| 1952 | 1966 | } | |
| 1953 | 1967 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) | |
| 1954 | 1968 | if templ_7745c5c3_Err != nil { | |
| 1955 | 1969 | return templ_7745c5c3_Err | |
| 1956 | 1970 | } | |
| 1957 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "\">") | |
| 1971 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, "\">") | |
| 1958 | 1972 | if templ_7745c5c3_Err != nil { | |
| 1959 | 1973 | return templ_7745c5c3_Err | |
| 1960 | 1974 | } | |
| 1961 | 1975 | var templ_7745c5c3_Var97 string | |
| 1962 | 1976 | templ_7745c5c3_Var97, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author) | |
| 1963 | 1977 | if templ_7745c5c3_Err != nil { | |
| 1964 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 356, Col: 50} | |
| 1978 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 364, Col: 50} | |
| 1965 | 1979 | } | |
| 1966 | 1980 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var97)) | |
| 1967 | 1981 | if templ_7745c5c3_Err != nil { | |
| 1968 | 1982 | return templ_7745c5c3_Err | |
| 1969 | 1983 | } | |
| 1970 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, ": ") | |
| 1984 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, ": ") | |
| 1971 | 1985 | if templ_7745c5c3_Err != nil { | |
| 1972 | 1986 | return templ_7745c5c3_Err | |
| 1973 | 1987 | } | |
| 1974 | 1988 | var templ_7745c5c3_Var98 string | |
| 1975 | 1989 | templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label) | |
| 1976 | 1990 | if templ_7745c5c3_Err != nil { | |
| 1977 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 356, Col: 63} | |
| 1991 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 364, Col: 63} | |
| 1978 | 1992 | } | |
| 1979 | 1993 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98)) | |
| 1980 | 1994 | if templ_7745c5c3_Err != nil { | |
| 1981 | 1995 | return templ_7745c5c3_Err | |
| 1982 | 1996 | } | |
| 1983 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, "</a> ") | |
| 1997 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "</a> ") | |
| 1984 | 1998 | if templ_7745c5c3_Err != nil { | |
| 1985 | 1999 | return templ_7745c5c3_Err | |
| 1986 | 2000 | } | |
| 1987 | 2001 | if v.Stale { | |
| 1988 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "<span class=\"mute\">(stale)</span>") | |
| 2002 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "<span class=\"mute\">(stale)</span>") | |
| 1989 | 2003 | if templ_7745c5c3_Err != nil { | |
| 1990 | 2004 | return templ_7745c5c3_Err | |
| 1991 | 2005 | } | |
| 1992 | 2006 | } | |
| 1993 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "</li>") | |
| 2007 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "</li>") | |
| 1994 | 2008 | if templ_7745c5c3_Err != nil { | |
| 1995 | 2009 | return templ_7745c5c3_Err | |
| 1996 | 2010 | } | |
| 1997 | 2011 | } | |
| 1998 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "</ul></section>") | |
| 2012 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "</ul></section>") | |
| 1999 | 2013 | if templ_7745c5c3_Err != nil { | |
| 2000 | 2014 | return templ_7745c5c3_Err | |
| 2001 | 2015 | } | |
| @@ -2004,74 +2018,74 @@ func mrRail(p MRPage) templ.Component { | |||
| 2004 | 2018 | if templ_7745c5c3_Err != nil { | |
| 2005 | 2019 | return templ_7745c5c3_Err | |
| 2006 | 2020 | } | |
| 2007 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "<section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">") | |
| 2021 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "<section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">") | |
| 2008 | 2022 | if templ_7745c5c3_Err != nil { | |
| 2009 | 2023 | return templ_7745c5c3_Err | |
| 2010 | 2024 | } | |
| 2011 | 2025 | var templ_7745c5c3_Var99 string | |
| 2012 | 2026 | templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits))) | |
| 2013 | 2027 | if templ_7745c5c3_Err != nil { | |
| 2014 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 367, Col: 71} | |
| 2028 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 375, Col: 71} | |
| 2015 | 2029 | } | |
| 2016 | 2030 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99)) | |
| 2017 | 2031 | if templ_7745c5c3_Err != nil { | |
| 2018 | 2032 | return templ_7745c5c3_Err | |
| 2019 | 2033 | } | |
| 2020 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "</span></h2><ul class=\"pcommits\">") | |
| 2034 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, "</span></h2><ul class=\"pcommits\">") | |
| 2021 | 2035 | if templ_7745c5c3_Err != nil { | |
| 2022 | 2036 | return templ_7745c5c3_Err | |
| 2023 | 2037 | } | |
| 2024 | 2038 | for _, c := range p.Commits { | |
| 2025 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, "<li") | |
| 2039 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, "<li") | |
| 2026 | 2040 | if templ_7745c5c3_Err != nil { | |
| 2027 | 2041 | return templ_7745c5c3_Err | |
| 2028 | 2042 | } | |
| 2029 | 2043 | if c.New { | |
| 2030 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, " data-new") | |
| 2044 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, " data-new") | |
| 2031 | 2045 | if templ_7745c5c3_Err != nil { | |
| 2032 | 2046 | return templ_7745c5c3_Err | |
| 2033 | 2047 | } | |
| 2034 | 2048 | } | |
| 2035 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, "><a href=\"") | |
| 2049 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, "><a href=\"") | |
| 2036 | 2050 | if templ_7745c5c3_Err != nil { | |
| 2037 | 2051 | return templ_7745c5c3_Err | |
| 2038 | 2052 | } | |
| 2039 | 2053 | var templ_7745c5c3_Var100 templ.SafeURL | |
| 2040 | 2054 | templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) | |
| 2041 | 2055 | if templ_7745c5c3_Err != nil { | |
| 2042 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 371, Col: 36} | |
| 2056 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 379, Col: 36} | |
| 2043 | 2057 | } | |
| 2044 | 2058 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100)) | |
| 2045 | 2059 | if templ_7745c5c3_Err != nil { | |
| 2046 | 2060 | return templ_7745c5c3_Err | |
| 2047 | 2061 | } | |
| 2048 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, "\">") | |
| 2062 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, "\">") | |
| 2049 | 2063 | if templ_7745c5c3_Err != nil { | |
| 2050 | 2064 | return templ_7745c5c3_Err | |
| 2051 | 2065 | } | |
| 2052 | 2066 | var templ_7745c5c3_Var101 string | |
| 2053 | 2067 | templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | |
| 2054 | 2068 | if templ_7745c5c3_Err != nil { | |
| 2055 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 371, Col: 48} | |
| 2069 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 379, Col: 48} | |
| 2056 | 2070 | } | |
| 2057 | 2071 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101)) | |
| 2058 | 2072 | if templ_7745c5c3_Err != nil { | |
| 2059 | 2073 | return templ_7745c5c3_Err | |
| 2060 | 2074 | } | |
| 2061 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, "</a> <span class=\"s\">") | |
| 2075 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "</a> <span class=\"s\">") | |
| 2062 | 2076 | if templ_7745c5c3_Err != nil { | |
| 2063 | 2077 | return templ_7745c5c3_Err | |
| 2064 | 2078 | } | |
| 2065 | 2079 | var templ_7745c5c3_Var102 string | |
| 2066 | 2080 | templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | |
| 2067 | 2081 | if templ_7745c5c3_Err != nil { | |
| 2068 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 372, Col: 32} | |
| 2082 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 380, Col: 32} | |
| 2069 | 2083 | } | |
| 2070 | 2084 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) | |
| 2071 | 2085 | if templ_7745c5c3_Err != nil { | |
| 2072 | 2086 | return templ_7745c5c3_Err | |
| 2073 | 2087 | } | |
| 2074 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "</span> ") | |
| 2088 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, "</span> ") | |
| 2075 | 2089 | if templ_7745c5c3_Err != nil { | |
| 2076 | 2090 | return templ_7745c5c3_Err | |
| 2077 | 2091 | } | |
| @@ -2081,20 +2095,20 @@ func mrRail(p MRPage) templ.Component { | |||
| 2081 | 2095 | return templ_7745c5c3_Err | |
| 2082 | 2096 | } | |
| 2083 | 2097 | } | |
| 2084 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, "<span class=\"mute\">") | |
| 2098 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, "<span class=\"mute\">") | |
| 2085 | 2099 | if templ_7745c5c3_Err != nil { | |
| 2086 | 2100 | return templ_7745c5c3_Err | |
| 2087 | 2101 | } | |
| 2088 | 2102 | var templ_7745c5c3_Var103 string | |
| 2089 | 2103 | templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | |
| 2090 | 2104 | if templ_7745c5c3_Err != nil { | |
| 2091 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 377, Col: 16} | |
| 2105 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 385, Col: 16} | |
| 2092 | 2106 | } | |
| 2093 | 2107 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) | |
| 2094 | 2108 | if templ_7745c5c3_Err != nil { | |
| 2095 | 2109 | return templ_7745c5c3_Err | |
| 2096 | 2110 | } | |
| 2097 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, " ") | |
| 2111 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, " ") | |
| 2098 | 2112 | if templ_7745c5c3_Err != nil { | |
| 2099 | 2113 | return templ_7745c5c3_Err | |
| 2100 | 2114 | } | |
| @@ -2102,39 +2116,39 @@ func mrRail(p MRPage) templ.Component { | |||
| 2102 | 2116 | var templ_7745c5c3_Var104 string | |
| 2103 | 2117 | templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | |
| 2104 | 2118 | if templ_7745c5c3_Err != nil { | |
| 2105 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 379, Col: 15} | |
| 2119 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 387, Col: 15} | |
| 2106 | 2120 | } | |
| 2107 | 2121 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) | |
| 2108 | 2122 | if templ_7745c5c3_Err != nil { | |
| 2109 | 2123 | return templ_7745c5c3_Err | |
| 2110 | 2124 | } | |
| 2111 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, "<time datetime=\"") | |
| 2125 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "<time datetime=\"") | |
| 2112 | 2126 | if templ_7745c5c3_Err != nil { | |
| 2113 | 2127 | return templ_7745c5c3_Err | |
| 2114 | 2128 | } | |
| 2115 | 2129 | var templ_7745c5c3_Var105 string | |
| 2116 | 2130 | templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | |
| 2117 | 2131 | if templ_7745c5c3_Err != nil { | |
| 2118 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 379, Col: 42} | |
| 2132 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 387, Col: 42} | |
| 2119 | 2133 | } | |
| 2120 | 2134 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var105) | |
| 2121 | 2135 | if templ_7745c5c3_Err != nil { | |
| 2122 | 2136 | return templ_7745c5c3_Err | |
| 2123 | 2137 | } | |
| 2124 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "\">") | |
| 2138 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, "\">") | |
| 2125 | 2139 | if templ_7745c5c3_Err != nil { | |
| 2126 | 2140 | return templ_7745c5c3_Err | |
| 2127 | 2141 | } | |
| 2128 | 2142 | var templ_7745c5c3_Var106 string | |
| 2129 | 2143 | templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | |
| 2130 | 2144 | if templ_7745c5c3_Err != nil { | |
| 2131 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 379, Col: 53} | |
| 2145 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 387, Col: 53} | |
| 2132 | 2146 | } | |
| 2133 | 2147 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var106)) | |
| 2134 | 2148 | if templ_7745c5c3_Err != nil { | |
| 2135 | 2149 | return templ_7745c5c3_Err | |
| 2136 | 2150 | } | |
| 2137 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, "</time> ") | |
| 2151 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "</time> ") | |
| 2138 | 2152 | if templ_7745c5c3_Err != nil { | |
| 2139 | 2153 | return templ_7745c5c3_Err | |
| 2140 | 2154 | } | |
| @@ -2143,76 +2157,76 @@ func mrRail(p MRPage) templ.Component { | |||
| 2143 | 2157 | var templ_7745c5c3_Var107 string | |
| 2144 | 2158 | templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinStringErrs(" · new") | |
| 2145 | 2159 | if templ_7745c5c3_Err != nil { | |
| 2146 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 382, Col: 18} | |
| 2160 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 390, Col: 18} | |
| 2147 | 2161 | } | |
| 2148 | 2162 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107)) | |
| 2149 | 2163 | if templ_7745c5c3_Err != nil { | |
| 2150 | 2164 | return templ_7745c5c3_Err | |
| 2151 | 2165 | } | |
| 2152 | 2166 | } | |
| 2153 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "</span></li>") | |
| 2167 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, "</span></li>") | |
| 2154 | 2168 | if templ_7745c5c3_Err != nil { | |
| 2155 | 2169 | return templ_7745c5c3_Err | |
| 2156 | 2170 | } | |
| 2157 | 2171 | } | |
| 2158 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, "</ul>") | |
| 2172 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "</ul>") | |
| 2159 | 2173 | if templ_7745c5c3_Err != nil { | |
| 2160 | 2174 | return templ_7745c5c3_Err | |
| 2161 | 2175 | } | |
| 2162 | 2176 | if len(p.Commits) == 0 { | |
| 2163 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "<p class=\"dim\">no commit to merge.</p>") | |
| 2177 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, "<p class=\"dim\">no commit to merge.</p>") | |
| 2164 | 2178 | if templ_7745c5c3_Err != nil { | |
| 2165 | 2179 | return templ_7745c5c3_Err | |
| 2166 | 2180 | } | |
| 2167 | 2181 | } | |
| 2168 | 2182 | if p.CommitsNote != "" { | |
| 2169 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, "<p class=\"note\">") | |
| 2183 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "<p class=\"note\">") | |
| 2170 | 2184 | if templ_7745c5c3_Err != nil { | |
| 2171 | 2185 | return templ_7745c5c3_Err | |
| 2172 | 2186 | } | |
| 2173 | 2187 | var templ_7745c5c3_Var108 string | |
| 2174 | 2188 | templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) | |
| 2175 | 2189 | if templ_7745c5c3_Err != nil { | |
| 2176 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 392, Col: 34} | |
| 2190 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 400, Col: 34} | |
| 2177 | 2191 | } | |
| 2178 | 2192 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) | |
| 2179 | 2193 | if templ_7745c5c3_Err != nil { | |
| 2180 | 2194 | return templ_7745c5c3_Err | |
| 2181 | 2195 | } | |
| 2182 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "</p>") | |
| 2196 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "</p>") | |
| 2183 | 2197 | if templ_7745c5c3_Err != nil { | |
| 2184 | 2198 | return templ_7745c5c3_Err | |
| 2185 | 2199 | } | |
| 2186 | 2200 | } | |
| 2187 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "</section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>") | |
| 2201 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "</section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>") | |
| 2188 | 2202 | if templ_7745c5c3_Err != nil { | |
| 2189 | 2203 | return templ_7745c5c3_Err | |
| 2190 | 2204 | } | |
| 2191 | 2205 | var templ_7745c5c3_Var109 string | |
| 2192 | 2206 | templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", ")) | |
| 2193 | 2207 | if templ_7745c5c3_Err != nil { | |
| 2194 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 399, Col: 36} | |
| 2208 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 407, Col: 36} | |
| 2195 | 2209 | } | |
| 2196 | 2210 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109)) | |
| 2197 | 2211 | if templ_7745c5c3_Err != nil { | |
| 2198 | 2212 | return templ_7745c5c3_Err | |
| 2199 | 2213 | } | |
| 2200 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "</dd><dt>checks</dt><dd>") | |
| 2214 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, "</dd><dt>checks</dt><dd>") | |
| 2201 | 2215 | if templ_7745c5c3_Err != nil { | |
| 2202 | 2216 | return templ_7745c5c3_Err | |
| 2203 | 2217 | } | |
| 2204 | 2218 | if p.ChecksBlock { | |
| 2205 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, "failing ones block the merge") | |
| 2219 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "failing ones block the merge") | |
| 2206 | 2220 | if templ_7745c5c3_Err != nil { | |
| 2207 | 2221 | return templ_7745c5c3_Err | |
| 2208 | 2222 | } | |
| 2209 | 2223 | } else { | |
| 2210 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "do not block the merge") | |
| 2224 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, "do not block the merge") | |
| 2211 | 2225 | if templ_7745c5c3_Err != nil { | |
| 2212 | 2226 | return templ_7745c5c3_Err | |
| 2213 | 2227 | } | |
| 2214 | 2228 | } | |
| 2215 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, "</dd></dl></section>") | |
| 2229 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, "</dd></dl></section>") | |
| 2216 | 2230 | if templ_7745c5c3_Err != nil { | |
| 2217 | 2231 | return templ_7745c5c3_Err | |
| 2218 | 2232 | } | |
| @@ -2245,46 +2259,46 @@ func mrBar(p MRPage) templ.Component { | |||
| 2245 | 2259 | templ_7745c5c3_Var110 = templ.NopComponent | |
| 2246 | 2260 | } | |
| 2247 | 2261 | ctx = templ.ClearChildren(ctx) | |
| 2248 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, "<div class=\"diff-tools mr-bar\" role=\"group\" aria-label=\"Diff view and merge\"><span class=\"dim\">") | |
| 2262 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 207, "<div class=\"diff-tools mr-bar\" role=\"group\" aria-label=\"Diff view and merge\"><span class=\"dim\">") | |
| 2249 | 2263 | if templ_7745c5c3_Err != nil { | |
| 2250 | 2264 | return templ_7745c5c3_Err | |
| 2251 | 2265 | } | |
| 2252 | 2266 | var templ_7745c5c3_Var111 string | |
| 2253 | 2267 | templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | |
| 2254 | 2268 | if templ_7745c5c3_Err != nil { | |
| 2255 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 418, Col: 55} | |
| 2269 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 426, Col: 55} | |
| 2256 | 2270 | } | |
| 2257 | 2271 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111)) | |
| 2258 | 2272 | if templ_7745c5c3_Err != nil { | |
| 2259 | 2273 | return templ_7745c5c3_Err | |
| 2260 | 2274 | } | |
| 2261 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 207, " · <span class=\"plus\">+") | |
| 2275 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 208, " · <span class=\"plus\">+") | |
| 2262 | 2276 | if templ_7745c5c3_Err != nil { | |
| 2263 | 2277 | return templ_7745c5c3_Err | |
| 2264 | 2278 | } | |
| 2265 | 2279 | var templ_7745c5c3_Var112 string | |
| 2266 | 2280 | templ_7745c5c3_Var112, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | |
| 2267 | 2281 | if templ_7745c5c3_Err != nil { | |
| 2268 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 418, Col: 95} | |
| 2282 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 426, Col: 95} | |
| 2269 | 2283 | } | |
| 2270 | 2284 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var112)) | |
| 2271 | 2285 | if templ_7745c5c3_Err != nil { | |
| 2272 | 2286 | return templ_7745c5c3_Err | |
| 2273 | 2287 | } | |
| 2274 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 208, "</span> <span class=\"minus\">-") | |
| 2288 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 209, "</span> <span class=\"minus\">-") | |
| 2275 | 2289 | if templ_7745c5c3_Err != nil { | |
| 2276 | 2290 | return templ_7745c5c3_Err | |
| 2277 | 2291 | } | |
| 2278 | 2292 | var templ_7745c5c3_Var113 string | |
| 2279 | 2293 | templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | |
| 2280 | 2294 | if templ_7745c5c3_Err != nil { | |
| 2281 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 418, Col: 140} | |
| 2295 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 426, Col: 140} | |
| 2282 | 2296 | } | |
| 2283 | 2297 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113)) | |
| 2284 | 2298 | if templ_7745c5c3_Err != nil { | |
| 2285 | 2299 | return templ_7745c5c3_Err | |
| 2286 | 2300 | } | |
| 2287 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 209, "</span></span>") | |
| 2301 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 210, "</span></span>") | |
| 2288 | 2302 | if templ_7745c5c3_Err != nil { | |
| 2289 | 2303 | return templ_7745c5c3_Err | |
| 2290 | 2304 | } | |
| @@ -2300,7 +2314,7 @@ func mrBar(p MRPage) templ.Component { | |||
| 2300 | 2314 | if templ_7745c5c3_Err != nil { | |
| 2301 | 2315 | return templ_7745c5c3_Err | |
| 2302 | 2316 | } | |
| 2303 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 210, "<span class=\"grow\"></span>") | |
| 2317 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 211, "<span class=\"grow\"></span>") | |
| 2304 | 2318 | if templ_7745c5c3_Err != nil { | |
| 2305 | 2319 | return templ_7745c5c3_Err | |
| 2306 | 2320 | } | |
| @@ -2313,7 +2327,7 @@ func mrBar(p MRPage) templ.Component { | |||
| 2313 | 2327 | if templ_7745c5c3_Err != nil { | |
| 2314 | 2328 | return templ_7745c5c3_Err | |
| 2315 | 2329 | } | |
| 2316 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 211, " ") | |
| 2330 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 212, " ") | |
| 2317 | 2331 | if templ_7745c5c3_Err != nil { | |
| 2318 | 2332 | return templ_7745c5c3_Err | |
| 2319 | 2333 | } | |
| @@ -2322,7 +2336,7 @@ func mrBar(p MRPage) templ.Component { | |||
| 2322 | 2336 | return templ_7745c5c3_Err | |
| 2323 | 2337 | } | |
| 2324 | 2338 | } | |
| 2325 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 212, "</div>") | |
| 2339 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 213, "</div>") | |
| 2326 | 2340 | if templ_7745c5c3_Err != nil { | |
| 2327 | 2341 | return templ_7745c5c3_Err | |
| 2328 | 2342 | } | |
| @@ -2354,27 +2368,27 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2354 | 2368 | templ_7745c5c3_Var114 = templ.NopComponent | |
| 2355 | 2369 | } | |
| 2356 | 2370 | ctx = templ.ClearChildren(ctx) | |
| 2357 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 213, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">") | |
| 2371 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 214, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">") | |
| 2358 | 2372 | if templ_7745c5c3_Err != nil { | |
| 2359 | 2373 | return templ_7745c5c3_Err | |
| 2360 | 2374 | } | |
| 2361 | 2375 | if p.Box.ReadyAction != "" { | |
| 2362 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 214, "Draft ") | |
| 2376 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 215, "Draft ") | |
| 2363 | 2377 | if templ_7745c5c3_Err != nil { | |
| 2364 | 2378 | return templ_7745c5c3_Err | |
| 2365 | 2379 | } | |
| 2366 | 2380 | } else { | |
| 2367 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 215, "Merge ") | |
| 2381 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "Merge ") | |
| 2368 | 2382 | if templ_7745c5c3_Err != nil { | |
| 2369 | 2383 | return templ_7745c5c3_Err | |
| 2370 | 2384 | } | |
| 2371 | 2385 | } | |
| 2372 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "<kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>") | |
| 2386 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, "<kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>") | |
| 2373 | 2387 | if templ_7745c5c3_Err != nil { | |
| 2374 | 2388 | return templ_7745c5c3_Err | |
| 2375 | 2389 | } | |
| 2376 | 2390 | if p.Box.HeadGone { | |
| 2377 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, "gone: the source branch was deleted") | |
| 2391 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, "gone: the source branch was deleted") | |
| 2378 | 2392 | if templ_7745c5c3_Err != nil { | |
| 2379 | 2393 | return templ_7745c5c3_Err | |
| 2380 | 2394 | } | |
| @@ -2382,186 +2396,186 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2382 | 2396 | var templ_7745c5c3_Var115 string | |
| 2383 | 2397 | templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort) | |
| 2384 | 2398 | if templ_7745c5c3_Err != nil { | |
| 2385 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 451, Col: 19} | |
| 2399 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 459, Col: 19} | |
| 2386 | 2400 | } | |
| 2387 | 2401 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) | |
| 2388 | 2402 | if templ_7745c5c3_Err != nil { | |
| 2389 | 2403 | return templ_7745c5c3_Err | |
| 2390 | 2404 | } | |
| 2391 | 2405 | } | |
| 2392 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, "</dd><dt>into</dt><dd>") | |
| 2406 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "</dd><dt>into</dt><dd>") | |
| 2393 | 2407 | if templ_7745c5c3_Err != nil { | |
| 2394 | 2408 | return templ_7745c5c3_Err | |
| 2395 | 2409 | } | |
| 2396 | 2410 | var templ_7745c5c3_Var116 string | |
| 2397 | 2411 | templ_7745c5c3_Var116, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 2398 | 2412 | if templ_7745c5c3_Err != nil { | |
| 2399 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 455, Col: 18} | |
| 2413 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 463, Col: 18} | |
| 2400 | 2414 | } | |
| 2401 | 2415 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var116)) | |
| 2402 | 2416 | if templ_7745c5c3_Err != nil { | |
| 2403 | 2417 | return templ_7745c5c3_Err | |
| 2404 | 2418 | } | |
| 2405 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "</dd></dl>") | |
| 2419 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, "</dd></dl>") | |
| 2406 | 2420 | if templ_7745c5c3_Err != nil { | |
| 2407 | 2421 | return templ_7745c5c3_Err | |
| 2408 | 2422 | } | |
| 2409 | 2423 | if p.Box.ReadyAction != "" { | |
| 2410 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, "<p class=\"d-draft\">this is a draft: it cannot be merged until it is ready for review.</p><form class=\"d-btns\" method=\"post\" action=\"") | |
| 2424 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "<p class=\"d-draft\">this is a draft: it cannot be merged until it is ready for review.</p><form class=\"d-btns\" method=\"post\" action=\"") | |
| 2411 | 2425 | if templ_7745c5c3_Err != nil { | |
| 2412 | 2426 | return templ_7745c5c3_Err | |
| 2413 | 2427 | } | |
| 2414 | 2428 | var templ_7745c5c3_Var117 templ.SafeURL | |
| 2415 | 2429 | templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) | |
| 2416 | 2430 | if templ_7745c5c3_Err != nil { | |
| 2417 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 459, Col: 80} | |
| 2431 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 467, Col: 80} | |
| 2418 | 2432 | } | |
| 2419 | 2433 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117)) | |
| 2420 | 2434 | if templ_7745c5c3_Err != nil { | |
| 2421 | 2435 | return templ_7745c5c3_Err | |
| 2422 | 2436 | } | |
| 2423 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "\"><button type=\"submit\" class=\"btn primary\" data-default title=\"remove the draft prefix from the title\">Ready for review</button></form>") | |
| 2437 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, "\"><button type=\"submit\" class=\"btn primary\" data-default title=\"remove the draft prefix from the title\">Ready for review</button></form>") | |
| 2424 | 2438 | if templ_7745c5c3_Err != nil { | |
| 2425 | 2439 | return templ_7745c5c3_Err | |
| 2426 | 2440 | } | |
| 2427 | 2441 | } else if !p.Box.HeadGone { | |
| 2428 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, "<form class=\"d-acts\" method=\"post\" action=\"") | |
| 2442 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "<form class=\"d-acts\" method=\"post\" action=\"") | |
| 2429 | 2443 | if templ_7745c5c3_Err != nil { | |
| 2430 | 2444 | return templ_7745c5c3_Err | |
| 2431 | 2445 | } | |
| 2432 | 2446 | var templ_7745c5c3_Var118 templ.SafeURL | |
| 2433 | 2447 | templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) | |
| 2434 | 2448 | if templ_7745c5c3_Err != nil { | |
| 2435 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 463, Col: 80} | |
| 2449 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 471, Col: 80} | |
| 2436 | 2450 | } | |
| 2437 | 2451 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118)) | |
| 2438 | 2452 | if templ_7745c5c3_Err != nil { | |
| 2439 | 2453 | return templ_7745c5c3_Err | |
| 2440 | 2454 | } | |
| 2441 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "\"><input type=\"hidden\" name=\"head_id\" value=\"") | |
| 2455 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "\"><input type=\"hidden\" name=\"head_id\" value=\"") | |
| 2442 | 2456 | if templ_7745c5c3_Err != nil { | |
| 2443 | 2457 | return templ_7745c5c3_Err | |
| 2444 | 2458 | } | |
| 2445 | 2459 | var templ_7745c5c3_Var119 string | |
| 2446 | 2460 | templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | |
| 2447 | 2461 | if templ_7745c5c3_Err != nil { | |
| 2448 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 464, Col: 59} | |
| 2462 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 472, Col: 59} | |
| 2449 | 2463 | } | |
| 2450 | 2464 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var119) | |
| 2451 | 2465 | if templ_7745c5c3_Err != nil { | |
| 2452 | 2466 | return templ_7745c5c3_Err | |
| 2453 | 2467 | } | |
| 2454 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ") | |
| 2468 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ") | |
| 2455 | 2469 | if templ_7745c5c3_Err != nil { | |
| 2456 | 2470 | return templ_7745c5c3_Err | |
| 2457 | 2471 | } | |
| 2458 | 2472 | for i, m := range p.Box.Modes { | |
| 2459 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "<label><input type=\"radio\" name=\"mode\" value=\"") | |
| 2473 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "<label><input type=\"radio\" name=\"mode\" value=\"") | |
| 2460 | 2474 | if templ_7745c5c3_Err != nil { | |
| 2461 | 2475 | return templ_7745c5c3_Err | |
| 2462 | 2476 | } | |
| 2463 | 2477 | var templ_7745c5c3_Var120 string | |
| 2464 | 2478 | templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) | |
| 2465 | 2479 | if templ_7745c5c3_Err != nil { | |
| 2466 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 469, Col: 55} | |
| 2480 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 477, Col: 55} | |
| 2467 | 2481 | } | |
| 2468 | 2482 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var120) | |
| 2469 | 2483 | if templ_7745c5c3_Err != nil { | |
| 2470 | 2484 | return templ_7745c5c3_Err | |
| 2471 | 2485 | } | |
| 2472 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "\"") | |
| 2486 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, "\"") | |
| 2473 | 2487 | if templ_7745c5c3_Err != nil { | |
| 2474 | 2488 | return templ_7745c5c3_Err | |
| 2475 | 2489 | } | |
| 2476 | 2490 | if i == 0 { | |
| 2477 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, " checked") | |
| 2491 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, " checked") | |
| 2478 | 2492 | if templ_7745c5c3_Err != nil { | |
| 2479 | 2493 | return templ_7745c5c3_Err | |
| 2480 | 2494 | } | |
| 2481 | 2495 | } | |
| 2482 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "> ") | |
| 2496 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "> ") | |
| 2483 | 2497 | if templ_7745c5c3_Err != nil { | |
| 2484 | 2498 | return templ_7745c5c3_Err | |
| 2485 | 2499 | } | |
| 2486 | 2500 | var templ_7745c5c3_Var121 string | |
| 2487 | 2501 | templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) | |
| 2488 | 2502 | if templ_7745c5c3_Err != nil { | |
| 2489 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 470, Col: 17} | |
| 2503 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 478, Col: 17} | |
| 2490 | 2504 | } | |
| 2491 | 2505 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) | |
| 2492 | 2506 | if templ_7745c5c3_Err != nil { | |
| 2493 | 2507 | return templ_7745c5c3_Err | |
| 2494 | 2508 | } | |
| 2495 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, " ") | |
| 2509 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, " ") | |
| 2496 | 2510 | if templ_7745c5c3_Err != nil { | |
| 2497 | 2511 | return templ_7745c5c3_Err | |
| 2498 | 2512 | } | |
| 2499 | 2513 | if i < 9 { | |
| 2500 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "<kbd aria-hidden=\"true\">") | |
| 2514 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "<kbd aria-hidden=\"true\">") | |
| 2501 | 2515 | if templ_7745c5c3_Err != nil { | |
| 2502 | 2516 | return templ_7745c5c3_Err | |
| 2503 | 2517 | } | |
| 2504 | 2518 | var templ_7745c5c3_Var122 string | |
| 2505 | 2519 | templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) | |
| 2506 | 2520 | if templ_7745c5c3_Err != nil { | |
| 2507 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 472, Col: 46} | |
| 2521 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 480, Col: 46} | |
| 2508 | 2522 | } | |
| 2509 | 2523 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122)) | |
| 2510 | 2524 | if templ_7745c5c3_Err != nil { | |
| 2511 | 2525 | return templ_7745c5c3_Err | |
| 2512 | 2526 | } | |
| 2513 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "</kbd>") | |
| 2527 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "</kbd>") | |
| 2514 | 2528 | if templ_7745c5c3_Err != nil { | |
| 2515 | 2529 | return templ_7745c5c3_Err | |
| 2516 | 2530 | } | |
| 2517 | 2531 | } | |
| 2518 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "</label>") | |
| 2532 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "</label>") | |
| 2519 | 2533 | if templ_7745c5c3_Err != nil { | |
| 2520 | 2534 | return templ_7745c5c3_Err | |
| 2521 | 2535 | } | |
| 2522 | 2536 | } | |
| 2523 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "</fieldset>") | |
| 2537 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</fieldset>") | |
| 2524 | 2538 | if templ_7745c5c3_Err != nil { | |
| 2525 | 2539 | return templ_7745c5c3_Err | |
| 2526 | 2540 | } | |
| 2527 | 2541 | if p.Box.CanDeleteBranch { | |
| 2528 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ") | |
| 2542 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ") | |
| 2529 | 2543 | if templ_7745c5c3_Err != nil { | |
| 2530 | 2544 | return templ_7745c5c3_Err | |
| 2531 | 2545 | } | |
| 2532 | 2546 | var templ_7745c5c3_Var123 string | |
| 2533 | 2547 | templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | |
| 2534 | 2548 | if templ_7745c5c3_Err != nil { | |
| 2535 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 478, Col: 102} | |
| 2549 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 486, Col: 102} | |
| 2536 | 2550 | } | |
| 2537 | 2551 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var123)) | |
| 2538 | 2552 | if templ_7745c5c3_Err != nil { | |
| 2539 | 2553 | return templ_7745c5c3_Err | |
| 2540 | 2554 | } | |
| 2541 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>") | |
| 2555 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>") | |
| 2542 | 2556 | if templ_7745c5c3_Err != nil { | |
| 2543 | 2557 | return templ_7745c5c3_Err | |
| 2544 | 2558 | } | |
| 2545 | 2559 | } | |
| 2546 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default>Merge into ") | |
| 2560 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default>Merge into ") | |
| 2547 | 2561 | if templ_7745c5c3_Err != nil { | |
| 2548 | 2562 | return templ_7745c5c3_Err | |
| 2549 | 2563 | } | |
| 2550 | 2564 | var templ_7745c5c3_Var124 string | |
| 2551 | 2565 | templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 2552 | 2566 | if templ_7745c5c3_Err != nil { | |
| 2553 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 481, Col: 82} | |
| 2567 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 489, Col: 82} | |
| 2554 | 2568 | } | |
| 2555 | 2569 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var124)) | |
| 2556 | 2570 | if templ_7745c5c3_Err != nil { | |
| 2557 | 2571 | return templ_7745c5c3_Err | |
| 2558 | 2572 | } | |
| 2559 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, "</button></div></form>") | |
| 2573 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "</button></div></form>") | |
| 2560 | 2574 | if templ_7745c5c3_Err != nil { | |
| 2561 | 2575 | return templ_7745c5c3_Err | |
| 2562 | 2576 | } | |
| 2563 | 2577 | } | |
| 2564 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "</div></details>") | |
| 2578 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "</div></details>") | |
| 2565 | 2579 | if templ_7745c5c3_Err != nil { | |
| 2566 | 2580 | return templ_7745c5c3_Err | |
| 2567 | 2581 | } | |
| @@ -2592,61 +2606,61 @@ func moreMenu(p MRPage) templ.Component { | |||
| 2592 | 2606 | templ_7745c5c3_Var125 = templ.NopComponent | |
| 2593 | 2607 | } | |
| 2594 | 2608 | ctx = templ.ClearChildren(ctx) | |
| 2595 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "<details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\">") | |
| 2609 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "<details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\">") | |
| 2596 | 2610 | if templ_7745c5c3_Err != nil { | |
| 2597 | 2611 | return templ_7745c5c3_Err | |
| 2598 | 2612 | } | |
| 2599 | 2613 | if p.Box.CanMarkRead { | |
| 2600 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "<form method=\"post\" action=\"") | |
| 2614 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "<form method=\"post\" action=\"") | |
| 2601 | 2615 | if templ_7745c5c3_Err != nil { | |
| 2602 | 2616 | return templ_7745c5c3_Err | |
| 2603 | 2617 | } | |
| 2604 | 2618 | var templ_7745c5c3_Var126 templ.SafeURL | |
| 2605 | 2619 | templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) | |
| 2606 | 2620 | if templ_7745c5c3_Err != nil { | |
| 2607 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 496, Col: 64} | |
| 2621 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 504, Col: 64} | |
| 2608 | 2622 | } | |
| 2609 | 2623 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) | |
| 2610 | 2624 | if templ_7745c5c3_Err != nil { | |
| 2611 | 2625 | return templ_7745c5c3_Err | |
| 2612 | 2626 | } | |
| 2613 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "\"><input type=\"hidden\" name=\"head_id\" value=\"") | |
| 2627 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "\"><input type=\"hidden\" name=\"head_id\" value=\"") | |
| 2614 | 2628 | if templ_7745c5c3_Err != nil { | |
| 2615 | 2629 | return templ_7745c5c3_Err | |
| 2616 | 2630 | } | |
| 2617 | 2631 | var templ_7745c5c3_Var127 string | |
| 2618 | 2632 | templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | |
| 2619 | 2633 | if templ_7745c5c3_Err != nil { | |
| 2620 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 497, Col: 59} | |
| 2634 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 505, Col: 59} | |
| 2621 | 2635 | } | |
| 2622 | 2636 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var127) | |
| 2623 | 2637 | if templ_7745c5c3_Err != nil { | |
| 2624 | 2638 | return templ_7745c5c3_Err | |
| 2625 | 2639 | } | |
| 2626 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form>") | |
| 2640 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, "\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form>") | |
| 2627 | 2641 | if templ_7745c5c3_Err != nil { | |
| 2628 | 2642 | return templ_7745c5c3_Err | |
| 2629 | 2643 | } | |
| 2630 | 2644 | } | |
| 2631 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, "<form method=\"post\" action=\"") | |
| 2645 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, "<form method=\"post\" action=\"") | |
| 2632 | 2646 | if templ_7745c5c3_Err != nil { | |
| 2633 | 2647 | return templ_7745c5c3_Err | |
| 2634 | 2648 | } | |
| 2635 | 2649 | var templ_7745c5c3_Var128 templ.SafeURL | |
| 2636 | 2650 | templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) | |
| 2637 | 2651 | if templ_7745c5c3_Err != nil { | |
| 2638 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 501, Col: 64} | |
| 2652 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 509, Col: 64} | |
| 2639 | 2653 | } | |
| 2640 | 2654 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128)) | |
| 2641 | 2655 | if templ_7745c5c3_Err != nil { | |
| 2642 | 2656 | return templ_7745c5c3_Err | |
| 2643 | 2657 | } | |
| 2644 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, "\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form>") | |
| 2658 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, "\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form>") | |
| 2645 | 2659 | if templ_7745c5c3_Err != nil { | |
| 2646 | 2660 | return templ_7745c5c3_Err | |
| 2647 | 2661 | } | |
| 2648 | 2662 | if !p.Box.HeadGone && p.Box.ReadyAction == "" { | |
| 2649 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>") | |
| 2663 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>") | |
| 2650 | 2664 | if templ_7745c5c3_Err != nil { | |
| 2651 | 2665 | return templ_7745c5c3_Err | |
| 2652 | 2666 | } | |
| @@ -2654,12 +2668,12 @@ func moreMenu(p MRPage) templ.Component { | |||
| 2654 | 2668 | if templ_7745c5c3_Err != nil { | |
| 2655 | 2669 | return templ_7745c5c3_Err | |
| 2656 | 2670 | } | |
| 2657 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, "</details>") | |
| 2671 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "</details>") | |
| 2658 | 2672 | if templ_7745c5c3_Err != nil { | |
| 2659 | 2673 | return templ_7745c5c3_Err | |
| 2660 | 2674 | } | |
| 2661 | 2675 | } | |
| 2662 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "</div></details>") | |
| 2676 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, "</div></details>") | |
| 2663 | 2677 | if templ_7745c5c3_Err != nil { | |
| 2664 | 2678 | return templ_7745c5c3_Err | |
| 2665 | 2679 | } | |
| @@ -2700,263 +2714,263 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2700 | 2714 | }() | |
| 2701 | 2715 | } | |
| 2702 | 2716 | ctx = templ.InitializeContext(ctx) | |
| 2703 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, "<header class=\"show mr-h\"><h1>") | |
| 2717 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "<header class=\"show mr-h\"><h1>") | |
| 2704 | 2718 | if templ_7745c5c3_Err != nil { | |
| 2705 | 2719 | return templ_7745c5c3_Err | |
| 2706 | 2720 | } | |
| 2707 | 2721 | var templ_7745c5c3_Var131 string | |
| 2708 | 2722 | templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | |
| 2709 | 2723 | if templ_7745c5c3_Err != nil { | |
| 2710 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 517, Col: 17} | |
| 2724 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 17} | |
| 2711 | 2725 | } | |
| 2712 | 2726 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var131)) | |
| 2713 | 2727 | if templ_7745c5c3_Err != nil { | |
| 2714 | 2728 | return templ_7745c5c3_Err | |
| 2715 | 2729 | } | |
| 2716 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, " → ") | |
| 2730 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, " → ") | |
| 2717 | 2731 | if templ_7745c5c3_Err != nil { | |
| 2718 | 2732 | return templ_7745c5c3_Err | |
| 2719 | 2733 | } | |
| 2720 | 2734 | var templ_7745c5c3_Var132 string | |
| 2721 | 2735 | templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 2722 | 2736 | if templ_7745c5c3_Err != nil { | |
| 2723 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 517, Col: 34} | |
| 2737 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 34} | |
| 2724 | 2738 | } | |
| 2725 | 2739 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132)) | |
| 2726 | 2740 | if templ_7745c5c3_Err != nil { | |
| 2727 | 2741 | return templ_7745c5c3_Err | |
| 2728 | 2742 | } | |
| 2729 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"") | |
| 2743 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"") | |
| 2730 | 2744 | if templ_7745c5c3_Err != nil { | |
| 2731 | 2745 | return templ_7745c5c3_Err | |
| 2732 | 2746 | } | |
| 2733 | 2747 | var templ_7745c5c3_Var133 templ.SafeURL | |
| 2734 | 2748 | templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) | |
| 2735 | 2749 | if templ_7745c5c3_Err != nil { | |
| 2736 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 520, Col: 45} | |
| 2750 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 528, Col: 45} | |
| 2737 | 2751 | } | |
| 2738 | 2752 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var133)) | |
| 2739 | 2753 | if templ_7745c5c3_Err != nil { | |
| 2740 | 2754 | return templ_7745c5c3_Err | |
| 2741 | 2755 | } | |
| 2742 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "\">") | |
| 2756 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "\">") | |
| 2743 | 2757 | if templ_7745c5c3_Err != nil { | |
| 2744 | 2758 | return templ_7745c5c3_Err | |
| 2745 | 2759 | } | |
| 2746 | 2760 | var templ_7745c5c3_Var134 string | |
| 2747 | 2761 | templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | |
| 2748 | 2762 | if templ_7745c5c3_Err != nil { | |
| 2749 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 520, Col: 58} | |
| 2763 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 528, Col: 58} | |
| 2750 | 2764 | } | |
| 2751 | 2765 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var134)) | |
| 2752 | 2766 | if templ_7745c5c3_Err != nil { | |
| 2753 | 2767 | return templ_7745c5c3_Err | |
| 2754 | 2768 | } | |
| 2755 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "</a></dd><dt>target</dt><dd><a href=\"") | |
| 2769 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "</a></dd><dt>target</dt><dd><a href=\"") | |
| 2756 | 2770 | if templ_7745c5c3_Err != nil { | |
| 2757 | 2771 | return templ_7745c5c3_Err | |
| 2758 | 2772 | } | |
| 2759 | 2773 | var templ_7745c5c3_Var135 templ.SafeURL | |
| 2760 | 2774 | templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) | |
| 2761 | 2775 | if templ_7745c5c3_Err != nil { | |
| 2762 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 522, Col: 45} | |
| 2776 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 530, Col: 45} | |
| 2763 | 2777 | } | |
| 2764 | 2778 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var135)) | |
| 2765 | 2779 | if templ_7745c5c3_Err != nil { | |
| 2766 | 2780 | return templ_7745c5c3_Err | |
| 2767 | 2781 | } | |
| 2768 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "\">") | |
| 2782 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "\">") | |
| 2769 | 2783 | if templ_7745c5c3_Err != nil { | |
| 2770 | 2784 | return templ_7745c5c3_Err | |
| 2771 | 2785 | } | |
| 2772 | 2786 | var templ_7745c5c3_Var136 string | |
| 2773 | 2787 | templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 2774 | 2788 | if templ_7745c5c3_Err != nil { | |
| 2775 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 522, Col: 58} | |
| 2789 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 530, Col: 58} | |
| 2776 | 2790 | } | |
| 2777 | 2791 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var136)) | |
| 2778 | 2792 | if templ_7745c5c3_Err != nil { | |
| 2779 | 2793 | return templ_7745c5c3_Err | |
| 2780 | 2794 | } | |
| 2781 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "</a></dd><dt>ahead</dt><dd>") | |
| 2795 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "</a></dd><dt>ahead</dt><dd>") | |
| 2782 | 2796 | if templ_7745c5c3_Err != nil { | |
| 2783 | 2797 | return templ_7745c5c3_Err | |
| 2784 | 2798 | } | |
| 2785 | 2799 | var templ_7745c5c3_Var137 string | |
| 2786 | 2800 | templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) | |
| 2787 | 2801 | if templ_7745c5c3_Err != nil { | |
| 2788 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 524, Col: 21} | |
| 2802 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 532, Col: 21} | |
| 2789 | 2803 | } | |
| 2790 | 2804 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var137)) | |
| 2791 | 2805 | if templ_7745c5c3_Err != nil { | |
| 2792 | 2806 | return templ_7745c5c3_Err | |
| 2793 | 2807 | } | |
| 2794 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "</dd></dl></header>") | |
| 2808 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, "</dd></dl></header>") | |
| 2795 | 2809 | if templ_7745c5c3_Err != nil { | |
| 2796 | 2810 | return templ_7745c5c3_Err | |
| 2797 | 2811 | } | |
| 2798 | 2812 | if p.Note != "" { | |
| 2799 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, "<p class=\"notice\">") | |
| 2813 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<p class=\"notice\">") | |
| 2800 | 2814 | if templ_7745c5c3_Err != nil { | |
| 2801 | 2815 | return templ_7745c5c3_Err | |
| 2802 | 2816 | } | |
| 2803 | 2817 | var templ_7745c5c3_Var138 string | |
| 2804 | 2818 | templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | |
| 2805 | 2819 | if templ_7745c5c3_Err != nil { | |
| 2806 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 528, Col: 29} | |
| 2820 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 536, Col: 29} | |
| 2807 | 2821 | } | |
| 2808 | 2822 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) | |
| 2809 | 2823 | if templ_7745c5c3_Err != nil { | |
| 2810 | 2824 | return templ_7745c5c3_Err | |
| 2811 | 2825 | } | |
| 2812 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "</p>") | |
| 2826 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, "</p>") | |
| 2813 | 2827 | if templ_7745c5c3_Err != nil { | |
| 2814 | 2828 | return templ_7745c5c3_Err | |
| 2815 | 2829 | } | |
| 2816 | 2830 | } | |
| 2817 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, " ") | |
| 2831 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, " ") | |
| 2818 | 2832 | if templ_7745c5c3_Err != nil { | |
| 2819 | 2833 | return templ_7745c5c3_Err | |
| 2820 | 2834 | } | |
| 2821 | 2835 | if p.Existing != nil { | |
| 2822 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"") | |
| 2836 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"") | |
| 2823 | 2837 | if templ_7745c5c3_Err != nil { | |
| 2824 | 2838 | return templ_7745c5c3_Err | |
| 2825 | 2839 | } | |
| 2826 | 2840 | var templ_7745c5c3_Var139 templ.SafeURL | |
| 2827 | 2841 | templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) | |
| 2828 | 2842 | if templ_7745c5c3_Err != nil { | |
| 2829 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 531, Col: 114} | |
| 2843 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 539, Col: 114} | |
| 2830 | 2844 | } | |
| 2831 | 2845 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) | |
| 2832 | 2846 | if templ_7745c5c3_Err != nil { | |
| 2833 | 2847 | return templ_7745c5c3_Err | |
| 2834 | 2848 | } | |
| 2835 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, "\">") | |
| 2849 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, "\">") | |
| 2836 | 2850 | if templ_7745c5c3_Err != nil { | |
| 2837 | 2851 | return templ_7745c5c3_Err | |
| 2838 | 2852 | } | |
| 2839 | 2853 | var templ_7745c5c3_Var140 string | |
| 2840 | 2854 | templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) | |
| 2841 | 2855 | if templ_7745c5c3_Err != nil { | |
| 2842 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 531, Col: 135} | |
| 2856 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 539, Col: 135} | |
| 2843 | 2857 | } | |
| 2844 | 2858 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) | |
| 2845 | 2859 | if templ_7745c5c3_Err != nil { | |
| 2846 | 2860 | return templ_7745c5c3_Err | |
| 2847 | 2861 | } | |
| 2848 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, "</a></p>") | |
| 2862 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, "</a></p>") | |
| 2849 | 2863 | if templ_7745c5c3_Err != nil { | |
| 2850 | 2864 | return templ_7745c5c3_Err | |
| 2851 | 2865 | } | |
| 2852 | 2866 | } | |
| 2853 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, " ") | |
| 2867 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, " ") | |
| 2854 | 2868 | if templ_7745c5c3_Err != nil { | |
| 2855 | 2869 | return templ_7745c5c3_Err | |
| 2856 | 2870 | } | |
| 2857 | 2871 | if p.Create != nil { | |
| 2858 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "<form class=\"cform create\" method=\"post\" action=\"") | |
| 2872 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "<form class=\"cform create\" method=\"post\" action=\"") | |
| 2859 | 2873 | if templ_7745c5c3_Err != nil { | |
| 2860 | 2874 | return templ_7745c5c3_Err | |
| 2861 | 2875 | } | |
| 2862 | 2876 | var templ_7745c5c3_Var141 templ.SafeURL | |
| 2863 | 2877 | templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) | |
| 2864 | 2878 | if templ_7745c5c3_Err != nil { | |
| 2865 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 534, Col: 83} | |
| 2879 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 542, Col: 83} | |
| 2866 | 2880 | } | |
| 2867 | 2881 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) | |
| 2868 | 2882 | if templ_7745c5c3_Err != nil { | |
| 2869 | 2883 | return templ_7745c5c3_Err | |
| 2870 | 2884 | } | |
| 2871 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "\"><input type=\"hidden\" name=\"source\" value=\"") | |
| 2885 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "\"><input type=\"hidden\" name=\"source\" value=\"") | |
| 2872 | 2886 | if templ_7745c5c3_Err != nil { | |
| 2873 | 2887 | return templ_7745c5c3_Err | |
| 2874 | 2888 | } | |
| 2875 | 2889 | var templ_7745c5c3_Var142 string | |
| 2876 | 2890 | templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) | |
| 2877 | 2891 | if templ_7745c5c3_Err != nil { | |
| 2878 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 535, Col: 62} | |
| 2892 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 543, Col: 62} | |
| 2879 | 2893 | } | |
| 2880 | 2894 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var142) | |
| 2881 | 2895 | if templ_7745c5c3_Err != nil { | |
| 2882 | 2896 | return templ_7745c5c3_Err | |
| 2883 | 2897 | } | |
| 2884 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "\"> <input type=\"hidden\" name=\"target\" value=\"") | |
| 2898 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\"> <input type=\"hidden\" name=\"target\" value=\"") | |
| 2885 | 2899 | if templ_7745c5c3_Err != nil { | |
| 2886 | 2900 | return templ_7745c5c3_Err | |
| 2887 | 2901 | } | |
| 2888 | 2902 | var templ_7745c5c3_Var143 string | |
| 2889 | 2903 | templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) | |
| 2890 | 2904 | if templ_7745c5c3_Err != nil { | |
| 2891 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 536, Col: 62} | |
| 2905 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 544, Col: 62} | |
| 2892 | 2906 | } | |
| 2893 | 2907 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var143) | |
| 2894 | 2908 | if templ_7745c5c3_Err != nil { | |
| 2895 | 2909 | return templ_7745c5c3_Err | |
| 2896 | 2910 | } | |
| 2897 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\"> <label for=\"mr-title\">title</label> <input id=\"mr-title\" name=\"title\" type=\"text\" maxlength=\"120\" required value=\"") | |
| 2911 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\"> <label for=\"mr-title\">title</label> <input id=\"mr-title\" name=\"title\" type=\"text\" maxlength=\"120\" required value=\"") | |
| 2898 | 2912 | if templ_7745c5c3_Err != nil { | |
| 2899 | 2913 | return templ_7745c5c3_Err | |
| 2900 | 2914 | } | |
| 2901 | 2915 | var templ_7745c5c3_Var144 string | |
| 2902 | 2916 | templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) | |
| 2903 | 2917 | if templ_7745c5c3_Err != nil { | |
| 2904 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 538, Col: 97} | |
| 2918 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 546, Col: 97} | |
| 2905 | 2919 | } | |
| 2906 | 2920 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var144) | |
| 2907 | 2921 | if templ_7745c5c3_Err != nil { | |
| 2908 | 2922 | return templ_7745c5c3_Err | |
| 2909 | 2923 | } | |
| 2910 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\" autocomplete=\"off\"> <label for=\"mr-desc\">description</label> <textarea id=\"mr-desc\" name=\"description\" rows=\"4\" maxlength=\"8000\" placeholder=\"Markdown, optional\"></textarea><div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Create merge request</button></div></form>") | |
| 2924 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\" autocomplete=\"off\"> <label for=\"mr-desc\">description</label> <textarea id=\"mr-desc\" name=\"description\" rows=\"4\" maxlength=\"8000\" placeholder=\"Markdown, optional\"></textarea><div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Create merge request</button></div></form>") | |
| 2911 | 2925 | if templ_7745c5c3_Err != nil { | |
| 2912 | 2926 | return templ_7745c5c3_Err | |
| 2913 | 2927 | } | |
| 2914 | 2928 | } | |
| 2915 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, " ") | |
| 2929 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, " ") | |
| 2916 | 2930 | if templ_7745c5c3_Err != nil { | |
| 2917 | 2931 | return templ_7745c5c3_Err | |
| 2918 | 2932 | } | |
| 2919 | 2933 | if p.HasDiff { | |
| 2920 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">") | |
| 2934 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">") | |
| 2921 | 2935 | if templ_7745c5c3_Err != nil { | |
| 2922 | 2936 | return templ_7745c5c3_Err | |
| 2923 | 2937 | } | |
| 2924 | 2938 | var templ_7745c5c3_Var145 string | |
| 2925 | 2939 | templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | |
| 2926 | 2940 | if templ_7745c5c3_Err != nil { | |
| 2927 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 548, Col: 57} | |
| 2941 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 57} | |
| 2928 | 2942 | } | |
| 2929 | 2943 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) | |
| 2930 | 2944 | if templ_7745c5c3_Err != nil { | |
| 2931 | 2945 | return templ_7745c5c3_Err | |
| 2932 | 2946 | } | |
| 2933 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, " · <span class=\"plus\">+") | |
| 2947 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, " · <span class=\"plus\">+") | |
| 2934 | 2948 | if templ_7745c5c3_Err != nil { | |
| 2935 | 2949 | return templ_7745c5c3_Err | |
| 2936 | 2950 | } | |
| 2937 | 2951 | var templ_7745c5c3_Var146 string | |
| 2938 | 2952 | templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | |
| 2939 | 2953 | if templ_7745c5c3_Err != nil { | |
| 2940 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 548, Col: 97} | |
| 2954 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 97} | |
| 2941 | 2955 | } | |
| 2942 | 2956 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) | |
| 2943 | 2957 | if templ_7745c5c3_Err != nil { | |
| 2944 | 2958 | return templ_7745c5c3_Err | |
| 2945 | 2959 | } | |
| 2946 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, "</span> <span class=\"minus\">-") | |
| 2960 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span> <span class=\"minus\">-") | |
| 2947 | 2961 | if templ_7745c5c3_Err != nil { | |
| 2948 | 2962 | return templ_7745c5c3_Err | |
| 2949 | 2963 | } | |
| 2950 | 2964 | var templ_7745c5c3_Var147 string | |
| 2951 | 2965 | templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | |
| 2952 | 2966 | if templ_7745c5c3_Err != nil { | |
| 2953 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 548, Col: 142} | |
| 2967 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 142} | |
| 2954 | 2968 | } | |
| 2955 | 2969 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) | |
| 2956 | 2970 | if templ_7745c5c3_Err != nil { | |
| 2957 | 2971 | return templ_7745c5c3_Err | |
| 2958 | 2972 | } | |
| 2959 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span></span> <span class=\"grow\"></span>") | |
| 2973 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "</span></span> <span class=\"grow\"></span>") | |
| 2960 | 2974 | if templ_7745c5c3_Err != nil { | |
| 2961 | 2975 | return templ_7745c5c3_Err | |
| 2962 | 2976 | } | |
| @@ -2972,64 +2986,64 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2972 | 2986 | if templ_7745c5c3_Err != nil { | |
| 2973 | 2987 | return templ_7745c5c3_Err | |
| 2974 | 2988 | } | |
| 2975 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "</div>") | |
| 2989 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "</div>") | |
| 2976 | 2990 | if templ_7745c5c3_Err != nil { | |
| 2977 | 2991 | return templ_7745c5c3_Err | |
| 2978 | 2992 | } | |
| 2979 | 2993 | if p.Invisible { | |
| 2980 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>") | |
| 2994 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>") | |
| 2981 | 2995 | if templ_7745c5c3_Err != nil { | |
| 2982 | 2996 | return templ_7745c5c3_Err | |
| 2983 | 2997 | } | |
| 2984 | 2998 | } | |
| 2985 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, " <div id=\"diffs\"") | |
| 2999 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, " <div id=\"diffs\"") | |
| 2986 | 3000 | if templ_7745c5c3_Err != nil { | |
| 2987 | 3001 | return templ_7745c5c3_Err | |
| 2988 | 3002 | } | |
| 2989 | 3003 | if p.Both { | |
| 2990 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, " data-diff=\"") | |
| 3004 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, " data-diff=\"") | |
| 2991 | 3005 | if templ_7745c5c3_Err != nil { | |
| 2992 | 3006 | return templ_7745c5c3_Err | |
| 2993 | 3007 | } | |
| 2994 | 3008 | var templ_7745c5c3_Var148 string | |
| 2995 | 3009 | templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | |
| 2996 | 3010 | if templ_7745c5c3_Err != nil { | |
| 2997 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 563, Col: 23} | |
| 3011 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 571, Col: 23} | |
| 2998 | 3012 | } | |
| 2999 | 3013 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148) | |
| 3000 | 3014 | if templ_7745c5c3_Err != nil { | |
| 3001 | 3015 | return templ_7745c5c3_Err | |
| 3002 | 3016 | } | |
| 3003 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, "\"") | |
| 3017 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "\"") | |
| 3004 | 3018 | if templ_7745c5c3_Err != nil { | |
| 3005 | 3019 | return templ_7745c5c3_Err | |
| 3006 | 3020 | } | |
| 3007 | 3021 | } else { | |
| 3008 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, " data-view=\"") | |
| 3022 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, " data-view=\"") | |
| 3009 | 3023 | if templ_7745c5c3_Err != nil { | |
| 3010 | 3024 | return templ_7745c5c3_Err | |
| 3011 | 3025 | } | |
| 3012 | 3026 | var templ_7745c5c3_Var149 string | |
| 3013 | 3027 | templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | |
| 3014 | 3028 | if templ_7745c5c3_Err != nil { | |
| 3015 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 565, Col: 23} | |
| 3029 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 573, Col: 23} | |
| 3016 | 3030 | } | |
| 3017 | 3031 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var149) | |
| 3018 | 3032 | if templ_7745c5c3_Err != nil { | |
| 3019 | 3033 | return templ_7745c5c3_Err | |
| 3020 | 3034 | } | |
| 3021 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, "\"") | |
| 3035 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "\"") | |
| 3022 | 3036 | if templ_7745c5c3_Err != nil { | |
| 3023 | 3037 | return templ_7745c5c3_Err | |
| 3024 | 3038 | } | |
| 3025 | 3039 | } | |
| 3026 | 3040 | if p.Both && !p.Pinned { | |
| 3027 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"") | |
| 3041 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"") | |
| 3028 | 3042 | if templ_7745c5c3_Err != nil { | |
| 3029 | 3043 | return templ_7745c5c3_Err | |
| 3030 | 3044 | } | |
| 3031 | 3045 | } | |
| 3032 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, ">") | |
| 3046 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, ">") | |
| 3033 | 3047 | if templ_7745c5c3_Err != nil { | |
| 3034 | 3048 | return templ_7745c5c3_Err | |
| 3035 | 3049 | } | |
| @@ -3039,7 +3053,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3039 | 3053 | return templ_7745c5c3_Err | |
| 3040 | 3054 | } | |
| 3041 | 3055 | } | |
| 3042 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, "</div>") | |
| 3056 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "</div>") | |
| 3043 | 3057 | if templ_7745c5c3_Err != nil { | |
| 3044 | 3058 | return templ_7745c5c3_Err | |
| 3045 | 3059 | } | |
| @@ -3075,77 +3089,77 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3075 | 3089 | templ_7745c5c3_Var150 = templ.NopComponent | |
| 3076 | 3090 | } | |
| 3077 | 3091 | ctx = templ.ClearChildren(ctx) | |
| 3078 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">") | |
| 3092 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">") | |
| 3079 | 3093 | if templ_7745c5c3_Err != nil { | |
| 3080 | 3094 | return templ_7745c5c3_Err | |
| 3081 | 3095 | } | |
| 3082 | 3096 | var templ_7745c5c3_Var151 string | |
| 3083 | 3097 | templ_7745c5c3_Var151, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) | |
| 3084 | 3098 | if templ_7745c5c3_Err != nil { | |
| 3085 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 581, Col: 67} | |
| 3099 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 589, Col: 67} | |
| 3086 | 3100 | } | |
| 3087 | 3101 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var151)) | |
| 3088 | 3102 | if templ_7745c5c3_Err != nil { | |
| 3089 | 3103 | return templ_7745c5c3_Err | |
| 3090 | 3104 | } | |
| 3091 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "</span></h2><ul class=\"pcommits\">") | |
| 3105 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "</span></h2><ul class=\"pcommits\">") | |
| 3092 | 3106 | if templ_7745c5c3_Err != nil { | |
| 3093 | 3107 | return templ_7745c5c3_Err | |
| 3094 | 3108 | } | |
| 3095 | 3109 | for _, c := range p.Ahead { | |
| 3096 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "<li><a href=\"") | |
| 3110 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "<li><a href=\"") | |
| 3097 | 3111 | if templ_7745c5c3_Err != nil { | |
| 3098 | 3112 | return templ_7745c5c3_Err | |
| 3099 | 3113 | } | |
| 3100 | 3114 | var templ_7745c5c3_Var152 templ.SafeURL | |
| 3101 | 3115 | templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) | |
| 3102 | 3116 | if templ_7745c5c3_Err != nil { | |
| 3103 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 585, Col: 37} | |
| 3117 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 593, Col: 37} | |
| 3104 | 3118 | } | |
| 3105 | 3119 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152)) | |
| 3106 | 3120 | if templ_7745c5c3_Err != nil { | |
| 3107 | 3121 | return templ_7745c5c3_Err | |
| 3108 | 3122 | } | |
| 3109 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "\">") | |
| 3123 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 287, "\">") | |
| 3110 | 3124 | if templ_7745c5c3_Err != nil { | |
| 3111 | 3125 | return templ_7745c5c3_Err | |
| 3112 | 3126 | } | |
| 3113 | 3127 | var templ_7745c5c3_Var153 string | |
| 3114 | 3128 | templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | |
| 3115 | 3129 | if templ_7745c5c3_Err != nil { | |
| 3116 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 585, Col: 49} | |
| 3130 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 593, Col: 49} | |
| 3117 | 3131 | } | |
| 3118 | 3132 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153)) | |
| 3119 | 3133 | if templ_7745c5c3_Err != nil { | |
| 3120 | 3134 | return templ_7745c5c3_Err | |
| 3121 | 3135 | } | |
| 3122 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 287, "</a> <span class=\"s\">") | |
| 3136 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "</a> <span class=\"s\">") | |
| 3123 | 3137 | if templ_7745c5c3_Err != nil { | |
| 3124 | 3138 | return templ_7745c5c3_Err | |
| 3125 | 3139 | } | |
| 3126 | 3140 | var templ_7745c5c3_Var154 string | |
| 3127 | 3141 | templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | |
| 3128 | 3142 | if templ_7745c5c3_Err != nil { | |
| 3129 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 586, Col: 32} | |
| 3143 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 594, Col: 32} | |
| 3130 | 3144 | } | |
| 3131 | 3145 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154)) | |
| 3132 | 3146 | if templ_7745c5c3_Err != nil { | |
| 3133 | 3147 | return templ_7745c5c3_Err | |
| 3134 | 3148 | } | |
| 3135 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "</span> <span class=\"mute\">") | |
| 3149 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, "</span> <span class=\"mute\">") | |
| 3136 | 3150 | if templ_7745c5c3_Err != nil { | |
| 3137 | 3151 | return templ_7745c5c3_Err | |
| 3138 | 3152 | } | |
| 3139 | 3153 | var templ_7745c5c3_Var155 string | |
| 3140 | 3154 | templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | |
| 3141 | 3155 | if templ_7745c5c3_Err != nil { | |
| 3142 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 588, Col: 16} | |
| 3156 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 596, Col: 16} | |
| 3143 | 3157 | } | |
| 3144 | 3158 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155)) | |
| 3145 | 3159 | if templ_7745c5c3_Err != nil { | |
| 3146 | 3160 | return templ_7745c5c3_Err | |
| 3147 | 3161 | } | |
| 3148 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, " ") | |
| 3162 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, " ") | |
| 3149 | 3163 | if templ_7745c5c3_Err != nil { | |
| 3150 | 3164 | return templ_7745c5c3_Err | |
| 3151 | 3165 | } | |
| @@ -3153,90 +3167,90 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3153 | 3167 | var templ_7745c5c3_Var156 string | |
| 3154 | 3168 | templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | |
| 3155 | 3169 | if templ_7745c5c3_Err != nil { | |
| 3156 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 590, Col: 15} | |
| 3170 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 598, Col: 15} | |
| 3157 | 3171 | } | |
| 3158 | 3172 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156)) | |
| 3159 | 3173 | if templ_7745c5c3_Err != nil { | |
| 3160 | 3174 | return templ_7745c5c3_Err | |
| 3161 | 3175 | } | |
| 3162 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, "<time datetime=\"") | |
| 3176 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "<time datetime=\"") | |
| 3163 | 3177 | if templ_7745c5c3_Err != nil { | |
| 3164 | 3178 | return templ_7745c5c3_Err | |
| 3165 | 3179 | } | |
| 3166 | 3180 | var templ_7745c5c3_Var157 string | |
| 3167 | 3181 | templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | |
| 3168 | 3182 | if templ_7745c5c3_Err != nil { | |
| 3169 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 590, Col: 42} | |
| 3183 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 598, Col: 42} | |
| 3170 | 3184 | } | |
| 3171 | 3185 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var157) | |
| 3172 | 3186 | if templ_7745c5c3_Err != nil { | |
| 3173 | 3187 | return templ_7745c5c3_Err | |
| 3174 | 3188 | } | |
| 3175 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "\">") | |
| 3189 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, "\">") | |
| 3176 | 3190 | if templ_7745c5c3_Err != nil { | |
| 3177 | 3191 | return templ_7745c5c3_Err | |
| 3178 | 3192 | } | |
| 3179 | 3193 | var templ_7745c5c3_Var158 string | |
| 3180 | 3194 | templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | |
| 3181 | 3195 | if templ_7745c5c3_Err != nil { | |
| 3182 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 590, Col: 53} | |
| 3196 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 598, Col: 53} | |
| 3183 | 3197 | } | |
| 3184 | 3198 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158)) | |
| 3185 | 3199 | if templ_7745c5c3_Err != nil { | |
| 3186 | 3200 | return templ_7745c5c3_Err | |
| 3187 | 3201 | } | |
| 3188 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, "</time>") | |
| 3202 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "</time>") | |
| 3189 | 3203 | if templ_7745c5c3_Err != nil { | |
| 3190 | 3204 | return templ_7745c5c3_Err | |
| 3191 | 3205 | } | |
| 3192 | 3206 | } | |
| 3193 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "</span></li>") | |
| 3207 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, "</span></li>") | |
| 3194 | 3208 | if templ_7745c5c3_Err != nil { | |
| 3195 | 3209 | return templ_7745c5c3_Err | |
| 3196 | 3210 | } | |
| 3197 | 3211 | } | |
| 3198 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, "</ul>") | |
| 3212 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</ul>") | |
| 3199 | 3213 | if templ_7745c5c3_Err != nil { | |
| 3200 | 3214 | return templ_7745c5c3_Err | |
| 3201 | 3215 | } | |
| 3202 | 3216 | if len(p.Ahead) == 0 { | |
| 3203 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "<p class=\"dim\">no commit ahead of ") | |
| 3217 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "<p class=\"dim\">no commit ahead of ") | |
| 3204 | 3218 | if templ_7745c5c3_Err != nil { | |
| 3205 | 3219 | return templ_7745c5c3_Err | |
| 3206 | 3220 | } | |
| 3207 | 3221 | var templ_7745c5c3_Var159 string | |
| 3208 | 3222 | templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 3209 | 3223 | if templ_7745c5c3_Err != nil { | |
| 3210 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 597, Col: 47} | |
| 3224 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 605, Col: 47} | |
| 3211 | 3225 | } | |
| 3212 | 3226 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159)) | |
| 3213 | 3227 | if templ_7745c5c3_Err != nil { | |
| 3214 | 3228 | return templ_7745c5c3_Err | |
| 3215 | 3229 | } | |
| 3216 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, ".</p>") | |
| 3230 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, ".</p>") | |
| 3217 | 3231 | if templ_7745c5c3_Err != nil { | |
| 3218 | 3232 | return templ_7745c5c3_Err | |
| 3219 | 3233 | } | |
| 3220 | 3234 | } | |
| 3221 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, "</section>") | |
| 3235 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "</section>") | |
| 3222 | 3236 | if templ_7745c5c3_Err != nil { | |
| 3223 | 3237 | return templ_7745c5c3_Err | |
| 3224 | 3238 | } | |
| 3225 | 3239 | if p.HasDiff { | |
| 3226 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">") | |
| 3240 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">") | |
| 3227 | 3241 | if templ_7745c5c3_Err != nil { | |
| 3228 | 3242 | return templ_7745c5c3_Err | |
| 3229 | 3243 | } | |
| 3230 | 3244 | var templ_7745c5c3_Var160 string | |
| 3231 | 3245 | templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | |
| 3232 | 3246 | if templ_7745c5c3_Err != nil { | |
| 3233 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 602, Col: 66} | |
| 3247 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 610, Col: 66} | |
| 3234 | 3248 | } | |
| 3235 | 3249 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160)) | |
| 3236 | 3250 | if templ_7745c5c3_Err != nil { | |
| 3237 | 3251 | return templ_7745c5c3_Err | |
| 3238 | 3252 | } | |
| 3239 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "</span></h2>") | |
| 3253 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</span></h2>") | |
| 3240 | 3254 | if templ_7745c5c3_Err != nil { | |
| 3241 | 3255 | return templ_7745c5c3_Err | |
| 3242 | 3256 | } | |
| @@ -3244,12 +3258,12 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3244 | 3258 | if templ_7745c5c3_Err != nil { | |
| 3245 | 3259 | return templ_7745c5c3_Err | |
| 3246 | 3260 | } | |
| 3247 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</section>") | |
| 3261 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, "</section>") | |
| 3248 | 3262 | if templ_7745c5c3_Err != nil { | |
| 3249 | 3263 | return templ_7745c5c3_Err | |
| 3250 | 3264 | } | |
| 3251 | 3265 | } | |
| 3252 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>") | |
| 3266 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>") | |
| 3253 | 3267 | if templ_7745c5c3_Err != nil { | |
| 3254 | 3268 | return templ_7745c5c3_Err | |
| 3255 | 3269 | } | |
| @@ -3257,7 +3271,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3257 | 3271 | if templ_7745c5c3_Err != nil { | |
| 3258 | 3272 | return templ_7745c5c3_Err | |
| 3259 | 3273 | } | |
| 3260 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "</section>") | |
| 3274 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 303, "</section>") | |
| 3261 | 3275 | if templ_7745c5c3_Err != nil { | |
| 3262 | 3276 | return templ_7745c5c3_Err | |
| 3263 | 3277 | } | |
| @@ -1407,160 +1407,174 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1407 | return templ_7745c5c3_Err | 1407 | return templ_7745c5c3_Err | ||
| 1408 | } | 1408 | } | ||
| 1409 | if c.Deleted { | 1409 | if c.Deleted { | ||
| 1410 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "<p class=\"mute\">deleted note</p>") | 1410 | + | if c.Verdict != "" { |
| 1411 | - | if templ_7745c5c3_Err != nil { | 1411 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "<p class=\"mute\">text deleted</p>") |
| 1412 | - | return templ_7745c5c3_Err | 1412 | + | if templ_7745c5c3_Err != nil { |
| 1413 | + | return templ_7745c5c3_Err | |||
| 1414 | + | } | |||
| 1415 | + | } else { | |||
| 1416 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "<p class=\"mute\">deleted note</p>") | |||
| 1417 | + | if templ_7745c5c3_Err != nil { | |||
| 1418 | + | return templ_7745c5c3_Err | |||
| 1419 | + | } | |||
| 1413 | } | 1420 | } | ||
| 1414 | } else { | 1421 | } else { | ||
| 1415 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "<div class=\"c-body prose\">") | 1422 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "<div class=\"c-body prose\">") |
| 1416 | if templ_7745c5c3_Err != nil { | 1423 | if templ_7745c5c3_Err != nil { | ||
| 1417 | return templ_7745c5c3_Err | 1424 | return templ_7745c5c3_Err | ||
| 1418 | } | 1425 | } | ||
| 1419 | - | templ_7745c5c3_Err = templ.Raw(string(c.Body)).Render(ctx, templ_7745c5c3_Buffer) | 1426 | + | if suffix == "-s" { |
| 1420 | - | if templ_7745c5c3_Err != nil { | 1427 | + | templ_7745c5c3_Err = templ.Raw(string(c.BodySplit)).Render(ctx, templ_7745c5c3_Buffer) |
| 1421 | - | return templ_7745c5c3_Err | 1428 | + | if templ_7745c5c3_Err != nil { |
| 1429 | + | return templ_7745c5c3_Err | |||
| 1430 | + | } | |||
| 1431 | + | } else { | |||
| 1432 | + | templ_7745c5c3_Err = templ.Raw(string(c.Body)).Render(ctx, templ_7745c5c3_Buffer) | |||
| 1433 | + | if templ_7745c5c3_Err != nil { | |||
| 1434 | + | return templ_7745c5c3_Err | |||
| 1435 | + | } | |||
| 1422 | } | 1436 | } | ||
| 1423 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "</div>") | 1437 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "</div>") |
| 1424 | if templ_7745c5c3_Err != nil { | 1438 | if templ_7745c5c3_Err != nil { | ||
| 1425 | return templ_7745c5c3_Err | 1439 | return templ_7745c5c3_Err | ||
| 1426 | } | 1440 | } | ||
| 1427 | } | 1441 | } | ||
| 1428 | if c.Edited { | 1442 | if c.Edited { | ||
| 1429 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "<span class=\"mute\">edited</span> ") | 1443 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "<span class=\"mute\">edited</span> ") |
| 1430 | if templ_7745c5c3_Err != nil { | 1444 | if templ_7745c5c3_Err != nil { | ||
| 1431 | return templ_7745c5c3_Err | 1445 | return templ_7745c5c3_Err | ||
| 1432 | } | 1446 | } | ||
| 1433 | } | 1447 | } | ||
| 1434 | if c.Verdict != "" { | 1448 | if c.Verdict != "" { | ||
| 1435 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "<span class=\"c-state\">") | 1449 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "<span class=\"c-state\">") |
| 1436 | if templ_7745c5c3_Err != nil { | 1450 | if templ_7745c5c3_Err != nil { | ||
| 1437 | return templ_7745c5c3_Err | 1451 | return templ_7745c5c3_Err | ||
| 1438 | } | 1452 | } | ||
| 1439 | var templ_7745c5c3_Var70 string | 1453 | var templ_7745c5c3_Var70 string | ||
| 1440 | templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict) | 1454 | templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict) | ||
| 1441 | if templ_7745c5c3_Err != nil { | 1455 | if templ_7745c5c3_Err != nil { | ||
| 1442 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 261, Col: 36} | 1456 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 269, Col: 36} |
| 1443 | } | 1457 | } | ||
| 1444 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70)) | 1458 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70)) | ||
| 1445 | if templ_7745c5c3_Err != nil { | 1459 | if templ_7745c5c3_Err != nil { | ||
| 1446 | return templ_7745c5c3_Err | 1460 | return templ_7745c5c3_Err | ||
| 1447 | } | 1461 | } | ||
| 1448 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "</span> ") | 1462 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "</span> ") |
| 1449 | if templ_7745c5c3_Err != nil { | 1463 | if templ_7745c5c3_Err != nil { | ||
| 1450 | return templ_7745c5c3_Err | 1464 | return templ_7745c5c3_Err | ||
| 1451 | } | 1465 | } | ||
| 1452 | } | 1466 | } | ||
| 1453 | if c.Range != "" { | 1467 | if c.Range != "" { | ||
| 1454 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "<span class=\"mute\">") | 1468 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "<span class=\"mute\">") |
| 1455 | if templ_7745c5c3_Err != nil { | 1469 | if templ_7745c5c3_Err != nil { | ||
| 1456 | return templ_7745c5c3_Err | 1470 | return templ_7745c5c3_Err | ||
| 1457 | } | 1471 | } | ||
| 1458 | var templ_7745c5c3_Var71 string | 1472 | var templ_7745c5c3_Var71 string | ||
| 1459 | templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range) | 1473 | templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range) | ||
| 1460 | if templ_7745c5c3_Err != nil { | 1474 | if templ_7745c5c3_Err != nil { | ||
| 1461 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 264, Col: 31} | 1475 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 272, Col: 31} |
| 1462 | } | 1476 | } | ||
| 1463 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71)) | 1477 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71)) | ||
| 1464 | if templ_7745c5c3_Err != nil { | 1478 | if templ_7745c5c3_Err != nil { | ||
| 1465 | return templ_7745c5c3_Err | 1479 | return templ_7745c5c3_Err | ||
| 1466 | } | 1480 | } | ||
| 1467 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "</span> ") | 1481 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "</span> ") |
| 1468 | if templ_7745c5c3_Err != nil { | 1482 | if templ_7745c5c3_Err != nil { | ||
| 1469 | return templ_7745c5c3_Err | 1483 | return templ_7745c5c3_Err | ||
| 1470 | } | 1484 | } | ||
| 1471 | } | 1485 | } | ||
| 1472 | if c.Quote != "" { | 1486 | if c.Quote != "" { | ||
| 1473 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "<button type=\"button\" class=\"btn\" data-js data-quote=\"") | 1487 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "<button type=\"button\" class=\"btn\" data-js data-quote=\"") |
| 1474 | if templ_7745c5c3_Err != nil { | 1488 | if templ_7745c5c3_Err != nil { | ||
| 1475 | return templ_7745c5c3_Err | 1489 | return templ_7745c5c3_Err | ||
| 1476 | } | 1490 | } | ||
| 1477 | var templ_7745c5c3_Var72 string | 1491 | var templ_7745c5c3_Var72 string | ||
| 1478 | templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote) | 1492 | templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote) | ||
| 1479 | if templ_7745c5c3_Err != nil { | 1493 | if templ_7745c5c3_Err != nil { | ||
| 1480 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 267, Col: 65} | 1494 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 275, Col: 65} |
| 1481 | } | 1495 | } | ||
| 1482 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var72) | 1496 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var72) | ||
| 1483 | if templ_7745c5c3_Err != nil { | 1497 | if templ_7745c5c3_Err != nil { | ||
| 1484 | return templ_7745c5c3_Err | 1498 | return templ_7745c5c3_Err | ||
| 1485 | } | 1499 | } | ||
| 1486 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "\">Quote</button> ") | 1500 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "\">Quote</button> ") |
| 1487 | if templ_7745c5c3_Err != nil { | 1501 | if templ_7745c5c3_Err != nil { | ||
| 1488 | return templ_7745c5c3_Err | 1502 | return templ_7745c5c3_Err | ||
| 1489 | } | 1503 | } | ||
| 1490 | } | 1504 | } | ||
| 1491 | if c.Edit != nil { | 1505 | if c.Edit != nil { | ||
| 1492 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "<details><summary>Edit</summary><form method=\"post\" action=\"") | 1506 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "<details><summary>Edit</summary><form method=\"post\" action=\"") |
| 1493 | if templ_7745c5c3_Err != nil { | 1507 | if templ_7745c5c3_Err != nil { | ||
| 1494 | return templ_7745c5c3_Err | 1508 | return templ_7745c5c3_Err | ||
| 1495 | } | 1509 | } | ||
| 1496 | var templ_7745c5c3_Var73 templ.SafeURL | 1510 | var templ_7745c5c3_Var73 templ.SafeURL | ||
| 1497 | templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action)) | 1511 | templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action)) | ||
| 1498 | if templ_7745c5c3_Err != nil { | 1512 | if templ_7745c5c3_Err != nil { | ||
| 1499 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 270, Col: 92} | 1513 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 278, Col: 92} |
| 1500 | } | 1514 | } | ||
| 1501 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73)) | 1515 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73)) | ||
| 1502 | if templ_7745c5c3_Err != nil { | 1516 | if templ_7745c5c3_Err != nil { | ||
| 1503 | return templ_7745c5c3_Err | 1517 | return templ_7745c5c3_Err | ||
| 1504 | } | 1518 | } | ||
| 1505 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "\"><input type=\"hidden\" name=\"from\" value=\"") | 1519 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "\"><input type=\"hidden\" name=\"from\" value=\"") |
| 1506 | if templ_7745c5c3_Err != nil { | 1520 | if templ_7745c5c3_Err != nil { | ||
| 1507 | return templ_7745c5c3_Err | 1521 | return templ_7745c5c3_Err | ||
| 1508 | } | 1522 | } | ||
| 1509 | var templ_7745c5c3_Var74 string | 1523 | var templ_7745c5c3_Var74 string | ||
| 1510 | templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From)) | 1524 | templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From)) | ||
| 1511 | if templ_7745c5c3_Err != nil { | 1525 | if templ_7745c5c3_Err != nil { | ||
| 1512 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 270, Col: 153} | 1526 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 278, Col: 153} |
| 1513 | } | 1527 | } | ||
| 1514 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var74) | 1528 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var74) | ||
| 1515 | if templ_7745c5c3_Err != nil { | 1529 | if templ_7745c5c3_Err != nil { | ||
| 1516 | return templ_7745c5c3_Err | 1530 | return templ_7745c5c3_Err | ||
| 1517 | } | 1531 | } | ||
| 1518 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "\"><textarea name=\"text\" maxlength=\"8000\">") | 1532 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "\"><textarea name=\"text\" maxlength=\"8000\">") |
| 1519 | if templ_7745c5c3_Err != nil { | 1533 | if templ_7745c5c3_Err != nil { | ||
| 1520 | return templ_7745c5c3_Err | 1534 | return templ_7745c5c3_Err | ||
| 1521 | } | 1535 | } | ||
| 1522 | var templ_7745c5c3_Var75 string | 1536 | var templ_7745c5c3_Var75 string | ||
| 1523 | templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text) | 1537 | templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text) | ||
| 1524 | if templ_7745c5c3_Err != nil { | 1538 | if templ_7745c5c3_Err != nil { | ||
| 1525 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 270, Col: 209} | 1539 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 278, Col: 209} |
| 1526 | } | 1540 | } | ||
| 1527 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var75)) | 1541 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var75)) | ||
| 1528 | if templ_7745c5c3_Err != nil { | 1542 | if templ_7745c5c3_Err != nil { | ||
| 1529 | return templ_7745c5c3_Err | 1543 | return templ_7745c5c3_Err | ||
| 1530 | } | 1544 | } | ||
| 1531 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "</textarea><button class=\"btn\" type=\"submit\">Save</button></form></details> ") | 1545 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "</textarea><button class=\"btn\" type=\"submit\">Save</button></form></details> ") |
| 1532 | if templ_7745c5c3_Err != nil { | 1546 | if templ_7745c5c3_Err != nil { | ||
| 1533 | return templ_7745c5c3_Err | 1547 | return templ_7745c5c3_Err | ||
| 1534 | } | 1548 | } | ||
| 1535 | } | 1549 | } | ||
| 1536 | if c.Delete != nil { | 1550 | if c.Delete != nil { | ||
| 1537 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "<details><summary>Delete</summary><form method=\"post\" action=\"") | 1551 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<details><summary>Delete</summary><form method=\"post\" action=\"") |
| 1538 | if templ_7745c5c3_Err != nil { | 1552 | if templ_7745c5c3_Err != nil { | ||
| 1539 | return templ_7745c5c3_Err | 1553 | return templ_7745c5c3_Err | ||
| 1540 | } | 1554 | } | ||
| 1541 | var templ_7745c5c3_Var76 templ.SafeURL | 1555 | var templ_7745c5c3_Var76 templ.SafeURL | ||
| 1542 | templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action)) | 1556 | templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action)) | ||
| 1543 | if templ_7745c5c3_Err != nil { | 1557 | if templ_7745c5c3_Err != nil { | ||
| 1544 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 273, Col: 96} | 1558 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 281, Col: 96} |
| 1545 | } | 1559 | } | ||
| 1546 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var76)) | 1560 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var76)) | ||
| 1547 | if templ_7745c5c3_Err != nil { | 1561 | if templ_7745c5c3_Err != nil { | ||
| 1548 | return templ_7745c5c3_Err | 1562 | return templ_7745c5c3_Err | ||
| 1549 | } | 1563 | } | ||
| 1550 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "\"><input type=\"hidden\" name=\"from\" value=\"") | 1564 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "\"><input type=\"hidden\" name=\"from\" value=\"") |
| 1551 | if templ_7745c5c3_Err != nil { | 1565 | if templ_7745c5c3_Err != nil { | ||
| 1552 | return templ_7745c5c3_Err | 1566 | return templ_7745c5c3_Err | ||
| 1553 | } | 1567 | } | ||
| 1554 | var templ_7745c5c3_Var77 string | 1568 | var templ_7745c5c3_Var77 string | ||
| 1555 | templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From)) | 1569 | templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From)) | ||
| 1556 | if templ_7745c5c3_Err != nil { | 1570 | if templ_7745c5c3_Err != nil { | ||
| 1557 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 273, Col: 159} | 1571 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 281, Col: 159} |
| 1558 | } | 1572 | } | ||
| 1559 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var77) | 1573 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var77) | ||
| 1560 | if templ_7745c5c3_Err != nil { | 1574 | if templ_7745c5c3_Err != nil { | ||
| 1561 | return templ_7745c5c3_Err | 1575 | return templ_7745c5c3_Err | ||
| 1562 | } | 1576 | } | ||
| 1563 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "\"><p>Delete this note?</p><button class=\"btn\" type=\"submit\">Confirm delete</button></form></details> ") | 1577 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "\"><p>Delete this note?</p><button class=\"btn\" type=\"submit\">Confirm delete</button></form></details> ") |
| 1564 | if templ_7745c5c3_Err != nil { | 1578 | if templ_7745c5c3_Err != nil { | ||
| 1565 | return templ_7745c5c3_Err | 1579 | return templ_7745c5c3_Err | ||
| 1566 | } | 1580 | } | ||
| @@ -1572,7 +1586,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1572 | } | 1586 | } | ||
| 1573 | } | 1587 | } | ||
| 1574 | if c.Reply != nil { | 1588 | if c.Reply != nil { | ||
| 1575 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "<details data-reply><summary>Reply</summary>") | 1589 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "<details data-reply><summary>Reply</summary>") |
| 1576 | if templ_7745c5c3_Err != nil { | 1590 | if templ_7745c5c3_Err != nil { | ||
| 1577 | return templ_7745c5c3_Err | 1591 | return templ_7745c5c3_Err | ||
| 1578 | } | 1592 | } | ||
| @@ -1580,80 +1594,80 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1580 | if templ_7745c5c3_Err != nil { | 1594 | if templ_7745c5c3_Err != nil { | ||
| 1581 | return templ_7745c5c3_Err | 1595 | return templ_7745c5c3_Err | ||
| 1582 | } | 1596 | } | ||
| 1583 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "</details> ") | 1597 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "</details> ") |
| 1584 | if templ_7745c5c3_Err != nil { | 1598 | if templ_7745c5c3_Err != nil { | ||
| 1585 | return templ_7745c5c3_Err | 1599 | return templ_7745c5c3_Err | ||
| 1586 | } | 1600 | } | ||
| 1587 | } | 1601 | } | ||
| 1588 | if c.Resolve != nil { | 1602 | if c.Resolve != nil { | ||
| 1589 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "<form class=\"c-act\" method=\"post\" action=\"") | 1603 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "<form class=\"c-act\" method=\"post\" action=\"") |
| 1590 | if templ_7745c5c3_Err != nil { | 1604 | if templ_7745c5c3_Err != nil { | ||
| 1591 | return templ_7745c5c3_Err | 1605 | return templ_7745c5c3_Err | ||
| 1592 | } | 1606 | } | ||
| 1593 | var templ_7745c5c3_Var78 templ.SafeURL | 1607 | var templ_7745c5c3_Var78 templ.SafeURL | ||
| 1594 | templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action)) | 1608 | templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action)) | ||
| 1595 | if templ_7745c5c3_Err != nil { | 1609 | if templ_7745c5c3_Err != nil { | ||
| 1596 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 284, Col: 77} | 1610 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 77} |
| 1597 | } | 1611 | } | ||
| 1598 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78)) | 1612 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78)) | ||
| 1599 | if templ_7745c5c3_Err != nil { | 1613 | if templ_7745c5c3_Err != nil { | ||
| 1600 | return templ_7745c5c3_Err | 1614 | return templ_7745c5c3_Err | ||
| 1601 | } | 1615 | } | ||
| 1602 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "\"><input type=\"hidden\" name=\"resolved\" value=\"") | 1616 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "\"><input type=\"hidden\" name=\"resolved\" value=\"") |
| 1603 | if templ_7745c5c3_Err != nil { | 1617 | if templ_7745c5c3_Err != nil { | ||
| 1604 | return templ_7745c5c3_Err | 1618 | return templ_7745c5c3_Err | ||
| 1605 | } | 1619 | } | ||
| 1606 | var templ_7745c5c3_Var79 string | 1620 | var templ_7745c5c3_Var79 string | ||
| 1607 | templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value)) | 1621 | templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value)) | ||
| 1608 | if templ_7745c5c3_Err != nil { | 1622 | if templ_7745c5c3_Err != nil { | ||
| 1609 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 285, Col: 74} | 1623 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 293, Col: 74} |
| 1610 | } | 1624 | } | ||
| 1611 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var79) | 1625 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var79) | ||
| 1612 | if templ_7745c5c3_Err != nil { | 1626 | if templ_7745c5c3_Err != nil { | ||
| 1613 | return templ_7745c5c3_Err | 1627 | return templ_7745c5c3_Err | ||
| 1614 | } | 1628 | } | ||
| 1615 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "\"> ") | 1629 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "\"> ") |
| 1616 | if templ_7745c5c3_Err != nil { | 1630 | if templ_7745c5c3_Err != nil { | ||
| 1617 | return templ_7745c5c3_Err | 1631 | return templ_7745c5c3_Err | ||
| 1618 | } | 1632 | } | ||
| 1619 | if c.Resolve.From > 0 { | 1633 | if c.Resolve.From > 0 { | ||
| 1620 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "<input type=\"hidden\" name=\"from\" value=\"") | 1634 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "<input type=\"hidden\" name=\"from\" value=\"") |
| 1621 | if templ_7745c5c3_Err != nil { | 1635 | if templ_7745c5c3_Err != nil { | ||
| 1622 | return templ_7745c5c3_Err | 1636 | return templ_7745c5c3_Err | ||
| 1623 | } | 1637 | } | ||
| 1624 | var templ_7745c5c3_Var80 string | 1638 | var templ_7745c5c3_Var80 string | ||
| 1625 | templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From)) | 1639 | templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From)) | ||
| 1626 | if templ_7745c5c3_Err != nil { | 1640 | if templ_7745c5c3_Err != nil { | ||
| 1627 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 287, Col: 66} | 1641 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 295, Col: 66} |
| 1628 | } | 1642 | } | ||
| 1629 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80) | 1643 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80) | ||
| 1630 | if templ_7745c5c3_Err != nil { | 1644 | if templ_7745c5c3_Err != nil { | ||
| 1631 | return templ_7745c5c3_Err | 1645 | return templ_7745c5c3_Err | ||
| 1632 | } | 1646 | } | ||
| 1633 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "\"> ") | 1647 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "\"> ") |
| 1634 | if templ_7745c5c3_Err != nil { | 1648 | if templ_7745c5c3_Err != nil { | ||
| 1635 | return templ_7745c5c3_Err | 1649 | return templ_7745c5c3_Err | ||
| 1636 | } | 1650 | } | ||
| 1637 | } | 1651 | } | ||
| 1638 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "<button type=\"submit\" class=\"btn\">") | 1652 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "<button type=\"submit\" class=\"btn\">") |
| 1639 | if templ_7745c5c3_Err != nil { | 1653 | if templ_7745c5c3_Err != nil { | ||
| 1640 | return templ_7745c5c3_Err | 1654 | return templ_7745c5c3_Err | ||
| 1641 | } | 1655 | } | ||
| 1642 | var templ_7745c5c3_Var81 string | 1656 | var templ_7745c5c3_Var81 string | ||
| 1643 | templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label) | 1657 | templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label) | ||
| 1644 | if templ_7745c5c3_Err != nil { | 1658 | if templ_7745c5c3_Err != nil { | ||
| 1645 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 289, Col: 55} | 1659 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 297, Col: 55} |
| 1646 | } | 1660 | } | ||
| 1647 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81)) | 1661 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81)) | ||
| 1648 | if templ_7745c5c3_Err != nil { | 1662 | if templ_7745c5c3_Err != nil { | ||
| 1649 | return templ_7745c5c3_Err | 1663 | return templ_7745c5c3_Err | ||
| 1650 | } | 1664 | } | ||
| 1651 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "</button></form>") | 1665 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "</button></form>") |
| 1652 | if templ_7745c5c3_Err != nil { | 1666 | if templ_7745c5c3_Err != nil { | ||
| 1653 | return templ_7745c5c3_Err | 1667 | return templ_7745c5c3_Err | ||
| 1654 | } | 1668 | } | ||
| 1655 | } | 1669 | } | ||
| 1656 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "</div>") | 1670 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "</div>") |
| 1657 | if templ_7745c5c3_Err != nil { | 1671 | if templ_7745c5c3_Err != nil { | ||
| 1658 | return templ_7745c5c3_Err | 1672 | return templ_7745c5c3_Err | ||
| 1659 | } | 1673 | } | ||
| @@ -1690,198 +1704,198 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1690 | templ_7745c5c3_Var82 = templ.NopComponent | 1704 | templ_7745c5c3_Var82 = templ.NopComponent | ||
| 1691 | } | 1705 | } | ||
| 1692 | ctx = templ.ClearChildren(ctx) | 1706 | ctx = templ.ClearChildren(ctx) | ||
| 1693 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "<form class=\"cform\" method=\"post\" action=\"") | 1707 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "<form class=\"cform\" method=\"post\" action=\"") |
| 1694 | if templ_7745c5c3_Err != nil { | 1708 | if templ_7745c5c3_Err != nil { | ||
| 1695 | return templ_7745c5c3_Err | 1709 | return templ_7745c5c3_Err | ||
| 1696 | } | 1710 | } | ||
| 1697 | var templ_7745c5c3_Var83 templ.SafeURL | 1711 | var templ_7745c5c3_Var83 templ.SafeURL | ||
| 1698 | templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action)) | 1712 | templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action)) | ||
| 1699 | if templ_7745c5c3_Err != nil { | 1713 | if templ_7745c5c3_Err != nil { | ||
| 1700 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 67} | 1714 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 312, Col: 67} |
| 1701 | } | 1715 | } | ||
| 1702 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var83)) | 1716 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var83)) | ||
| 1703 | if templ_7745c5c3_Err != nil { | 1717 | if templ_7745c5c3_Err != nil { | ||
| 1704 | return templ_7745c5c3_Err | 1718 | return templ_7745c5c3_Err | ||
| 1705 | } | 1719 | } | ||
| 1706 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "\"><label for=\"") | 1720 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "\"><label for=\"") |
| 1707 | if templ_7745c5c3_Err != nil { | 1721 | if templ_7745c5c3_Err != nil { | ||
| 1708 | return templ_7745c5c3_Err | 1722 | return templ_7745c5c3_Err | ||
| 1709 | } | 1723 | } | ||
| 1710 | var templ_7745c5c3_Var84 string | 1724 | var templ_7745c5c3_Var84 string | ||
| 1711 | templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | 1725 | templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | ||
| 1712 | if templ_7745c5c3_Err != nil { | 1726 | if templ_7745c5c3_Err != nil { | ||
| 1713 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 305, Col: 28} | 1727 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 313, Col: 28} |
| 1714 | } | 1728 | } | ||
| 1715 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var84) | 1729 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var84) | ||
| 1716 | if templ_7745c5c3_Err != nil { | 1730 | if templ_7745c5c3_Err != nil { | ||
| 1717 | return templ_7745c5c3_Err | 1731 | return templ_7745c5c3_Err | ||
| 1718 | } | 1732 | } | ||
| 1719 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "\">") | 1733 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "\">") |
| 1720 | if templ_7745c5c3_Err != nil { | 1734 | if templ_7745c5c3_Err != nil { | ||
| 1721 | return templ_7745c5c3_Err | 1735 | return templ_7745c5c3_Err | ||
| 1722 | } | 1736 | } | ||
| 1723 | var templ_7745c5c3_Var85 string | 1737 | var templ_7745c5c3_Var85 string | ||
| 1724 | templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title) | 1738 | templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title) | ||
| 1725 | if templ_7745c5c3_Err != nil { | 1739 | if templ_7745c5c3_Err != nil { | ||
| 1726 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 305, Col: 40} | 1740 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 313, Col: 40} |
| 1727 | } | 1741 | } | ||
| 1728 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85)) | 1742 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85)) | ||
| 1729 | if templ_7745c5c3_Err != nil { | 1743 | if templ_7745c5c3_Err != nil { | ||
| 1730 | return templ_7745c5c3_Err | 1744 | return templ_7745c5c3_Err | ||
| 1731 | } | 1745 | } | ||
| 1732 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "</label> <textarea id=\"") | 1746 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "</label> <textarea id=\"") |
| 1733 | if templ_7745c5c3_Err != nil { | 1747 | if templ_7745c5c3_Err != nil { | ||
| 1734 | return templ_7745c5c3_Err | 1748 | return templ_7745c5c3_Err | ||
| 1735 | } | 1749 | } | ||
| 1736 | var templ_7745c5c3_Var86 string | 1750 | var templ_7745c5c3_Var86 string | ||
| 1737 | templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | 1751 | templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | ||
| 1738 | if templ_7745c5c3_Err != nil { | 1752 | if templ_7745c5c3_Err != nil { | ||
| 1739 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 307, Col: 21} | 1753 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 315, Col: 21} |
| 1740 | } | 1754 | } | ||
| 1741 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var86) | 1755 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var86) | ||
| 1742 | if templ_7745c5c3_Err != nil { | 1756 | if templ_7745c5c3_Err != nil { | ||
| 1743 | return templ_7745c5c3_Err | 1757 | return templ_7745c5c3_Err | ||
| 1744 | } | 1758 | } | ||
| 1745 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "\" name=\"text\" rows=\"3\" maxlength=\"8000\" placeholder=\"Markdown, 8000 characters at most\"") | 1759 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "\" name=\"text\" rows=\"3\" maxlength=\"8000\" placeholder=\"Markdown, 8000 characters at most\"") |
| 1746 | if templ_7745c5c3_Err != nil { | 1760 | if templ_7745c5c3_Err != nil { | ||
| 1747 | return templ_7745c5c3_Err | 1761 | return templ_7745c5c3_Err | ||
| 1748 | } | 1762 | } | ||
| 1749 | if f.Focus { | 1763 | if f.Focus { | ||
| 1750 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, " autofocus") | 1764 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, " autofocus") |
| 1751 | if templ_7745c5c3_Err != nil { | 1765 | if templ_7745c5c3_Err != nil { | ||
| 1752 | return templ_7745c5c3_Err | 1766 | return templ_7745c5c3_Err | ||
| 1753 | } | 1767 | } | ||
| 1754 | } | 1768 | } | ||
| 1755 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "></textarea> ") | 1769 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "></textarea> ") |
| 1756 | if templ_7745c5c3_Err != nil { | 1770 | if templ_7745c5c3_Err != nil { | ||
| 1757 | return templ_7745c5c3_Err | 1771 | return templ_7745c5c3_Err | ||
| 1758 | } | 1772 | } | ||
| 1759 | if f.Path != "" { | 1773 | if f.Path != "" { | ||
| 1760 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "<input type=\"hidden\" name=\"path\" value=\"") | 1774 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "<input type=\"hidden\" name=\"path\" value=\"") |
| 1761 | if templ_7745c5c3_Err != nil { | 1775 | if templ_7745c5c3_Err != nil { | ||
| 1762 | return templ_7745c5c3_Err | 1776 | return templ_7745c5c3_Err | ||
| 1763 | } | 1777 | } | ||
| 1764 | var templ_7745c5c3_Var87 string | 1778 | var templ_7745c5c3_Var87 string | ||
| 1765 | templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path) | 1779 | templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path) | ||
| 1766 | if templ_7745c5c3_Err != nil { | 1780 | if templ_7745c5c3_Err != nil { | ||
| 1767 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 317, Col: 50} | 1781 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 325, Col: 50} |
| 1768 | } | 1782 | } | ||
| 1769 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var87) | 1783 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var87) | ||
| 1770 | if templ_7745c5c3_Err != nil { | 1784 | if templ_7745c5c3_Err != nil { | ||
| 1771 | return templ_7745c5c3_Err | 1785 | return templ_7745c5c3_Err | ||
| 1772 | } | 1786 | } | ||
| 1773 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "\"> <input type=\"hidden\" name=\"line\" value=\"") | 1787 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "\"> <input type=\"hidden\" name=\"line\" value=\"") |
| 1774 | if templ_7745c5c3_Err != nil { | 1788 | if templ_7745c5c3_Err != nil { | ||
| 1775 | return templ_7745c5c3_Err | 1789 | return templ_7745c5c3_Err | ||
| 1776 | } | 1790 | } | ||
| 1777 | var templ_7745c5c3_Var88 string | 1791 | var templ_7745c5c3_Var88 string | ||
| 1778 | templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line) | 1792 | templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line) | ||
| 1779 | if templ_7745c5c3_Err != nil { | 1793 | if templ_7745c5c3_Err != nil { | ||
| 1780 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 50} | 1794 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 326, Col: 50} |
| 1781 | } | 1795 | } | ||
| 1782 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var88) | 1796 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var88) | ||
| 1783 | if templ_7745c5c3_Err != nil { | 1797 | if templ_7745c5c3_Err != nil { | ||
| 1784 | return templ_7745c5c3_Err | 1798 | return templ_7745c5c3_Err | ||
| 1785 | } | 1799 | } | ||
| 1786 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "\"> <input type=\"hidden\" name=\"side\" value=\"") | 1800 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "\"> <input type=\"hidden\" name=\"side\" value=\"") |
| 1787 | if templ_7745c5c3_Err != nil { | 1801 | if templ_7745c5c3_Err != nil { | ||
| 1788 | return templ_7745c5c3_Err | 1802 | return templ_7745c5c3_Err | ||
| 1789 | } | 1803 | } | ||
| 1790 | var templ_7745c5c3_Var89 string | 1804 | var templ_7745c5c3_Var89 string | ||
| 1791 | templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side) | 1805 | templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side) | ||
| 1792 | if templ_7745c5c3_Err != nil { | 1806 | if templ_7745c5c3_Err != nil { | ||
| 1793 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 319, Col: 50} | 1807 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 327, Col: 50} |
| 1794 | } | 1808 | } | ||
| 1795 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89) | 1809 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89) | ||
| 1796 | if templ_7745c5c3_Err != nil { | 1810 | if templ_7745c5c3_Err != nil { | ||
| 1797 | return templ_7745c5c3_Err | 1811 | return templ_7745c5c3_Err | ||
| 1798 | } | 1812 | } | ||
| 1799 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "\"> <label>from line <input type=\"number\" name=\"start_line\" min=\"1\" value=\"") | 1813 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\"> <label>from line <input type=\"number\" name=\"start_line\" min=\"1\" value=\"") |
| 1800 | if templ_7745c5c3_Err != nil { | 1814 | if templ_7745c5c3_Err != nil { | ||
| 1801 | return templ_7745c5c3_Err | 1815 | return templ_7745c5c3_Err | ||
| 1802 | } | 1816 | } | ||
| 1803 | var templ_7745c5c3_Var90 string | 1817 | var templ_7745c5c3_Var90 string | ||
| 1804 | templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine) | 1818 | templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine) | ||
| 1805 | if templ_7745c5c3_Err != nil { | 1819 | if templ_7745c5c3_Err != nil { | ||
| 1806 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 320, Col: 86} | 1820 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 328, Col: 86} |
| 1807 | } | 1821 | } | ||
| 1808 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90) | 1822 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90) | ||
| 1809 | if templ_7745c5c3_Err != nil { | 1823 | if templ_7745c5c3_Err != nil { | ||
| 1810 | return templ_7745c5c3_Err | 1824 | return templ_7745c5c3_Err | ||
| 1811 | } | 1825 | } | ||
| 1812 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\"></label> ") | 1826 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "\"></label> ") |
| 1813 | if templ_7745c5c3_Err != nil { | 1827 | if templ_7745c5c3_Err != nil { | ||
| 1814 | return templ_7745c5c3_Err | 1828 | return templ_7745c5c3_Err | ||
| 1815 | } | 1829 | } | ||
| 1816 | } | 1830 | } | ||
| 1817 | if f.ReplyTo != "" { | 1831 | if f.ReplyTo != "" { | ||
| 1818 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "<input type=\"hidden\" name=\"reply_to\" value=\"") | 1832 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "<input type=\"hidden\" name=\"reply_to\" value=\"") |
| 1819 | if templ_7745c5c3_Err != nil { | 1833 | if templ_7745c5c3_Err != nil { | ||
| 1820 | return templ_7745c5c3_Err | 1834 | return templ_7745c5c3_Err | ||
| 1821 | } | 1835 | } | ||
| 1822 | var templ_7745c5c3_Var91 string | 1836 | var templ_7745c5c3_Var91 string | ||
| 1823 | templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo) | 1837 | templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo) | ||
| 1824 | if templ_7745c5c3_Err != nil { | 1838 | if templ_7745c5c3_Err != nil { | ||
| 1825 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 57} | 1839 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 331, Col: 57} |
| 1826 | } | 1840 | } | ||
| 1827 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91) | 1841 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91) | ||
| 1828 | if templ_7745c5c3_Err != nil { | 1842 | if templ_7745c5c3_Err != nil { | ||
| 1829 | return templ_7745c5c3_Err | 1843 | return templ_7745c5c3_Err | ||
| 1830 | } | 1844 | } | ||
| 1831 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "\"> ") | 1845 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "\"> ") |
| 1832 | if templ_7745c5c3_Err != nil { | 1846 | if templ_7745c5c3_Err != nil { | ||
| 1833 | return templ_7745c5c3_Err | 1847 | return templ_7745c5c3_Err | ||
| 1834 | } | 1848 | } | ||
| 1835 | } | 1849 | } | ||
| 1836 | if f.Path == "" && f.ReplyTo == "" { | 1850 | if f.Path == "" && f.ReplyTo == "" { | ||
| 1837 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "<fieldset><legend>Verdict</legend><label><input type=\"radio\" name=\"verdict\" value=\"\" checked>Note</label><label><input type=\"radio\" name=\"verdict\" value=\"approve\">Approve</label><label><input type=\"radio\" name=\"verdict\" value=\"changes_requested\">Request changes</label></fieldset>") | 1851 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "<fieldset><legend>Verdict</legend><label><input type=\"radio\" name=\"verdict\" value=\"\" checked>Note</label><label><input type=\"radio\" name=\"verdict\" value=\"approve\">Approve</label><label><input type=\"radio\" name=\"verdict\" value=\"changes_requested\">Request changes</label></fieldset>") |
| 1838 | if templ_7745c5c3_Err != nil { | 1852 | if templ_7745c5c3_Err != nil { | ||
| 1839 | return templ_7745c5c3_Err | 1853 | return templ_7745c5c3_Err | ||
| 1840 | } | 1854 | } | ||
| 1841 | } | 1855 | } | ||
| 1842 | if f.From > 0 { | 1856 | if f.From > 0 { | ||
| 1843 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "<input type=\"hidden\" name=\"from\" value=\"") | 1857 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, "<input type=\"hidden\" name=\"from\" value=\"") |
| 1844 | if templ_7745c5c3_Err != nil { | 1858 | if templ_7745c5c3_Err != nil { | ||
| 1845 | return templ_7745c5c3_Err | 1859 | return templ_7745c5c3_Err | ||
| 1846 | } | 1860 | } | ||
| 1847 | var templ_7745c5c3_Var92 string | 1861 | var templ_7745c5c3_Var92 string | ||
| 1848 | templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From)) | 1862 | templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From)) | ||
| 1849 | if templ_7745c5c3_Err != nil { | 1863 | if templ_7745c5c3_Err != nil { | ||
| 1850 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 329, Col: 56} | 1864 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 337, Col: 56} |
| 1851 | } | 1865 | } | ||
| 1852 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) | 1866 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) | ||
| 1853 | if templ_7745c5c3_Err != nil { | 1867 | if templ_7745c5c3_Err != nil { | ||
| 1854 | return templ_7745c5c3_Err | 1868 | return templ_7745c5c3_Err | ||
| 1855 | } | 1869 | } | ||
| 1856 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, "\">") | 1870 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "\">") |
| 1857 | if templ_7745c5c3_Err != nil { | 1871 | if templ_7745c5c3_Err != nil { | ||
| 1858 | return templ_7745c5c3_Err | 1872 | return templ_7745c5c3_Err | ||
| 1859 | } | 1873 | } | ||
| 1860 | } | 1874 | } | ||
| 1861 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "<div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Comment</button> ") | 1875 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "<div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Comment</button> ") |
| 1862 | if templ_7745c5c3_Err != nil { | 1876 | if templ_7745c5c3_Err != nil { | ||
| 1863 | return templ_7745c5c3_Err | 1877 | return templ_7745c5c3_Err | ||
| 1864 | } | 1878 | } | ||
| 1865 | if f.Cancel != "" { | 1879 | if f.Cancel != "" { | ||
| 1866 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "<a class=\"btn\" href=\"") | 1880 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "<a class=\"btn\" href=\"") |
| 1867 | if templ_7745c5c3_Err != nil { | 1881 | if templ_7745c5c3_Err != nil { | ||
| 1868 | return templ_7745c5c3_Err | 1882 | return templ_7745c5c3_Err | ||
| 1869 | } | 1883 | } | ||
| 1870 | var templ_7745c5c3_Var93 templ.SafeURL | 1884 | var templ_7745c5c3_Var93 templ.SafeURL | ||
| 1871 | templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel)) | 1885 | templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel)) | ||
| 1872 | if templ_7745c5c3_Err != nil { | 1886 | if templ_7745c5c3_Err != nil { | ||
| 1873 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 334, Col: 49} | 1887 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 342, Col: 49} |
| 1874 | } | 1888 | } | ||
| 1875 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var93)) | 1889 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var93)) | ||
| 1876 | if templ_7745c5c3_Err != nil { | 1890 | if templ_7745c5c3_Err != nil { | ||
| 1877 | return templ_7745c5c3_Err | 1891 | return templ_7745c5c3_Err | ||
| 1878 | } | 1892 | } | ||
| 1879 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "\">Cancel</a>") | 1893 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "\">Cancel</a>") |
| 1880 | if templ_7745c5c3_Err != nil { | 1894 | if templ_7745c5c3_Err != nil { | ||
| 1881 | return templ_7745c5c3_Err | 1895 | return templ_7745c5c3_Err | ||
| 1882 | } | 1896 | } | ||
| 1883 | } | 1897 | } | ||
| 1884 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "</div></form>") | 1898 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "</div></form>") |
| 1885 | if templ_7745c5c3_Err != nil { | 1899 | if templ_7745c5c3_Err != nil { | ||
| 1886 | return templ_7745c5c3_Err | 1900 | return templ_7745c5c3_Err | ||
| 1887 | } | 1901 | } | ||
| @@ -1910,20 +1924,20 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1910 | templ_7745c5c3_Var94 = templ.NopComponent | 1924 | templ_7745c5c3_Var94 = templ.NopComponent | ||
| 1911 | } | 1925 | } | ||
| 1912 | ctx = templ.ClearChildren(ctx) | 1926 | ctx = templ.ClearChildren(ctx) | ||
| 1913 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "<section aria-labelledby=\"r-files\" class=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">") | 1927 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "<section aria-labelledby=\"r-files\" class=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">") |
| 1914 | if templ_7745c5c3_Err != nil { | 1928 | if templ_7745c5c3_Err != nil { | ||
| 1915 | return templ_7745c5c3_Err | 1929 | return templ_7745c5c3_Err | ||
| 1916 | } | 1930 | } | ||
| 1917 | var templ_7745c5c3_Var95 string | 1931 | var templ_7745c5c3_Var95 string | ||
| 1918 | templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | 1932 | templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | ||
| 1919 | if templ_7745c5c3_Err != nil { | 1933 | if templ_7745c5c3_Err != nil { | ||
| 1920 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 343, Col: 49} | 1934 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 351, Col: 49} |
| 1921 | } | 1935 | } | ||
| 1922 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95)) | 1936 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95)) | ||
| 1923 | if templ_7745c5c3_Err != nil { | 1937 | if templ_7745c5c3_Err != nil { | ||
| 1924 | return templ_7745c5c3_Err | 1938 | return templ_7745c5c3_Err | ||
| 1925 | } | 1939 | } | ||
| 1926 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "</span><kbd aria-hidden=\"true\">g f</kbd> <button type=\"button\" class=\"btn icon fold\" data-js aria-expanded=\"true\" title=\"fold the list of files\" hx-on:click=\"ermiteMR.foldFiles()\"><span class=\"ico i-chevron\" aria-hidden=\"true\"></span><span class=\"sr\">fold the list of files</span></button></h2>") | 1940 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 174, "</span><kbd aria-hidden=\"true\">g f</kbd> <button type=\"button\" class=\"btn icon fold\" data-js aria-expanded=\"true\" title=\"fold the list of files\" hx-on:click=\"ermiteMR.foldFiles()\"><span class=\"ico i-chevron\" aria-hidden=\"true\"></span><span class=\"sr\">fold the list of files</span></button></h2>") |
| 1927 | if templ_7745c5c3_Err != nil { | 1941 | if templ_7745c5c3_Err != nil { | ||
| 1928 | return templ_7745c5c3_Err | 1942 | return templ_7745c5c3_Err | ||
| 1929 | } | 1943 | } | ||
| @@ -1931,71 +1945,71 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1931 | if templ_7745c5c3_Err != nil { | 1945 | if templ_7745c5c3_Err != nil { | ||
| 1932 | return templ_7745c5c3_Err | 1946 | return templ_7745c5c3_Err | ||
| 1933 | } | 1947 | } | ||
| 1934 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 174, "</section>") | 1948 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "</section>") |
| 1935 | if templ_7745c5c3_Err != nil { | 1949 | if templ_7745c5c3_Err != nil { | ||
| 1936 | return templ_7745c5c3_Err | 1950 | return templ_7745c5c3_Err | ||
| 1937 | } | 1951 | } | ||
| 1938 | if len(p.Verdicts) > 0 { | 1952 | if len(p.Verdicts) > 0 { | ||
| 1939 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "<section><h2>Verdicts</h2><ul>") | 1953 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<section><h2>Verdicts</h2><ul>") |
| 1940 | if templ_7745c5c3_Err != nil { | 1954 | if templ_7745c5c3_Err != nil { | ||
| 1941 | return templ_7745c5c3_Err | 1955 | return templ_7745c5c3_Err | ||
| 1942 | } | 1956 | } | ||
| 1943 | for _, v := range p.Verdicts { | 1957 | for _, v := range p.Verdicts { | ||
| 1944 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<li><a href=\"") | 1958 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "<li><a href=\"") |
| 1945 | if templ_7745c5c3_Err != nil { | 1959 | if templ_7745c5c3_Err != nil { | ||
| 1946 | return templ_7745c5c3_Err | 1960 | return templ_7745c5c3_Err | ||
| 1947 | } | 1961 | } | ||
| 1948 | var templ_7745c5c3_Var96 templ.SafeURL | 1962 | var templ_7745c5c3_Var96 templ.SafeURL | ||
| 1949 | templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href)) | 1963 | templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href)) | ||
| 1950 | if templ_7745c5c3_Err != nil { | 1964 | if templ_7745c5c3_Err != nil { | ||
| 1951 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 356, Col: 37} | 1965 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 364, Col: 37} |
| 1952 | } | 1966 | } | ||
| 1953 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) | 1967 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) | ||
| 1954 | if templ_7745c5c3_Err != nil { | 1968 | if templ_7745c5c3_Err != nil { | ||
| 1955 | return templ_7745c5c3_Err | 1969 | return templ_7745c5c3_Err | ||
| 1956 | } | 1970 | } | ||
| 1957 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "\">") | 1971 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, "\">") |
| 1958 | if templ_7745c5c3_Err != nil { | 1972 | if templ_7745c5c3_Err != nil { | ||
| 1959 | return templ_7745c5c3_Err | 1973 | return templ_7745c5c3_Err | ||
| 1960 | } | 1974 | } | ||
| 1961 | var templ_7745c5c3_Var97 string | 1975 | var templ_7745c5c3_Var97 string | ||
| 1962 | templ_7745c5c3_Var97, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author) | 1976 | templ_7745c5c3_Var97, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author) | ||
| 1963 | if templ_7745c5c3_Err != nil { | 1977 | if templ_7745c5c3_Err != nil { | ||
| 1964 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 356, Col: 50} | 1978 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 364, Col: 50} |
| 1965 | } | 1979 | } | ||
| 1966 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var97)) | 1980 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var97)) | ||
| 1967 | if templ_7745c5c3_Err != nil { | 1981 | if templ_7745c5c3_Err != nil { | ||
| 1968 | return templ_7745c5c3_Err | 1982 | return templ_7745c5c3_Err | ||
| 1969 | } | 1983 | } | ||
| 1970 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, ": ") | 1984 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, ": ") |
| 1971 | if templ_7745c5c3_Err != nil { | 1985 | if templ_7745c5c3_Err != nil { | ||
| 1972 | return templ_7745c5c3_Err | 1986 | return templ_7745c5c3_Err | ||
| 1973 | } | 1987 | } | ||
| 1974 | var templ_7745c5c3_Var98 string | 1988 | var templ_7745c5c3_Var98 string | ||
| 1975 | templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label) | 1989 | templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label) | ||
| 1976 | if templ_7745c5c3_Err != nil { | 1990 | if templ_7745c5c3_Err != nil { | ||
| 1977 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 356, Col: 63} | 1991 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 364, Col: 63} |
| 1978 | } | 1992 | } | ||
| 1979 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98)) | 1993 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98)) | ||
| 1980 | if templ_7745c5c3_Err != nil { | 1994 | if templ_7745c5c3_Err != nil { | ||
| 1981 | return templ_7745c5c3_Err | 1995 | return templ_7745c5c3_Err | ||
| 1982 | } | 1996 | } | ||
| 1983 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, "</a> ") | 1997 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "</a> ") |
| 1984 | if templ_7745c5c3_Err != nil { | 1998 | if templ_7745c5c3_Err != nil { | ||
| 1985 | return templ_7745c5c3_Err | 1999 | return templ_7745c5c3_Err | ||
| 1986 | } | 2000 | } | ||
| 1987 | if v.Stale { | 2001 | if v.Stale { | ||
| 1988 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "<span class=\"mute\">(stale)</span>") | 2002 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "<span class=\"mute\">(stale)</span>") |
| 1989 | if templ_7745c5c3_Err != nil { | 2003 | if templ_7745c5c3_Err != nil { | ||
| 1990 | return templ_7745c5c3_Err | 2004 | return templ_7745c5c3_Err | ||
| 1991 | } | 2005 | } | ||
| 1992 | } | 2006 | } | ||
| 1993 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "</li>") | 2007 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "</li>") |
| 1994 | if templ_7745c5c3_Err != nil { | 2008 | if templ_7745c5c3_Err != nil { | ||
| 1995 | return templ_7745c5c3_Err | 2009 | return templ_7745c5c3_Err | ||
| 1996 | } | 2010 | } | ||
| 1997 | } | 2011 | } | ||
| 1998 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "</ul></section>") | 2012 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "</ul></section>") |
| 1999 | if templ_7745c5c3_Err != nil { | 2013 | if templ_7745c5c3_Err != nil { | ||
| 2000 | return templ_7745c5c3_Err | 2014 | return templ_7745c5c3_Err | ||
| 2001 | } | 2015 | } | ||
| @@ -2004,74 +2018,74 @@ func mrRail(p MRPage) templ.Component { | |||||
| 2004 | if templ_7745c5c3_Err != nil { | 2018 | if templ_7745c5c3_Err != nil { | ||
| 2005 | return templ_7745c5c3_Err | 2019 | return templ_7745c5c3_Err | ||
| 2006 | } | 2020 | } | ||
| 2007 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "<section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">") | 2021 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "<section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">") |
| 2008 | if templ_7745c5c3_Err != nil { | 2022 | if templ_7745c5c3_Err != nil { | ||
| 2009 | return templ_7745c5c3_Err | 2023 | return templ_7745c5c3_Err | ||
| 2010 | } | 2024 | } | ||
| 2011 | var templ_7745c5c3_Var99 string | 2025 | var templ_7745c5c3_Var99 string | ||
| 2012 | templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits))) | 2026 | templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits))) | ||
| 2013 | if templ_7745c5c3_Err != nil { | 2027 | if templ_7745c5c3_Err != nil { | ||
| 2014 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 367, Col: 71} | 2028 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 375, Col: 71} |
| 2015 | } | 2029 | } | ||
| 2016 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99)) | 2030 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99)) | ||
| 2017 | if templ_7745c5c3_Err != nil { | 2031 | if templ_7745c5c3_Err != nil { | ||
| 2018 | return templ_7745c5c3_Err | 2032 | return templ_7745c5c3_Err | ||
| 2019 | } | 2033 | } | ||
| 2020 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "</span></h2><ul class=\"pcommits\">") | 2034 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, "</span></h2><ul class=\"pcommits\">") |
| 2021 | if templ_7745c5c3_Err != nil { | 2035 | if templ_7745c5c3_Err != nil { | ||
| 2022 | return templ_7745c5c3_Err | 2036 | return templ_7745c5c3_Err | ||
| 2023 | } | 2037 | } | ||
| 2024 | for _, c := range p.Commits { | 2038 | for _, c := range p.Commits { | ||
| 2025 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, "<li") | 2039 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, "<li") |
| 2026 | if templ_7745c5c3_Err != nil { | 2040 | if templ_7745c5c3_Err != nil { | ||
| 2027 | return templ_7745c5c3_Err | 2041 | return templ_7745c5c3_Err | ||
| 2028 | } | 2042 | } | ||
| 2029 | if c.New { | 2043 | if c.New { | ||
| 2030 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, " data-new") | 2044 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, " data-new") |
| 2031 | if templ_7745c5c3_Err != nil { | 2045 | if templ_7745c5c3_Err != nil { | ||
| 2032 | return templ_7745c5c3_Err | 2046 | return templ_7745c5c3_Err | ||
| 2033 | } | 2047 | } | ||
| 2034 | } | 2048 | } | ||
| 2035 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, "><a href=\"") | 2049 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, "><a href=\"") |
| 2036 | if templ_7745c5c3_Err != nil { | 2050 | if templ_7745c5c3_Err != nil { | ||
| 2037 | return templ_7745c5c3_Err | 2051 | return templ_7745c5c3_Err | ||
| 2038 | } | 2052 | } | ||
| 2039 | var templ_7745c5c3_Var100 templ.SafeURL | 2053 | var templ_7745c5c3_Var100 templ.SafeURL | ||
| 2040 | templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) | 2054 | templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) | ||
| 2041 | if templ_7745c5c3_Err != nil { | 2055 | if templ_7745c5c3_Err != nil { | ||
| 2042 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 371, Col: 36} | 2056 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 379, Col: 36} |
| 2043 | } | 2057 | } | ||
| 2044 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100)) | 2058 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100)) | ||
| 2045 | if templ_7745c5c3_Err != nil { | 2059 | if templ_7745c5c3_Err != nil { | ||
| 2046 | return templ_7745c5c3_Err | 2060 | return templ_7745c5c3_Err | ||
| 2047 | } | 2061 | } | ||
| 2048 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, "\">") | 2062 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, "\">") |
| 2049 | if templ_7745c5c3_Err != nil { | 2063 | if templ_7745c5c3_Err != nil { | ||
| 2050 | return templ_7745c5c3_Err | 2064 | return templ_7745c5c3_Err | ||
| 2051 | } | 2065 | } | ||
| 2052 | var templ_7745c5c3_Var101 string | 2066 | var templ_7745c5c3_Var101 string | ||
| 2053 | templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | 2067 | templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | ||
| 2054 | if templ_7745c5c3_Err != nil { | 2068 | if templ_7745c5c3_Err != nil { | ||
| 2055 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 371, Col: 48} | 2069 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 379, Col: 48} |
| 2056 | } | 2070 | } | ||
| 2057 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101)) | 2071 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101)) | ||
| 2058 | if templ_7745c5c3_Err != nil { | 2072 | if templ_7745c5c3_Err != nil { | ||
| 2059 | return templ_7745c5c3_Err | 2073 | return templ_7745c5c3_Err | ||
| 2060 | } | 2074 | } | ||
| 2061 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, "</a> <span class=\"s\">") | 2075 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "</a> <span class=\"s\">") |
| 2062 | if templ_7745c5c3_Err != nil { | 2076 | if templ_7745c5c3_Err != nil { | ||
| 2063 | return templ_7745c5c3_Err | 2077 | return templ_7745c5c3_Err | ||
| 2064 | } | 2078 | } | ||
| 2065 | var templ_7745c5c3_Var102 string | 2079 | var templ_7745c5c3_Var102 string | ||
| 2066 | templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | 2080 | templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | ||
| 2067 | if templ_7745c5c3_Err != nil { | 2081 | if templ_7745c5c3_Err != nil { | ||
| 2068 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 372, Col: 32} | 2082 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 380, Col: 32} |
| 2069 | } | 2083 | } | ||
| 2070 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) | 2084 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) | ||
| 2071 | if templ_7745c5c3_Err != nil { | 2085 | if templ_7745c5c3_Err != nil { | ||
| 2072 | return templ_7745c5c3_Err | 2086 | return templ_7745c5c3_Err | ||
| 2073 | } | 2087 | } | ||
| 2074 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "</span> ") | 2088 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, "</span> ") |
| 2075 | if templ_7745c5c3_Err != nil { | 2089 | if templ_7745c5c3_Err != nil { | ||
| 2076 | return templ_7745c5c3_Err | 2090 | return templ_7745c5c3_Err | ||
| 2077 | } | 2091 | } | ||
| @@ -2081,20 +2095,20 @@ func mrRail(p MRPage) templ.Component { | |||||
| 2081 | return templ_7745c5c3_Err | 2095 | return templ_7745c5c3_Err | ||
| 2082 | } | 2096 | } | ||
| 2083 | } | 2097 | } | ||
| 2084 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, "<span class=\"mute\">") | 2098 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, "<span class=\"mute\">") |
| 2085 | if templ_7745c5c3_Err != nil { | 2099 | if templ_7745c5c3_Err != nil { | ||
| 2086 | return templ_7745c5c3_Err | 2100 | return templ_7745c5c3_Err | ||
| 2087 | } | 2101 | } | ||
| 2088 | var templ_7745c5c3_Var103 string | 2102 | var templ_7745c5c3_Var103 string | ||
| 2089 | templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | 2103 | templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | ||
| 2090 | if templ_7745c5c3_Err != nil { | 2104 | if templ_7745c5c3_Err != nil { | ||
| 2091 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 377, Col: 16} | 2105 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 385, Col: 16} |
| 2092 | } | 2106 | } | ||
| 2093 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) | 2107 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) | ||
| 2094 | if templ_7745c5c3_Err != nil { | 2108 | if templ_7745c5c3_Err != nil { | ||
| 2095 | return templ_7745c5c3_Err | 2109 | return templ_7745c5c3_Err | ||
| 2096 | } | 2110 | } | ||
| 2097 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, " ") | 2111 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, " ") |
| 2098 | if templ_7745c5c3_Err != nil { | 2112 | if templ_7745c5c3_Err != nil { | ||
| 2099 | return templ_7745c5c3_Err | 2113 | return templ_7745c5c3_Err | ||
| 2100 | } | 2114 | } | ||
| @@ -2102,39 +2116,39 @@ func mrRail(p MRPage) templ.Component { | |||||
| 2102 | var templ_7745c5c3_Var104 string | 2116 | var templ_7745c5c3_Var104 string | ||
| 2103 | templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | 2117 | templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | ||
| 2104 | if templ_7745c5c3_Err != nil { | 2118 | if templ_7745c5c3_Err != nil { | ||
| 2105 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 379, Col: 15} | 2119 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 387, Col: 15} |
| 2106 | } | 2120 | } | ||
| 2107 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) | 2121 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) | ||
| 2108 | if templ_7745c5c3_Err != nil { | 2122 | if templ_7745c5c3_Err != nil { | ||
| 2109 | return templ_7745c5c3_Err | 2123 | return templ_7745c5c3_Err | ||
| 2110 | } | 2124 | } | ||
| 2111 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, "<time datetime=\"") | 2125 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "<time datetime=\"") |
| 2112 | if templ_7745c5c3_Err != nil { | 2126 | if templ_7745c5c3_Err != nil { | ||
| 2113 | return templ_7745c5c3_Err | 2127 | return templ_7745c5c3_Err | ||
| 2114 | } | 2128 | } | ||
| 2115 | var templ_7745c5c3_Var105 string | 2129 | var templ_7745c5c3_Var105 string | ||
| 2116 | templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | 2130 | templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | ||
| 2117 | if templ_7745c5c3_Err != nil { | 2131 | if templ_7745c5c3_Err != nil { | ||
| 2118 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 379, Col: 42} | 2132 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 387, Col: 42} |
| 2119 | } | 2133 | } | ||
| 2120 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var105) | 2134 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var105) | ||
| 2121 | if templ_7745c5c3_Err != nil { | 2135 | if templ_7745c5c3_Err != nil { | ||
| 2122 | return templ_7745c5c3_Err | 2136 | return templ_7745c5c3_Err | ||
| 2123 | } | 2137 | } | ||
| 2124 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "\">") | 2138 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, "\">") |
| 2125 | if templ_7745c5c3_Err != nil { | 2139 | if templ_7745c5c3_Err != nil { | ||
| 2126 | return templ_7745c5c3_Err | 2140 | return templ_7745c5c3_Err | ||
| 2127 | } | 2141 | } | ||
| 2128 | var templ_7745c5c3_Var106 string | 2142 | var templ_7745c5c3_Var106 string | ||
| 2129 | templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | 2143 | templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | ||
| 2130 | if templ_7745c5c3_Err != nil { | 2144 | if templ_7745c5c3_Err != nil { | ||
| 2131 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 379, Col: 53} | 2145 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 387, Col: 53} |
| 2132 | } | 2146 | } | ||
| 2133 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var106)) | 2147 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var106)) | ||
| 2134 | if templ_7745c5c3_Err != nil { | 2148 | if templ_7745c5c3_Err != nil { | ||
| 2135 | return templ_7745c5c3_Err | 2149 | return templ_7745c5c3_Err | ||
| 2136 | } | 2150 | } | ||
| 2137 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, "</time> ") | 2151 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "</time> ") |
| 2138 | if templ_7745c5c3_Err != nil { | 2152 | if templ_7745c5c3_Err != nil { | ||
| 2139 | return templ_7745c5c3_Err | 2153 | return templ_7745c5c3_Err | ||
| 2140 | } | 2154 | } | ||
| @@ -2143,76 +2157,76 @@ func mrRail(p MRPage) templ.Component { | |||||
| 2143 | var templ_7745c5c3_Var107 string | 2157 | var templ_7745c5c3_Var107 string | ||
| 2144 | templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinStringErrs(" · new") | 2158 | templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinStringErrs(" · new") | ||
| 2145 | if templ_7745c5c3_Err != nil { | 2159 | if templ_7745c5c3_Err != nil { | ||
| 2146 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 382, Col: 18} | 2160 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 390, Col: 18} |
| 2147 | } | 2161 | } | ||
| 2148 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107)) | 2162 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107)) | ||
| 2149 | if templ_7745c5c3_Err != nil { | 2163 | if templ_7745c5c3_Err != nil { | ||
| 2150 | return templ_7745c5c3_Err | 2164 | return templ_7745c5c3_Err | ||
| 2151 | } | 2165 | } | ||
| 2152 | } | 2166 | } | ||
| 2153 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "</span></li>") | 2167 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, "</span></li>") |
| 2154 | if templ_7745c5c3_Err != nil { | 2168 | if templ_7745c5c3_Err != nil { | ||
| 2155 | return templ_7745c5c3_Err | 2169 | return templ_7745c5c3_Err | ||
| 2156 | } | 2170 | } | ||
| 2157 | } | 2171 | } | ||
| 2158 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, "</ul>") | 2172 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "</ul>") |
| 2159 | if templ_7745c5c3_Err != nil { | 2173 | if templ_7745c5c3_Err != nil { | ||
| 2160 | return templ_7745c5c3_Err | 2174 | return templ_7745c5c3_Err | ||
| 2161 | } | 2175 | } | ||
| 2162 | if len(p.Commits) == 0 { | 2176 | if len(p.Commits) == 0 { | ||
| 2163 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "<p class=\"dim\">no commit to merge.</p>") | 2177 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, "<p class=\"dim\">no commit to merge.</p>") |
| 2164 | if templ_7745c5c3_Err != nil { | 2178 | if templ_7745c5c3_Err != nil { | ||
| 2165 | return templ_7745c5c3_Err | 2179 | return templ_7745c5c3_Err | ||
| 2166 | } | 2180 | } | ||
| 2167 | } | 2181 | } | ||
| 2168 | if p.CommitsNote != "" { | 2182 | if p.CommitsNote != "" { | ||
| 2169 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, "<p class=\"note\">") | 2183 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "<p class=\"note\">") |
| 2170 | if templ_7745c5c3_Err != nil { | 2184 | if templ_7745c5c3_Err != nil { | ||
| 2171 | return templ_7745c5c3_Err | 2185 | return templ_7745c5c3_Err | ||
| 2172 | } | 2186 | } | ||
| 2173 | var templ_7745c5c3_Var108 string | 2187 | var templ_7745c5c3_Var108 string | ||
| 2174 | templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) | 2188 | templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) | ||
| 2175 | if templ_7745c5c3_Err != nil { | 2189 | if templ_7745c5c3_Err != nil { | ||
| 2176 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 392, Col: 34} | 2190 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 400, Col: 34} |
| 2177 | } | 2191 | } | ||
| 2178 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) | 2192 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) | ||
| 2179 | if templ_7745c5c3_Err != nil { | 2193 | if templ_7745c5c3_Err != nil { | ||
| 2180 | return templ_7745c5c3_Err | 2194 | return templ_7745c5c3_Err | ||
| 2181 | } | 2195 | } | ||
| 2182 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "</p>") | 2196 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "</p>") |
| 2183 | if templ_7745c5c3_Err != nil { | 2197 | if templ_7745c5c3_Err != nil { | ||
| 2184 | return templ_7745c5c3_Err | 2198 | return templ_7745c5c3_Err | ||
| 2185 | } | 2199 | } | ||
| 2186 | } | 2200 | } | ||
| 2187 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "</section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>") | 2201 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "</section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>") |
| 2188 | if templ_7745c5c3_Err != nil { | 2202 | if templ_7745c5c3_Err != nil { | ||
| 2189 | return templ_7745c5c3_Err | 2203 | return templ_7745c5c3_Err | ||
| 2190 | } | 2204 | } | ||
| 2191 | var templ_7745c5c3_Var109 string | 2205 | var templ_7745c5c3_Var109 string | ||
| 2192 | templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", ")) | 2206 | templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", ")) | ||
| 2193 | if templ_7745c5c3_Err != nil { | 2207 | if templ_7745c5c3_Err != nil { | ||
| 2194 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 399, Col: 36} | 2208 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 407, Col: 36} |
| 2195 | } | 2209 | } | ||
| 2196 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109)) | 2210 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109)) | ||
| 2197 | if templ_7745c5c3_Err != nil { | 2211 | if templ_7745c5c3_Err != nil { | ||
| 2198 | return templ_7745c5c3_Err | 2212 | return templ_7745c5c3_Err | ||
| 2199 | } | 2213 | } | ||
| 2200 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "</dd><dt>checks</dt><dd>") | 2214 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, "</dd><dt>checks</dt><dd>") |
| 2201 | if templ_7745c5c3_Err != nil { | 2215 | if templ_7745c5c3_Err != nil { | ||
| 2202 | return templ_7745c5c3_Err | 2216 | return templ_7745c5c3_Err | ||
| 2203 | } | 2217 | } | ||
| 2204 | if p.ChecksBlock { | 2218 | if p.ChecksBlock { | ||
| 2205 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, "failing ones block the merge") | 2219 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "failing ones block the merge") |
| 2206 | if templ_7745c5c3_Err != nil { | 2220 | if templ_7745c5c3_Err != nil { | ||
| 2207 | return templ_7745c5c3_Err | 2221 | return templ_7745c5c3_Err | ||
| 2208 | } | 2222 | } | ||
| 2209 | } else { | 2223 | } else { | ||
| 2210 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "do not block the merge") | 2224 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, "do not block the merge") |
| 2211 | if templ_7745c5c3_Err != nil { | 2225 | if templ_7745c5c3_Err != nil { | ||
| 2212 | return templ_7745c5c3_Err | 2226 | return templ_7745c5c3_Err | ||
| 2213 | } | 2227 | } | ||
| 2214 | } | 2228 | } | ||
| 2215 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, "</dd></dl></section>") | 2229 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, "</dd></dl></section>") |
| 2216 | if templ_7745c5c3_Err != nil { | 2230 | if templ_7745c5c3_Err != nil { | ||
| 2217 | return templ_7745c5c3_Err | 2231 | return templ_7745c5c3_Err | ||
| 2218 | } | 2232 | } | ||
| @@ -2245,46 +2259,46 @@ func mrBar(p MRPage) templ.Component { | |||||
| 2245 | templ_7745c5c3_Var110 = templ.NopComponent | 2259 | templ_7745c5c3_Var110 = templ.NopComponent | ||
| 2246 | } | 2260 | } | ||
| 2247 | ctx = templ.ClearChildren(ctx) | 2261 | ctx = templ.ClearChildren(ctx) | ||
| 2248 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, "<div class=\"diff-tools mr-bar\" role=\"group\" aria-label=\"Diff view and merge\"><span class=\"dim\">") | 2262 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 207, "<div class=\"diff-tools mr-bar\" role=\"group\" aria-label=\"Diff view and merge\"><span class=\"dim\">") |
| 2249 | if templ_7745c5c3_Err != nil { | 2263 | if templ_7745c5c3_Err != nil { | ||
| 2250 | return templ_7745c5c3_Err | 2264 | return templ_7745c5c3_Err | ||
| 2251 | } | 2265 | } | ||
| 2252 | var templ_7745c5c3_Var111 string | 2266 | var templ_7745c5c3_Var111 string | ||
| 2253 | templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | 2267 | templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | ||
| 2254 | if templ_7745c5c3_Err != nil { | 2268 | if templ_7745c5c3_Err != nil { | ||
| 2255 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 418, Col: 55} | 2269 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 426, Col: 55} |
| 2256 | } | 2270 | } | ||
| 2257 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111)) | 2271 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111)) | ||
| 2258 | if templ_7745c5c3_Err != nil { | 2272 | if templ_7745c5c3_Err != nil { | ||
| 2259 | return templ_7745c5c3_Err | 2273 | return templ_7745c5c3_Err | ||
| 2260 | } | 2274 | } | ||
| 2261 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 207, " · <span class=\"plus\">+") | 2275 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 208, " · <span class=\"plus\">+") |
| 2262 | if templ_7745c5c3_Err != nil { | 2276 | if templ_7745c5c3_Err != nil { | ||
| 2263 | return templ_7745c5c3_Err | 2277 | return templ_7745c5c3_Err | ||
| 2264 | } | 2278 | } | ||
| 2265 | var templ_7745c5c3_Var112 string | 2279 | var templ_7745c5c3_Var112 string | ||
| 2266 | templ_7745c5c3_Var112, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | 2280 | templ_7745c5c3_Var112, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | ||
| 2267 | if templ_7745c5c3_Err != nil { | 2281 | if templ_7745c5c3_Err != nil { | ||
| 2268 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 418, Col: 95} | 2282 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 426, Col: 95} |
| 2269 | } | 2283 | } | ||
| 2270 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var112)) | 2284 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var112)) | ||
| 2271 | if templ_7745c5c3_Err != nil { | 2285 | if templ_7745c5c3_Err != nil { | ||
| 2272 | return templ_7745c5c3_Err | 2286 | return templ_7745c5c3_Err | ||
| 2273 | } | 2287 | } | ||
| 2274 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 208, "</span> <span class=\"minus\">-") | 2288 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 209, "</span> <span class=\"minus\">-") |
| 2275 | if templ_7745c5c3_Err != nil { | 2289 | if templ_7745c5c3_Err != nil { | ||
| 2276 | return templ_7745c5c3_Err | 2290 | return templ_7745c5c3_Err | ||
| 2277 | } | 2291 | } | ||
| 2278 | var templ_7745c5c3_Var113 string | 2292 | var templ_7745c5c3_Var113 string | ||
| 2279 | templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | 2293 | templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | ||
| 2280 | if templ_7745c5c3_Err != nil { | 2294 | if templ_7745c5c3_Err != nil { | ||
| 2281 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 418, Col: 140} | 2295 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 426, Col: 140} |
| 2282 | } | 2296 | } | ||
| 2283 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113)) | 2297 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113)) | ||
| 2284 | if templ_7745c5c3_Err != nil { | 2298 | if templ_7745c5c3_Err != nil { | ||
| 2285 | return templ_7745c5c3_Err | 2299 | return templ_7745c5c3_Err | ||
| 2286 | } | 2300 | } | ||
| 2287 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 209, "</span></span>") | 2301 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 210, "</span></span>") |
| 2288 | if templ_7745c5c3_Err != nil { | 2302 | if templ_7745c5c3_Err != nil { | ||
| 2289 | return templ_7745c5c3_Err | 2303 | return templ_7745c5c3_Err | ||
| 2290 | } | 2304 | } | ||
| @@ -2300,7 +2314,7 @@ func mrBar(p MRPage) templ.Component { | |||||
| 2300 | if templ_7745c5c3_Err != nil { | 2314 | if templ_7745c5c3_Err != nil { | ||
| 2301 | return templ_7745c5c3_Err | 2315 | return templ_7745c5c3_Err | ||
| 2302 | } | 2316 | } | ||
| 2303 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 210, "<span class=\"grow\"></span>") | 2317 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 211, "<span class=\"grow\"></span>") |
| 2304 | if templ_7745c5c3_Err != nil { | 2318 | if templ_7745c5c3_Err != nil { | ||
| 2305 | return templ_7745c5c3_Err | 2319 | return templ_7745c5c3_Err | ||
| 2306 | } | 2320 | } | ||
| @@ -2313,7 +2327,7 @@ func mrBar(p MRPage) templ.Component { | |||||
| 2313 | if templ_7745c5c3_Err != nil { | 2327 | if templ_7745c5c3_Err != nil { | ||
| 2314 | return templ_7745c5c3_Err | 2328 | return templ_7745c5c3_Err | ||
| 2315 | } | 2329 | } | ||
| 2316 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 211, " ") | 2330 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 212, " ") |
| 2317 | if templ_7745c5c3_Err != nil { | 2331 | if templ_7745c5c3_Err != nil { | ||
| 2318 | return templ_7745c5c3_Err | 2332 | return templ_7745c5c3_Err | ||
| 2319 | } | 2333 | } | ||
| @@ -2322,7 +2336,7 @@ func mrBar(p MRPage) templ.Component { | |||||
| 2322 | return templ_7745c5c3_Err | 2336 | return templ_7745c5c3_Err | ||
| 2323 | } | 2337 | } | ||
| 2324 | } | 2338 | } | ||
| 2325 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 212, "</div>") | 2339 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 213, "</div>") |
| 2326 | if templ_7745c5c3_Err != nil { | 2340 | if templ_7745c5c3_Err != nil { | ||
| 2327 | return templ_7745c5c3_Err | 2341 | return templ_7745c5c3_Err | ||
| 2328 | } | 2342 | } | ||
| @@ -2354,27 +2368,27 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2354 | templ_7745c5c3_Var114 = templ.NopComponent | 2368 | templ_7745c5c3_Var114 = templ.NopComponent | ||
| 2355 | } | 2369 | } | ||
| 2356 | ctx = templ.ClearChildren(ctx) | 2370 | ctx = templ.ClearChildren(ctx) | ||
| 2357 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 213, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">") | 2371 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 214, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">") |
| 2358 | if templ_7745c5c3_Err != nil { | 2372 | if templ_7745c5c3_Err != nil { | ||
| 2359 | return templ_7745c5c3_Err | 2373 | return templ_7745c5c3_Err | ||
| 2360 | } | 2374 | } | ||
| 2361 | if p.Box.ReadyAction != "" { | 2375 | if p.Box.ReadyAction != "" { | ||
| 2362 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 214, "Draft ") | 2376 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 215, "Draft ") |
| 2363 | if templ_7745c5c3_Err != nil { | 2377 | if templ_7745c5c3_Err != nil { | ||
| 2364 | return templ_7745c5c3_Err | 2378 | return templ_7745c5c3_Err | ||
| 2365 | } | 2379 | } | ||
| 2366 | } else { | 2380 | } else { | ||
| 2367 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 215, "Merge ") | 2381 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "Merge ") |
| 2368 | if templ_7745c5c3_Err != nil { | 2382 | if templ_7745c5c3_Err != nil { | ||
| 2369 | return templ_7745c5c3_Err | 2383 | return templ_7745c5c3_Err | ||
| 2370 | } | 2384 | } | ||
| 2371 | } | 2385 | } | ||
| 2372 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "<kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>") | 2386 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, "<kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>") |
| 2373 | if templ_7745c5c3_Err != nil { | 2387 | if templ_7745c5c3_Err != nil { | ||
| 2374 | return templ_7745c5c3_Err | 2388 | return templ_7745c5c3_Err | ||
| 2375 | } | 2389 | } | ||
| 2376 | if p.Box.HeadGone { | 2390 | if p.Box.HeadGone { | ||
| 2377 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, "gone: the source branch was deleted") | 2391 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, "gone: the source branch was deleted") |
| 2378 | if templ_7745c5c3_Err != nil { | 2392 | if templ_7745c5c3_Err != nil { | ||
| 2379 | return templ_7745c5c3_Err | 2393 | return templ_7745c5c3_Err | ||
| 2380 | } | 2394 | } | ||
| @@ -2382,186 +2396,186 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2382 | var templ_7745c5c3_Var115 string | 2396 | var templ_7745c5c3_Var115 string | ||
| 2383 | templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort) | 2397 | templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort) | ||
| 2384 | if templ_7745c5c3_Err != nil { | 2398 | if templ_7745c5c3_Err != nil { | ||
| 2385 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 451, Col: 19} | 2399 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 459, Col: 19} |
| 2386 | } | 2400 | } | ||
| 2387 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) | 2401 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) | ||
| 2388 | if templ_7745c5c3_Err != nil { | 2402 | if templ_7745c5c3_Err != nil { | ||
| 2389 | return templ_7745c5c3_Err | 2403 | return templ_7745c5c3_Err | ||
| 2390 | } | 2404 | } | ||
| 2391 | } | 2405 | } | ||
| 2392 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, "</dd><dt>into</dt><dd>") | 2406 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "</dd><dt>into</dt><dd>") |
| 2393 | if templ_7745c5c3_Err != nil { | 2407 | if templ_7745c5c3_Err != nil { | ||
| 2394 | return templ_7745c5c3_Err | 2408 | return templ_7745c5c3_Err | ||
| 2395 | } | 2409 | } | ||
| 2396 | var templ_7745c5c3_Var116 string | 2410 | var templ_7745c5c3_Var116 string | ||
| 2397 | templ_7745c5c3_Var116, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 2411 | templ_7745c5c3_Var116, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 2398 | if templ_7745c5c3_Err != nil { | 2412 | if templ_7745c5c3_Err != nil { | ||
| 2399 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 455, Col: 18} | 2413 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 463, Col: 18} |
| 2400 | } | 2414 | } | ||
| 2401 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var116)) | 2415 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var116)) | ||
| 2402 | if templ_7745c5c3_Err != nil { | 2416 | if templ_7745c5c3_Err != nil { | ||
| 2403 | return templ_7745c5c3_Err | 2417 | return templ_7745c5c3_Err | ||
| 2404 | } | 2418 | } | ||
| 2405 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "</dd></dl>") | 2419 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, "</dd></dl>") |
| 2406 | if templ_7745c5c3_Err != nil { | 2420 | if templ_7745c5c3_Err != nil { | ||
| 2407 | return templ_7745c5c3_Err | 2421 | return templ_7745c5c3_Err | ||
| 2408 | } | 2422 | } | ||
| 2409 | if p.Box.ReadyAction != "" { | 2423 | if p.Box.ReadyAction != "" { | ||
| 2410 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, "<p class=\"d-draft\">this is a draft: it cannot be merged until it is ready for review.</p><form class=\"d-btns\" method=\"post\" action=\"") | 2424 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "<p class=\"d-draft\">this is a draft: it cannot be merged until it is ready for review.</p><form class=\"d-btns\" method=\"post\" action=\"") |
| 2411 | if templ_7745c5c3_Err != nil { | 2425 | if templ_7745c5c3_Err != nil { | ||
| 2412 | return templ_7745c5c3_Err | 2426 | return templ_7745c5c3_Err | ||
| 2413 | } | 2427 | } | ||
| 2414 | var templ_7745c5c3_Var117 templ.SafeURL | 2428 | var templ_7745c5c3_Var117 templ.SafeURL | ||
| 2415 | templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) | 2429 | templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) | ||
| 2416 | if templ_7745c5c3_Err != nil { | 2430 | if templ_7745c5c3_Err != nil { | ||
| 2417 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 459, Col: 80} | 2431 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 467, Col: 80} |
| 2418 | } | 2432 | } | ||
| 2419 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117)) | 2433 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117)) | ||
| 2420 | if templ_7745c5c3_Err != nil { | 2434 | if templ_7745c5c3_Err != nil { | ||
| 2421 | return templ_7745c5c3_Err | 2435 | return templ_7745c5c3_Err | ||
| 2422 | } | 2436 | } | ||
| 2423 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "\"><button type=\"submit\" class=\"btn primary\" data-default title=\"remove the draft prefix from the title\">Ready for review</button></form>") | 2437 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, "\"><button type=\"submit\" class=\"btn primary\" data-default title=\"remove the draft prefix from the title\">Ready for review</button></form>") |
| 2424 | if templ_7745c5c3_Err != nil { | 2438 | if templ_7745c5c3_Err != nil { | ||
| 2425 | return templ_7745c5c3_Err | 2439 | return templ_7745c5c3_Err | ||
| 2426 | } | 2440 | } | ||
| 2427 | } else if !p.Box.HeadGone { | 2441 | } else if !p.Box.HeadGone { | ||
| 2428 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, "<form class=\"d-acts\" method=\"post\" action=\"") | 2442 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "<form class=\"d-acts\" method=\"post\" action=\"") |
| 2429 | if templ_7745c5c3_Err != nil { | 2443 | if templ_7745c5c3_Err != nil { | ||
| 2430 | return templ_7745c5c3_Err | 2444 | return templ_7745c5c3_Err | ||
| 2431 | } | 2445 | } | ||
| 2432 | var templ_7745c5c3_Var118 templ.SafeURL | 2446 | var templ_7745c5c3_Var118 templ.SafeURL | ||
| 2433 | templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) | 2447 | templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) | ||
| 2434 | if templ_7745c5c3_Err != nil { | 2448 | if templ_7745c5c3_Err != nil { | ||
| 2435 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 463, Col: 80} | 2449 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 471, Col: 80} |
| 2436 | } | 2450 | } | ||
| 2437 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118)) | 2451 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118)) | ||
| 2438 | if templ_7745c5c3_Err != nil { | 2452 | if templ_7745c5c3_Err != nil { | ||
| 2439 | return templ_7745c5c3_Err | 2453 | return templ_7745c5c3_Err | ||
| 2440 | } | 2454 | } | ||
| 2441 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "\"><input type=\"hidden\" name=\"head_id\" value=\"") | 2455 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "\"><input type=\"hidden\" name=\"head_id\" value=\"") |
| 2442 | if templ_7745c5c3_Err != nil { | 2456 | if templ_7745c5c3_Err != nil { | ||
| 2443 | return templ_7745c5c3_Err | 2457 | return templ_7745c5c3_Err | ||
| 2444 | } | 2458 | } | ||
| 2445 | var templ_7745c5c3_Var119 string | 2459 | var templ_7745c5c3_Var119 string | ||
| 2446 | templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | 2460 | templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | ||
| 2447 | if templ_7745c5c3_Err != nil { | 2461 | if templ_7745c5c3_Err != nil { | ||
| 2448 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 464, Col: 59} | 2462 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 472, Col: 59} |
| 2449 | } | 2463 | } | ||
| 2450 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var119) | 2464 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var119) | ||
| 2451 | if templ_7745c5c3_Err != nil { | 2465 | if templ_7745c5c3_Err != nil { | ||
| 2452 | return templ_7745c5c3_Err | 2466 | return templ_7745c5c3_Err | ||
| 2453 | } | 2467 | } | ||
| 2454 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ") | 2468 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ") |
| 2455 | if templ_7745c5c3_Err != nil { | 2469 | if templ_7745c5c3_Err != nil { | ||
| 2456 | return templ_7745c5c3_Err | 2470 | return templ_7745c5c3_Err | ||
| 2457 | } | 2471 | } | ||
| 2458 | for i, m := range p.Box.Modes { | 2472 | for i, m := range p.Box.Modes { | ||
| 2459 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "<label><input type=\"radio\" name=\"mode\" value=\"") | 2473 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "<label><input type=\"radio\" name=\"mode\" value=\"") |
| 2460 | if templ_7745c5c3_Err != nil { | 2474 | if templ_7745c5c3_Err != nil { | ||
| 2461 | return templ_7745c5c3_Err | 2475 | return templ_7745c5c3_Err | ||
| 2462 | } | 2476 | } | ||
| 2463 | var templ_7745c5c3_Var120 string | 2477 | var templ_7745c5c3_Var120 string | ||
| 2464 | templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) | 2478 | templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) | ||
| 2465 | if templ_7745c5c3_Err != nil { | 2479 | if templ_7745c5c3_Err != nil { | ||
| 2466 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 469, Col: 55} | 2480 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 477, Col: 55} |
| 2467 | } | 2481 | } | ||
| 2468 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var120) | 2482 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var120) | ||
| 2469 | if templ_7745c5c3_Err != nil { | 2483 | if templ_7745c5c3_Err != nil { | ||
| 2470 | return templ_7745c5c3_Err | 2484 | return templ_7745c5c3_Err | ||
| 2471 | } | 2485 | } | ||
| 2472 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "\"") | 2486 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, "\"") |
| 2473 | if templ_7745c5c3_Err != nil { | 2487 | if templ_7745c5c3_Err != nil { | ||
| 2474 | return templ_7745c5c3_Err | 2488 | return templ_7745c5c3_Err | ||
| 2475 | } | 2489 | } | ||
| 2476 | if i == 0 { | 2490 | if i == 0 { | ||
| 2477 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, " checked") | 2491 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, " checked") |
| 2478 | if templ_7745c5c3_Err != nil { | 2492 | if templ_7745c5c3_Err != nil { | ||
| 2479 | return templ_7745c5c3_Err | 2493 | return templ_7745c5c3_Err | ||
| 2480 | } | 2494 | } | ||
| 2481 | } | 2495 | } | ||
| 2482 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "> ") | 2496 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "> ") |
| 2483 | if templ_7745c5c3_Err != nil { | 2497 | if templ_7745c5c3_Err != nil { | ||
| 2484 | return templ_7745c5c3_Err | 2498 | return templ_7745c5c3_Err | ||
| 2485 | } | 2499 | } | ||
| 2486 | var templ_7745c5c3_Var121 string | 2500 | var templ_7745c5c3_Var121 string | ||
| 2487 | templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) | 2501 | templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) | ||
| 2488 | if templ_7745c5c3_Err != nil { | 2502 | if templ_7745c5c3_Err != nil { | ||
| 2489 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 470, Col: 17} | 2503 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 478, Col: 17} |
| 2490 | } | 2504 | } | ||
| 2491 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) | 2505 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) | ||
| 2492 | if templ_7745c5c3_Err != nil { | 2506 | if templ_7745c5c3_Err != nil { | ||
| 2493 | return templ_7745c5c3_Err | 2507 | return templ_7745c5c3_Err | ||
| 2494 | } | 2508 | } | ||
| 2495 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, " ") | 2509 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, " ") |
| 2496 | if templ_7745c5c3_Err != nil { | 2510 | if templ_7745c5c3_Err != nil { | ||
| 2497 | return templ_7745c5c3_Err | 2511 | return templ_7745c5c3_Err | ||
| 2498 | } | 2512 | } | ||
| 2499 | if i < 9 { | 2513 | if i < 9 { | ||
| 2500 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "<kbd aria-hidden=\"true\">") | 2514 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "<kbd aria-hidden=\"true\">") |
| 2501 | if templ_7745c5c3_Err != nil { | 2515 | if templ_7745c5c3_Err != nil { | ||
| 2502 | return templ_7745c5c3_Err | 2516 | return templ_7745c5c3_Err | ||
| 2503 | } | 2517 | } | ||
| 2504 | var templ_7745c5c3_Var122 string | 2518 | var templ_7745c5c3_Var122 string | ||
| 2505 | templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) | 2519 | templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) | ||
| 2506 | if templ_7745c5c3_Err != nil { | 2520 | if templ_7745c5c3_Err != nil { | ||
| 2507 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 472, Col: 46} | 2521 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 480, Col: 46} |
| 2508 | } | 2522 | } | ||
| 2509 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122)) | 2523 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122)) | ||
| 2510 | if templ_7745c5c3_Err != nil { | 2524 | if templ_7745c5c3_Err != nil { | ||
| 2511 | return templ_7745c5c3_Err | 2525 | return templ_7745c5c3_Err | ||
| 2512 | } | 2526 | } | ||
| 2513 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "</kbd>") | 2527 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "</kbd>") |
| 2514 | if templ_7745c5c3_Err != nil { | 2528 | if templ_7745c5c3_Err != nil { | ||
| 2515 | return templ_7745c5c3_Err | 2529 | return templ_7745c5c3_Err | ||
| 2516 | } | 2530 | } | ||
| 2517 | } | 2531 | } | ||
| 2518 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "</label>") | 2532 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "</label>") |
| 2519 | if templ_7745c5c3_Err != nil { | 2533 | if templ_7745c5c3_Err != nil { | ||
| 2520 | return templ_7745c5c3_Err | 2534 | return templ_7745c5c3_Err | ||
| 2521 | } | 2535 | } | ||
| 2522 | } | 2536 | } | ||
| 2523 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "</fieldset>") | 2537 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</fieldset>") |
| 2524 | if templ_7745c5c3_Err != nil { | 2538 | if templ_7745c5c3_Err != nil { | ||
| 2525 | return templ_7745c5c3_Err | 2539 | return templ_7745c5c3_Err | ||
| 2526 | } | 2540 | } | ||
| 2527 | if p.Box.CanDeleteBranch { | 2541 | if p.Box.CanDeleteBranch { | ||
| 2528 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ") | 2542 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ") |
| 2529 | if templ_7745c5c3_Err != nil { | 2543 | if templ_7745c5c3_Err != nil { | ||
| 2530 | return templ_7745c5c3_Err | 2544 | return templ_7745c5c3_Err | ||
| 2531 | } | 2545 | } | ||
| 2532 | var templ_7745c5c3_Var123 string | 2546 | var templ_7745c5c3_Var123 string | ||
| 2533 | templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | 2547 | templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | ||
| 2534 | if templ_7745c5c3_Err != nil { | 2548 | if templ_7745c5c3_Err != nil { | ||
| 2535 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 478, Col: 102} | 2549 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 486, Col: 102} |
| 2536 | } | 2550 | } | ||
| 2537 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var123)) | 2551 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var123)) | ||
| 2538 | if templ_7745c5c3_Err != nil { | 2552 | if templ_7745c5c3_Err != nil { | ||
| 2539 | return templ_7745c5c3_Err | 2553 | return templ_7745c5c3_Err | ||
| 2540 | } | 2554 | } | ||
| 2541 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>") | 2555 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>") |
| 2542 | if templ_7745c5c3_Err != nil { | 2556 | if templ_7745c5c3_Err != nil { | ||
| 2543 | return templ_7745c5c3_Err | 2557 | return templ_7745c5c3_Err | ||
| 2544 | } | 2558 | } | ||
| 2545 | } | 2559 | } | ||
| 2546 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default>Merge into ") | 2560 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default>Merge into ") |
| 2547 | if templ_7745c5c3_Err != nil { | 2561 | if templ_7745c5c3_Err != nil { | ||
| 2548 | return templ_7745c5c3_Err | 2562 | return templ_7745c5c3_Err | ||
| 2549 | } | 2563 | } | ||
| 2550 | var templ_7745c5c3_Var124 string | 2564 | var templ_7745c5c3_Var124 string | ||
| 2551 | templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 2565 | templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 2552 | if templ_7745c5c3_Err != nil { | 2566 | if templ_7745c5c3_Err != nil { | ||
| 2553 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 481, Col: 82} | 2567 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 489, Col: 82} |
| 2554 | } | 2568 | } | ||
| 2555 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var124)) | 2569 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var124)) | ||
| 2556 | if templ_7745c5c3_Err != nil { | 2570 | if templ_7745c5c3_Err != nil { | ||
| 2557 | return templ_7745c5c3_Err | 2571 | return templ_7745c5c3_Err | ||
| 2558 | } | 2572 | } | ||
| 2559 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, "</button></div></form>") | 2573 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "</button></div></form>") |
| 2560 | if templ_7745c5c3_Err != nil { | 2574 | if templ_7745c5c3_Err != nil { | ||
| 2561 | return templ_7745c5c3_Err | 2575 | return templ_7745c5c3_Err | ||
| 2562 | } | 2576 | } | ||
| 2563 | } | 2577 | } | ||
| 2564 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "</div></details>") | 2578 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "</div></details>") |
| 2565 | if templ_7745c5c3_Err != nil { | 2579 | if templ_7745c5c3_Err != nil { | ||
| 2566 | return templ_7745c5c3_Err | 2580 | return templ_7745c5c3_Err | ||
| 2567 | } | 2581 | } | ||
| @@ -2592,61 +2606,61 @@ func moreMenu(p MRPage) templ.Component { | |||||
| 2592 | templ_7745c5c3_Var125 = templ.NopComponent | 2606 | templ_7745c5c3_Var125 = templ.NopComponent | ||
| 2593 | } | 2607 | } | ||
| 2594 | ctx = templ.ClearChildren(ctx) | 2608 | ctx = templ.ClearChildren(ctx) | ||
| 2595 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "<details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\">") | 2609 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "<details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\">") |
| 2596 | if templ_7745c5c3_Err != nil { | 2610 | if templ_7745c5c3_Err != nil { | ||
| 2597 | return templ_7745c5c3_Err | 2611 | return templ_7745c5c3_Err | ||
| 2598 | } | 2612 | } | ||
| 2599 | if p.Box.CanMarkRead { | 2613 | if p.Box.CanMarkRead { | ||
| 2600 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "<form method=\"post\" action=\"") | 2614 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "<form method=\"post\" action=\"") |
| 2601 | if templ_7745c5c3_Err != nil { | 2615 | if templ_7745c5c3_Err != nil { | ||
| 2602 | return templ_7745c5c3_Err | 2616 | return templ_7745c5c3_Err | ||
| 2603 | } | 2617 | } | ||
| 2604 | var templ_7745c5c3_Var126 templ.SafeURL | 2618 | var templ_7745c5c3_Var126 templ.SafeURL | ||
| 2605 | templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) | 2619 | templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) | ||
| 2606 | if templ_7745c5c3_Err != nil { | 2620 | if templ_7745c5c3_Err != nil { | ||
| 2607 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 496, Col: 64} | 2621 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 504, Col: 64} |
| 2608 | } | 2622 | } | ||
| 2609 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) | 2623 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) | ||
| 2610 | if templ_7745c5c3_Err != nil { | 2624 | if templ_7745c5c3_Err != nil { | ||
| 2611 | return templ_7745c5c3_Err | 2625 | return templ_7745c5c3_Err | ||
| 2612 | } | 2626 | } | ||
| 2613 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "\"><input type=\"hidden\" name=\"head_id\" value=\"") | 2627 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "\"><input type=\"hidden\" name=\"head_id\" value=\"") |
| 2614 | if templ_7745c5c3_Err != nil { | 2628 | if templ_7745c5c3_Err != nil { | ||
| 2615 | return templ_7745c5c3_Err | 2629 | return templ_7745c5c3_Err | ||
| 2616 | } | 2630 | } | ||
| 2617 | var templ_7745c5c3_Var127 string | 2631 | var templ_7745c5c3_Var127 string | ||
| 2618 | templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | 2632 | templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | ||
| 2619 | if templ_7745c5c3_Err != nil { | 2633 | if templ_7745c5c3_Err != nil { | ||
| 2620 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 497, Col: 59} | 2634 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 505, Col: 59} |
| 2621 | } | 2635 | } | ||
| 2622 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var127) | 2636 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var127) | ||
| 2623 | if templ_7745c5c3_Err != nil { | 2637 | if templ_7745c5c3_Err != nil { | ||
| 2624 | return templ_7745c5c3_Err | 2638 | return templ_7745c5c3_Err | ||
| 2625 | } | 2639 | } | ||
| 2626 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form>") | 2640 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, "\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form>") |
| 2627 | if templ_7745c5c3_Err != nil { | 2641 | if templ_7745c5c3_Err != nil { | ||
| 2628 | return templ_7745c5c3_Err | 2642 | return templ_7745c5c3_Err | ||
| 2629 | } | 2643 | } | ||
| 2630 | } | 2644 | } | ||
| 2631 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, "<form method=\"post\" action=\"") | 2645 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, "<form method=\"post\" action=\"") |
| 2632 | if templ_7745c5c3_Err != nil { | 2646 | if templ_7745c5c3_Err != nil { | ||
| 2633 | return templ_7745c5c3_Err | 2647 | return templ_7745c5c3_Err | ||
| 2634 | } | 2648 | } | ||
| 2635 | var templ_7745c5c3_Var128 templ.SafeURL | 2649 | var templ_7745c5c3_Var128 templ.SafeURL | ||
| 2636 | templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) | 2650 | templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) | ||
| 2637 | if templ_7745c5c3_Err != nil { | 2651 | if templ_7745c5c3_Err != nil { | ||
| 2638 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 501, Col: 64} | 2652 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 509, Col: 64} |
| 2639 | } | 2653 | } | ||
| 2640 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128)) | 2654 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128)) | ||
| 2641 | if templ_7745c5c3_Err != nil { | 2655 | if templ_7745c5c3_Err != nil { | ||
| 2642 | return templ_7745c5c3_Err | 2656 | return templ_7745c5c3_Err | ||
| 2643 | } | 2657 | } | ||
| 2644 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, "\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form>") | 2658 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, "\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form>") |
| 2645 | if templ_7745c5c3_Err != nil { | 2659 | if templ_7745c5c3_Err != nil { | ||
| 2646 | return templ_7745c5c3_Err | 2660 | return templ_7745c5c3_Err | ||
| 2647 | } | 2661 | } | ||
| 2648 | if !p.Box.HeadGone && p.Box.ReadyAction == "" { | 2662 | if !p.Box.HeadGone && p.Box.ReadyAction == "" { | ||
| 2649 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>") | 2663 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>") |
| 2650 | if templ_7745c5c3_Err != nil { | 2664 | if templ_7745c5c3_Err != nil { | ||
| 2651 | return templ_7745c5c3_Err | 2665 | return templ_7745c5c3_Err | ||
| 2652 | } | 2666 | } | ||
| @@ -2654,12 +2668,12 @@ func moreMenu(p MRPage) templ.Component { | |||||
| 2654 | if templ_7745c5c3_Err != nil { | 2668 | if templ_7745c5c3_Err != nil { | ||
| 2655 | return templ_7745c5c3_Err | 2669 | return templ_7745c5c3_Err | ||
| 2656 | } | 2670 | } | ||
| 2657 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, "</details>") | 2671 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "</details>") |
| 2658 | if templ_7745c5c3_Err != nil { | 2672 | if templ_7745c5c3_Err != nil { | ||
| 2659 | return templ_7745c5c3_Err | 2673 | return templ_7745c5c3_Err | ||
| 2660 | } | 2674 | } | ||
| 2661 | } | 2675 | } | ||
| 2662 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "</div></details>") | 2676 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, "</div></details>") |
| 2663 | if templ_7745c5c3_Err != nil { | 2677 | if templ_7745c5c3_Err != nil { | ||
| 2664 | return templ_7745c5c3_Err | 2678 | return templ_7745c5c3_Err | ||
| 2665 | } | 2679 | } | ||
| @@ -2700,263 +2714,263 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2700 | }() | 2714 | }() | ||
| 2701 | } | 2715 | } | ||
| 2702 | ctx = templ.InitializeContext(ctx) | 2716 | ctx = templ.InitializeContext(ctx) | ||
| 2703 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, "<header class=\"show mr-h\"><h1>") | 2717 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "<header class=\"show mr-h\"><h1>") |
| 2704 | if templ_7745c5c3_Err != nil { | 2718 | if templ_7745c5c3_Err != nil { | ||
| 2705 | return templ_7745c5c3_Err | 2719 | return templ_7745c5c3_Err | ||
| 2706 | } | 2720 | } | ||
| 2707 | var templ_7745c5c3_Var131 string | 2721 | var templ_7745c5c3_Var131 string | ||
| 2708 | templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | 2722 | templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | ||
| 2709 | if templ_7745c5c3_Err != nil { | 2723 | if templ_7745c5c3_Err != nil { | ||
| 2710 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 517, Col: 17} | 2724 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 17} |
| 2711 | } | 2725 | } | ||
| 2712 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var131)) | 2726 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var131)) | ||
| 2713 | if templ_7745c5c3_Err != nil { | 2727 | if templ_7745c5c3_Err != nil { | ||
| 2714 | return templ_7745c5c3_Err | 2728 | return templ_7745c5c3_Err | ||
| 2715 | } | 2729 | } | ||
| 2716 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, " → ") | 2730 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, " → ") |
| 2717 | if templ_7745c5c3_Err != nil { | 2731 | if templ_7745c5c3_Err != nil { | ||
| 2718 | return templ_7745c5c3_Err | 2732 | return templ_7745c5c3_Err | ||
| 2719 | } | 2733 | } | ||
| 2720 | var templ_7745c5c3_Var132 string | 2734 | var templ_7745c5c3_Var132 string | ||
| 2721 | templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 2735 | templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 2722 | if templ_7745c5c3_Err != nil { | 2736 | if templ_7745c5c3_Err != nil { | ||
| 2723 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 517, Col: 34} | 2737 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 34} |
| 2724 | } | 2738 | } | ||
| 2725 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132)) | 2739 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132)) | ||
| 2726 | if templ_7745c5c3_Err != nil { | 2740 | if templ_7745c5c3_Err != nil { | ||
| 2727 | return templ_7745c5c3_Err | 2741 | return templ_7745c5c3_Err | ||
| 2728 | } | 2742 | } | ||
| 2729 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"") | 2743 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"") |
| 2730 | if templ_7745c5c3_Err != nil { | 2744 | if templ_7745c5c3_Err != nil { | ||
| 2731 | return templ_7745c5c3_Err | 2745 | return templ_7745c5c3_Err | ||
| 2732 | } | 2746 | } | ||
| 2733 | var templ_7745c5c3_Var133 templ.SafeURL | 2747 | var templ_7745c5c3_Var133 templ.SafeURL | ||
| 2734 | templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) | 2748 | templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) | ||
| 2735 | if templ_7745c5c3_Err != nil { | 2749 | if templ_7745c5c3_Err != nil { | ||
| 2736 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 520, Col: 45} | 2750 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 528, Col: 45} |
| 2737 | } | 2751 | } | ||
| 2738 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var133)) | 2752 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var133)) | ||
| 2739 | if templ_7745c5c3_Err != nil { | 2753 | if templ_7745c5c3_Err != nil { | ||
| 2740 | return templ_7745c5c3_Err | 2754 | return templ_7745c5c3_Err | ||
| 2741 | } | 2755 | } | ||
| 2742 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "\">") | 2756 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "\">") |
| 2743 | if templ_7745c5c3_Err != nil { | 2757 | if templ_7745c5c3_Err != nil { | ||
| 2744 | return templ_7745c5c3_Err | 2758 | return templ_7745c5c3_Err | ||
| 2745 | } | 2759 | } | ||
| 2746 | var templ_7745c5c3_Var134 string | 2760 | var templ_7745c5c3_Var134 string | ||
| 2747 | templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | 2761 | templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | ||
| 2748 | if templ_7745c5c3_Err != nil { | 2762 | if templ_7745c5c3_Err != nil { | ||
| 2749 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 520, Col: 58} | 2763 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 528, Col: 58} |
| 2750 | } | 2764 | } | ||
| 2751 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var134)) | 2765 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var134)) | ||
| 2752 | if templ_7745c5c3_Err != nil { | 2766 | if templ_7745c5c3_Err != nil { | ||
| 2753 | return templ_7745c5c3_Err | 2767 | return templ_7745c5c3_Err | ||
| 2754 | } | 2768 | } | ||
| 2755 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "</a></dd><dt>target</dt><dd><a href=\"") | 2769 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "</a></dd><dt>target</dt><dd><a href=\"") |
| 2756 | if templ_7745c5c3_Err != nil { | 2770 | if templ_7745c5c3_Err != nil { | ||
| 2757 | return templ_7745c5c3_Err | 2771 | return templ_7745c5c3_Err | ||
| 2758 | } | 2772 | } | ||
| 2759 | var templ_7745c5c3_Var135 templ.SafeURL | 2773 | var templ_7745c5c3_Var135 templ.SafeURL | ||
| 2760 | templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) | 2774 | templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) | ||
| 2761 | if templ_7745c5c3_Err != nil { | 2775 | if templ_7745c5c3_Err != nil { | ||
| 2762 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 522, Col: 45} | 2776 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 530, Col: 45} |
| 2763 | } | 2777 | } | ||
| 2764 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var135)) | 2778 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var135)) | ||
| 2765 | if templ_7745c5c3_Err != nil { | 2779 | if templ_7745c5c3_Err != nil { | ||
| 2766 | return templ_7745c5c3_Err | 2780 | return templ_7745c5c3_Err | ||
| 2767 | } | 2781 | } | ||
| 2768 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "\">") | 2782 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "\">") |
| 2769 | if templ_7745c5c3_Err != nil { | 2783 | if templ_7745c5c3_Err != nil { | ||
| 2770 | return templ_7745c5c3_Err | 2784 | return templ_7745c5c3_Err | ||
| 2771 | } | 2785 | } | ||
| 2772 | var templ_7745c5c3_Var136 string | 2786 | var templ_7745c5c3_Var136 string | ||
| 2773 | templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 2787 | templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 2774 | if templ_7745c5c3_Err != nil { | 2788 | if templ_7745c5c3_Err != nil { | ||
| 2775 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 522, Col: 58} | 2789 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 530, Col: 58} |
| 2776 | } | 2790 | } | ||
| 2777 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var136)) | 2791 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var136)) | ||
| 2778 | if templ_7745c5c3_Err != nil { | 2792 | if templ_7745c5c3_Err != nil { | ||
| 2779 | return templ_7745c5c3_Err | 2793 | return templ_7745c5c3_Err | ||
| 2780 | } | 2794 | } | ||
| 2781 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "</a></dd><dt>ahead</dt><dd>") | 2795 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "</a></dd><dt>ahead</dt><dd>") |
| 2782 | if templ_7745c5c3_Err != nil { | 2796 | if templ_7745c5c3_Err != nil { | ||
| 2783 | return templ_7745c5c3_Err | 2797 | return templ_7745c5c3_Err | ||
| 2784 | } | 2798 | } | ||
| 2785 | var templ_7745c5c3_Var137 string | 2799 | var templ_7745c5c3_Var137 string | ||
| 2786 | templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) | 2800 | templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) | ||
| 2787 | if templ_7745c5c3_Err != nil { | 2801 | if templ_7745c5c3_Err != nil { | ||
| 2788 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 524, Col: 21} | 2802 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 532, Col: 21} |
| 2789 | } | 2803 | } | ||
| 2790 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var137)) | 2804 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var137)) | ||
| 2791 | if templ_7745c5c3_Err != nil { | 2805 | if templ_7745c5c3_Err != nil { | ||
| 2792 | return templ_7745c5c3_Err | 2806 | return templ_7745c5c3_Err | ||
| 2793 | } | 2807 | } | ||
| 2794 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "</dd></dl></header>") | 2808 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, "</dd></dl></header>") |
| 2795 | if templ_7745c5c3_Err != nil { | 2809 | if templ_7745c5c3_Err != nil { | ||
| 2796 | return templ_7745c5c3_Err | 2810 | return templ_7745c5c3_Err | ||
| 2797 | } | 2811 | } | ||
| 2798 | if p.Note != "" { | 2812 | if p.Note != "" { | ||
| 2799 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, "<p class=\"notice\">") | 2813 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<p class=\"notice\">") |
| 2800 | if templ_7745c5c3_Err != nil { | 2814 | if templ_7745c5c3_Err != nil { | ||
| 2801 | return templ_7745c5c3_Err | 2815 | return templ_7745c5c3_Err | ||
| 2802 | } | 2816 | } | ||
| 2803 | var templ_7745c5c3_Var138 string | 2817 | var templ_7745c5c3_Var138 string | ||
| 2804 | templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | 2818 | templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | ||
| 2805 | if templ_7745c5c3_Err != nil { | 2819 | if templ_7745c5c3_Err != nil { | ||
| 2806 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 528, Col: 29} | 2820 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 536, Col: 29} |
| 2807 | } | 2821 | } | ||
| 2808 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) | 2822 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) | ||
| 2809 | if templ_7745c5c3_Err != nil { | 2823 | if templ_7745c5c3_Err != nil { | ||
| 2810 | return templ_7745c5c3_Err | 2824 | return templ_7745c5c3_Err | ||
| 2811 | } | 2825 | } | ||
| 2812 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "</p>") | 2826 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, "</p>") |
| 2813 | if templ_7745c5c3_Err != nil { | 2827 | if templ_7745c5c3_Err != nil { | ||
| 2814 | return templ_7745c5c3_Err | 2828 | return templ_7745c5c3_Err | ||
| 2815 | } | 2829 | } | ||
| 2816 | } | 2830 | } | ||
| 2817 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, " ") | 2831 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, " ") |
| 2818 | if templ_7745c5c3_Err != nil { | 2832 | if templ_7745c5c3_Err != nil { | ||
| 2819 | return templ_7745c5c3_Err | 2833 | return templ_7745c5c3_Err | ||
| 2820 | } | 2834 | } | ||
| 2821 | if p.Existing != nil { | 2835 | if p.Existing != nil { | ||
| 2822 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"") | 2836 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"") |
| 2823 | if templ_7745c5c3_Err != nil { | 2837 | if templ_7745c5c3_Err != nil { | ||
| 2824 | return templ_7745c5c3_Err | 2838 | return templ_7745c5c3_Err | ||
| 2825 | } | 2839 | } | ||
| 2826 | var templ_7745c5c3_Var139 templ.SafeURL | 2840 | var templ_7745c5c3_Var139 templ.SafeURL | ||
| 2827 | templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) | 2841 | templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) | ||
| 2828 | if templ_7745c5c3_Err != nil { | 2842 | if templ_7745c5c3_Err != nil { | ||
| 2829 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 531, Col: 114} | 2843 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 539, Col: 114} |
| 2830 | } | 2844 | } | ||
| 2831 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) | 2845 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) | ||
| 2832 | if templ_7745c5c3_Err != nil { | 2846 | if templ_7745c5c3_Err != nil { | ||
| 2833 | return templ_7745c5c3_Err | 2847 | return templ_7745c5c3_Err | ||
| 2834 | } | 2848 | } | ||
| 2835 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, "\">") | 2849 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, "\">") |
| 2836 | if templ_7745c5c3_Err != nil { | 2850 | if templ_7745c5c3_Err != nil { | ||
| 2837 | return templ_7745c5c3_Err | 2851 | return templ_7745c5c3_Err | ||
| 2838 | } | 2852 | } | ||
| 2839 | var templ_7745c5c3_Var140 string | 2853 | var templ_7745c5c3_Var140 string | ||
| 2840 | templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) | 2854 | templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) | ||
| 2841 | if templ_7745c5c3_Err != nil { | 2855 | if templ_7745c5c3_Err != nil { | ||
| 2842 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 531, Col: 135} | 2856 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 539, Col: 135} |
| 2843 | } | 2857 | } | ||
| 2844 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) | 2858 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) | ||
| 2845 | if templ_7745c5c3_Err != nil { | 2859 | if templ_7745c5c3_Err != nil { | ||
| 2846 | return templ_7745c5c3_Err | 2860 | return templ_7745c5c3_Err | ||
| 2847 | } | 2861 | } | ||
| 2848 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, "</a></p>") | 2862 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, "</a></p>") |
| 2849 | if templ_7745c5c3_Err != nil { | 2863 | if templ_7745c5c3_Err != nil { | ||
| 2850 | return templ_7745c5c3_Err | 2864 | return templ_7745c5c3_Err | ||
| 2851 | } | 2865 | } | ||
| 2852 | } | 2866 | } | ||
| 2853 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, " ") | 2867 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, " ") |
| 2854 | if templ_7745c5c3_Err != nil { | 2868 | if templ_7745c5c3_Err != nil { | ||
| 2855 | return templ_7745c5c3_Err | 2869 | return templ_7745c5c3_Err | ||
| 2856 | } | 2870 | } | ||
| 2857 | if p.Create != nil { | 2871 | if p.Create != nil { | ||
| 2858 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "<form class=\"cform create\" method=\"post\" action=\"") | 2872 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "<form class=\"cform create\" method=\"post\" action=\"") |
| 2859 | if templ_7745c5c3_Err != nil { | 2873 | if templ_7745c5c3_Err != nil { | ||
| 2860 | return templ_7745c5c3_Err | 2874 | return templ_7745c5c3_Err | ||
| 2861 | } | 2875 | } | ||
| 2862 | var templ_7745c5c3_Var141 templ.SafeURL | 2876 | var templ_7745c5c3_Var141 templ.SafeURL | ||
| 2863 | templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) | 2877 | templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) | ||
| 2864 | if templ_7745c5c3_Err != nil { | 2878 | if templ_7745c5c3_Err != nil { | ||
| 2865 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 534, Col: 83} | 2879 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 542, Col: 83} |
| 2866 | } | 2880 | } | ||
| 2867 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) | 2881 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) | ||
| 2868 | if templ_7745c5c3_Err != nil { | 2882 | if templ_7745c5c3_Err != nil { | ||
| 2869 | return templ_7745c5c3_Err | 2883 | return templ_7745c5c3_Err | ||
| 2870 | } | 2884 | } | ||
| 2871 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "\"><input type=\"hidden\" name=\"source\" value=\"") | 2885 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "\"><input type=\"hidden\" name=\"source\" value=\"") |
| 2872 | if templ_7745c5c3_Err != nil { | 2886 | if templ_7745c5c3_Err != nil { | ||
| 2873 | return templ_7745c5c3_Err | 2887 | return templ_7745c5c3_Err | ||
| 2874 | } | 2888 | } | ||
| 2875 | var templ_7745c5c3_Var142 string | 2889 | var templ_7745c5c3_Var142 string | ||
| 2876 | templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) | 2890 | templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) | ||
| 2877 | if templ_7745c5c3_Err != nil { | 2891 | if templ_7745c5c3_Err != nil { | ||
| 2878 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 535, Col: 62} | 2892 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 543, Col: 62} |
| 2879 | } | 2893 | } | ||
| 2880 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var142) | 2894 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var142) | ||
| 2881 | if templ_7745c5c3_Err != nil { | 2895 | if templ_7745c5c3_Err != nil { | ||
| 2882 | return templ_7745c5c3_Err | 2896 | return templ_7745c5c3_Err | ||
| 2883 | } | 2897 | } | ||
| 2884 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "\"> <input type=\"hidden\" name=\"target\" value=\"") | 2898 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\"> <input type=\"hidden\" name=\"target\" value=\"") |
| 2885 | if templ_7745c5c3_Err != nil { | 2899 | if templ_7745c5c3_Err != nil { | ||
| 2886 | return templ_7745c5c3_Err | 2900 | return templ_7745c5c3_Err | ||
| 2887 | } | 2901 | } | ||
| 2888 | var templ_7745c5c3_Var143 string | 2902 | var templ_7745c5c3_Var143 string | ||
| 2889 | templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) | 2903 | templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) | ||
| 2890 | if templ_7745c5c3_Err != nil { | 2904 | if templ_7745c5c3_Err != nil { | ||
| 2891 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 536, Col: 62} | 2905 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 544, Col: 62} |
| 2892 | } | 2906 | } | ||
| 2893 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var143) | 2907 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var143) | ||
| 2894 | if templ_7745c5c3_Err != nil { | 2908 | if templ_7745c5c3_Err != nil { | ||
| 2895 | return templ_7745c5c3_Err | 2909 | return templ_7745c5c3_Err | ||
| 2896 | } | 2910 | } | ||
| 2897 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\"> <label for=\"mr-title\">title</label> <input id=\"mr-title\" name=\"title\" type=\"text\" maxlength=\"120\" required value=\"") | 2911 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\"> <label for=\"mr-title\">title</label> <input id=\"mr-title\" name=\"title\" type=\"text\" maxlength=\"120\" required value=\"") |
| 2898 | if templ_7745c5c3_Err != nil { | 2912 | if templ_7745c5c3_Err != nil { | ||
| 2899 | return templ_7745c5c3_Err | 2913 | return templ_7745c5c3_Err | ||
| 2900 | } | 2914 | } | ||
| 2901 | var templ_7745c5c3_Var144 string | 2915 | var templ_7745c5c3_Var144 string | ||
| 2902 | templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) | 2916 | templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) | ||
| 2903 | if templ_7745c5c3_Err != nil { | 2917 | if templ_7745c5c3_Err != nil { | ||
| 2904 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 538, Col: 97} | 2918 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 546, Col: 97} |
| 2905 | } | 2919 | } | ||
| 2906 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var144) | 2920 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var144) | ||
| 2907 | if templ_7745c5c3_Err != nil { | 2921 | if templ_7745c5c3_Err != nil { | ||
| 2908 | return templ_7745c5c3_Err | 2922 | return templ_7745c5c3_Err | ||
| 2909 | } | 2923 | } | ||
| 2910 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\" autocomplete=\"off\"> <label for=\"mr-desc\">description</label> <textarea id=\"mr-desc\" name=\"description\" rows=\"4\" maxlength=\"8000\" placeholder=\"Markdown, optional\"></textarea><div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Create merge request</button></div></form>") | 2924 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\" autocomplete=\"off\"> <label for=\"mr-desc\">description</label> <textarea id=\"mr-desc\" name=\"description\" rows=\"4\" maxlength=\"8000\" placeholder=\"Markdown, optional\"></textarea><div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Create merge request</button></div></form>") |
| 2911 | if templ_7745c5c3_Err != nil { | 2925 | if templ_7745c5c3_Err != nil { | ||
| 2912 | return templ_7745c5c3_Err | 2926 | return templ_7745c5c3_Err | ||
| 2913 | } | 2927 | } | ||
| 2914 | } | 2928 | } | ||
| 2915 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, " ") | 2929 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, " ") |
| 2916 | if templ_7745c5c3_Err != nil { | 2930 | if templ_7745c5c3_Err != nil { | ||
| 2917 | return templ_7745c5c3_Err | 2931 | return templ_7745c5c3_Err | ||
| 2918 | } | 2932 | } | ||
| 2919 | if p.HasDiff { | 2933 | if p.HasDiff { | ||
| 2920 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">") | 2934 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">") |
| 2921 | if templ_7745c5c3_Err != nil { | 2935 | if templ_7745c5c3_Err != nil { | ||
| 2922 | return templ_7745c5c3_Err | 2936 | return templ_7745c5c3_Err | ||
| 2923 | } | 2937 | } | ||
| 2924 | var templ_7745c5c3_Var145 string | 2938 | var templ_7745c5c3_Var145 string | ||
| 2925 | templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | 2939 | templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | ||
| 2926 | if templ_7745c5c3_Err != nil { | 2940 | if templ_7745c5c3_Err != nil { | ||
| 2927 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 548, Col: 57} | 2941 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 57} |
| 2928 | } | 2942 | } | ||
| 2929 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) | 2943 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) | ||
| 2930 | if templ_7745c5c3_Err != nil { | 2944 | if templ_7745c5c3_Err != nil { | ||
| 2931 | return templ_7745c5c3_Err | 2945 | return templ_7745c5c3_Err | ||
| 2932 | } | 2946 | } | ||
| 2933 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, " · <span class=\"plus\">+") | 2947 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, " · <span class=\"plus\">+") |
| 2934 | if templ_7745c5c3_Err != nil { | 2948 | if templ_7745c5c3_Err != nil { | ||
| 2935 | return templ_7745c5c3_Err | 2949 | return templ_7745c5c3_Err | ||
| 2936 | } | 2950 | } | ||
| 2937 | var templ_7745c5c3_Var146 string | 2951 | var templ_7745c5c3_Var146 string | ||
| 2938 | templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | 2952 | templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | ||
| 2939 | if templ_7745c5c3_Err != nil { | 2953 | if templ_7745c5c3_Err != nil { | ||
| 2940 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 548, Col: 97} | 2954 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 97} |
| 2941 | } | 2955 | } | ||
| 2942 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) | 2956 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) | ||
| 2943 | if templ_7745c5c3_Err != nil { | 2957 | if templ_7745c5c3_Err != nil { | ||
| 2944 | return templ_7745c5c3_Err | 2958 | return templ_7745c5c3_Err | ||
| 2945 | } | 2959 | } | ||
| 2946 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, "</span> <span class=\"minus\">-") | 2960 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span> <span class=\"minus\">-") |
| 2947 | if templ_7745c5c3_Err != nil { | 2961 | if templ_7745c5c3_Err != nil { | ||
| 2948 | return templ_7745c5c3_Err | 2962 | return templ_7745c5c3_Err | ||
| 2949 | } | 2963 | } | ||
| 2950 | var templ_7745c5c3_Var147 string | 2964 | var templ_7745c5c3_Var147 string | ||
| 2951 | templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | 2965 | templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | ||
| 2952 | if templ_7745c5c3_Err != nil { | 2966 | if templ_7745c5c3_Err != nil { | ||
| 2953 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 548, Col: 142} | 2967 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 142} |
| 2954 | } | 2968 | } | ||
| 2955 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) | 2969 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) | ||
| 2956 | if templ_7745c5c3_Err != nil { | 2970 | if templ_7745c5c3_Err != nil { | ||
| 2957 | return templ_7745c5c3_Err | 2971 | return templ_7745c5c3_Err | ||
| 2958 | } | 2972 | } | ||
| 2959 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span></span> <span class=\"grow\"></span>") | 2973 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "</span></span> <span class=\"grow\"></span>") |
| 2960 | if templ_7745c5c3_Err != nil { | 2974 | if templ_7745c5c3_Err != nil { | ||
| 2961 | return templ_7745c5c3_Err | 2975 | return templ_7745c5c3_Err | ||
| 2962 | } | 2976 | } | ||
| @@ -2972,64 +2986,64 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2972 | if templ_7745c5c3_Err != nil { | 2986 | if templ_7745c5c3_Err != nil { | ||
| 2973 | return templ_7745c5c3_Err | 2987 | return templ_7745c5c3_Err | ||
| 2974 | } | 2988 | } | ||
| 2975 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "</div>") | 2989 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "</div>") |
| 2976 | if templ_7745c5c3_Err != nil { | 2990 | if templ_7745c5c3_Err != nil { | ||
| 2977 | return templ_7745c5c3_Err | 2991 | return templ_7745c5c3_Err | ||
| 2978 | } | 2992 | } | ||
| 2979 | if p.Invisible { | 2993 | if p.Invisible { | ||
| 2980 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>") | 2994 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>") |
| 2981 | if templ_7745c5c3_Err != nil { | 2995 | if templ_7745c5c3_Err != nil { | ||
| 2982 | return templ_7745c5c3_Err | 2996 | return templ_7745c5c3_Err | ||
| 2983 | } | 2997 | } | ||
| 2984 | } | 2998 | } | ||
| 2985 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, " <div id=\"diffs\"") | 2999 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, " <div id=\"diffs\"") |
| 2986 | if templ_7745c5c3_Err != nil { | 3000 | if templ_7745c5c3_Err != nil { | ||
| 2987 | return templ_7745c5c3_Err | 3001 | return templ_7745c5c3_Err | ||
| 2988 | } | 3002 | } | ||
| 2989 | if p.Both { | 3003 | if p.Both { | ||
| 2990 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, " data-diff=\"") | 3004 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, " data-diff=\"") |
| 2991 | if templ_7745c5c3_Err != nil { | 3005 | if templ_7745c5c3_Err != nil { | ||
| 2992 | return templ_7745c5c3_Err | 3006 | return templ_7745c5c3_Err | ||
| 2993 | } | 3007 | } | ||
| 2994 | var templ_7745c5c3_Var148 string | 3008 | var templ_7745c5c3_Var148 string | ||
| 2995 | templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | 3009 | templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | ||
| 2996 | if templ_7745c5c3_Err != nil { | 3010 | if templ_7745c5c3_Err != nil { | ||
| 2997 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 563, Col: 23} | 3011 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 571, Col: 23} |
| 2998 | } | 3012 | } | ||
| 2999 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148) | 3013 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148) | ||
| 3000 | if templ_7745c5c3_Err != nil { | 3014 | if templ_7745c5c3_Err != nil { | ||
| 3001 | return templ_7745c5c3_Err | 3015 | return templ_7745c5c3_Err | ||
| 3002 | } | 3016 | } | ||
| 3003 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, "\"") | 3017 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "\"") |
| 3004 | if templ_7745c5c3_Err != nil { | 3018 | if templ_7745c5c3_Err != nil { | ||
| 3005 | return templ_7745c5c3_Err | 3019 | return templ_7745c5c3_Err | ||
| 3006 | } | 3020 | } | ||
| 3007 | } else { | 3021 | } else { | ||
| 3008 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, " data-view=\"") | 3022 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, " data-view=\"") |
| 3009 | if templ_7745c5c3_Err != nil { | 3023 | if templ_7745c5c3_Err != nil { | ||
| 3010 | return templ_7745c5c3_Err | 3024 | return templ_7745c5c3_Err | ||
| 3011 | } | 3025 | } | ||
| 3012 | var templ_7745c5c3_Var149 string | 3026 | var templ_7745c5c3_Var149 string | ||
| 3013 | templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | 3027 | templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | ||
| 3014 | if templ_7745c5c3_Err != nil { | 3028 | if templ_7745c5c3_Err != nil { | ||
| 3015 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 565, Col: 23} | 3029 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 573, Col: 23} |
| 3016 | } | 3030 | } | ||
| 3017 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var149) | 3031 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var149) | ||
| 3018 | if templ_7745c5c3_Err != nil { | 3032 | if templ_7745c5c3_Err != nil { | ||
| 3019 | return templ_7745c5c3_Err | 3033 | return templ_7745c5c3_Err | ||
| 3020 | } | 3034 | } | ||
| 3021 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, "\"") | 3035 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "\"") |
| 3022 | if templ_7745c5c3_Err != nil { | 3036 | if templ_7745c5c3_Err != nil { | ||
| 3023 | return templ_7745c5c3_Err | 3037 | return templ_7745c5c3_Err | ||
| 3024 | } | 3038 | } | ||
| 3025 | } | 3039 | } | ||
| 3026 | if p.Both && !p.Pinned { | 3040 | if p.Both && !p.Pinned { | ||
| 3027 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"") | 3041 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"") |
| 3028 | if templ_7745c5c3_Err != nil { | 3042 | if templ_7745c5c3_Err != nil { | ||
| 3029 | return templ_7745c5c3_Err | 3043 | return templ_7745c5c3_Err | ||
| 3030 | } | 3044 | } | ||
| 3031 | } | 3045 | } | ||
| 3032 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, ">") | 3046 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, ">") |
| 3033 | if templ_7745c5c3_Err != nil { | 3047 | if templ_7745c5c3_Err != nil { | ||
| 3034 | return templ_7745c5c3_Err | 3048 | return templ_7745c5c3_Err | ||
| 3035 | } | 3049 | } | ||
| @@ -3039,7 +3053,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3039 | return templ_7745c5c3_Err | 3053 | return templ_7745c5c3_Err | ||
| 3040 | } | 3054 | } | ||
| 3041 | } | 3055 | } | ||
| 3042 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, "</div>") | 3056 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "</div>") |
| 3043 | if templ_7745c5c3_Err != nil { | 3057 | if templ_7745c5c3_Err != nil { | ||
| 3044 | return templ_7745c5c3_Err | 3058 | return templ_7745c5c3_Err | ||
| 3045 | } | 3059 | } | ||
| @@ -3075,77 +3089,77 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3075 | templ_7745c5c3_Var150 = templ.NopComponent | 3089 | templ_7745c5c3_Var150 = templ.NopComponent | ||
| 3076 | } | 3090 | } | ||
| 3077 | ctx = templ.ClearChildren(ctx) | 3091 | ctx = templ.ClearChildren(ctx) | ||
| 3078 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">") | 3092 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">") |
| 3079 | if templ_7745c5c3_Err != nil { | 3093 | if templ_7745c5c3_Err != nil { | ||
| 3080 | return templ_7745c5c3_Err | 3094 | return templ_7745c5c3_Err | ||
| 3081 | } | 3095 | } | ||
| 3082 | var templ_7745c5c3_Var151 string | 3096 | var templ_7745c5c3_Var151 string | ||
| 3083 | templ_7745c5c3_Var151, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) | 3097 | templ_7745c5c3_Var151, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) | ||
| 3084 | if templ_7745c5c3_Err != nil { | 3098 | if templ_7745c5c3_Err != nil { | ||
| 3085 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 581, Col: 67} | 3099 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 589, Col: 67} |
| 3086 | } | 3100 | } | ||
| 3087 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var151)) | 3101 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var151)) | ||
| 3088 | if templ_7745c5c3_Err != nil { | 3102 | if templ_7745c5c3_Err != nil { | ||
| 3089 | return templ_7745c5c3_Err | 3103 | return templ_7745c5c3_Err | ||
| 3090 | } | 3104 | } | ||
| 3091 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "</span></h2><ul class=\"pcommits\">") | 3105 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "</span></h2><ul class=\"pcommits\">") |
| 3092 | if templ_7745c5c3_Err != nil { | 3106 | if templ_7745c5c3_Err != nil { | ||
| 3093 | return templ_7745c5c3_Err | 3107 | return templ_7745c5c3_Err | ||
| 3094 | } | 3108 | } | ||
| 3095 | for _, c := range p.Ahead { | 3109 | for _, c := range p.Ahead { | ||
| 3096 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "<li><a href=\"") | 3110 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "<li><a href=\"") |
| 3097 | if templ_7745c5c3_Err != nil { | 3111 | if templ_7745c5c3_Err != nil { | ||
| 3098 | return templ_7745c5c3_Err | 3112 | return templ_7745c5c3_Err | ||
| 3099 | } | 3113 | } | ||
| 3100 | var templ_7745c5c3_Var152 templ.SafeURL | 3114 | var templ_7745c5c3_Var152 templ.SafeURL | ||
| 3101 | templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) | 3115 | templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) | ||
| 3102 | if templ_7745c5c3_Err != nil { | 3116 | if templ_7745c5c3_Err != nil { | ||
| 3103 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 585, Col: 37} | 3117 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 593, Col: 37} |
| 3104 | } | 3118 | } | ||
| 3105 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152)) | 3119 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152)) | ||
| 3106 | if templ_7745c5c3_Err != nil { | 3120 | if templ_7745c5c3_Err != nil { | ||
| 3107 | return templ_7745c5c3_Err | 3121 | return templ_7745c5c3_Err | ||
| 3108 | } | 3122 | } | ||
| 3109 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "\">") | 3123 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 287, "\">") |
| 3110 | if templ_7745c5c3_Err != nil { | 3124 | if templ_7745c5c3_Err != nil { | ||
| 3111 | return templ_7745c5c3_Err | 3125 | return templ_7745c5c3_Err | ||
| 3112 | } | 3126 | } | ||
| 3113 | var templ_7745c5c3_Var153 string | 3127 | var templ_7745c5c3_Var153 string | ||
| 3114 | templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | 3128 | templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | ||
| 3115 | if templ_7745c5c3_Err != nil { | 3129 | if templ_7745c5c3_Err != nil { | ||
| 3116 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 585, Col: 49} | 3130 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 593, Col: 49} |
| 3117 | } | 3131 | } | ||
| 3118 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153)) | 3132 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153)) | ||
| 3119 | if templ_7745c5c3_Err != nil { | 3133 | if templ_7745c5c3_Err != nil { | ||
| 3120 | return templ_7745c5c3_Err | 3134 | return templ_7745c5c3_Err | ||
| 3121 | } | 3135 | } | ||
| 3122 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 287, "</a> <span class=\"s\">") | 3136 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "</a> <span class=\"s\">") |
| 3123 | if templ_7745c5c3_Err != nil { | 3137 | if templ_7745c5c3_Err != nil { | ||
| 3124 | return templ_7745c5c3_Err | 3138 | return templ_7745c5c3_Err | ||
| 3125 | } | 3139 | } | ||
| 3126 | var templ_7745c5c3_Var154 string | 3140 | var templ_7745c5c3_Var154 string | ||
| 3127 | templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | 3141 | templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | ||
| 3128 | if templ_7745c5c3_Err != nil { | 3142 | if templ_7745c5c3_Err != nil { | ||
| 3129 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 586, Col: 32} | 3143 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 594, Col: 32} |
| 3130 | } | 3144 | } | ||
| 3131 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154)) | 3145 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154)) | ||
| 3132 | if templ_7745c5c3_Err != nil { | 3146 | if templ_7745c5c3_Err != nil { | ||
| 3133 | return templ_7745c5c3_Err | 3147 | return templ_7745c5c3_Err | ||
| 3134 | } | 3148 | } | ||
| 3135 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "</span> <span class=\"mute\">") | 3149 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, "</span> <span class=\"mute\">") |
| 3136 | if templ_7745c5c3_Err != nil { | 3150 | if templ_7745c5c3_Err != nil { | ||
| 3137 | return templ_7745c5c3_Err | 3151 | return templ_7745c5c3_Err | ||
| 3138 | } | 3152 | } | ||
| 3139 | var templ_7745c5c3_Var155 string | 3153 | var templ_7745c5c3_Var155 string | ||
| 3140 | templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | 3154 | templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | ||
| 3141 | if templ_7745c5c3_Err != nil { | 3155 | if templ_7745c5c3_Err != nil { | ||
| 3142 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 588, Col: 16} | 3156 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 596, Col: 16} |
| 3143 | } | 3157 | } | ||
| 3144 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155)) | 3158 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155)) | ||
| 3145 | if templ_7745c5c3_Err != nil { | 3159 | if templ_7745c5c3_Err != nil { | ||
| 3146 | return templ_7745c5c3_Err | 3160 | return templ_7745c5c3_Err | ||
| 3147 | } | 3161 | } | ||
| 3148 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, " ") | 3162 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, " ") |
| 3149 | if templ_7745c5c3_Err != nil { | 3163 | if templ_7745c5c3_Err != nil { | ||
| 3150 | return templ_7745c5c3_Err | 3164 | return templ_7745c5c3_Err | ||
| 3151 | } | 3165 | } | ||
| @@ -3153,90 +3167,90 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3153 | var templ_7745c5c3_Var156 string | 3167 | var templ_7745c5c3_Var156 string | ||
| 3154 | templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | 3168 | templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | ||
| 3155 | if templ_7745c5c3_Err != nil { | 3169 | if templ_7745c5c3_Err != nil { | ||
| 3156 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 590, Col: 15} | 3170 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 598, Col: 15} |
| 3157 | } | 3171 | } | ||
| 3158 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156)) | 3172 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156)) | ||
| 3159 | if templ_7745c5c3_Err != nil { | 3173 | if templ_7745c5c3_Err != nil { | ||
| 3160 | return templ_7745c5c3_Err | 3174 | return templ_7745c5c3_Err | ||
| 3161 | } | 3175 | } | ||
| 3162 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, "<time datetime=\"") | 3176 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "<time datetime=\"") |
| 3163 | if templ_7745c5c3_Err != nil { | 3177 | if templ_7745c5c3_Err != nil { | ||
| 3164 | return templ_7745c5c3_Err | 3178 | return templ_7745c5c3_Err | ||
| 3165 | } | 3179 | } | ||
| 3166 | var templ_7745c5c3_Var157 string | 3180 | var templ_7745c5c3_Var157 string | ||
| 3167 | templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | 3181 | templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | ||
| 3168 | if templ_7745c5c3_Err != nil { | 3182 | if templ_7745c5c3_Err != nil { | ||
| 3169 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 590, Col: 42} | 3183 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 598, Col: 42} |
| 3170 | } | 3184 | } | ||
| 3171 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var157) | 3185 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var157) | ||
| 3172 | if templ_7745c5c3_Err != nil { | 3186 | if templ_7745c5c3_Err != nil { | ||
| 3173 | return templ_7745c5c3_Err | 3187 | return templ_7745c5c3_Err | ||
| 3174 | } | 3188 | } | ||
| 3175 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "\">") | 3189 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, "\">") |
| 3176 | if templ_7745c5c3_Err != nil { | 3190 | if templ_7745c5c3_Err != nil { | ||
| 3177 | return templ_7745c5c3_Err | 3191 | return templ_7745c5c3_Err | ||
| 3178 | } | 3192 | } | ||
| 3179 | var templ_7745c5c3_Var158 string | 3193 | var templ_7745c5c3_Var158 string | ||
| 3180 | templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | 3194 | templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | ||
| 3181 | if templ_7745c5c3_Err != nil { | 3195 | if templ_7745c5c3_Err != nil { | ||
| 3182 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 590, Col: 53} | 3196 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 598, Col: 53} |
| 3183 | } | 3197 | } | ||
| 3184 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158)) | 3198 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158)) | ||
| 3185 | if templ_7745c5c3_Err != nil { | 3199 | if templ_7745c5c3_Err != nil { | ||
| 3186 | return templ_7745c5c3_Err | 3200 | return templ_7745c5c3_Err | ||
| 3187 | } | 3201 | } | ||
| 3188 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, "</time>") | 3202 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "</time>") |
| 3189 | if templ_7745c5c3_Err != nil { | 3203 | if templ_7745c5c3_Err != nil { | ||
| 3190 | return templ_7745c5c3_Err | 3204 | return templ_7745c5c3_Err | ||
| 3191 | } | 3205 | } | ||
| 3192 | } | 3206 | } | ||
| 3193 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "</span></li>") | 3207 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, "</span></li>") |
| 3194 | if templ_7745c5c3_Err != nil { | 3208 | if templ_7745c5c3_Err != nil { | ||
| 3195 | return templ_7745c5c3_Err | 3209 | return templ_7745c5c3_Err | ||
| 3196 | } | 3210 | } | ||
| 3197 | } | 3211 | } | ||
| 3198 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, "</ul>") | 3212 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</ul>") |
| 3199 | if templ_7745c5c3_Err != nil { | 3213 | if templ_7745c5c3_Err != nil { | ||
| 3200 | return templ_7745c5c3_Err | 3214 | return templ_7745c5c3_Err | ||
| 3201 | } | 3215 | } | ||
| 3202 | if len(p.Ahead) == 0 { | 3216 | if len(p.Ahead) == 0 { | ||
| 3203 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "<p class=\"dim\">no commit ahead of ") | 3217 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "<p class=\"dim\">no commit ahead of ") |
| 3204 | if templ_7745c5c3_Err != nil { | 3218 | if templ_7745c5c3_Err != nil { | ||
| 3205 | return templ_7745c5c3_Err | 3219 | return templ_7745c5c3_Err | ||
| 3206 | } | 3220 | } | ||
| 3207 | var templ_7745c5c3_Var159 string | 3221 | var templ_7745c5c3_Var159 string | ||
| 3208 | templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 3222 | templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 3209 | if templ_7745c5c3_Err != nil { | 3223 | if templ_7745c5c3_Err != nil { | ||
| 3210 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 597, Col: 47} | 3224 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 605, Col: 47} |
| 3211 | } | 3225 | } | ||
| 3212 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159)) | 3226 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159)) | ||
| 3213 | if templ_7745c5c3_Err != nil { | 3227 | if templ_7745c5c3_Err != nil { | ||
| 3214 | return templ_7745c5c3_Err | 3228 | return templ_7745c5c3_Err | ||
| 3215 | } | 3229 | } | ||
| 3216 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, ".</p>") | 3230 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, ".</p>") |
| 3217 | if templ_7745c5c3_Err != nil { | 3231 | if templ_7745c5c3_Err != nil { | ||
| 3218 | return templ_7745c5c3_Err | 3232 | return templ_7745c5c3_Err | ||
| 3219 | } | 3233 | } | ||
| 3220 | } | 3234 | } | ||
| 3221 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, "</section>") | 3235 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "</section>") |
| 3222 | if templ_7745c5c3_Err != nil { | 3236 | if templ_7745c5c3_Err != nil { | ||
| 3223 | return templ_7745c5c3_Err | 3237 | return templ_7745c5c3_Err | ||
| 3224 | } | 3238 | } | ||
| 3225 | if p.HasDiff { | 3239 | if p.HasDiff { | ||
| 3226 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">") | 3240 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">") |
| 3227 | if templ_7745c5c3_Err != nil { | 3241 | if templ_7745c5c3_Err != nil { | ||
| 3228 | return templ_7745c5c3_Err | 3242 | return templ_7745c5c3_Err | ||
| 3229 | } | 3243 | } | ||
| 3230 | var templ_7745c5c3_Var160 string | 3244 | var templ_7745c5c3_Var160 string | ||
| 3231 | templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | 3245 | templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | ||
| 3232 | if templ_7745c5c3_Err != nil { | 3246 | if templ_7745c5c3_Err != nil { | ||
| 3233 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 602, Col: 66} | 3247 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 610, Col: 66} |
| 3234 | } | 3248 | } | ||
| 3235 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160)) | 3249 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160)) | ||
| 3236 | if templ_7745c5c3_Err != nil { | 3250 | if templ_7745c5c3_Err != nil { | ||
| 3237 | return templ_7745c5c3_Err | 3251 | return templ_7745c5c3_Err | ||
| 3238 | } | 3252 | } | ||
| 3239 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "</span></h2>") | 3253 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</span></h2>") |
| 3240 | if templ_7745c5c3_Err != nil { | 3254 | if templ_7745c5c3_Err != nil { | ||
| 3241 | return templ_7745c5c3_Err | 3255 | return templ_7745c5c3_Err | ||
| 3242 | } | 3256 | } | ||
| @@ -3244,12 +3258,12 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3244 | if templ_7745c5c3_Err != nil { | 3258 | if templ_7745c5c3_Err != nil { | ||
| 3245 | return templ_7745c5c3_Err | 3259 | return templ_7745c5c3_Err | ||
| 3246 | } | 3260 | } | ||
| 3247 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</section>") | 3261 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, "</section>") |
| 3248 | if templ_7745c5c3_Err != nil { | 3262 | if templ_7745c5c3_Err != nil { | ||
| 3249 | return templ_7745c5c3_Err | 3263 | return templ_7745c5c3_Err | ||
| 3250 | } | 3264 | } | ||
| 3251 | } | 3265 | } | ||
| 3252 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>") | 3266 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>") |
| 3253 | if templ_7745c5c3_Err != nil { | 3267 | if templ_7745c5c3_Err != nil { | ||
| 3254 | return templ_7745c5c3_Err | 3268 | return templ_7745c5c3_Err | ||
| 3255 | } | 3269 | } | ||
| @@ -3257,7 +3271,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3257 | if templ_7745c5c3_Err != nil { | 3271 | if templ_7745c5c3_Err != nil { | ||
| 3258 | return templ_7745c5c3_Err | 3272 | return templ_7745c5c3_Err | ||
| 3259 | } | 3273 | } | ||
| 3260 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "</section>") | 3274 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 303, "</section>") |
| 3261 | if templ_7745c5c3_Err != nil { | 3275 | if templ_7745c5c3_Err != nil { | ||
| 3262 | return templ_7745c5c3_Err | 3276 | return templ_7745c5c3_Err | ||
| 3263 | } | 3277 | } | ||
M internal/adapters/web/static/css/60-mr.css +1 -3
| @@ -11,7 +11,6 @@ | |||
| 11 | 11 | .mr-desc.prose { max-width: none; padding: var(--s4) var(--s5); background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--r); } | |
| 12 | 12 | .mr-desc.prose > * { max-width: var(--measure); } | |
| 13 | 13 | .mr-desc.prose > pre, .mr-desc.prose > table { max-width: 100%; } | |
| 14 | - | .c-text a { text-decoration: underline; } | |
| 15 | 14 | ||
| 16 | 15 | .since { | |
| 17 | 16 | display: inline-flex; flex-wrap: wrap; gap: var(--s1); padding: var(--s1); | |
| @@ -147,12 +146,11 @@ | |||
| 147 | 146 | & p { white-space: normal; } | |
| 148 | 147 | & .c-who { font-weight: bold; } | |
| 149 | 148 | & .c-state { color: var(--ink-dim); } | |
| 150 | - | & .c-text { white-space: pre-wrap; overflow-wrap: anywhere; } | |
| 151 | 149 | & .c-where { font-size: var(--fs-s); overflow-wrap: anywhere; } | |
| 152 | 150 | & .c-act { margin-top: var(--s2); } | |
| 153 | 151 | & .c-act button { height: 26px; font-size: var(--fs-xs); } | |
| 154 | 152 | &[data-resolved="true"] { border-left-color: var(--border-strong); } | |
| 155 | - | &[data-resolved="true"] .c-text { color: var(--ink-dim); } | |
| 153 | + | &[data-resolved="true"] .c-body { color: var(--ink-dim); } | |
| 156 | 154 | } | |
| 157 | 155 | .dt .fnote td { background: var(--bg-canvas); padding: var(--s2) var(--s3); white-space: normal; } | |
| 158 | 156 | .dt .fnote .cmt, .dt .fnote .cform { margin: 0; } | |
| @@ -11,7 +11,6 @@ | |||||
| 11 | .mr-desc.prose { max-width: none; padding: var(--s4) var(--s5); background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--r); } | 11 | .mr-desc.prose { max-width: none; padding: var(--s4) var(--s5); background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--r); } | ||
| 12 | .mr-desc.prose > * { max-width: var(--measure); } | 12 | .mr-desc.prose > * { max-width: var(--measure); } | ||
| 13 | .mr-desc.prose > pre, .mr-desc.prose > table { max-width: 100%; } | 13 | .mr-desc.prose > pre, .mr-desc.prose > table { max-width: 100%; } | ||
| 14 | - | .c-text a { text-decoration: underline; } | |||
| 15 | 14 | ||||
| 16 | .since { | 15 | .since { | ||
| 17 | display: inline-flex; flex-wrap: wrap; gap: var(--s1); padding: var(--s1); | 16 | display: inline-flex; flex-wrap: wrap; gap: var(--s1); padding: var(--s1); | ||
| @@ -147,12 +146,11 @@ | |||||
| 147 | & p { white-space: normal; } | 146 | & p { white-space: normal; } | ||
| 148 | & .c-who { font-weight: bold; } | 147 | & .c-who { font-weight: bold; } | ||
| 149 | & .c-state { color: var(--ink-dim); } | 148 | & .c-state { color: var(--ink-dim); } | ||
| 150 | - | & .c-text { white-space: pre-wrap; overflow-wrap: anywhere; } | |||
| 151 | & .c-where { font-size: var(--fs-s); overflow-wrap: anywhere; } | 149 | & .c-where { font-size: var(--fs-s); overflow-wrap: anywhere; } | ||
| 152 | & .c-act { margin-top: var(--s2); } | 150 | & .c-act { margin-top: var(--s2); } | ||
| 153 | & .c-act button { height: 26px; font-size: var(--fs-xs); } | 151 | & .c-act button { height: 26px; font-size: var(--fs-xs); } | ||
| 154 | &[data-resolved="true"] { border-left-color: var(--border-strong); } | 152 | &[data-resolved="true"] { border-left-color: var(--border-strong); } | ||
| 155 | - | &[data-resolved="true"] .c-text { color: var(--ink-dim); } | 153 | + | &[data-resolved="true"] .c-body { color: var(--ink-dim); } |
| 156 | } | 154 | } | ||
| 157 | .dt .fnote td { background: var(--bg-canvas); padding: var(--s2) var(--s3); white-space: normal; } | 155 | .dt .fnote td { background: var(--bg-canvas); padding: var(--s2) var(--s3); white-space: normal; } | ||
| 158 | .dt .fnote .cmt, .dt .fnote .cform { margin: 0; } | 156 | .dt .fnote .cmt, .dt .fnote .cform { margin: 0; } | ||
M internal/adapters/web/static/js/mr.js +17 -2
| @@ -126,16 +126,31 @@ window.ermiteMR = (() => { | |||
| 126 | 126 | function reveal(id, scroll = true) { | |
| 127 | 127 | // Any navigation, loaded or not, makes the reveals still loading stale. | |
| 128 | 128 | const gen = ++revealGen; | |
| 129 | + | const target = () => { | |
| 130 | + | if (/^c\d+$/.test(id) && $('#diffs')?.dataset.diff === 'split') { | |
| 131 | + | const split = document.getElementById(id + '-s'); | |
| 132 | + | if (split) return split; | |
| 133 | + | } | |
| 134 | + | return document.getElementById(id); | |
| 135 | + | }; | |
| 129 | 136 | let ph = document.getElementById(id)?.querySelector(':scope > .dlazy'); | |
| 130 | 137 | if (!ph && /^c\d+/.test(id) && !document.getElementById(id)) { | |
| 131 | 138 | const base = id.replace(/-s$/, ''); | |
| 132 | 139 | ph = $$('.dlazy[data-notes]').find((p) => p.dataset.notes.split(' ').includes(base)); | |
| 133 | 140 | } | |
| 134 | - | if (!ph) return false; | |
| 141 | + | if (!ph) { | |
| 142 | + | const el = target(); | |
| 143 | + | if (el && el.id !== id) { | |
| 144 | + | const d = el.closest('details'); | |
| 145 | + | if (d) d.open = true; | |
| 146 | + | if (scroll) el.scrollIntoView({ block: 'start' }); | |
| 147 | + | } | |
| 148 | + | return false; | |
| 149 | + | } | |
| 135 | 150 | load(ph).then(() => { | |
| 136 | 151 | // A later reveal (another file asked meanwhile) owns the view. | |
| 137 | 152 | if (gen !== revealGen) return; | |
| 138 | - | const el = document.getElementById(id); | |
| 153 | + | const el = target(); | |
| 139 | 154 | if (!el) return; | |
| 140 | 155 | const d = el.closest('details'); | |
| 141 | 156 | if (d) d.open = true; | |
| @@ -126,16 +126,31 @@ window.ermiteMR = (() => { | |||||
| 126 | function reveal(id, scroll = true) { | 126 | function reveal(id, scroll = true) { | ||
| 127 | // Any navigation, loaded or not, makes the reveals still loading stale. | 127 | // Any navigation, loaded or not, makes the reveals still loading stale. | ||
| 128 | const gen = ++revealGen; | 128 | const gen = ++revealGen; | ||
| 129 | + | const target = () => { | |||
| 130 | + | if (/^c\d+$/.test(id) && $('#diffs')?.dataset.diff === 'split') { | |||
| 131 | + | const split = document.getElementById(id + '-s'); | |||
| 132 | + | if (split) return split; | |||
| 133 | + | } | |||
| 134 | + | return document.getElementById(id); | |||
| 135 | + | }; | |||
| 129 | let ph = document.getElementById(id)?.querySelector(':scope > .dlazy'); | 136 | let ph = document.getElementById(id)?.querySelector(':scope > .dlazy'); | ||
| 130 | if (!ph && /^c\d+/.test(id) && !document.getElementById(id)) { | 137 | if (!ph && /^c\d+/.test(id) && !document.getElementById(id)) { | ||
| 131 | const base = id.replace(/-s$/, ''); | 138 | const base = id.replace(/-s$/, ''); | ||
| 132 | ph = $$('.dlazy[data-notes]').find((p) => p.dataset.notes.split(' ').includes(base)); | 139 | ph = $$('.dlazy[data-notes]').find((p) => p.dataset.notes.split(' ').includes(base)); | ||
| 133 | } | 140 | } | ||
| 134 | - | if (!ph) return false; | 141 | + | if (!ph) { |
| 142 | + | const el = target(); | |||
| 143 | + | if (el && el.id !== id) { | |||
| 144 | + | const d = el.closest('details'); | |||
| 145 | + | if (d) d.open = true; | |||
| 146 | + | if (scroll) el.scrollIntoView({ block: 'start' }); | |||
| 147 | + | } | |||
| 148 | + | return false; | |||
| 149 | + | } | |||
| 135 | load(ph).then(() => { | 150 | load(ph).then(() => { | ||
| 136 | // A later reveal (another file asked meanwhile) owns the view. | 151 | // A later reveal (another file asked meanwhile) owns the view. | ||
| 137 | if (gen !== revealGen) return; | 152 | if (gen !== revealGen) return; | ||
| 138 | - | const el = document.getElementById(id); | 153 | + | const el = target(); |
| 139 | if (!el) return; | 154 | if (!el) return; | ||
| 140 | const d = el.closest('details'); | 155 | const d = el.closest('details'); | ||
| 141 | if (d) d.open = true; | 156 | if (d) d.open = true; | ||
M internal/app/cli_mr.go +7 -2
| @@ -562,9 +562,14 @@ func printMRDetail(w io.Writer, d *ermite.GetMergeRequestResponse, withDiff, sin | |||
| 562 | 562 | if len(d.GetVerdicts()) > 0 { | |
| 563 | 563 | var verdicts []string | |
| 564 | 564 | for _, v := range d.GetVerdicts() { | |
| 565 | - | label := "changes requested" | |
| 566 | - | if v.GetVerdict() == ermite.Verdict_VERDICT_APPROVE { | |
| 565 | + | var label string | |
| 566 | + | switch v.GetVerdict() { | |
| 567 | + | case ermite.Verdict_VERDICT_APPROVE: | |
| 567 | 568 | label = "approved" | |
| 569 | + | case ermite.Verdict_VERDICT_CHANGES_REQUESTED: | |
| 570 | + | label = "changes requested" | |
| 571 | + | default: | |
| 572 | + | label = fmt.Sprintf("verdict %d", v.GetVerdict()) | |
| 568 | 573 | } | |
| 569 | 574 | if v.GetStale() { | |
| 570 | 575 | label += " (stale)" | |
| @@ -562,9 +562,14 @@ func printMRDetail(w io.Writer, d *ermite.GetMergeRequestResponse, withDiff, sin | |||||
| 562 | if len(d.GetVerdicts()) > 0 { | 562 | if len(d.GetVerdicts()) > 0 { | ||
| 563 | var verdicts []string | 563 | var verdicts []string | ||
| 564 | for _, v := range d.GetVerdicts() { | 564 | for _, v := range d.GetVerdicts() { | ||
| 565 | - | label := "changes requested" | 565 | + | var label string |
| 566 | - | if v.GetVerdict() == ermite.Verdict_VERDICT_APPROVE { | 566 | + | switch v.GetVerdict() { |
| 567 | + | case ermite.Verdict_VERDICT_APPROVE: | |||
| 567 | label = "approved" | 568 | label = "approved" | ||
| 569 | + | case ermite.Verdict_VERDICT_CHANGES_REQUESTED: | |||
| 570 | + | label = "changes requested" | |||
| 571 | + | default: | |||
| 572 | + | label = fmt.Sprintf("verdict %d", v.GetVerdict()) | |||
| 568 | } | 573 | } | ||
| 569 | if v.GetStale() { | 574 | if v.GetStale() { | ||
| 570 | label += " (stale)" | 575 | label += " (stale)" | ||
M internal/app/cli_mr_test.go +8 -0
| @@ -455,6 +455,14 @@ func TestNoteDetailOutput(t *testing.T) { | |||
| 455 | 455 | assert.NotNil(t, got.Comments[2].EditedAt) | |
| 456 | 456 | } | |
| 457 | 457 | ||
| 458 | + | func TestUnknownVerdictDetailOutput(t *testing.T) { | |
| 459 | + | var out strings.Builder | |
| 460 | + | require.NoError(t, printMRDetail(&out, &ermite.GetMergeRequestResponse{MergeRequest: mrOne, Verdicts: []*ermite.AuthorVerdict{{Author: "future", Verdict: ermite.Verdict(99)}}}, false, false)) | |
| 461 | + | assert.Contains(t, out.String(), "future verdict 99") | |
| 462 | + | assert.NotContains(t, out.String(), "changes requested") | |
| 463 | + | assert.NotContains(t, out.String(), "approved") | |
| 464 | + | } | |
| 465 | + | ||
| 458 | 466 | func TestMRReviewScopeCompletion(t *testing.T) { | |
| 459 | 467 | cmd := newTokenCreateCmd(&cliEnv{}) | |
| 460 | 468 | complete, ok := cmd.GetFlagCompletionFunc("scope") | |
| @@ -455,6 +455,14 @@ func TestNoteDetailOutput(t *testing.T) { | |||||
| 455 | assert.NotNil(t, got.Comments[2].EditedAt) | 455 | assert.NotNil(t, got.Comments[2].EditedAt) | ||
| 456 | } | 456 | } | ||
| 457 | 457 | ||||
| 458 | + | func TestUnknownVerdictDetailOutput(t *testing.T) { | |||
| 459 | + | var out strings.Builder | |||
| 460 | + | require.NoError(t, printMRDetail(&out, &ermite.GetMergeRequestResponse{MergeRequest: mrOne, Verdicts: []*ermite.AuthorVerdict{{Author: "future", Verdict: ermite.Verdict(99)}}}, false, false)) | |||
| 461 | + | assert.Contains(t, out.String(), "future verdict 99") | |||
| 462 | + | assert.NotContains(t, out.String(), "changes requested") | |||
| 463 | + | assert.NotContains(t, out.String(), "approved") | |||
| 464 | + | } | |||
| 465 | + | ||||
| 458 | func TestMRReviewScopeCompletion(t *testing.T) { | 466 | func TestMRReviewScopeCompletion(t *testing.T) { | ||
| 459 | cmd := newTokenCreateCmd(&cliEnv{}) | 467 | cmd := newTokenCreateCmd(&cliEnv{}) | ||
| 460 | complete, ok := cmd.GetFlagCompletionFunc("scope") | 468 | complete, ok := cmd.GetFlagCompletionFunc("scope") | ||
M internal/domain/event.go +3 -3
| @@ -173,7 +173,7 @@ type CommentAdded struct { | |||
| 173 | 173 | // EventKind implements Event. | |
| 174 | 174 | func (CommentAdded) EventKind() string { return "mr.comment_added" } | |
| 175 | 175 | ||
| 176 | - | // CommentEdited is published when a comment was added to a merge request. | |
| 176 | + | // CommentEdited is published when the text of a note was edited. | |
| 177 | 177 | type CommentEdited struct { | |
| 178 | 178 | Repo RepoName | |
| 179 | 179 | Number int64 | |
| @@ -186,7 +186,7 @@ type CommentEdited struct { | |||
| 186 | 186 | // EventKind implements Event. | |
| 187 | 187 | func (CommentEdited) EventKind() string { return "mr.comment_edited" } | |
| 188 | 188 | ||
| 189 | - | // CommentDeleted is published when a comment was added to a merge request. | |
| 189 | + | // CommentDeleted is published when the text of a note was deleted. | |
| 190 | 190 | type CommentDeleted struct { | |
| 191 | 191 | Repo RepoName | |
| 192 | 192 | Number int64 | |
| @@ -199,7 +199,7 @@ type CommentDeleted struct { | |||
| 199 | 199 | // EventKind implements Event. | |
| 200 | 200 | func (CommentDeleted) EventKind() string { return "mr.comment_deleted" } | |
| 201 | 201 | ||
| 202 | - | // CommentResolved is published when a comment was added to a merge request. | |
| 202 | + | // CommentResolved is published when a thread was resolved or reopened. | |
| 203 | 203 | type CommentResolved struct { | |
| 204 | 204 | Repo RepoName | |
| 205 | 205 | Number int64 | |
| @@ -173,7 +173,7 @@ type CommentAdded struct { | |||||
| 173 | // EventKind implements Event. | 173 | // EventKind implements Event. | ||
| 174 | func (CommentAdded) EventKind() string { return "mr.comment_added" } | 174 | func (CommentAdded) EventKind() string { return "mr.comment_added" } | ||
| 175 | 175 | ||||
| 176 | - | // CommentEdited is published when a comment was added to a merge request. | 176 | + | // CommentEdited is published when the text of a note was edited. |
| 177 | type CommentEdited struct { | 177 | type CommentEdited struct { | ||
| 178 | Repo RepoName | 178 | Repo RepoName | ||
| 179 | Number int64 | 179 | Number int64 | ||
| @@ -186,7 +186,7 @@ type CommentEdited struct { | |||||
| 186 | // EventKind implements Event. | 186 | // EventKind implements Event. | ||
| 187 | func (CommentEdited) EventKind() string { return "mr.comment_edited" } | 187 | func (CommentEdited) EventKind() string { return "mr.comment_edited" } | ||
| 188 | 188 | ||||
| 189 | - | // CommentDeleted is published when a comment was added to a merge request. | 189 | + | // CommentDeleted is published when the text of a note was deleted. |
| 190 | type CommentDeleted struct { | 190 | type CommentDeleted struct { | ||
| 191 | Repo RepoName | 191 | Repo RepoName | ||
| 192 | Number int64 | 192 | Number int64 | ||
| @@ -199,7 +199,7 @@ type CommentDeleted struct { | |||||
| 199 | // EventKind implements Event. | 199 | // EventKind implements Event. | ||
| 200 | func (CommentDeleted) EventKind() string { return "mr.comment_deleted" } | 200 | func (CommentDeleted) EventKind() string { return "mr.comment_deleted" } | ||
| 201 | 201 | ||||
| 202 | - | // CommentResolved is published when a comment was added to a merge request. | 202 | + | // CommentResolved is published when a thread was resolved or reopened. |
| 203 | type CommentResolved struct { | 203 | type CommentResolved struct { | ||
| 204 | Repo RepoName | 204 | Repo RepoName | ||
| 205 | Number int64 | 205 | Number int64 | ||
M skills/ermite/CLI.md +1 -1
| @@ -28,7 +28,7 @@ Presets add up with `--scope` (repeatable or comma-separated): | |||
| 28 | 28 | ||
| 29 | 29 | | Preset | Scopes | | |
| 30 | 30 | |---|---| | |
| 31 | - | | `cli` | every scope (including `mr:review`), for the owner's daily use; a token created before `mr:review` existed lacks it and loses owner rights: recreate it with `--preset cli` | | |
| 31 | + | | `cli` | every scope (including `mr:review`), for the owner's daily use; a token created before `mr:review` existed lacks it and loses owner rights: recreate it with `--preset cli` using the root token or from a signed-in owner web session (an old token lacking `mr:review` cannot grant it), then replace the stored CLI secret and revoke the old token | | |
| 32 | 32 | | `agent` | `repo:write`, `mr:write` | | |
| 33 | 33 | | `ci` | `repo:read` | | |
| 34 | 34 | ||
| @@ -28,7 +28,7 @@ Presets add up with `--scope` (repeatable or comma-separated): | |||||
| 28 | 28 | ||||
| 29 | | Preset | Scopes | | 29 | | Preset | Scopes | | ||
| 30 | |---|---| | 30 | |---|---| | ||
| 31 | - | | `cli` | every scope (including `mr:review`), for the owner's daily use; a token created before `mr:review` existed lacks it and loses owner rights: recreate it with `--preset cli` | | 31 | + | | `cli` | every scope (including `mr:review`), for the owner's daily use; a token created before `mr:review` existed lacks it and loses owner rights: recreate it with `--preset cli` using the root token or from a signed-in owner web session (an old token lacking `mr:review` cannot grant it), then replace the stored CLI secret and revoke the old token | |
| 32 | | `agent` | `repo:write`, `mr:write` | | 32 | | `agent` | `repo:write`, `mr:write` | | ||
| 33 | | `ci` | `repo:read` | | 33 | | `ci` | `repo:read` | | ||
| 34 | 34 | ||||