fix(web): the merge request rail scrolls on its own, and its list of files folds (#53)
- commit
- 7ecd37707358348a023f56fecfe5560bf05d36bd
- author
- brice · · 2026-10-17 23:38 UTC
- committer
- bnema · · 2026-10-17 23:38 UTC
- parent
- 55a688e
- signature
- SSH Unverified
SHA256:VOCA5lYARHcbKDZ7GhTV45VmcjWnJ6ZQIBazj17LivAThe key is unknown
7 files · +112 -74
M internal/adapters/web/ASSETS.md +1 -1
| @@ -16,7 +16,7 @@ content-hashed names. Nothing is fetched at runtime. | |||
| 16 | 16 | | `static/css/*.css` | native CSS, served as one stylesheet in name order; relative `url(fonts/…)` and `url(icons/…)` become hashed URLs | written here | | | |
| 17 | 17 | | `static/fonts/atkinson-next.woff2`, `atkinson-next-italic.woff2` | Atkinson Hyperlegible Next, variable weight, latin subset (SIL OFL 1.1, `static/fonts/OFL-next.txt`) | Google Fonts | `18b2a1a39a2fa298b0ba5390aca68462669826c90925656f1c1f6796e0e1bbaf`, `4a5037bfaf6680f40147407407ec09fa42925774bde809a579283d27f9f08106` | | |
| 18 | 18 | | `static/fonts/atkinson-mono.woff2` | Atkinson Hyperlegible Mono, variable weight, latin subset (SIL OFL 1.1, `static/fonts/OFL-mono.txt`) | Google Fonts | `2706b1ee4f452e744ea91f7e4908cbde9c5d35521bf5ffffc71a382a2de89613` | | |
| 19 | - | | `static/icons/*.svg` | interface icons, used as CSS masks; `brand.svg` is a grey picture shown as is. Only the icons in use are copied, one file each: `branch`, `search`, `tag`, `file`, `user`, `key`, `log-in`, `log-out` are Lucide 1.8 (`git-branch`, `search`, `tag`, `file-text`, `user-round`, `key-round`, `log-in`, `log-out`; ISC, https://lucide.dev/license) | Lucide; `brand.svg` written here | | | |
| 19 | + | | `static/icons/*.svg` | interface icons, used as CSS masks; `brand.svg` is a grey picture shown as is. Only the icons in use are copied, one file each: `branch`, `search`, `tag`, `file`, `chevron`, `user`, `key`, `log-in`, `log-out` are Lucide 1.8 (`git-branch`, `search`, `tag`, `file-text`, `chevron-down`, `user-round`, `key-round`, `log-in`, `log-out`; ISC, https://lucide.dev/license) | Lucide; `brand.svg` written here | | | |
| 20 | 20 | | `static/app/*.png` | icons of the installed web app (manifest, `apple-touch-icon`), rendered from `brand.svg` with resvg; the maskable and Apple icons have the picture in the safe zone on `#181818` | generated here | | | |
| 21 | 21 | | `static/rules.json` | speculation rules: prefetch the light same-origin pages on hover (`Speculation-Rules` header); the heavy ones (tree, blob, commit, commits, compare, refs, raw, MR "since") are excluded, each costs several Git reads on the server | written here | | | |
| 22 | 22 | ||
| @@ -16,7 +16,7 @@ content-hashed names. Nothing is fetched at runtime. | |||||
| 16 | | `static/css/*.css` | native CSS, served as one stylesheet in name order; relative `url(fonts/…)` and `url(icons/…)` become hashed URLs | written here | | | 16 | | `static/css/*.css` | native CSS, served as one stylesheet in name order; relative `url(fonts/…)` and `url(icons/…)` become hashed URLs | written here | | | ||
| 17 | | `static/fonts/atkinson-next.woff2`, `atkinson-next-italic.woff2` | Atkinson Hyperlegible Next, variable weight, latin subset (SIL OFL 1.1, `static/fonts/OFL-next.txt`) | Google Fonts | `18b2a1a39a2fa298b0ba5390aca68462669826c90925656f1c1f6796e0e1bbaf`, `4a5037bfaf6680f40147407407ec09fa42925774bde809a579283d27f9f08106` | | 17 | | `static/fonts/atkinson-next.woff2`, `atkinson-next-italic.woff2` | Atkinson Hyperlegible Next, variable weight, latin subset (SIL OFL 1.1, `static/fonts/OFL-next.txt`) | Google Fonts | `18b2a1a39a2fa298b0ba5390aca68462669826c90925656f1c1f6796e0e1bbaf`, `4a5037bfaf6680f40147407407ec09fa42925774bde809a579283d27f9f08106` | | ||
| 18 | | `static/fonts/atkinson-mono.woff2` | Atkinson Hyperlegible Mono, variable weight, latin subset (SIL OFL 1.1, `static/fonts/OFL-mono.txt`) | Google Fonts | `2706b1ee4f452e744ea91f7e4908cbde9c5d35521bf5ffffc71a382a2de89613` | | 18 | | `static/fonts/atkinson-mono.woff2` | Atkinson Hyperlegible Mono, variable weight, latin subset (SIL OFL 1.1, `static/fonts/OFL-mono.txt`) | Google Fonts | `2706b1ee4f452e744ea91f7e4908cbde9c5d35521bf5ffffc71a382a2de89613` | | ||
| 19 | - | | `static/icons/*.svg` | interface icons, used as CSS masks; `brand.svg` is a grey picture shown as is. Only the icons in use are copied, one file each: `branch`, `search`, `tag`, `file`, `user`, `key`, `log-in`, `log-out` are Lucide 1.8 (`git-branch`, `search`, `tag`, `file-text`, `user-round`, `key-round`, `log-in`, `log-out`; ISC, https://lucide.dev/license) | Lucide; `brand.svg` written here | | | 19 | + | | `static/icons/*.svg` | interface icons, used as CSS masks; `brand.svg` is a grey picture shown as is. Only the icons in use are copied, one file each: `branch`, `search`, `tag`, `file`, `chevron`, `user`, `key`, `log-in`, `log-out` are Lucide 1.8 (`git-branch`, `search`, `tag`, `file-text`, `chevron-down`, `user-round`, `key-round`, `log-in`, `log-out`; ISC, https://lucide.dev/license) | Lucide; `brand.svg` written here | | |
| 20 | | `static/app/*.png` | icons of the installed web app (manifest, `apple-touch-icon`), rendered from `brand.svg` with resvg; the maskable and Apple icons have the picture in the safe zone on `#181818` | generated here | | | 20 | | `static/app/*.png` | icons of the installed web app (manifest, `apple-touch-icon`), rendered from `brand.svg` with resvg; the maskable and Apple icons have the picture in the safe zone on `#181818` | generated here | | | ||
| 21 | | `static/rules.json` | speculation rules: prefetch the light same-origin pages on hover (`Speculation-Rules` header); the heavy ones (tree, blob, commit, commits, compare, refs, raw, MR "since") are excluded, each costs several Git reads on the server | written here | | | 21 | | `static/rules.json` | speculation rules: prefetch the light same-origin pages on hover (`Speculation-Rules` header); the heavy ones (tree, blob, commit, commits, compare, refs, raw, MR "since") are excluded, each costs several Git reads on the server | written here | | | ||
| 22 | 22 | ||||
M internal/adapters/web/mr.templ +6 -1
| @@ -301,7 +301,12 @@ templ commentForm(f CommentForm, suffix string) { | |||
| 301 | 301 | ||
| 302 | 302 | templ mrRail(p MRPage) { | |
| 303 | 303 | <section aria-labelledby="r-files" class="r-files"> | |
| 304 | - | <h2 id="r-files">Files <span class="count">{ itoa(len(p.Files)) }</span><kbd aria-hidden="true">g f</kbd></h2> | |
| 304 | + | <h2 id="r-files"> | |
| 305 | + | Files <span class="count">{ itoa(len(p.Files)) }</span><kbd aria-hidden="true">g f</kbd> | |
| 306 | + | <button type="button" class="btn icon fold" data-js aria-expanded="true" title="fold the list of files" hx-on:click="ermiteMR.foldFiles()"> | |
| 307 | + | <span class="ico i-chevron" aria-hidden="true"></span><span class="sr">fold the list of files</span> | |
| 308 | + | </button> | |
| 309 | + | </h2> | |
| 305 | 310 | @FileList(p.Files) | |
| 306 | 311 | </section> | |
| 307 | 312 | @MRChecks(p.Checks) | |
| @@ -301,7 +301,12 @@ templ commentForm(f CommentForm, suffix string) { | |||||
| 301 | 301 | ||||
| 302 | templ mrRail(p MRPage) { | 302 | templ mrRail(p MRPage) { | ||
| 303 | <section aria-labelledby="r-files" class="r-files"> | 303 | <section aria-labelledby="r-files" class="r-files"> | ||
| 304 | - | <h2 id="r-files">Files <span class="count">{ itoa(len(p.Files)) }</span><kbd aria-hidden="true">g f</kbd></h2> | 304 | + | <h2 id="r-files"> |
| 305 | + | Files <span class="count">{ itoa(len(p.Files)) }</span><kbd aria-hidden="true">g f</kbd> | |||
| 306 | + | <button type="button" class="btn icon fold" data-js aria-expanded="true" title="fold the list of files" hx-on:click="ermiteMR.foldFiles()"> | |||
| 307 | + | <span class="ico i-chevron" aria-hidden="true"></span><span class="sr">fold the list of files</span> | |||
| 308 | + | </button> | |||
| 309 | + | </h2> | |||
| 305 | @FileList(p.Files) | 310 | @FileList(p.Files) | ||
| 306 | </section> | 311 | </section> | ||
| 307 | @MRChecks(p.Checks) | 312 | @MRChecks(p.Checks) | ||
M internal/adapters/web/mr_templ.go +58 -58
| @@ -1699,13 +1699,13 @@ func mrRail(p MRPage) templ.Component { | |||
| 1699 | 1699 | var templ_7745c5c3_Var85 string | |
| 1700 | 1700 | templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | |
| 1701 | 1701 | if templ_7745c5c3_Err != nil { | |
| 1702 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 65} | |
| 1702 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 305, Col: 49} | |
| 1703 | 1703 | } | |
| 1704 | 1704 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85)) | |
| 1705 | 1705 | if templ_7745c5c3_Err != nil { | |
| 1706 | 1706 | return templ_7745c5c3_Err | |
| 1707 | 1707 | } | |
| 1708 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "</span><kbd aria-hidden=\"true\">g f</kbd></h2>") | |
| 1708 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "</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>") | |
| 1709 | 1709 | if templ_7745c5c3_Err != nil { | |
| 1710 | 1710 | return templ_7745c5c3_Err | |
| 1711 | 1711 | } | |
| @@ -1728,7 +1728,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1728 | 1728 | var templ_7745c5c3_Var86 string | |
| 1729 | 1729 | templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits))) | |
| 1730 | 1730 | if templ_7745c5c3_Err != nil { | |
| 1731 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 309, Col: 71} | |
| 1731 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 314, Col: 71} | |
| 1732 | 1732 | } | |
| 1733 | 1733 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86)) | |
| 1734 | 1734 | if templ_7745c5c3_Err != nil { | |
| @@ -1756,7 +1756,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1756 | 1756 | var templ_7745c5c3_Var87 templ.SafeURL | |
| 1757 | 1757 | templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) | |
| 1758 | 1758 | if templ_7745c5c3_Err != nil { | |
| 1759 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 313, Col: 36} | |
| 1759 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 36} | |
| 1760 | 1760 | } | |
| 1761 | 1761 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var87)) | |
| 1762 | 1762 | if templ_7745c5c3_Err != nil { | |
| @@ -1769,7 +1769,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1769 | 1769 | var templ_7745c5c3_Var88 string | |
| 1770 | 1770 | templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | |
| 1771 | 1771 | if templ_7745c5c3_Err != nil { | |
| 1772 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 313, Col: 48} | |
| 1772 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 48} | |
| 1773 | 1773 | } | |
| 1774 | 1774 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var88)) | |
| 1775 | 1775 | if templ_7745c5c3_Err != nil { | |
| @@ -1782,7 +1782,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1782 | 1782 | var templ_7745c5c3_Var89 string | |
| 1783 | 1783 | templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | |
| 1784 | 1784 | if templ_7745c5c3_Err != nil { | |
| 1785 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 314, Col: 32} | |
| 1785 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 319, Col: 32} | |
| 1786 | 1786 | } | |
| 1787 | 1787 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var89)) | |
| 1788 | 1788 | if templ_7745c5c3_Err != nil { | |
| @@ -1795,7 +1795,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1795 | 1795 | var templ_7745c5c3_Var90 string | |
| 1796 | 1796 | templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | |
| 1797 | 1797 | if templ_7745c5c3_Err != nil { | |
| 1798 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 316, Col: 16} | |
| 1798 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 321, Col: 16} | |
| 1799 | 1799 | } | |
| 1800 | 1800 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var90)) | |
| 1801 | 1801 | if templ_7745c5c3_Err != nil { | |
| @@ -1809,7 +1809,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1809 | 1809 | var templ_7745c5c3_Var91 string | |
| 1810 | 1810 | templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | |
| 1811 | 1811 | if templ_7745c5c3_Err != nil { | |
| 1812 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 15} | |
| 1812 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 15} | |
| 1813 | 1813 | } | |
| 1814 | 1814 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var91)) | |
| 1815 | 1815 | if templ_7745c5c3_Err != nil { | |
| @@ -1822,7 +1822,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1822 | 1822 | var templ_7745c5c3_Var92 string | |
| 1823 | 1823 | templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | |
| 1824 | 1824 | if templ_7745c5c3_Err != nil { | |
| 1825 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 42} | |
| 1825 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 42} | |
| 1826 | 1826 | } | |
| 1827 | 1827 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) | |
| 1828 | 1828 | if templ_7745c5c3_Err != nil { | |
| @@ -1835,7 +1835,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1835 | 1835 | var templ_7745c5c3_Var93 string | |
| 1836 | 1836 | templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | |
| 1837 | 1837 | if templ_7745c5c3_Err != nil { | |
| 1838 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 53} | |
| 1838 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 53} | |
| 1839 | 1839 | } | |
| 1840 | 1840 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var93)) | |
| 1841 | 1841 | if templ_7745c5c3_Err != nil { | |
| @@ -1850,7 +1850,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1850 | 1850 | var templ_7745c5c3_Var94 string | |
| 1851 | 1851 | templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.JoinStringErrs(" · new") | |
| 1852 | 1852 | if templ_7745c5c3_Err != nil { | |
| 1853 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 321, Col: 18} | |
| 1853 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 326, Col: 18} | |
| 1854 | 1854 | } | |
| 1855 | 1855 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var94)) | |
| 1856 | 1856 | if templ_7745c5c3_Err != nil { | |
| @@ -1880,7 +1880,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1880 | 1880 | var templ_7745c5c3_Var95 string | |
| 1881 | 1881 | templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) | |
| 1882 | 1882 | if templ_7745c5c3_Err != nil { | |
| 1883 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 331, Col: 34} | |
| 1883 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 336, Col: 34} | |
| 1884 | 1884 | } | |
| 1885 | 1885 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95)) | |
| 1886 | 1886 | if templ_7745c5c3_Err != nil { | |
| @@ -1898,7 +1898,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 1898 | 1898 | var templ_7745c5c3_Var96 string | |
| 1899 | 1899 | templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", ")) | |
| 1900 | 1900 | if templ_7745c5c3_Err != nil { | |
| 1901 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 338, Col: 36} | |
| 1901 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 343, Col: 36} | |
| 1902 | 1902 | } | |
| 1903 | 1903 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) | |
| 1904 | 1904 | if templ_7745c5c3_Err != nil { | |
| @@ -1959,7 +1959,7 @@ func mrBar(p MRPage) templ.Component { | |||
| 1959 | 1959 | var templ_7745c5c3_Var98 string | |
| 1960 | 1960 | templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | |
| 1961 | 1961 | if templ_7745c5c3_Err != nil { | |
| 1962 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 357, Col: 55} | |
| 1962 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 362, Col: 55} | |
| 1963 | 1963 | } | |
| 1964 | 1964 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98)) | |
| 1965 | 1965 | if templ_7745c5c3_Err != nil { | |
| @@ -1972,7 +1972,7 @@ func mrBar(p MRPage) templ.Component { | |||
| 1972 | 1972 | var templ_7745c5c3_Var99 string | |
| 1973 | 1973 | templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | |
| 1974 | 1974 | if templ_7745c5c3_Err != nil { | |
| 1975 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 357, Col: 95} | |
| 1975 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 362, Col: 95} | |
| 1976 | 1976 | } | |
| 1977 | 1977 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99)) | |
| 1978 | 1978 | if templ_7745c5c3_Err != nil { | |
| @@ -1985,7 +1985,7 @@ func mrBar(p MRPage) templ.Component { | |||
| 1985 | 1985 | var templ_7745c5c3_Var100 string | |
| 1986 | 1986 | templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | |
| 1987 | 1987 | if templ_7745c5c3_Err != nil { | |
| 1988 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 357, Col: 140} | |
| 1988 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 362, Col: 140} | |
| 1989 | 1989 | } | |
| 1990 | 1990 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100)) | |
| 1991 | 1991 | if templ_7745c5c3_Err != nil { | |
| @@ -2089,7 +2089,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2089 | 2089 | var templ_7745c5c3_Var102 string | |
| 2090 | 2090 | templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort) | |
| 2091 | 2091 | if templ_7745c5c3_Err != nil { | |
| 2092 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 390, Col: 19} | |
| 2092 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 395, Col: 19} | |
| 2093 | 2093 | } | |
| 2094 | 2094 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) | |
| 2095 | 2095 | if templ_7745c5c3_Err != nil { | |
| @@ -2103,7 +2103,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2103 | 2103 | var templ_7745c5c3_Var103 string | |
| 2104 | 2104 | templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 2105 | 2105 | if templ_7745c5c3_Err != nil { | |
| 2106 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 394, Col: 18} | |
| 2106 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 399, Col: 18} | |
| 2107 | 2107 | } | |
| 2108 | 2108 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) | |
| 2109 | 2109 | if templ_7745c5c3_Err != nil { | |
| @@ -2121,7 +2121,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2121 | 2121 | var templ_7745c5c3_Var104 templ.SafeURL | |
| 2122 | 2122 | templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) | |
| 2123 | 2123 | if templ_7745c5c3_Err != nil { | |
| 2124 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 398, Col: 80} | |
| 2124 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 80} | |
| 2125 | 2125 | } | |
| 2126 | 2126 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) | |
| 2127 | 2127 | if templ_7745c5c3_Err != nil { | |
| @@ -2139,7 +2139,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2139 | 2139 | var templ_7745c5c3_Var105 templ.SafeURL | |
| 2140 | 2140 | templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) | |
| 2141 | 2141 | if templ_7745c5c3_Err != nil { | |
| 2142 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 402, Col: 80} | |
| 2142 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 407, Col: 80} | |
| 2143 | 2143 | } | |
| 2144 | 2144 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105)) | |
| 2145 | 2145 | if templ_7745c5c3_Err != nil { | |
| @@ -2152,7 +2152,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2152 | 2152 | var templ_7745c5c3_Var106 string | |
| 2153 | 2153 | templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | |
| 2154 | 2154 | if templ_7745c5c3_Err != nil { | |
| 2155 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 59} | |
| 2155 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 408, Col: 59} | |
| 2156 | 2156 | } | |
| 2157 | 2157 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var106) | |
| 2158 | 2158 | if templ_7745c5c3_Err != nil { | |
| @@ -2170,7 +2170,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2170 | 2170 | var templ_7745c5c3_Var107 string | |
| 2171 | 2171 | templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) | |
| 2172 | 2172 | if templ_7745c5c3_Err != nil { | |
| 2173 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 408, Col: 55} | |
| 2173 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 413, Col: 55} | |
| 2174 | 2174 | } | |
| 2175 | 2175 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var107) | |
| 2176 | 2176 | if templ_7745c5c3_Err != nil { | |
| @@ -2193,7 +2193,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2193 | 2193 | var templ_7745c5c3_Var108 string | |
| 2194 | 2194 | templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) | |
| 2195 | 2195 | if templ_7745c5c3_Err != nil { | |
| 2196 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 409, Col: 17} | |
| 2196 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 414, Col: 17} | |
| 2197 | 2197 | } | |
| 2198 | 2198 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) | |
| 2199 | 2199 | if templ_7745c5c3_Err != nil { | |
| @@ -2211,7 +2211,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2211 | 2211 | var templ_7745c5c3_Var109 string | |
| 2212 | 2212 | templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) | |
| 2213 | 2213 | if templ_7745c5c3_Err != nil { | |
| 2214 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 411, Col: 46} | |
| 2214 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 416, Col: 46} | |
| 2215 | 2215 | } | |
| 2216 | 2216 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109)) | |
| 2217 | 2217 | if templ_7745c5c3_Err != nil { | |
| @@ -2239,7 +2239,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2239 | 2239 | var templ_7745c5c3_Var110 string | |
| 2240 | 2240 | templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | |
| 2241 | 2241 | if templ_7745c5c3_Err != nil { | |
| 2242 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 417, Col: 102} | |
| 2242 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 422, Col: 102} | |
| 2243 | 2243 | } | |
| 2244 | 2244 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110)) | |
| 2245 | 2245 | if templ_7745c5c3_Err != nil { | |
| @@ -2257,7 +2257,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2257 | 2257 | var templ_7745c5c3_Var111 string | |
| 2258 | 2258 | templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 2259 | 2259 | if templ_7745c5c3_Err != nil { | |
| 2260 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 420, Col: 82} | |
| 2260 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 425, Col: 82} | |
| 2261 | 2261 | } | |
| 2262 | 2262 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111)) | |
| 2263 | 2263 | if templ_7745c5c3_Err != nil { | |
| @@ -2311,7 +2311,7 @@ func moreMenu(p MRPage) templ.Component { | |||
| 2311 | 2311 | var templ_7745c5c3_Var113 templ.SafeURL | |
| 2312 | 2312 | templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) | |
| 2313 | 2313 | if templ_7745c5c3_Err != nil { | |
| 2314 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 435, Col: 64} | |
| 2314 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 440, Col: 64} | |
| 2315 | 2315 | } | |
| 2316 | 2316 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113)) | |
| 2317 | 2317 | if templ_7745c5c3_Err != nil { | |
| @@ -2324,7 +2324,7 @@ func moreMenu(p MRPage) templ.Component { | |||
| 2324 | 2324 | var templ_7745c5c3_Var114 string | |
| 2325 | 2325 | templ_7745c5c3_Var114, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | |
| 2326 | 2326 | if templ_7745c5c3_Err != nil { | |
| 2327 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 436, Col: 59} | |
| 2327 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 441, Col: 59} | |
| 2328 | 2328 | } | |
| 2329 | 2329 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var114) | |
| 2330 | 2330 | if templ_7745c5c3_Err != nil { | |
| @@ -2342,7 +2342,7 @@ func moreMenu(p MRPage) templ.Component { | |||
| 2342 | 2342 | var templ_7745c5c3_Var115 templ.SafeURL | |
| 2343 | 2343 | templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) | |
| 2344 | 2344 | if templ_7745c5c3_Err != nil { | |
| 2345 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 440, Col: 64} | |
| 2345 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 445, Col: 64} | |
| 2346 | 2346 | } | |
| 2347 | 2347 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) | |
| 2348 | 2348 | if templ_7745c5c3_Err != nil { | |
| @@ -2414,7 +2414,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2414 | 2414 | var templ_7745c5c3_Var118 string | |
| 2415 | 2415 | templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | |
| 2416 | 2416 | if templ_7745c5c3_Err != nil { | |
| 2417 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 456, Col: 17} | |
| 2417 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 461, Col: 17} | |
| 2418 | 2418 | } | |
| 2419 | 2419 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118)) | |
| 2420 | 2420 | if templ_7745c5c3_Err != nil { | |
| @@ -2427,7 +2427,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2427 | 2427 | var templ_7745c5c3_Var119 string | |
| 2428 | 2428 | templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 2429 | 2429 | if templ_7745c5c3_Err != nil { | |
| 2430 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 456, Col: 34} | |
| 2430 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 461, Col: 34} | |
| 2431 | 2431 | } | |
| 2432 | 2432 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119)) | |
| 2433 | 2433 | if templ_7745c5c3_Err != nil { | |
| @@ -2440,7 +2440,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2440 | 2440 | var templ_7745c5c3_Var120 templ.SafeURL | |
| 2441 | 2441 | templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) | |
| 2442 | 2442 | if templ_7745c5c3_Err != nil { | |
| 2443 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 459, Col: 45} | |
| 2443 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 464, Col: 45} | |
| 2444 | 2444 | } | |
| 2445 | 2445 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120)) | |
| 2446 | 2446 | if templ_7745c5c3_Err != nil { | |
| @@ -2453,7 +2453,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2453 | 2453 | var templ_7745c5c3_Var121 string | |
| 2454 | 2454 | templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | |
| 2455 | 2455 | if templ_7745c5c3_Err != nil { | |
| 2456 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 459, Col: 58} | |
| 2456 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 464, Col: 58} | |
| 2457 | 2457 | } | |
| 2458 | 2458 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) | |
| 2459 | 2459 | if templ_7745c5c3_Err != nil { | |
| @@ -2466,7 +2466,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2466 | 2466 | var templ_7745c5c3_Var122 templ.SafeURL | |
| 2467 | 2467 | templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) | |
| 2468 | 2468 | if templ_7745c5c3_Err != nil { | |
| 2469 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 461, Col: 45} | |
| 2469 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 466, Col: 45} | |
| 2470 | 2470 | } | |
| 2471 | 2471 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122)) | |
| 2472 | 2472 | if templ_7745c5c3_Err != nil { | |
| @@ -2479,7 +2479,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2479 | 2479 | var templ_7745c5c3_Var123 string | |
| 2480 | 2480 | templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 2481 | 2481 | if templ_7745c5c3_Err != nil { | |
| 2482 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 461, Col: 58} | |
| 2482 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 466, Col: 58} | |
| 2483 | 2483 | } | |
| 2484 | 2484 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var123)) | |
| 2485 | 2485 | if templ_7745c5c3_Err != nil { | |
| @@ -2492,7 +2492,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2492 | 2492 | var templ_7745c5c3_Var124 string | |
| 2493 | 2493 | templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) | |
| 2494 | 2494 | if templ_7745c5c3_Err != nil { | |
| 2495 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 463, Col: 21} | |
| 2495 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 468, Col: 21} | |
| 2496 | 2496 | } | |
| 2497 | 2497 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var124)) | |
| 2498 | 2498 | if templ_7745c5c3_Err != nil { | |
| @@ -2510,7 +2510,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2510 | 2510 | var templ_7745c5c3_Var125 string | |
| 2511 | 2511 | templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | |
| 2512 | 2512 | if templ_7745c5c3_Err != nil { | |
| 2513 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 467, Col: 29} | |
| 2513 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 472, Col: 29} | |
| 2514 | 2514 | } | |
| 2515 | 2515 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125)) | |
| 2516 | 2516 | if templ_7745c5c3_Err != nil { | |
| @@ -2533,7 +2533,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2533 | 2533 | var templ_7745c5c3_Var126 templ.SafeURL | |
| 2534 | 2534 | templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) | |
| 2535 | 2535 | if templ_7745c5c3_Err != nil { | |
| 2536 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 470, Col: 114} | |
| 2536 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 475, Col: 114} | |
| 2537 | 2537 | } | |
| 2538 | 2538 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) | |
| 2539 | 2539 | if templ_7745c5c3_Err != nil { | |
| @@ -2546,7 +2546,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2546 | 2546 | var templ_7745c5c3_Var127 string | |
| 2547 | 2547 | templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) | |
| 2548 | 2548 | if templ_7745c5c3_Err != nil { | |
| 2549 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 470, Col: 135} | |
| 2549 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 475, Col: 135} | |
| 2550 | 2550 | } | |
| 2551 | 2551 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127)) | |
| 2552 | 2552 | if templ_7745c5c3_Err != nil { | |
| @@ -2569,7 +2569,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2569 | 2569 | var templ_7745c5c3_Var128 templ.SafeURL | |
| 2570 | 2570 | templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) | |
| 2571 | 2571 | if templ_7745c5c3_Err != nil { | |
| 2572 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 473, Col: 83} | |
| 2572 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 478, Col: 83} | |
| 2573 | 2573 | } | |
| 2574 | 2574 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128)) | |
| 2575 | 2575 | if templ_7745c5c3_Err != nil { | |
| @@ -2582,7 +2582,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2582 | 2582 | var templ_7745c5c3_Var129 string | |
| 2583 | 2583 | templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) | |
| 2584 | 2584 | if templ_7745c5c3_Err != nil { | |
| 2585 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 474, Col: 62} | |
| 2585 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 479, Col: 62} | |
| 2586 | 2586 | } | |
| 2587 | 2587 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var129) | |
| 2588 | 2588 | if templ_7745c5c3_Err != nil { | |
| @@ -2595,7 +2595,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2595 | 2595 | var templ_7745c5c3_Var130 string | |
| 2596 | 2596 | templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) | |
| 2597 | 2597 | if templ_7745c5c3_Err != nil { | |
| 2598 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 475, Col: 62} | |
| 2598 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 480, Col: 62} | |
| 2599 | 2599 | } | |
| 2600 | 2600 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var130) | |
| 2601 | 2601 | if templ_7745c5c3_Err != nil { | |
| @@ -2608,7 +2608,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2608 | 2608 | var templ_7745c5c3_Var131 string | |
| 2609 | 2609 | templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) | |
| 2610 | 2610 | if templ_7745c5c3_Err != nil { | |
| 2611 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 477, Col: 97} | |
| 2611 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 482, Col: 97} | |
| 2612 | 2612 | } | |
| 2613 | 2613 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131) | |
| 2614 | 2614 | if templ_7745c5c3_Err != nil { | |
| @@ -2631,7 +2631,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2631 | 2631 | var templ_7745c5c3_Var132 string | |
| 2632 | 2632 | templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | |
| 2633 | 2633 | if templ_7745c5c3_Err != nil { | |
| 2634 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 57} | |
| 2634 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 492, Col: 57} | |
| 2635 | 2635 | } | |
| 2636 | 2636 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132)) | |
| 2637 | 2637 | if templ_7745c5c3_Err != nil { | |
| @@ -2644,7 +2644,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2644 | 2644 | var templ_7745c5c3_Var133 string | |
| 2645 | 2645 | templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | |
| 2646 | 2646 | if templ_7745c5c3_Err != nil { | |
| 2647 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 97} | |
| 2647 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 492, Col: 97} | |
| 2648 | 2648 | } | |
| 2649 | 2649 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var133)) | |
| 2650 | 2650 | if templ_7745c5c3_Err != nil { | |
| @@ -2657,7 +2657,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2657 | 2657 | var templ_7745c5c3_Var134 string | |
| 2658 | 2658 | templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | |
| 2659 | 2659 | if templ_7745c5c3_Err != nil { | |
| 2660 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 142} | |
| 2660 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 492, Col: 142} | |
| 2661 | 2661 | } | |
| 2662 | 2662 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var134)) | |
| 2663 | 2663 | if templ_7745c5c3_Err != nil { | |
| @@ -2701,7 +2701,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2701 | 2701 | var templ_7745c5c3_Var135 string | |
| 2702 | 2702 | templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | |
| 2703 | 2703 | if templ_7745c5c3_Err != nil { | |
| 2704 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 502, Col: 23} | |
| 2704 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 507, Col: 23} | |
| 2705 | 2705 | } | |
| 2706 | 2706 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135) | |
| 2707 | 2707 | if templ_7745c5c3_Err != nil { | |
| @@ -2719,7 +2719,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 2719 | 2719 | var templ_7745c5c3_Var136 string | |
| 2720 | 2720 | templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | |
| 2721 | 2721 | if templ_7745c5c3_Err != nil { | |
| 2722 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 504, Col: 23} | |
| 2722 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 509, Col: 23} | |
| 2723 | 2723 | } | |
| 2724 | 2724 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136) | |
| 2725 | 2725 | if templ_7745c5c3_Err != nil { | |
| @@ -2789,7 +2789,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 2789 | 2789 | var templ_7745c5c3_Var138 string | |
| 2790 | 2790 | templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) | |
| 2791 | 2791 | if templ_7745c5c3_Err != nil { | |
| 2792 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 520, Col: 67} | |
| 2792 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 67} | |
| 2793 | 2793 | } | |
| 2794 | 2794 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) | |
| 2795 | 2795 | if templ_7745c5c3_Err != nil { | |
| @@ -2807,7 +2807,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 2807 | 2807 | var templ_7745c5c3_Var139 templ.SafeURL | |
| 2808 | 2808 | templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) | |
| 2809 | 2809 | if templ_7745c5c3_Err != nil { | |
| 2810 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 524, Col: 37} | |
| 2810 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 37} | |
| 2811 | 2811 | } | |
| 2812 | 2812 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) | |
| 2813 | 2813 | if templ_7745c5c3_Err != nil { | |
| @@ -2820,7 +2820,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 2820 | 2820 | var templ_7745c5c3_Var140 string | |
| 2821 | 2821 | templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | |
| 2822 | 2822 | if templ_7745c5c3_Err != nil { | |
| 2823 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 524, Col: 49} | |
| 2823 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 49} | |
| 2824 | 2824 | } | |
| 2825 | 2825 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) | |
| 2826 | 2826 | if templ_7745c5c3_Err != nil { | |
| @@ -2833,7 +2833,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 2833 | 2833 | var templ_7745c5c3_Var141 string | |
| 2834 | 2834 | templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | |
| 2835 | 2835 | if templ_7745c5c3_Err != nil { | |
| 2836 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 32} | |
| 2836 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 530, Col: 32} | |
| 2837 | 2837 | } | |
| 2838 | 2838 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) | |
| 2839 | 2839 | if templ_7745c5c3_Err != nil { | |
| @@ -2846,7 +2846,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 2846 | 2846 | var templ_7745c5c3_Var142 string | |
| 2847 | 2847 | templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | |
| 2848 | 2848 | if templ_7745c5c3_Err != nil { | |
| 2849 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 527, Col: 16} | |
| 2849 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 532, Col: 16} | |
| 2850 | 2850 | } | |
| 2851 | 2851 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142)) | |
| 2852 | 2852 | if templ_7745c5c3_Err != nil { | |
| @@ -2860,7 +2860,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 2860 | 2860 | var templ_7745c5c3_Var143 string | |
| 2861 | 2861 | templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | |
| 2862 | 2862 | if templ_7745c5c3_Err != nil { | |
| 2863 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 15} | |
| 2863 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 534, Col: 15} | |
| 2864 | 2864 | } | |
| 2865 | 2865 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143)) | |
| 2866 | 2866 | if templ_7745c5c3_Err != nil { | |
| @@ -2873,7 +2873,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 2873 | 2873 | var templ_7745c5c3_Var144 string | |
| 2874 | 2874 | templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | |
| 2875 | 2875 | if templ_7745c5c3_Err != nil { | |
| 2876 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 42} | |
| 2876 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 534, Col: 42} | |
| 2877 | 2877 | } | |
| 2878 | 2878 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var144) | |
| 2879 | 2879 | if templ_7745c5c3_Err != nil { | |
| @@ -2886,7 +2886,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 2886 | 2886 | var templ_7745c5c3_Var145 string | |
| 2887 | 2887 | templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | |
| 2888 | 2888 | if templ_7745c5c3_Err != nil { | |
| 2889 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 53} | |
| 2889 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 534, Col: 53} | |
| 2890 | 2890 | } | |
| 2891 | 2891 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) | |
| 2892 | 2892 | if templ_7745c5c3_Err != nil { | |
| @@ -2914,7 +2914,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 2914 | 2914 | var templ_7745c5c3_Var146 string | |
| 2915 | 2915 | templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 2916 | 2916 | if templ_7745c5c3_Err != nil { | |
| 2917 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 536, Col: 47} | |
| 2917 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 541, Col: 47} | |
| 2918 | 2918 | } | |
| 2919 | 2919 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) | |
| 2920 | 2920 | if templ_7745c5c3_Err != nil { | |
| @@ -2937,7 +2937,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 2937 | 2937 | var templ_7745c5c3_Var147 string | |
| 2938 | 2938 | templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | |
| 2939 | 2939 | if templ_7745c5c3_Err != nil { | |
| 2940 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 541, Col: 66} | |
| 2940 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 546, Col: 66} | |
| 2941 | 2941 | } | |
| 2942 | 2942 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) | |
| 2943 | 2943 | if templ_7745c5c3_Err != nil { | |
| @@ -1699,13 +1699,13 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1699 | var templ_7745c5c3_Var85 string | 1699 | var templ_7745c5c3_Var85 string | ||
| 1700 | templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | 1700 | templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | ||
| 1701 | if templ_7745c5c3_Err != nil { | 1701 | if templ_7745c5c3_Err != nil { | ||
| 1702 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 65} | 1702 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 305, Col: 49} |
| 1703 | } | 1703 | } | ||
| 1704 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85)) | 1704 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85)) | ||
| 1705 | if templ_7745c5c3_Err != nil { | 1705 | if templ_7745c5c3_Err != nil { | ||
| 1706 | return templ_7745c5c3_Err | 1706 | return templ_7745c5c3_Err | ||
| 1707 | } | 1707 | } | ||
| 1708 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "</span><kbd aria-hidden=\"true\">g f</kbd></h2>") | 1708 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "</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>") |
| 1709 | if templ_7745c5c3_Err != nil { | 1709 | if templ_7745c5c3_Err != nil { | ||
| 1710 | return templ_7745c5c3_Err | 1710 | return templ_7745c5c3_Err | ||
| 1711 | } | 1711 | } | ||
| @@ -1728,7 +1728,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1728 | var templ_7745c5c3_Var86 string | 1728 | var templ_7745c5c3_Var86 string | ||
| 1729 | templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits))) | 1729 | templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits))) | ||
| 1730 | if templ_7745c5c3_Err != nil { | 1730 | if templ_7745c5c3_Err != nil { | ||
| 1731 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 309, Col: 71} | 1731 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 314, Col: 71} |
| 1732 | } | 1732 | } | ||
| 1733 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86)) | 1733 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86)) | ||
| 1734 | if templ_7745c5c3_Err != nil { | 1734 | if templ_7745c5c3_Err != nil { | ||
| @@ -1756,7 +1756,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1756 | var templ_7745c5c3_Var87 templ.SafeURL | 1756 | var templ_7745c5c3_Var87 templ.SafeURL | ||
| 1757 | templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) | 1757 | templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) | ||
| 1758 | if templ_7745c5c3_Err != nil { | 1758 | if templ_7745c5c3_Err != nil { | ||
| 1759 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 313, Col: 36} | 1759 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 36} |
| 1760 | } | 1760 | } | ||
| 1761 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var87)) | 1761 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var87)) | ||
| 1762 | if templ_7745c5c3_Err != nil { | 1762 | if templ_7745c5c3_Err != nil { | ||
| @@ -1769,7 +1769,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1769 | var templ_7745c5c3_Var88 string | 1769 | var templ_7745c5c3_Var88 string | ||
| 1770 | templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | 1770 | templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | ||
| 1771 | if templ_7745c5c3_Err != nil { | 1771 | if templ_7745c5c3_Err != nil { | ||
| 1772 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 313, Col: 48} | 1772 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 48} |
| 1773 | } | 1773 | } | ||
| 1774 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var88)) | 1774 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var88)) | ||
| 1775 | if templ_7745c5c3_Err != nil { | 1775 | if templ_7745c5c3_Err != nil { | ||
| @@ -1782,7 +1782,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1782 | var templ_7745c5c3_Var89 string | 1782 | var templ_7745c5c3_Var89 string | ||
| 1783 | templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | 1783 | templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | ||
| 1784 | if templ_7745c5c3_Err != nil { | 1784 | if templ_7745c5c3_Err != nil { | ||
| 1785 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 314, Col: 32} | 1785 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 319, Col: 32} |
| 1786 | } | 1786 | } | ||
| 1787 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var89)) | 1787 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var89)) | ||
| 1788 | if templ_7745c5c3_Err != nil { | 1788 | if templ_7745c5c3_Err != nil { | ||
| @@ -1795,7 +1795,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1795 | var templ_7745c5c3_Var90 string | 1795 | var templ_7745c5c3_Var90 string | ||
| 1796 | templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | 1796 | templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | ||
| 1797 | if templ_7745c5c3_Err != nil { | 1797 | if templ_7745c5c3_Err != nil { | ||
| 1798 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 316, Col: 16} | 1798 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 321, Col: 16} |
| 1799 | } | 1799 | } | ||
| 1800 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var90)) | 1800 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var90)) | ||
| 1801 | if templ_7745c5c3_Err != nil { | 1801 | if templ_7745c5c3_Err != nil { | ||
| @@ -1809,7 +1809,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1809 | var templ_7745c5c3_Var91 string | 1809 | var templ_7745c5c3_Var91 string | ||
| 1810 | templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | 1810 | templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | ||
| 1811 | if templ_7745c5c3_Err != nil { | 1811 | if templ_7745c5c3_Err != nil { | ||
| 1812 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 15} | 1812 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 15} |
| 1813 | } | 1813 | } | ||
| 1814 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var91)) | 1814 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var91)) | ||
| 1815 | if templ_7745c5c3_Err != nil { | 1815 | if templ_7745c5c3_Err != nil { | ||
| @@ -1822,7 +1822,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1822 | var templ_7745c5c3_Var92 string | 1822 | var templ_7745c5c3_Var92 string | ||
| 1823 | templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | 1823 | templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | ||
| 1824 | if templ_7745c5c3_Err != nil { | 1824 | if templ_7745c5c3_Err != nil { | ||
| 1825 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 42} | 1825 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 42} |
| 1826 | } | 1826 | } | ||
| 1827 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) | 1827 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) | ||
| 1828 | if templ_7745c5c3_Err != nil { | 1828 | if templ_7745c5c3_Err != nil { | ||
| @@ -1835,7 +1835,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1835 | var templ_7745c5c3_Var93 string | 1835 | var templ_7745c5c3_Var93 string | ||
| 1836 | templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | 1836 | templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | ||
| 1837 | if templ_7745c5c3_Err != nil { | 1837 | if templ_7745c5c3_Err != nil { | ||
| 1838 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 53} | 1838 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 53} |
| 1839 | } | 1839 | } | ||
| 1840 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var93)) | 1840 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var93)) | ||
| 1841 | if templ_7745c5c3_Err != nil { | 1841 | if templ_7745c5c3_Err != nil { | ||
| @@ -1850,7 +1850,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1850 | var templ_7745c5c3_Var94 string | 1850 | var templ_7745c5c3_Var94 string | ||
| 1851 | templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.JoinStringErrs(" · new") | 1851 | templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.JoinStringErrs(" · new") | ||
| 1852 | if templ_7745c5c3_Err != nil { | 1852 | if templ_7745c5c3_Err != nil { | ||
| 1853 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 321, Col: 18} | 1853 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 326, Col: 18} |
| 1854 | } | 1854 | } | ||
| 1855 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var94)) | 1855 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var94)) | ||
| 1856 | if templ_7745c5c3_Err != nil { | 1856 | if templ_7745c5c3_Err != nil { | ||
| @@ -1880,7 +1880,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1880 | var templ_7745c5c3_Var95 string | 1880 | var templ_7745c5c3_Var95 string | ||
| 1881 | templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) | 1881 | templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) | ||
| 1882 | if templ_7745c5c3_Err != nil { | 1882 | if templ_7745c5c3_Err != nil { | ||
| 1883 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 331, Col: 34} | 1883 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 336, Col: 34} |
| 1884 | } | 1884 | } | ||
| 1885 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95)) | 1885 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95)) | ||
| 1886 | if templ_7745c5c3_Err != nil { | 1886 | if templ_7745c5c3_Err != nil { | ||
| @@ -1898,7 +1898,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 1898 | var templ_7745c5c3_Var96 string | 1898 | var templ_7745c5c3_Var96 string | ||
| 1899 | templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", ")) | 1899 | templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", ")) | ||
| 1900 | if templ_7745c5c3_Err != nil { | 1900 | if templ_7745c5c3_Err != nil { | ||
| 1901 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 338, Col: 36} | 1901 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 343, Col: 36} |
| 1902 | } | 1902 | } | ||
| 1903 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) | 1903 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) | ||
| 1904 | if templ_7745c5c3_Err != nil { | 1904 | if templ_7745c5c3_Err != nil { | ||
| @@ -1959,7 +1959,7 @@ func mrBar(p MRPage) templ.Component { | |||||
| 1959 | var templ_7745c5c3_Var98 string | 1959 | var templ_7745c5c3_Var98 string | ||
| 1960 | templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | 1960 | templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | ||
| 1961 | if templ_7745c5c3_Err != nil { | 1961 | if templ_7745c5c3_Err != nil { | ||
| 1962 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 357, Col: 55} | 1962 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 362, Col: 55} |
| 1963 | } | 1963 | } | ||
| 1964 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98)) | 1964 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98)) | ||
| 1965 | if templ_7745c5c3_Err != nil { | 1965 | if templ_7745c5c3_Err != nil { | ||
| @@ -1972,7 +1972,7 @@ func mrBar(p MRPage) templ.Component { | |||||
| 1972 | var templ_7745c5c3_Var99 string | 1972 | var templ_7745c5c3_Var99 string | ||
| 1973 | templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | 1973 | templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | ||
| 1974 | if templ_7745c5c3_Err != nil { | 1974 | if templ_7745c5c3_Err != nil { | ||
| 1975 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 357, Col: 95} | 1975 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 362, Col: 95} |
| 1976 | } | 1976 | } | ||
| 1977 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99)) | 1977 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99)) | ||
| 1978 | if templ_7745c5c3_Err != nil { | 1978 | if templ_7745c5c3_Err != nil { | ||
| @@ -1985,7 +1985,7 @@ func mrBar(p MRPage) templ.Component { | |||||
| 1985 | var templ_7745c5c3_Var100 string | 1985 | var templ_7745c5c3_Var100 string | ||
| 1986 | templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | 1986 | templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | ||
| 1987 | if templ_7745c5c3_Err != nil { | 1987 | if templ_7745c5c3_Err != nil { | ||
| 1988 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 357, Col: 140} | 1988 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 362, Col: 140} |
| 1989 | } | 1989 | } | ||
| 1990 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100)) | 1990 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100)) | ||
| 1991 | if templ_7745c5c3_Err != nil { | 1991 | if templ_7745c5c3_Err != nil { | ||
| @@ -2089,7 +2089,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2089 | var templ_7745c5c3_Var102 string | 2089 | var templ_7745c5c3_Var102 string | ||
| 2090 | templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort) | 2090 | templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort) | ||
| 2091 | if templ_7745c5c3_Err != nil { | 2091 | if templ_7745c5c3_Err != nil { | ||
| 2092 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 390, Col: 19} | 2092 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 395, Col: 19} |
| 2093 | } | 2093 | } | ||
| 2094 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) | 2094 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) | ||
| 2095 | if templ_7745c5c3_Err != nil { | 2095 | if templ_7745c5c3_Err != nil { | ||
| @@ -2103,7 +2103,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2103 | var templ_7745c5c3_Var103 string | 2103 | var templ_7745c5c3_Var103 string | ||
| 2104 | templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 2104 | templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 2105 | if templ_7745c5c3_Err != nil { | 2105 | if templ_7745c5c3_Err != nil { | ||
| 2106 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 394, Col: 18} | 2106 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 399, Col: 18} |
| 2107 | } | 2107 | } | ||
| 2108 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) | 2108 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) | ||
| 2109 | if templ_7745c5c3_Err != nil { | 2109 | if templ_7745c5c3_Err != nil { | ||
| @@ -2121,7 +2121,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2121 | var templ_7745c5c3_Var104 templ.SafeURL | 2121 | var templ_7745c5c3_Var104 templ.SafeURL | ||
| 2122 | templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) | 2122 | templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) | ||
| 2123 | if templ_7745c5c3_Err != nil { | 2123 | if templ_7745c5c3_Err != nil { | ||
| 2124 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 398, Col: 80} | 2124 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 80} |
| 2125 | } | 2125 | } | ||
| 2126 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) | 2126 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) | ||
| 2127 | if templ_7745c5c3_Err != nil { | 2127 | if templ_7745c5c3_Err != nil { | ||
| @@ -2139,7 +2139,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2139 | var templ_7745c5c3_Var105 templ.SafeURL | 2139 | var templ_7745c5c3_Var105 templ.SafeURL | ||
| 2140 | templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) | 2140 | templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) | ||
| 2141 | if templ_7745c5c3_Err != nil { | 2141 | if templ_7745c5c3_Err != nil { | ||
| 2142 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 402, Col: 80} | 2142 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 407, Col: 80} |
| 2143 | } | 2143 | } | ||
| 2144 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105)) | 2144 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105)) | ||
| 2145 | if templ_7745c5c3_Err != nil { | 2145 | if templ_7745c5c3_Err != nil { | ||
| @@ -2152,7 +2152,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2152 | var templ_7745c5c3_Var106 string | 2152 | var templ_7745c5c3_Var106 string | ||
| 2153 | templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | 2153 | templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | ||
| 2154 | if templ_7745c5c3_Err != nil { | 2154 | if templ_7745c5c3_Err != nil { | ||
| 2155 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 59} | 2155 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 408, Col: 59} |
| 2156 | } | 2156 | } | ||
| 2157 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var106) | 2157 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var106) | ||
| 2158 | if templ_7745c5c3_Err != nil { | 2158 | if templ_7745c5c3_Err != nil { | ||
| @@ -2170,7 +2170,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2170 | var templ_7745c5c3_Var107 string | 2170 | var templ_7745c5c3_Var107 string | ||
| 2171 | templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) | 2171 | templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) | ||
| 2172 | if templ_7745c5c3_Err != nil { | 2172 | if templ_7745c5c3_Err != nil { | ||
| 2173 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 408, Col: 55} | 2173 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 413, Col: 55} |
| 2174 | } | 2174 | } | ||
| 2175 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var107) | 2175 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var107) | ||
| 2176 | if templ_7745c5c3_Err != nil { | 2176 | if templ_7745c5c3_Err != nil { | ||
| @@ -2193,7 +2193,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2193 | var templ_7745c5c3_Var108 string | 2193 | var templ_7745c5c3_Var108 string | ||
| 2194 | templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) | 2194 | templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) | ||
| 2195 | if templ_7745c5c3_Err != nil { | 2195 | if templ_7745c5c3_Err != nil { | ||
| 2196 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 409, Col: 17} | 2196 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 414, Col: 17} |
| 2197 | } | 2197 | } | ||
| 2198 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) | 2198 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) | ||
| 2199 | if templ_7745c5c3_Err != nil { | 2199 | if templ_7745c5c3_Err != nil { | ||
| @@ -2211,7 +2211,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2211 | var templ_7745c5c3_Var109 string | 2211 | var templ_7745c5c3_Var109 string | ||
| 2212 | templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) | 2212 | templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) | ||
| 2213 | if templ_7745c5c3_Err != nil { | 2213 | if templ_7745c5c3_Err != nil { | ||
| 2214 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 411, Col: 46} | 2214 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 416, Col: 46} |
| 2215 | } | 2215 | } | ||
| 2216 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109)) | 2216 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109)) | ||
| 2217 | if templ_7745c5c3_Err != nil { | 2217 | if templ_7745c5c3_Err != nil { | ||
| @@ -2239,7 +2239,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2239 | var templ_7745c5c3_Var110 string | 2239 | var templ_7745c5c3_Var110 string | ||
| 2240 | templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | 2240 | templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | ||
| 2241 | if templ_7745c5c3_Err != nil { | 2241 | if templ_7745c5c3_Err != nil { | ||
| 2242 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 417, Col: 102} | 2242 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 422, Col: 102} |
| 2243 | } | 2243 | } | ||
| 2244 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110)) | 2244 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110)) | ||
| 2245 | if templ_7745c5c3_Err != nil { | 2245 | if templ_7745c5c3_Err != nil { | ||
| @@ -2257,7 +2257,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2257 | var templ_7745c5c3_Var111 string | 2257 | var templ_7745c5c3_Var111 string | ||
| 2258 | templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 2258 | templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 2259 | if templ_7745c5c3_Err != nil { | 2259 | if templ_7745c5c3_Err != nil { | ||
| 2260 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 420, Col: 82} | 2260 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 425, Col: 82} |
| 2261 | } | 2261 | } | ||
| 2262 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111)) | 2262 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111)) | ||
| 2263 | if templ_7745c5c3_Err != nil { | 2263 | if templ_7745c5c3_Err != nil { | ||
| @@ -2311,7 +2311,7 @@ func moreMenu(p MRPage) templ.Component { | |||||
| 2311 | var templ_7745c5c3_Var113 templ.SafeURL | 2311 | var templ_7745c5c3_Var113 templ.SafeURL | ||
| 2312 | templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) | 2312 | templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) | ||
| 2313 | if templ_7745c5c3_Err != nil { | 2313 | if templ_7745c5c3_Err != nil { | ||
| 2314 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 435, Col: 64} | 2314 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 440, Col: 64} |
| 2315 | } | 2315 | } | ||
| 2316 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113)) | 2316 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113)) | ||
| 2317 | if templ_7745c5c3_Err != nil { | 2317 | if templ_7745c5c3_Err != nil { | ||
| @@ -2324,7 +2324,7 @@ func moreMenu(p MRPage) templ.Component { | |||||
| 2324 | var templ_7745c5c3_Var114 string | 2324 | var templ_7745c5c3_Var114 string | ||
| 2325 | templ_7745c5c3_Var114, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | 2325 | templ_7745c5c3_Var114, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | ||
| 2326 | if templ_7745c5c3_Err != nil { | 2326 | if templ_7745c5c3_Err != nil { | ||
| 2327 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 436, Col: 59} | 2327 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 441, Col: 59} |
| 2328 | } | 2328 | } | ||
| 2329 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var114) | 2329 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var114) | ||
| 2330 | if templ_7745c5c3_Err != nil { | 2330 | if templ_7745c5c3_Err != nil { | ||
| @@ -2342,7 +2342,7 @@ func moreMenu(p MRPage) templ.Component { | |||||
| 2342 | var templ_7745c5c3_Var115 templ.SafeURL | 2342 | var templ_7745c5c3_Var115 templ.SafeURL | ||
| 2343 | templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) | 2343 | templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) | ||
| 2344 | if templ_7745c5c3_Err != nil { | 2344 | if templ_7745c5c3_Err != nil { | ||
| 2345 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 440, Col: 64} | 2345 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 445, Col: 64} |
| 2346 | } | 2346 | } | ||
| 2347 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) | 2347 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) | ||
| 2348 | if templ_7745c5c3_Err != nil { | 2348 | if templ_7745c5c3_Err != nil { | ||
| @@ -2414,7 +2414,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2414 | var templ_7745c5c3_Var118 string | 2414 | var templ_7745c5c3_Var118 string | ||
| 2415 | templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | 2415 | templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | ||
| 2416 | if templ_7745c5c3_Err != nil { | 2416 | if templ_7745c5c3_Err != nil { | ||
| 2417 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 456, Col: 17} | 2417 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 461, Col: 17} |
| 2418 | } | 2418 | } | ||
| 2419 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118)) | 2419 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118)) | ||
| 2420 | if templ_7745c5c3_Err != nil { | 2420 | if templ_7745c5c3_Err != nil { | ||
| @@ -2427,7 +2427,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2427 | var templ_7745c5c3_Var119 string | 2427 | var templ_7745c5c3_Var119 string | ||
| 2428 | templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 2428 | templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 2429 | if templ_7745c5c3_Err != nil { | 2429 | if templ_7745c5c3_Err != nil { | ||
| 2430 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 456, Col: 34} | 2430 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 461, Col: 34} |
| 2431 | } | 2431 | } | ||
| 2432 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119)) | 2432 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119)) | ||
| 2433 | if templ_7745c5c3_Err != nil { | 2433 | if templ_7745c5c3_Err != nil { | ||
| @@ -2440,7 +2440,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2440 | var templ_7745c5c3_Var120 templ.SafeURL | 2440 | var templ_7745c5c3_Var120 templ.SafeURL | ||
| 2441 | templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) | 2441 | templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) | ||
| 2442 | if templ_7745c5c3_Err != nil { | 2442 | if templ_7745c5c3_Err != nil { | ||
| 2443 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 459, Col: 45} | 2443 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 464, Col: 45} |
| 2444 | } | 2444 | } | ||
| 2445 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120)) | 2445 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120)) | ||
| 2446 | if templ_7745c5c3_Err != nil { | 2446 | if templ_7745c5c3_Err != nil { | ||
| @@ -2453,7 +2453,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2453 | var templ_7745c5c3_Var121 string | 2453 | var templ_7745c5c3_Var121 string | ||
| 2454 | templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | 2454 | templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | ||
| 2455 | if templ_7745c5c3_Err != nil { | 2455 | if templ_7745c5c3_Err != nil { | ||
| 2456 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 459, Col: 58} | 2456 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 464, Col: 58} |
| 2457 | } | 2457 | } | ||
| 2458 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) | 2458 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) | ||
| 2459 | if templ_7745c5c3_Err != nil { | 2459 | if templ_7745c5c3_Err != nil { | ||
| @@ -2466,7 +2466,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2466 | var templ_7745c5c3_Var122 templ.SafeURL | 2466 | var templ_7745c5c3_Var122 templ.SafeURL | ||
| 2467 | templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) | 2467 | templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) | ||
| 2468 | if templ_7745c5c3_Err != nil { | 2468 | if templ_7745c5c3_Err != nil { | ||
| 2469 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 461, Col: 45} | 2469 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 466, Col: 45} |
| 2470 | } | 2470 | } | ||
| 2471 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122)) | 2471 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122)) | ||
| 2472 | if templ_7745c5c3_Err != nil { | 2472 | if templ_7745c5c3_Err != nil { | ||
| @@ -2479,7 +2479,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2479 | var templ_7745c5c3_Var123 string | 2479 | var templ_7745c5c3_Var123 string | ||
| 2480 | templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 2480 | templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 2481 | if templ_7745c5c3_Err != nil { | 2481 | if templ_7745c5c3_Err != nil { | ||
| 2482 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 461, Col: 58} | 2482 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 466, Col: 58} |
| 2483 | } | 2483 | } | ||
| 2484 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var123)) | 2484 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var123)) | ||
| 2485 | if templ_7745c5c3_Err != nil { | 2485 | if templ_7745c5c3_Err != nil { | ||
| @@ -2492,7 +2492,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2492 | var templ_7745c5c3_Var124 string | 2492 | var templ_7745c5c3_Var124 string | ||
| 2493 | templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) | 2493 | templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) | ||
| 2494 | if templ_7745c5c3_Err != nil { | 2494 | if templ_7745c5c3_Err != nil { | ||
| 2495 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 463, Col: 21} | 2495 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 468, Col: 21} |
| 2496 | } | 2496 | } | ||
| 2497 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var124)) | 2497 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var124)) | ||
| 2498 | if templ_7745c5c3_Err != nil { | 2498 | if templ_7745c5c3_Err != nil { | ||
| @@ -2510,7 +2510,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2510 | var templ_7745c5c3_Var125 string | 2510 | var templ_7745c5c3_Var125 string | ||
| 2511 | templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | 2511 | templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | ||
| 2512 | if templ_7745c5c3_Err != nil { | 2512 | if templ_7745c5c3_Err != nil { | ||
| 2513 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 467, Col: 29} | 2513 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 472, Col: 29} |
| 2514 | } | 2514 | } | ||
| 2515 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125)) | 2515 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125)) | ||
| 2516 | if templ_7745c5c3_Err != nil { | 2516 | if templ_7745c5c3_Err != nil { | ||
| @@ -2533,7 +2533,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2533 | var templ_7745c5c3_Var126 templ.SafeURL | 2533 | var templ_7745c5c3_Var126 templ.SafeURL | ||
| 2534 | templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) | 2534 | templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) | ||
| 2535 | if templ_7745c5c3_Err != nil { | 2535 | if templ_7745c5c3_Err != nil { | ||
| 2536 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 470, Col: 114} | 2536 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 475, Col: 114} |
| 2537 | } | 2537 | } | ||
| 2538 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) | 2538 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) | ||
| 2539 | if templ_7745c5c3_Err != nil { | 2539 | if templ_7745c5c3_Err != nil { | ||
| @@ -2546,7 +2546,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2546 | var templ_7745c5c3_Var127 string | 2546 | var templ_7745c5c3_Var127 string | ||
| 2547 | templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) | 2547 | templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) | ||
| 2548 | if templ_7745c5c3_Err != nil { | 2548 | if templ_7745c5c3_Err != nil { | ||
| 2549 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 470, Col: 135} | 2549 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 475, Col: 135} |
| 2550 | } | 2550 | } | ||
| 2551 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127)) | 2551 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127)) | ||
| 2552 | if templ_7745c5c3_Err != nil { | 2552 | if templ_7745c5c3_Err != nil { | ||
| @@ -2569,7 +2569,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2569 | var templ_7745c5c3_Var128 templ.SafeURL | 2569 | var templ_7745c5c3_Var128 templ.SafeURL | ||
| 2570 | templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) | 2570 | templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) | ||
| 2571 | if templ_7745c5c3_Err != nil { | 2571 | if templ_7745c5c3_Err != nil { | ||
| 2572 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 473, Col: 83} | 2572 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 478, Col: 83} |
| 2573 | } | 2573 | } | ||
| 2574 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128)) | 2574 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128)) | ||
| 2575 | if templ_7745c5c3_Err != nil { | 2575 | if templ_7745c5c3_Err != nil { | ||
| @@ -2582,7 +2582,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2582 | var templ_7745c5c3_Var129 string | 2582 | var templ_7745c5c3_Var129 string | ||
| 2583 | templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) | 2583 | templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) | ||
| 2584 | if templ_7745c5c3_Err != nil { | 2584 | if templ_7745c5c3_Err != nil { | ||
| 2585 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 474, Col: 62} | 2585 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 479, Col: 62} |
| 2586 | } | 2586 | } | ||
| 2587 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var129) | 2587 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var129) | ||
| 2588 | if templ_7745c5c3_Err != nil { | 2588 | if templ_7745c5c3_Err != nil { | ||
| @@ -2595,7 +2595,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2595 | var templ_7745c5c3_Var130 string | 2595 | var templ_7745c5c3_Var130 string | ||
| 2596 | templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) | 2596 | templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) | ||
| 2597 | if templ_7745c5c3_Err != nil { | 2597 | if templ_7745c5c3_Err != nil { | ||
| 2598 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 475, Col: 62} | 2598 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 480, Col: 62} |
| 2599 | } | 2599 | } | ||
| 2600 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var130) | 2600 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var130) | ||
| 2601 | if templ_7745c5c3_Err != nil { | 2601 | if templ_7745c5c3_Err != nil { | ||
| @@ -2608,7 +2608,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2608 | var templ_7745c5c3_Var131 string | 2608 | var templ_7745c5c3_Var131 string | ||
| 2609 | templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) | 2609 | templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) | ||
| 2610 | if templ_7745c5c3_Err != nil { | 2610 | if templ_7745c5c3_Err != nil { | ||
| 2611 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 477, Col: 97} | 2611 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 482, Col: 97} |
| 2612 | } | 2612 | } | ||
| 2613 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131) | 2613 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131) | ||
| 2614 | if templ_7745c5c3_Err != nil { | 2614 | if templ_7745c5c3_Err != nil { | ||
| @@ -2631,7 +2631,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2631 | var templ_7745c5c3_Var132 string | 2631 | var templ_7745c5c3_Var132 string | ||
| 2632 | templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | 2632 | templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | ||
| 2633 | if templ_7745c5c3_Err != nil { | 2633 | if templ_7745c5c3_Err != nil { | ||
| 2634 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 57} | 2634 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 492, Col: 57} |
| 2635 | } | 2635 | } | ||
| 2636 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132)) | 2636 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132)) | ||
| 2637 | if templ_7745c5c3_Err != nil { | 2637 | if templ_7745c5c3_Err != nil { | ||
| @@ -2644,7 +2644,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2644 | var templ_7745c5c3_Var133 string | 2644 | var templ_7745c5c3_Var133 string | ||
| 2645 | templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | 2645 | templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | ||
| 2646 | if templ_7745c5c3_Err != nil { | 2646 | if templ_7745c5c3_Err != nil { | ||
| 2647 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 97} | 2647 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 492, Col: 97} |
| 2648 | } | 2648 | } | ||
| 2649 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var133)) | 2649 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var133)) | ||
| 2650 | if templ_7745c5c3_Err != nil { | 2650 | if templ_7745c5c3_Err != nil { | ||
| @@ -2657,7 +2657,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2657 | var templ_7745c5c3_Var134 string | 2657 | var templ_7745c5c3_Var134 string | ||
| 2658 | templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | 2658 | templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | ||
| 2659 | if templ_7745c5c3_Err != nil { | 2659 | if templ_7745c5c3_Err != nil { | ||
| 2660 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 142} | 2660 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 492, Col: 142} |
| 2661 | } | 2661 | } | ||
| 2662 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var134)) | 2662 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var134)) | ||
| 2663 | if templ_7745c5c3_Err != nil { | 2663 | if templ_7745c5c3_Err != nil { | ||
| @@ -2701,7 +2701,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2701 | var templ_7745c5c3_Var135 string | 2701 | var templ_7745c5c3_Var135 string | ||
| 2702 | templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | 2702 | templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | ||
| 2703 | if templ_7745c5c3_Err != nil { | 2703 | if templ_7745c5c3_Err != nil { | ||
| 2704 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 502, Col: 23} | 2704 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 507, Col: 23} |
| 2705 | } | 2705 | } | ||
| 2706 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135) | 2706 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135) | ||
| 2707 | if templ_7745c5c3_Err != nil { | 2707 | if templ_7745c5c3_Err != nil { | ||
| @@ -2719,7 +2719,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 2719 | var templ_7745c5c3_Var136 string | 2719 | var templ_7745c5c3_Var136 string | ||
| 2720 | templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | 2720 | templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | ||
| 2721 | if templ_7745c5c3_Err != nil { | 2721 | if templ_7745c5c3_Err != nil { | ||
| 2722 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 504, Col: 23} | 2722 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 509, Col: 23} |
| 2723 | } | 2723 | } | ||
| 2724 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136) | 2724 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136) | ||
| 2725 | if templ_7745c5c3_Err != nil { | 2725 | if templ_7745c5c3_Err != nil { | ||
| @@ -2789,7 +2789,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 2789 | var templ_7745c5c3_Var138 string | 2789 | var templ_7745c5c3_Var138 string | ||
| 2790 | templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) | 2790 | templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) | ||
| 2791 | if templ_7745c5c3_Err != nil { | 2791 | if templ_7745c5c3_Err != nil { | ||
| 2792 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 520, Col: 67} | 2792 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 67} |
| 2793 | } | 2793 | } | ||
| 2794 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) | 2794 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) | ||
| 2795 | if templ_7745c5c3_Err != nil { | 2795 | if templ_7745c5c3_Err != nil { | ||
| @@ -2807,7 +2807,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 2807 | var templ_7745c5c3_Var139 templ.SafeURL | 2807 | var templ_7745c5c3_Var139 templ.SafeURL | ||
| 2808 | templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) | 2808 | templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) | ||
| 2809 | if templ_7745c5c3_Err != nil { | 2809 | if templ_7745c5c3_Err != nil { | ||
| 2810 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 524, Col: 37} | 2810 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 37} |
| 2811 | } | 2811 | } | ||
| 2812 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) | 2812 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) | ||
| 2813 | if templ_7745c5c3_Err != nil { | 2813 | if templ_7745c5c3_Err != nil { | ||
| @@ -2820,7 +2820,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 2820 | var templ_7745c5c3_Var140 string | 2820 | var templ_7745c5c3_Var140 string | ||
| 2821 | templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | 2821 | templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | ||
| 2822 | if templ_7745c5c3_Err != nil { | 2822 | if templ_7745c5c3_Err != nil { | ||
| 2823 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 524, Col: 49} | 2823 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 49} |
| 2824 | } | 2824 | } | ||
| 2825 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) | 2825 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) | ||
| 2826 | if templ_7745c5c3_Err != nil { | 2826 | if templ_7745c5c3_Err != nil { | ||
| @@ -2833,7 +2833,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 2833 | var templ_7745c5c3_Var141 string | 2833 | var templ_7745c5c3_Var141 string | ||
| 2834 | templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | 2834 | templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | ||
| 2835 | if templ_7745c5c3_Err != nil { | 2835 | if templ_7745c5c3_Err != nil { | ||
| 2836 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 32} | 2836 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 530, Col: 32} |
| 2837 | } | 2837 | } | ||
| 2838 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) | 2838 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) | ||
| 2839 | if templ_7745c5c3_Err != nil { | 2839 | if templ_7745c5c3_Err != nil { | ||
| @@ -2846,7 +2846,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 2846 | var templ_7745c5c3_Var142 string | 2846 | var templ_7745c5c3_Var142 string | ||
| 2847 | templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | 2847 | templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | ||
| 2848 | if templ_7745c5c3_Err != nil { | 2848 | if templ_7745c5c3_Err != nil { | ||
| 2849 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 527, Col: 16} | 2849 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 532, Col: 16} |
| 2850 | } | 2850 | } | ||
| 2851 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142)) | 2851 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142)) | ||
| 2852 | if templ_7745c5c3_Err != nil { | 2852 | if templ_7745c5c3_Err != nil { | ||
| @@ -2860,7 +2860,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 2860 | var templ_7745c5c3_Var143 string | 2860 | var templ_7745c5c3_Var143 string | ||
| 2861 | templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | 2861 | templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | ||
| 2862 | if templ_7745c5c3_Err != nil { | 2862 | if templ_7745c5c3_Err != nil { | ||
| 2863 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 15} | 2863 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 534, Col: 15} |
| 2864 | } | 2864 | } | ||
| 2865 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143)) | 2865 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143)) | ||
| 2866 | if templ_7745c5c3_Err != nil { | 2866 | if templ_7745c5c3_Err != nil { | ||
| @@ -2873,7 +2873,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 2873 | var templ_7745c5c3_Var144 string | 2873 | var templ_7745c5c3_Var144 string | ||
| 2874 | templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | 2874 | templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | ||
| 2875 | if templ_7745c5c3_Err != nil { | 2875 | if templ_7745c5c3_Err != nil { | ||
| 2876 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 42} | 2876 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 534, Col: 42} |
| 2877 | } | 2877 | } | ||
| 2878 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var144) | 2878 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var144) | ||
| 2879 | if templ_7745c5c3_Err != nil { | 2879 | if templ_7745c5c3_Err != nil { | ||
| @@ -2886,7 +2886,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 2886 | var templ_7745c5c3_Var145 string | 2886 | var templ_7745c5c3_Var145 string | ||
| 2887 | templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | 2887 | templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | ||
| 2888 | if templ_7745c5c3_Err != nil { | 2888 | if templ_7745c5c3_Err != nil { | ||
| 2889 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 53} | 2889 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 534, Col: 53} |
| 2890 | } | 2890 | } | ||
| 2891 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) | 2891 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) | ||
| 2892 | if templ_7745c5c3_Err != nil { | 2892 | if templ_7745c5c3_Err != nil { | ||
| @@ -2914,7 +2914,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 2914 | var templ_7745c5c3_Var146 string | 2914 | var templ_7745c5c3_Var146 string | ||
| 2915 | templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 2915 | templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 2916 | if templ_7745c5c3_Err != nil { | 2916 | if templ_7745c5c3_Err != nil { | ||
| 2917 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 536, Col: 47} | 2917 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 541, Col: 47} |
| 2918 | } | 2918 | } | ||
| 2919 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) | 2919 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) | ||
| 2920 | if templ_7745c5c3_Err != nil { | 2920 | if templ_7745c5c3_Err != nil { | ||
| @@ -2937,7 +2937,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 2937 | var templ_7745c5c3_Var147 string | 2937 | var templ_7745c5c3_Var147 string | ||
| 2938 | templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | 2938 | templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | ||
| 2939 | if templ_7745c5c3_Err != nil { | 2939 | if templ_7745c5c3_Err != nil { | ||
| 2940 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 541, Col: 66} | 2940 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 546, Col: 66} |
| 2941 | } | 2941 | } | ||
| 2942 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) | 2942 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) | ||
| 2943 | if templ_7745c5c3_Err != nil { | 2943 | if templ_7745c5c3_Err != nil { | ||
M internal/adapters/web/static/css/20-shell.css +1 -0
| @@ -20,6 +20,7 @@ | |||
| 20 | 20 | .i-branch { --i: url(icons/branch.svg); } | |
| 21 | 21 | .i-search { --i: url(icons/search.svg); } | |
| 22 | 22 | .i-file { --i: url(icons/file.svg); } | |
| 23 | + | .i-chevron { --i: url(icons/chevron.svg); } | |
| 23 | 24 | .i-tag { --i: url(icons/tag.svg); } | |
| 24 | 25 | .i-user { --i: url(icons/user.svg); } | |
| 25 | 26 | .i-key { --i: url(icons/key.svg); } | |
| @@ -20,6 +20,7 @@ | |||||
| 20 | .i-branch { --i: url(icons/branch.svg); } | 20 | .i-branch { --i: url(icons/branch.svg); } | ||
| 21 | .i-search { --i: url(icons/search.svg); } | 21 | .i-search { --i: url(icons/search.svg); } | ||
| 22 | .i-file { --i: url(icons/file.svg); } | 22 | .i-file { --i: url(icons/file.svg); } | ||
| 23 | + | .i-chevron { --i: url(icons/chevron.svg); } | |||
| 23 | .i-tag { --i: url(icons/tag.svg); } | 24 | .i-tag { --i: url(icons/tag.svg); } | ||
| 24 | .i-user { --i: url(icons/user.svg); } | 25 | .i-user { --i: url(icons/user.svg); } | ||
| 25 | .i-key { --i: url(icons/key.svg); } | 26 | .i-key { --i: url(icons/key.svg); } | ||
M internal/adapters/web/static/css/60-mr.css +16 -11
| @@ -75,20 +75,19 @@ | |||
| 75 | 75 | & .clone code { white-space: pre-wrap; overflow-wrap: anywhere; } | |
| 76 | 76 | } | |
| 77 | 77 | ||
| 78 | - | /* the rail of a merge request: the list of files on top, which follows the | |
| 79 | - | review and scrolls on its own; checks, commits and settings scroll with | |
| 80 | - | the page. Only on a two-column layout. */ | |
| 78 | + | /* the rail of a merge request follows the review: it sticks under the | |
| 79 | + | header, one screen high, and scrolls on its own to its checks, commits | |
| 80 | + | and settings. The list of files keeps its own scroll, under a height, so | |
| 81 | + | that the blocks below it stay in reach. Only on a two-column layout. */ | |
| 81 | 82 | @media (min-width: 1081px) { | |
| 82 | - | /* the rail runs the height of the content, so that its first block can | |
| 83 | - | stick all along the diff */ | |
| 84 | - | .work.has-rail:has(.r-files) { align-items: stretch; } | |
| 85 | - | .rail:has(.r-files) { align-self: stretch; } | |
| 86 | - | .rail .r-files { | |
| 87 | - | position: sticky; top: calc(var(--hdr-h, 0px) + var(--s4)); z-index: 3; | |
| 88 | - | display: flex; flex-direction: column; | |
| 83 | + | .rail:has(.r-files) { | |
| 84 | + | position: sticky; top: calc(var(--hdr-h, 0px) + var(--s4)); | |
| 89 | 85 | max-height: calc(100dvh - var(--hdr-h, 0px) - var(--s4) * 2); | |
| 86 | + | overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; | |
| 90 | 87 | } | |
| 91 | - | .rail .r-files > .files { overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; min-height: 0; } | |
| 88 | + | /* the blocks keep their height: the rail scrolls, it does not squeeze them */ | |
| 89 | + | .rail:has(.r-files) > * { flex: none; } | |
| 90 | + | .rail .r-files > .files { max-height: 55dvh; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; } | |
| 92 | 91 | } | |
| 93 | 92 | /* on one column the rail goes under the diff: the list of files keeps its | |
| 94 | 93 | own scroll, under a height */ | |
| @@ -97,6 +96,12 @@ | |||
| 97 | 96 | } | |
| 98 | 97 | .r-files { | |
| 99 | 98 | & > h2 kbd { margin-left: auto; } | |
| 99 | + | & > h2 .fold { width: 24px; height: 24px; margin: -2px -6px -2px 0; background: none; border-color: transparent; color: var(--ink-dim); } | |
| 100 | + | & > h2 .fold:hover { color: var(--ink-hi); border-color: var(--border-strong); } | |
| 101 | + | & > h2 .fold .ico { transition: transform .15s; } | |
| 102 | + | &[data-folded] > h2 { border-bottom: 0; } | |
| 103 | + | &[data-folded] > h2 .fold .ico { transform: rotate(-90deg); } | |
| 104 | + | &[data-folded] > :not(h2) { display: none; } | |
| 100 | 105 | & > .ffilter { margin: var(--s2) var(--s3) 0; } | |
| 101 | 106 | & > .ffilter input { | |
| 102 | 107 | width: 100%; height: 30px; padding: 0 var(--s2); font: inherit; font-size: var(--fs-s); color: inherit; | |
| @@ -75,20 +75,19 @@ | |||||
| 75 | & .clone code { white-space: pre-wrap; overflow-wrap: anywhere; } | 75 | & .clone code { white-space: pre-wrap; overflow-wrap: anywhere; } | ||
| 76 | } | 76 | } | ||
| 77 | 77 | ||||
| 78 | - | /* the rail of a merge request: the list of files on top, which follows the | 78 | + | /* the rail of a merge request follows the review: it sticks under the |
| 79 | - | review and scrolls on its own; checks, commits and settings scroll with | 79 | + | header, one screen high, and scrolls on its own to its checks, commits |
| 80 | - | the page. Only on a two-column layout. */ | 80 | + | and settings. The list of files keeps its own scroll, under a height, so |
| 81 | + | that the blocks below it stay in reach. Only on a two-column layout. */ | |||
| 81 | @media (min-width: 1081px) { | 82 | @media (min-width: 1081px) { | ||
| 82 | - | /* the rail runs the height of the content, so that its first block can | 83 | + | .rail:has(.r-files) { |
| 83 | - | stick all along the diff */ | 84 | + | position: sticky; top: calc(var(--hdr-h, 0px) + var(--s4)); |
| 84 | - | .work.has-rail:has(.r-files) { align-items: stretch; } | |||
| 85 | - | .rail:has(.r-files) { align-self: stretch; } | |||
| 86 | - | .rail .r-files { | |||
| 87 | - | position: sticky; top: calc(var(--hdr-h, 0px) + var(--s4)); z-index: 3; | |||
| 88 | - | display: flex; flex-direction: column; | |||
| 89 | max-height: calc(100dvh - var(--hdr-h, 0px) - var(--s4) * 2); | 85 | max-height: calc(100dvh - var(--hdr-h, 0px) - var(--s4) * 2); | ||
| 86 | + | overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; | |||
| 90 | } | 87 | } | ||
| 91 | - | .rail .r-files > .files { overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; min-height: 0; } | 88 | + | /* the blocks keep their height: the rail scrolls, it does not squeeze them */ |
| 89 | + | .rail:has(.r-files) > * { flex: none; } | |||
| 90 | + | .rail .r-files > .files { max-height: 55dvh; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; } | |||
| 92 | } | 91 | } | ||
| 93 | /* on one column the rail goes under the diff: the list of files keeps its | 92 | /* on one column the rail goes under the diff: the list of files keeps its | ||
| 94 | own scroll, under a height */ | 93 | own scroll, under a height */ | ||
| @@ -97,6 +96,12 @@ | |||||
| 97 | } | 96 | } | ||
| 98 | .r-files { | 97 | .r-files { | ||
| 99 | & > h2 kbd { margin-left: auto; } | 98 | & > h2 kbd { margin-left: auto; } | ||
| 99 | + | & > h2 .fold { width: 24px; height: 24px; margin: -2px -6px -2px 0; background: none; border-color: transparent; color: var(--ink-dim); } | |||
| 100 | + | & > h2 .fold:hover { color: var(--ink-hi); border-color: var(--border-strong); } | |||
| 101 | + | & > h2 .fold .ico { transition: transform .15s; } | |||
| 102 | + | &[data-folded] > h2 { border-bottom: 0; } | |||
| 103 | + | &[data-folded] > h2 .fold .ico { transform: rotate(-90deg); } | |||
| 104 | + | &[data-folded] > :not(h2) { display: none; } | |||
| 100 | & > .ffilter { margin: var(--s2) var(--s3) 0; } | 105 | & > .ffilter { margin: var(--s2) var(--s3) 0; } | ||
| 101 | & > .ffilter input { | 106 | & > .ffilter input { | ||
| 102 | width: 100%; height: 30px; padding: 0 var(--s2); font: inherit; font-size: var(--fs-s); color: inherit; | 107 | width: 100%; height: 30px; padding: 0 var(--s2); font: inherit; font-size: var(--fs-s); color: inherit; | ||
A internal/adapters/web/static/icons/chevron.svg +1 -0
| @@ -0,0 +1,1 @@ | |||
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg> | |
| @@ -0,0 +1,1 @@ | |||||
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg> | |||
M internal/adapters/web/static/js/mr.js +29 -3
| @@ -9,8 +9,9 @@ | |||
| 9 | 9 | // on its button, 1-9 pick a mode, D toggles the branch deletion, Enter | |
| 10 | 10 | // submits (the browser does it: the focus is on the button), Esc closes. | |
| 11 | 11 | // R marks the head read. Nothing merges on one key. | |
| 12 | - | // 3. g f puts the focus in the list of files; j / k move in it, Enter opens | |
| 13 | - | // the file, Esc goes back to the diff. | |
| 12 | + | // 3. g f puts the focus in the list of files (opening it when folded); j / k | |
| 13 | + | // move in it, Enter opens the file, Esc goes back to the diff. The button | |
| 14 | + | // of its header folds the list, and the choice is remembered. | |
| 14 | 15 | // | |
| 15 | 16 | // Nothing runs on a page without #diffs[data-mr]. window.ermiteMR.core is pure | |
| 16 | 17 | // (jstest/mr.test.mjs). | |
| @@ -196,6 +197,7 @@ window.ermiteMR = (() => { | |||
| 196 | 197 | // The list of files by keyboard: g f focuses the current file. | |
| 197 | 198 | const links = () => $$('.r-files .files > li:not([hidden]) > a'); | |
| 198 | 199 | function focusFiles() { | |
| 200 | + | foldFiles(false); | |
| 199 | 201 | const all = links(); | |
| 200 | 202 | if (!all.length) return false; | |
| 201 | 203 | const cur = all.find((a) => a.getAttribute('aria-current') === 'true') || all[0]; | |
| @@ -219,6 +221,27 @@ window.ermiteMR = (() => { | |||
| 219 | 221 | return true; | |
| 220 | 222 | } | |
| 221 | 223 | ||
| 224 | + | // foldFiles folds the list of files to its header, or opens it again: | |
| 225 | + | // toggles without an argument. The choice is kept for the next pages. | |
| 226 | + | function foldFiles(fold) { | |
| 227 | + | const sec = $('.r-files'); | |
| 228 | + | const btn = sec && $('button.fold', sec); | |
| 229 | + | if (!btn) return; | |
| 230 | + | if (fold === undefined) fold = !sec.hasAttribute('data-folded'); | |
| 231 | + | sec.toggleAttribute('data-folded', fold); | |
| 232 | + | btn.setAttribute('aria-expanded', String(!fold)); | |
| 233 | + | btn.title = fold ? 'open the list of files' : 'fold the list of files'; | |
| 234 | + | $('.sr', btn).textContent = btn.title; | |
| 235 | + | // The list did not follow the review while folded: show its current file, | |
| 236 | + | // moving the list only (never the page). | |
| 237 | + | const box = !fold && $('.files', sec); | |
| 238 | + | const a = box && $('a[aria-current="true"]', box); | |
| 239 | + | if (a && (a.offsetTop < box.scrollTop || a.offsetTop + a.offsetHeight > box.scrollTop + box.clientHeight)) { | |
| 240 | + | box.scrollTop = a.offsetTop - (box.clientHeight - a.offsetHeight) / 2; | |
| 241 | + | } | |
| 242 | + | try { localStorage.setItem('mr-files-folded', fold ? '1' : ''); } catch { /* storage refused: holds for this page */ } | |
| 243 | + | } | |
| 244 | + | ||
| 222 | 245 | // openFile opens the file of a link of the list (and loads it first). | |
| 223 | 246 | function openFile(id) { | |
| 224 | 247 | const f = document.getElementById(id); | |
| @@ -228,6 +251,9 @@ window.ermiteMR = (() => { | |||
| 228 | 251 | ||
| 229 | 252 | function start() { | |
| 230 | 253 | if (!$('#diffs[data-mr]')) return; | |
| 254 | + | let folded = false; | |
| 255 | + | try { folded = localStorage.getItem('mr-files-folded') === '1'; } catch { /* no storage: open */ } | |
| 256 | + | if (folded) foldFiles(true); | |
| 231 | 257 | watch(); | |
| 232 | 258 | // A link to a file or a comment that is not loaded yet. | |
| 233 | 259 | const hash = () => { | |
| @@ -242,7 +268,7 @@ window.ermiteMR = (() => { | |||
| 242 | 268 | }); | |
| 243 | 269 | } | |
| 244 | 270 | ||
| 245 | - | return { core, start, load, reveal, openMerge, closeMenus, menuKey, markRead, focusFiles, stepFiles, leaveFiles, openFile }; | |
| 271 | + | return { core, start, load, reveal, openMerge, closeMenus, menuKey, markRead, focusFiles, stepFiles, leaveFiles, foldFiles, openFile }; | |
| 246 | 272 | })(); | |
| 247 | 273 | ||
| 248 | 274 | if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', () => window.ermiteMR.start()); | |
| @@ -9,8 +9,9 @@ | |||||
| 9 | // on its button, 1-9 pick a mode, D toggles the branch deletion, Enter | 9 | // on its button, 1-9 pick a mode, D toggles the branch deletion, Enter | ||
| 10 | // submits (the browser does it: the focus is on the button), Esc closes. | 10 | // submits (the browser does it: the focus is on the button), Esc closes. | ||
| 11 | // R marks the head read. Nothing merges on one key. | 11 | // R marks the head read. Nothing merges on one key. | ||
| 12 | - | // 3. g f puts the focus in the list of files; j / k move in it, Enter opens | 12 | + | // 3. g f puts the focus in the list of files (opening it when folded); j / k |
| 13 | - | // the file, Esc goes back to the diff. | 13 | + | // move in it, Enter opens the file, Esc goes back to the diff. The button |
| 14 | + | // of its header folds the list, and the choice is remembered. | |||
| 14 | // | 15 | // | ||
| 15 | // Nothing runs on a page without #diffs[data-mr]. window.ermiteMR.core is pure | 16 | // Nothing runs on a page without #diffs[data-mr]. window.ermiteMR.core is pure | ||
| 16 | // (jstest/mr.test.mjs). | 17 | // (jstest/mr.test.mjs). | ||
| @@ -196,6 +197,7 @@ window.ermiteMR = (() => { | |||||
| 196 | // The list of files by keyboard: g f focuses the current file. | 197 | // The list of files by keyboard: g f focuses the current file. | ||
| 197 | const links = () => $$('.r-files .files > li:not([hidden]) > a'); | 198 | const links = () => $$('.r-files .files > li:not([hidden]) > a'); | ||
| 198 | function focusFiles() { | 199 | function focusFiles() { | ||
| 200 | + | foldFiles(false); | |||
| 199 | const all = links(); | 201 | const all = links(); | ||
| 200 | if (!all.length) return false; | 202 | if (!all.length) return false; | ||
| 201 | const cur = all.find((a) => a.getAttribute('aria-current') === 'true') || all[0]; | 203 | const cur = all.find((a) => a.getAttribute('aria-current') === 'true') || all[0]; | ||
| @@ -219,6 +221,27 @@ window.ermiteMR = (() => { | |||||
| 219 | return true; | 221 | return true; | ||
| 220 | } | 222 | } | ||
| 221 | 223 | ||||
| 224 | + | // foldFiles folds the list of files to its header, or opens it again: | |||
| 225 | + | // toggles without an argument. The choice is kept for the next pages. | |||
| 226 | + | function foldFiles(fold) { | |||
| 227 | + | const sec = $('.r-files'); | |||
| 228 | + | const btn = sec && $('button.fold', sec); | |||
| 229 | + | if (!btn) return; | |||
| 230 | + | if (fold === undefined) fold = !sec.hasAttribute('data-folded'); | |||
| 231 | + | sec.toggleAttribute('data-folded', fold); | |||
| 232 | + | btn.setAttribute('aria-expanded', String(!fold)); | |||
| 233 | + | btn.title = fold ? 'open the list of files' : 'fold the list of files'; | |||
| 234 | + | $('.sr', btn).textContent = btn.title; | |||
| 235 | + | // The list did not follow the review while folded: show its current file, | |||
| 236 | + | // moving the list only (never the page). | |||
| 237 | + | const box = !fold && $('.files', sec); | |||
| 238 | + | const a = box && $('a[aria-current="true"]', box); | |||
| 239 | + | if (a && (a.offsetTop < box.scrollTop || a.offsetTop + a.offsetHeight > box.scrollTop + box.clientHeight)) { | |||
| 240 | + | box.scrollTop = a.offsetTop - (box.clientHeight - a.offsetHeight) / 2; | |||
| 241 | + | } | |||
| 242 | + | try { localStorage.setItem('mr-files-folded', fold ? '1' : ''); } catch { /* storage refused: holds for this page */ } | |||
| 243 | + | } | |||
| 244 | + | ||||
| 222 | // openFile opens the file of a link of the list (and loads it first). | 245 | // openFile opens the file of a link of the list (and loads it first). | ||
| 223 | function openFile(id) { | 246 | function openFile(id) { | ||
| 224 | const f = document.getElementById(id); | 247 | const f = document.getElementById(id); | ||
| @@ -228,6 +251,9 @@ window.ermiteMR = (() => { | |||||
| 228 | 251 | ||||
| 229 | function start() { | 252 | function start() { | ||
| 230 | if (!$('#diffs[data-mr]')) return; | 253 | if (!$('#diffs[data-mr]')) return; | ||
| 254 | + | let folded = false; | |||
| 255 | + | try { folded = localStorage.getItem('mr-files-folded') === '1'; } catch { /* no storage: open */ } | |||
| 256 | + | if (folded) foldFiles(true); | |||
| 231 | watch(); | 257 | watch(); | ||
| 232 | // A link to a file or a comment that is not loaded yet. | 258 | // A link to a file or a comment that is not loaded yet. | ||
| 233 | const hash = () => { | 259 | const hash = () => { | ||
| @@ -242,7 +268,7 @@ window.ermiteMR = (() => { | |||||
| 242 | }); | 268 | }); | ||
| 243 | } | 269 | } | ||
| 244 | 270 | ||||
| 245 | - | return { core, start, load, reveal, openMerge, closeMenus, menuKey, markRead, focusFiles, stepFiles, leaveFiles, openFile }; | 271 | + | return { core, start, load, reveal, openMerge, closeMenus, menuKey, markRead, focusFiles, stepFiles, leaveFiles, foldFiles, openFile }; |
| 246 | })(); | 272 | })(); | ||
| 247 | 273 | ||||
| 248 | if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', () => window.ermiteMR.start()); | 274 | if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', () => window.ermiteMR.start()); | ||