fix(web): keep the MR refresh anchored, draft safe and lean
Probe below sticky file headers for the reader's line, follow the new page's diff layout, defer every refresh and reload while a comment draft exists, refresh the loose comments, adopt parsed nodes instead of reserializing them, and announce updates in a persistent status region.
- commit
- cff892ba7f9dd173844d1dcb932f9914809ab5b0
- author
- brice · · 2026-10-20 05:55 UTC
- parent
- e97c08e
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
7 files · +448 -384
M docs/merge-requests.md +3 -4
| @@ -128,7 +128,6 @@ The page request still reads only one 25-file window of hunks; the visible | |||
| 128 | 128 | anchor's window is fetched too if needed, and other windows remain lazy. | |
| 129 | 129 | ||
| 130 | 130 | While a comment is focused or has unsent edits, the refresh waits. A small | |
| 131 | - | “branch updated” status offers **refresh now**, which also refreshes in place | |
| 132 | - | and keeps unsent forms (including a comment whose old line disappeared). | |
| 133 | - | Emptying or cancelling the draft lets the pending refresh proceed. Submitting | |
| 134 | - | an ordinary comment navigates to the server's current review as usual. | |
| 131 | + | “branch updated — refreshing after your comment” status explains the delay. | |
| 132 | + | Sending, cancelling, or reverting the draft and leaving its form lets the | |
| 133 | + | pending refresh proceed. Refresh never preserves or discards an unsent draft. | |
| @@ -128,7 +128,6 @@ The page request still reads only one 25-file window of hunks; the visible | |||||
| 128 | anchor's window is fetched too if needed, and other windows remain lazy. | 128 | anchor's window is fetched too if needed, and other windows remain lazy. | ||
| 129 | 129 | ||||
| 130 | While a comment is focused or has unsent edits, the refresh waits. A small | 130 | While a comment is focused or has unsent edits, the refresh waits. A small | ||
| 131 | - | “branch updated” status offers **refresh now**, which also refreshes in place | 131 | + | “branch updated — refreshing after your comment” status explains the delay. |
| 132 | - | and keeps unsent forms (including a comment whose old line disappeared). | 132 | + | Sending, cancelling, or reverting the draft and leaving its form lets the |
| 133 | - | Emptying or cancelling the draft lets the pending refresh proceed. Submitting | 133 | + | pending refresh proceed. Refresh never preserves or discards an unsent draft. |
| 134 | - | an ordinary comment navigates to the server's current review as usual. | |||
M internal/adapters/web/events_test.go +25 -0
| @@ -502,3 +502,28 @@ func TestMRPushEventsKeepMergeability(t *testing.T) { | |||
| 502 | 502 | } | |
| 503 | 503 | } | |
| 504 | 504 | } | |
| 505 | + | ||
| 506 | + | func TestMRPushBothBranches(t *testing.T) { | |
| 507 | + | t.Parallel() | |
| 508 | + | for _, refs := range [][]string{{"feature", "main"}, {"main", "feature"}} { | |
| 509 | + | t.Run(strings.Join(refs, "-"), func(t *testing.T) { | |
| 510 | + | svc := mocks.NewMergeRequestService(t) | |
| 511 | + | svc.EXPECT().Mergeability(mock.Anything, mock.Anything, mock.Anything, int64(1)).Return(domain.Mergeability{State: domain.MergeabilityUpToDate}, nil).Once() | |
| 512 | + | l := liveStream{s: &Server{cfg: Config{MergeRequests: svc}}, repo: "demo", view: "mr", n: "1", ref: "feature", target: "main"} | |
| 513 | + | ctx := context.WithValue(t.Context(), signedInKey{}, struct{}{}) | |
| 514 | + | fs, err := l.mrPushed(ctx, domain.PushEvent{Updates: []domain.RefUpdate{{Ref: "refs/heads/" + refs[0]}, {Ref: "refs/heads/" + refs[1]}}}) | |
| 515 | + | require.NoError(t, err) | |
| 516 | + | require.Len(t, fs, 2) | |
| 517 | + | assert.Equal(t, "mr-head", fs[0].event) | |
| 518 | + | assert.Equal(t, "mr-mergeability", fs[1].event) | |
| 519 | + | }) | |
| 520 | + | } | |
| 521 | + | } | |
| 522 | + | ||
| 523 | + | func TestNonMRPushRoutingNeverEmitsMRHead(t *testing.T) { | |
| 524 | + | t.Parallel() | |
| 525 | + | l := liveStream{s: &Server{}, repo: "demo", view: "mrs", n: "1", ref: "feature", target: "main"} | |
| 526 | + | fs, err := l.render(t.Context(), ports.WatchEvent{Event: domain.PushEvent{Repo: repoName(t, "demo"), Updates: []domain.RefUpdate{{Ref: "refs/heads/feature"}}}}) | |
| 527 | + | require.NoError(t, err) | |
| 528 | + | assert.Empty(t, fs) | |
| 529 | + | } | |
| @@ -502,3 +502,28 @@ func TestMRPushEventsKeepMergeability(t *testing.T) { | |||||
| 502 | } | 502 | } | ||
| 503 | } | 503 | } | ||
| 504 | } | 504 | } | ||
| 505 | + | ||||
| 506 | + | func TestMRPushBothBranches(t *testing.T) { | |||
| 507 | + | t.Parallel() | |||
| 508 | + | for _, refs := range [][]string{{"feature", "main"}, {"main", "feature"}} { | |||
| 509 | + | t.Run(strings.Join(refs, "-"), func(t *testing.T) { | |||
| 510 | + | svc := mocks.NewMergeRequestService(t) | |||
| 511 | + | svc.EXPECT().Mergeability(mock.Anything, mock.Anything, mock.Anything, int64(1)).Return(domain.Mergeability{State: domain.MergeabilityUpToDate}, nil).Once() | |||
| 512 | + | l := liveStream{s: &Server{cfg: Config{MergeRequests: svc}}, repo: "demo", view: "mr", n: "1", ref: "feature", target: "main"} | |||
| 513 | + | ctx := context.WithValue(t.Context(), signedInKey{}, struct{}{}) | |||
| 514 | + | fs, err := l.mrPushed(ctx, domain.PushEvent{Updates: []domain.RefUpdate{{Ref: "refs/heads/" + refs[0]}, {Ref: "refs/heads/" + refs[1]}}}) | |||
| 515 | + | require.NoError(t, err) | |||
| 516 | + | require.Len(t, fs, 2) | |||
| 517 | + | assert.Equal(t, "mr-head", fs[0].event) | |||
| 518 | + | assert.Equal(t, "mr-mergeability", fs[1].event) | |||
| 519 | + | }) | |||
| 520 | + | } | |||
| 521 | + | } | |||
| 522 | + | ||||
| 523 | + | func TestNonMRPushRoutingNeverEmitsMRHead(t *testing.T) { | |||
| 524 | + | t.Parallel() | |||
| 525 | + | l := liveStream{s: &Server{}, repo: "demo", view: "mrs", n: "1", ref: "feature", target: "main"} | |||
| 526 | + | fs, err := l.render(t.Context(), ports.WatchEvent{Event: domain.PushEvent{Repo: repoName(t, "demo"), Updates: []domain.RefUpdate{{Ref: "refs/heads/feature"}}}}) | |||
| 527 | + | require.NoError(t, err) | |||
| 528 | + | assert.Empty(t, fs) | |||
| 529 | + | } | |||
M internal/adapters/web/jstest/mr.test.mjs +54 -9
| @@ -304,10 +304,10 @@ test('touch control: lazy links enable toolbar; ordinary taps pass through; rang | |||
| 304 | 304 | // Deterministic timers: no sleeps, and each test restores every mocked global. | |
| 305 | 305 | function clock() { | |
| 306 | 306 | const saved = { setTimeout: globalThis.setTimeout, clearTimeout: globalThis.clearTimeout }; | |
| 307 | - | const tasks = new Map(); let n = 0; | |
| 308 | - | globalThis.setTimeout = (fn) => { tasks.set(++n, fn); return n; }; | |
| 307 | + | const tasks = new Map(); let n = 0, now = 0; | |
| 308 | + | globalThis.setTimeout = (fn, delay = 0) => { tasks.set(++n, { fn, at: now + delay }); return n; }; | |
| 309 | 309 | globalThis.clearTimeout = (id) => tasks.delete(id); | |
| 310 | - | return { async tick() { const batch = [...tasks.values()]; tasks.clear(); for (const fn of batch) await fn(); }, | |
| 310 | + | return { async tick(ms = 300) { now += ms; const batch = [...tasks].filter(([, t]) => t.at <= now); for (const [id] of batch) tasks.delete(id); for (const [, t] of batch) await t.fn(); }, | |
| 311 | 311 | size: () => tasks.size, restore() { Object.assign(globalThis, saved); } }; | |
| 312 | 312 | } | |
| 313 | 313 | ||
| @@ -336,7 +336,9 @@ test('head refresh debounces bursts, serializes requests, and reruns after an in | |||
| 336 | 336 | apply: () => applied++, notice() {}, failed: () => assert.fail('unexpected failure') }); | |
| 337 | 337 | try { | |
| 338 | 338 | r.request(); r.request(); r.request(); assert.equal(c.size(), 1); | |
| 339 | - | const first = c.tick(); assert.equal(fetched, 1); | |
| 339 | + | await c.tick(299); assert.equal(fetched, 0); | |
| 340 | + | await c.tick(0); assert.equal(fetched, 0); | |
| 341 | + | const first = c.tick(1); assert.equal(fetched, 1); | |
| 340 | 342 | r.request(); await c.tick(); assert.equal(fetched, 1, 'one fetch in flight'); | |
| 341 | 343 | resolve('one'); await first; assert.equal(applied, 1); assert.equal(c.size(), 1); | |
| 342 | 344 | const second = c.tick(); assert.equal(fetched, 2); resolve('two'); await second; | |
| @@ -344,15 +346,16 @@ test('head refresh debounces bursts, serializes requests, and reruns after an in | |||
| 344 | 346 | } finally { c.restore(); } | |
| 345 | 347 | }); | |
| 346 | 348 | ||
| 347 | - | test('typing during fetch defers the swap; manual refresh bypasses deferral', async () => { | |
| 349 | + | test('typing during fetch defers even manual refresh until the draft ends', async () => { | |
| 348 | 350 | const c = clock(); let blocked = false, applied = 0, resolve; const notices = []; | |
| 349 | 351 | const r = window.ermiteMR.refresher({ blocked: () => blocked, | |
| 350 | - | fetchPage: () => new Promise((r) => { resolve = r; }), apply: (_page, manual) => { applied++; assert.equal(manual, true); }, | |
| 352 | + | fetchPage: () => new Promise((r) => { resolve = r; }), apply: () => { applied++; }, | |
| 351 | 353 | notice: (v) => notices.push(v), failed: () => assert.fail('unexpected failure') }); | |
| 352 | 354 | try { | |
| 353 | 355 | r.request(); const first = c.tick(); blocked = true; resolve('page'); await first; | |
| 354 | 356 | assert.equal(applied, 0); assert.deepEqual(notices, [true]); | |
| 355 | - | r.request(true); const second = c.tick(); resolve('new page'); await second; | |
| 357 | + | r.request(true); await c.tick(); assert.equal(applied, 0); | |
| 358 | + | blocked = false; r.resume(); const second = c.tick(); resolve('new page'); await second; | |
| 356 | 359 | assert.equal(applied, 1); assert.equal(notices.at(-1), false); | |
| 357 | 360 | } finally { c.restore(); } | |
| 358 | 361 | }); | |
| @@ -386,8 +389,8 @@ test('viewport probe finds a stable path/side/line and restores its offset witho | |||
| 386 | 389 | let lineTop = 160, headerTop = -200, found = true; const calls = []; | |
| 387 | 390 | const header = { getBoundingClientRect: () => rect(headerTop) }; | |
| 388 | 391 | const row = { getBoundingClientRect: () => rect(lineTop), querySelector: () => link }; | |
| 389 | - | const link = { href: 'https://forge.test/demo/merge-requests/1?on=new:42:a.go#f2', closest: () => row }; | |
| 390 | - | const file = { id: 'f2', dataset: { file: 'a.go' }, querySelector: (s) => s.includes('summary') ? header : s.includes('href$') ? (assert.ok(s.includes('on=new:42:a.go#f3')), found ? link : null) : null }; | |
| 392 | + | const link = { href: 'https://forge.test/demo/merge-requests/1?on=new:42:a.go#f2', closest: () => row, getAttribute: () => link.href }; | |
| 393 | + | const file = { getBoundingClientRect: () => rect(headerTop), id: 'f2', dataset: { file: 'a.go' }, querySelector: (s) => s.includes('summary') ? header : s.includes('href$') ? (assert.ok(s.includes('on=new:42:a.go#f3')), found ? link : null) : null }; | |
| 391 | 394 | const hit = { closest: (s) => s === 'tr' ? row : file }; | |
| 392 | 395 | const diffs = { dataset: { diff: 'unified' }, getBoundingClientRect: () => rect(120), contains: () => true }; | |
| 393 | 396 | globalThis.document = { | |
| @@ -408,3 +411,45 @@ test('viewport probe finds a stable path/side/line and restores its offset witho | |||
| 408 | 411 | assert.deepEqual(calls.pop(), ['to', { top: 9200, behavior: 'instant' }]); | |
| 409 | 412 | } finally { for (const [k,v] of Object.entries(saved)) { if (v === undefined) delete globalThis[k]; else globalThis[k] = v; } } | |
| 410 | 413 | }); | |
| 414 | + | ||
| 415 | + | test('empty edited default and focused cform controls protect drafts', () => { | |
| 416 | + | const saved = document; | |
| 417 | + | try { | |
| 418 | + | globalThis.document = { querySelectorAll: () => [{ value: '', defaultValue: 'existing' }], activeElement: null }; | |
| 419 | + | assert.equal(window.ermiteMR.hasDraft(), true); | |
| 420 | + | document.querySelectorAll = () => []; | |
| 421 | + | document.activeElement = { closest: (s) => s === '.cform' ? {} : null }; | |
| 422 | + | assert.equal(window.ermiteMR.hasDraft(), true); | |
| 423 | + | } finally { globalThis.document = saved; } | |
| 424 | + | }); | |
| 425 | + | ||
| 426 | + | test('failure during a draft keeps pending and resumes after the draft ends', async () => { | |
| 427 | + | const c = clock(); let blocked = false, reject, applied = 0, count = 0; | |
| 428 | + | const r = window.ermiteMR.refresher({ blocked: () => blocked, | |
| 429 | + | fetchPage: () => ++count === 1 ? new Promise((_, no) => { reject = no; }) : Promise.resolve('page'), | |
| 430 | + | apply: () => applied++, notice() {}, failed: () => assert.fail('draft must defer fallback') }); | |
| 431 | + | try { | |
| 432 | + | r.request(); const first = c.tick(); blocked = true; reject(new Error('offline')); await first; | |
| 433 | + | assert.equal(r.pending(), true); assert.equal(applied, 0); | |
| 434 | + | blocked = false; r.resume(); await c.tick(); assert.equal(applied, 1); | |
| 435 | + | } finally { c.restore(); } | |
| 436 | + | }); | |
| 437 | + | ||
| 438 | + | test('anchor restoration retains the server encoding of tilde and star paths', () => { | |
| 439 | + | const saved = { document, CSS: globalThis.CSS, scrollBy: globalThis.scrollBy }; | |
| 440 | + | try { | |
| 441 | + | globalThis.CSS = { escape: (s) => s }; | |
| 442 | + | globalThis.scrollBy = () => {}; | |
| 443 | + | for (const path of ['a~.go', 'a*.go']) { | |
| 444 | + | const encoded = path.replace('*', '%2A'); | |
| 445 | + | const row = { getBoundingClientRect: () => ({ top: 5 }) }; | |
| 446 | + | const file = { id: 'f9', dataset: { file: path }, querySelector: (s) => { | |
| 447 | + | if (s === '.dt.uni') return file; | |
| 448 | + | assert.equal(s, 'a[href$="on=new:12:' + encoded + '#f9"]'); | |
| 449 | + | return { closest: () => row }; | |
| 450 | + | } }; | |
| 451 | + | globalThis.document = { querySelectorAll: () => [file], querySelector: () => ({ dataset: { diff: 'unified' } }) }; | |
| 452 | + | window.ermiteMR.restoreAnchor({ file: path, suffix: 'new:12:' + encoded, on: 'new:12:' + path, offset: 5 }); | |
| 453 | + | } | |
| 454 | + | } finally { Object.assign(globalThis, saved); } | |
| 455 | + | }); | |
| @@ -304,10 +304,10 @@ test('touch control: lazy links enable toolbar; ordinary taps pass through; rang | |||||
| 304 | // Deterministic timers: no sleeps, and each test restores every mocked global. | 304 | // Deterministic timers: no sleeps, and each test restores every mocked global. | ||
| 305 | function clock() { | 305 | function clock() { | ||
| 306 | const saved = { setTimeout: globalThis.setTimeout, clearTimeout: globalThis.clearTimeout }; | 306 | const saved = { setTimeout: globalThis.setTimeout, clearTimeout: globalThis.clearTimeout }; | ||
| 307 | - | const tasks = new Map(); let n = 0; | 307 | + | const tasks = new Map(); let n = 0, now = 0; |
| 308 | - | globalThis.setTimeout = (fn) => { tasks.set(++n, fn); return n; }; | 308 | + | globalThis.setTimeout = (fn, delay = 0) => { tasks.set(++n, { fn, at: now + delay }); return n; }; |
| 309 | globalThis.clearTimeout = (id) => tasks.delete(id); | 309 | globalThis.clearTimeout = (id) => tasks.delete(id); | ||
| 310 | - | return { async tick() { const batch = [...tasks.values()]; tasks.clear(); for (const fn of batch) await fn(); }, | 310 | + | return { async tick(ms = 300) { now += ms; const batch = [...tasks].filter(([, t]) => t.at <= now); for (const [id] of batch) tasks.delete(id); for (const [, t] of batch) await t.fn(); }, |
| 311 | size: () => tasks.size, restore() { Object.assign(globalThis, saved); } }; | 311 | size: () => tasks.size, restore() { Object.assign(globalThis, saved); } }; | ||
| 312 | } | 312 | } | ||
| 313 | 313 | ||||
| @@ -336,7 +336,9 @@ test('head refresh debounces bursts, serializes requests, and reruns after an in | |||||
| 336 | apply: () => applied++, notice() {}, failed: () => assert.fail('unexpected failure') }); | 336 | apply: () => applied++, notice() {}, failed: () => assert.fail('unexpected failure') }); | ||
| 337 | try { | 337 | try { | ||
| 338 | r.request(); r.request(); r.request(); assert.equal(c.size(), 1); | 338 | r.request(); r.request(); r.request(); assert.equal(c.size(), 1); | ||
| 339 | - | const first = c.tick(); assert.equal(fetched, 1); | 339 | + | await c.tick(299); assert.equal(fetched, 0); |
| 340 | + | await c.tick(0); assert.equal(fetched, 0); | |||
| 341 | + | const first = c.tick(1); assert.equal(fetched, 1); | |||
| 340 | r.request(); await c.tick(); assert.equal(fetched, 1, 'one fetch in flight'); | 342 | r.request(); await c.tick(); assert.equal(fetched, 1, 'one fetch in flight'); | ||
| 341 | resolve('one'); await first; assert.equal(applied, 1); assert.equal(c.size(), 1); | 343 | resolve('one'); await first; assert.equal(applied, 1); assert.equal(c.size(), 1); | ||
| 342 | const second = c.tick(); assert.equal(fetched, 2); resolve('two'); await second; | 344 | const second = c.tick(); assert.equal(fetched, 2); resolve('two'); await second; | ||
| @@ -344,15 +346,16 @@ test('head refresh debounces bursts, serializes requests, and reruns after an in | |||||
| 344 | } finally { c.restore(); } | 346 | } finally { c.restore(); } | ||
| 345 | }); | 347 | }); | ||
| 346 | 348 | ||||
| 347 | - | test('typing during fetch defers the swap; manual refresh bypasses deferral', async () => { | 349 | + | test('typing during fetch defers even manual refresh until the draft ends', async () => { |
| 348 | const c = clock(); let blocked = false, applied = 0, resolve; const notices = []; | 350 | const c = clock(); let blocked = false, applied = 0, resolve; const notices = []; | ||
| 349 | const r = window.ermiteMR.refresher({ blocked: () => blocked, | 351 | const r = window.ermiteMR.refresher({ blocked: () => blocked, | ||
| 350 | - | fetchPage: () => new Promise((r) => { resolve = r; }), apply: (_page, manual) => { applied++; assert.equal(manual, true); }, | 352 | + | fetchPage: () => new Promise((r) => { resolve = r; }), apply: () => { applied++; }, |
| 351 | notice: (v) => notices.push(v), failed: () => assert.fail('unexpected failure') }); | 353 | notice: (v) => notices.push(v), failed: () => assert.fail('unexpected failure') }); | ||
| 352 | try { | 354 | try { | ||
| 353 | r.request(); const first = c.tick(); blocked = true; resolve('page'); await first; | 355 | r.request(); const first = c.tick(); blocked = true; resolve('page'); await first; | ||
| 354 | assert.equal(applied, 0); assert.deepEqual(notices, [true]); | 356 | assert.equal(applied, 0); assert.deepEqual(notices, [true]); | ||
| 355 | - | r.request(true); const second = c.tick(); resolve('new page'); await second; | 357 | + | r.request(true); await c.tick(); assert.equal(applied, 0); |
| 358 | + | blocked = false; r.resume(); const second = c.tick(); resolve('new page'); await second; | |||
| 356 | assert.equal(applied, 1); assert.equal(notices.at(-1), false); | 359 | assert.equal(applied, 1); assert.equal(notices.at(-1), false); | ||
| 357 | } finally { c.restore(); } | 360 | } finally { c.restore(); } | ||
| 358 | }); | 361 | }); | ||
| @@ -386,8 +389,8 @@ test('viewport probe finds a stable path/side/line and restores its offset witho | |||||
| 386 | let lineTop = 160, headerTop = -200, found = true; const calls = []; | 389 | let lineTop = 160, headerTop = -200, found = true; const calls = []; | ||
| 387 | const header = { getBoundingClientRect: () => rect(headerTop) }; | 390 | const header = { getBoundingClientRect: () => rect(headerTop) }; | ||
| 388 | const row = { getBoundingClientRect: () => rect(lineTop), querySelector: () => link }; | 391 | const row = { getBoundingClientRect: () => rect(lineTop), querySelector: () => link }; | ||
| 389 | - | const link = { href: 'https://forge.test/demo/merge-requests/1?on=new:42:a.go#f2', closest: () => row }; | 392 | + | const link = { href: 'https://forge.test/demo/merge-requests/1?on=new:42:a.go#f2', closest: () => row, getAttribute: () => link.href }; |
| 390 | - | const file = { id: 'f2', dataset: { file: 'a.go' }, querySelector: (s) => s.includes('summary') ? header : s.includes('href$') ? (assert.ok(s.includes('on=new:42:a.go#f3')), found ? link : null) : null }; | 393 | + | const file = { getBoundingClientRect: () => rect(headerTop), id: 'f2', dataset: { file: 'a.go' }, querySelector: (s) => s.includes('summary') ? header : s.includes('href$') ? (assert.ok(s.includes('on=new:42:a.go#f3')), found ? link : null) : null }; |
| 391 | const hit = { closest: (s) => s === 'tr' ? row : file }; | 394 | const hit = { closest: (s) => s === 'tr' ? row : file }; | ||
| 392 | const diffs = { dataset: { diff: 'unified' }, getBoundingClientRect: () => rect(120), contains: () => true }; | 395 | const diffs = { dataset: { diff: 'unified' }, getBoundingClientRect: () => rect(120), contains: () => true }; | ||
| 393 | globalThis.document = { | 396 | globalThis.document = { | ||
| @@ -408,3 +411,45 @@ test('viewport probe finds a stable path/side/line and restores its offset witho | |||||
| 408 | assert.deepEqual(calls.pop(), ['to', { top: 9200, behavior: 'instant' }]); | 411 | assert.deepEqual(calls.pop(), ['to', { top: 9200, behavior: 'instant' }]); | ||
| 409 | } finally { for (const [k,v] of Object.entries(saved)) { if (v === undefined) delete globalThis[k]; else globalThis[k] = v; } } | 412 | } finally { for (const [k,v] of Object.entries(saved)) { if (v === undefined) delete globalThis[k]; else globalThis[k] = v; } } | ||
| 410 | }); | 413 | }); | ||
| 414 | + | ||||
| 415 | + | test('empty edited default and focused cform controls protect drafts', () => { | |||
| 416 | + | const saved = document; | |||
| 417 | + | try { | |||
| 418 | + | globalThis.document = { querySelectorAll: () => [{ value: '', defaultValue: 'existing' }], activeElement: null }; | |||
| 419 | + | assert.equal(window.ermiteMR.hasDraft(), true); | |||
| 420 | + | document.querySelectorAll = () => []; | |||
| 421 | + | document.activeElement = { closest: (s) => s === '.cform' ? {} : null }; | |||
| 422 | + | assert.equal(window.ermiteMR.hasDraft(), true); | |||
| 423 | + | } finally { globalThis.document = saved; } | |||
| 424 | + | }); | |||
| 425 | + | ||||
| 426 | + | test('failure during a draft keeps pending and resumes after the draft ends', async () => { | |||
| 427 | + | const c = clock(); let blocked = false, reject, applied = 0, count = 0; | |||
| 428 | + | const r = window.ermiteMR.refresher({ blocked: () => blocked, | |||
| 429 | + | fetchPage: () => ++count === 1 ? new Promise((_, no) => { reject = no; }) : Promise.resolve('page'), | |||
| 430 | + | apply: () => applied++, notice() {}, failed: () => assert.fail('draft must defer fallback') }); | |||
| 431 | + | try { | |||
| 432 | + | r.request(); const first = c.tick(); blocked = true; reject(new Error('offline')); await first; | |||
| 433 | + | assert.equal(r.pending(), true); assert.equal(applied, 0); | |||
| 434 | + | blocked = false; r.resume(); await c.tick(); assert.equal(applied, 1); | |||
| 435 | + | } finally { c.restore(); } | |||
| 436 | + | }); | |||
| 437 | + | ||||
| 438 | + | test('anchor restoration retains the server encoding of tilde and star paths', () => { | |||
| 439 | + | const saved = { document, CSS: globalThis.CSS, scrollBy: globalThis.scrollBy }; | |||
| 440 | + | try { | |||
| 441 | + | globalThis.CSS = { escape: (s) => s }; | |||
| 442 | + | globalThis.scrollBy = () => {}; | |||
| 443 | + | for (const path of ['a~.go', 'a*.go']) { | |||
| 444 | + | const encoded = path.replace('*', '%2A'); | |||
| 445 | + | const row = { getBoundingClientRect: () => ({ top: 5 }) }; | |||
| 446 | + | const file = { id: 'f9', dataset: { file: path }, querySelector: (s) => { | |||
| 447 | + | if (s === '.dt.uni') return file; | |||
| 448 | + | assert.equal(s, 'a[href$="on=new:12:' + encoded + '#f9"]'); | |||
| 449 | + | return { closest: () => row }; | |||
| 450 | + | } }; | |||
| 451 | + | globalThis.document = { querySelectorAll: () => [file], querySelector: () => ({ dataset: { diff: 'unified' } }) }; | |||
| 452 | + | window.ermiteMR.restoreAnchor({ file: path, suffix: 'new:12:' + encoded, on: 'new:12:' + path, offset: 5 }); | |||
| 453 | + | } | |||
| 454 | + | } finally { Object.assign(globalThis, saved); } | |||
| 455 | + | }); | |||
M internal/adapters/web/mr.templ +4 -0
| @@ -13,6 +13,7 @@ templ MRList(l Layout, p MRListPage) { | |||
| 13 | 13 | @Shell(l, mrListRail(p)) { | |
| 14 | 14 | if p.Live { | |
| 15 | 15 | @LiveSlot("mr-notice") | |
| 16 | + | <div id="mr-refresh-status" role="status" aria-live="polite"></div> | |
| 16 | 17 | } | |
| 17 | 18 | <div class="filter"> | |
| 18 | 19 | <label for="mr-filter" class="sr">filter</label> | |
| @@ -157,6 +158,7 @@ templ MergeRequest(l Layout, p MRPage) { | |||
| 157 | 158 | <p class="d-err" role="alert">{ p.MergeError }</p> | |
| 158 | 159 | } | |
| 159 | 160 | @LiveSlot("mr-notice") | |
| 161 | + | <div id="mr-refresh-status" role="status" aria-live="polite"></div> | |
| 160 | 162 | <div id="mr-range" hidden?={ p.Since == nil && p.SinceNote == "" }> | |
| 161 | 163 | if p.Since != nil { | |
| 162 | 164 | <nav class="since" aria-label="Diff range"> | |
| @@ -212,6 +214,7 @@ templ MergeRequest(l Layout, p MRPage) { | |||
| 212 | 214 | <p class="note">no changed files.</p> | |
| 213 | 215 | } | |
| 214 | 216 | </div> | |
| 217 | + | <div id="mr-comments"> | |
| 215 | 218 | <h2 class="rule-h" id="comments"><span>Comments</span><span class="count">{ itoa(p.NUnresolved) } open / { itoa(p.NComments) }</span></h2> | |
| 216 | 219 | for _, c := range p.Loose { | |
| 217 | 220 | @commentView(c, "") | |
| @@ -225,6 +228,7 @@ templ MergeRequest(l Layout, p MRPage) { | |||
| 225 | 228 | if p.GeneralForm != nil { | |
| 226 | 229 | @commentForm(*p.GeneralForm, "") | |
| 227 | 230 | } | |
| 231 | + | </div> | |
| 228 | 232 | } | |
| 229 | 233 | } | |
| 230 | 234 | ||
| @@ -13,6 +13,7 @@ templ MRList(l Layout, p MRListPage) { | |||||
| 13 | @Shell(l, mrListRail(p)) { | 13 | @Shell(l, mrListRail(p)) { | ||
| 14 | if p.Live { | 14 | if p.Live { | ||
| 15 | @LiveSlot("mr-notice") | 15 | @LiveSlot("mr-notice") | ||
| 16 | + | <div id="mr-refresh-status" role="status" aria-live="polite"></div> | |||
| 16 | } | 17 | } | ||
| 17 | <div class="filter"> | 18 | <div class="filter"> | ||
| 18 | <label for="mr-filter" class="sr">filter</label> | 19 | <label for="mr-filter" class="sr">filter</label> | ||
| @@ -157,6 +158,7 @@ templ MergeRequest(l Layout, p MRPage) { | |||||
| 157 | <p class="d-err" role="alert">{ p.MergeError }</p> | 158 | <p class="d-err" role="alert">{ p.MergeError }</p> | ||
| 158 | } | 159 | } | ||
| 159 | @LiveSlot("mr-notice") | 160 | @LiveSlot("mr-notice") | ||
| 161 | + | <div id="mr-refresh-status" role="status" aria-live="polite"></div> | |||
| 160 | <div id="mr-range" hidden?={ p.Since == nil && p.SinceNote == "" }> | 162 | <div id="mr-range" hidden?={ p.Since == nil && p.SinceNote == "" }> | ||
| 161 | if p.Since != nil { | 163 | if p.Since != nil { | ||
| 162 | <nav class="since" aria-label="Diff range"> | 164 | <nav class="since" aria-label="Diff range"> | ||
| @@ -212,6 +214,7 @@ templ MergeRequest(l Layout, p MRPage) { | |||||
| 212 | <p class="note">no changed files.</p> | 214 | <p class="note">no changed files.</p> | ||
| 213 | } | 215 | } | ||
| 214 | </div> | 216 | </div> | ||
| 217 | + | <div id="mr-comments"> | |||
| 215 | <h2 class="rule-h" id="comments"><span>Comments</span><span class="count">{ itoa(p.NUnresolved) } open / { itoa(p.NComments) }</span></h2> | 218 | <h2 class="rule-h" id="comments"><span>Comments</span><span class="count">{ itoa(p.NUnresolved) } open / { itoa(p.NComments) }</span></h2> | ||
| 216 | for _, c := range p.Loose { | 219 | for _, c := range p.Loose { | ||
| 217 | @commentView(c, "") | 220 | @commentView(c, "") | ||
| @@ -225,6 +228,7 @@ templ MergeRequest(l Layout, p MRPage) { | |||||
| 225 | if p.GeneralForm != nil { | 228 | if p.GeneralForm != nil { | ||
| 226 | @commentForm(*p.GeneralForm, "") | 229 | @commentForm(*p.GeneralForm, "") | ||
| 227 | } | 230 | } | ||
| 231 | + | </div> | |||
| 228 | } | 232 | } | ||
| 229 | } | 233 | } | ||
| 230 | 234 | ||||
M internal/adapters/web/mr_templ.go +280 -280
| @@ -55,26 +55,30 @@ func MRList(l Layout, p MRListPage) templ.Component { | |||
| 55 | 55 | if templ_7745c5c3_Err != nil { | |
| 56 | 56 | return templ_7745c5c3_Err | |
| 57 | 57 | } | |
| 58 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, " <div id=\"mr-refresh-status\" role=\"status\" aria-live=\"polite\"></div>") | |
| 59 | + | if templ_7745c5c3_Err != nil { | |
| 60 | + | return templ_7745c5c3_Err | |
| 61 | + | } | |
| 58 | 62 | } | |
| 59 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, " <div class=\"filter\"><label for=\"mr-filter\" class=\"sr\">filter</label> <input id=\"mr-filter\" type=\"search\" data-filter=\".mrs tbody tr\" placeholder=\"Filter by title, branch, author or state…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div>") | |
| 63 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, " <div class=\"filter\"><label for=\"mr-filter\" class=\"sr\">filter</label> <input id=\"mr-filter\" type=\"search\" data-filter=\".mrs tbody tr\" placeholder=\"Filter by title, branch, author or state…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div>") | |
| 60 | 64 | if templ_7745c5c3_Err != nil { | |
| 61 | 65 | return templ_7745c5c3_Err | |
| 62 | 66 | } | |
| 63 | 67 | if p.Newest == "" { | |
| 64 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<h2 class=\"rule-h\"><span>Open</span><span class=\"count\">") | |
| 68 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "<h2 class=\"rule-h\"><span>Open</span><span class=\"count\">") | |
| 65 | 69 | if templ_7745c5c3_Err != nil { | |
| 66 | 70 | return templ_7745c5c3_Err | |
| 67 | 71 | } | |
| 68 | 72 | var templ_7745c5c3_Var3 string | |
| 69 | 73 | templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Open))) | |
| 70 | 74 | if templ_7745c5c3_Err != nil { | |
| 71 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 29, Col: 78} | |
| 75 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 30, Col: 78} | |
| 72 | 76 | } | |
| 73 | 77 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) | |
| 74 | 78 | if templ_7745c5c3_Err != nil { | |
| 75 | 79 | return templ_7745c5c3_Err | |
| 76 | 80 | } | |
| 77 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</span></h2>") | |
| 81 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "</span></h2>") | |
| 78 | 82 | if templ_7745c5c3_Err != nil { | |
| 79 | 83 | return templ_7745c5c3_Err | |
| 80 | 84 | } | |
| @@ -82,54 +86,54 @@ func MRList(l Layout, p MRListPage) templ.Component { | |||
| 82 | 86 | if templ_7745c5c3_Err != nil { | |
| 83 | 87 | return templ_7745c5c3_Err | |
| 84 | 88 | } | |
| 85 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, " ") | |
| 89 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, " ") | |
| 86 | 90 | if templ_7745c5c3_Err != nil { | |
| 87 | 91 | return templ_7745c5c3_Err | |
| 88 | 92 | } | |
| 89 | 93 | if len(p.Open) == 0 { | |
| 90 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<p class=\"lede dim\">no open merge requests.</p>") | |
| 94 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<p class=\"lede dim\">no open merge requests.</p>") | |
| 91 | 95 | if templ_7745c5c3_Err != nil { | |
| 92 | 96 | return templ_7745c5c3_Err | |
| 93 | 97 | } | |
| 94 | 98 | } | |
| 95 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " ") | |
| 99 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, " ") | |
| 96 | 100 | if templ_7745c5c3_Err != nil { | |
| 97 | 101 | return templ_7745c5c3_Err | |
| 98 | 102 | } | |
| 99 | 103 | if p.OpenNote != "" { | |
| 100 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<p class=\"note\">") | |
| 104 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "<p class=\"note\">") | |
| 101 | 105 | if templ_7745c5c3_Err != nil { | |
| 102 | 106 | return templ_7745c5c3_Err | |
| 103 | 107 | } | |
| 104 | 108 | var templ_7745c5c3_Var4 string | |
| 105 | 109 | templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(p.OpenNote) | |
| 106 | 110 | if templ_7745c5c3_Err != nil { | |
| 107 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 35, Col: 32} | |
| 111 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 36, Col: 32} | |
| 108 | 112 | } | |
| 109 | 113 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) | |
| 110 | 114 | if templ_7745c5c3_Err != nil { | |
| 111 | 115 | return templ_7745c5c3_Err | |
| 112 | 116 | } | |
| 113 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</p>") | |
| 117 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "</p>") | |
| 114 | 118 | if templ_7745c5c3_Err != nil { | |
| 115 | 119 | return templ_7745c5c3_Err | |
| 116 | 120 | } | |
| 117 | 121 | } | |
| 118 | 122 | } | |
| 119 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, " <h2 class=\"rule-h\"><span>Merged and closed</span><span class=\"count\">") | |
| 123 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, " <h2 class=\"rule-h\"><span>Merged and closed</span><span class=\"count\">") | |
| 120 | 124 | if templ_7745c5c3_Err != nil { | |
| 121 | 125 | return templ_7745c5c3_Err | |
| 122 | 126 | } | |
| 123 | 127 | var templ_7745c5c3_Var5 string | |
| 124 | 128 | templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Done))) | |
| 125 | 129 | if templ_7745c5c3_Err != nil { | |
| 126 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 38, Col: 90} | |
| 130 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 39, Col: 90} | |
| 127 | 131 | } | |
| 128 | 132 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) | |
| 129 | 133 | if templ_7745c5c3_Err != nil { | |
| 130 | 134 | return templ_7745c5c3_Err | |
| 131 | 135 | } | |
| 132 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</span></h2>") | |
| 136 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "</span></h2>") | |
| 133 | 137 | if templ_7745c5c3_Err != nil { | |
| 134 | 138 | return templ_7745c5c3_Err | |
| 135 | 139 | } | |
| @@ -137,74 +141,74 @@ func MRList(l Layout, p MRListPage) templ.Component { | |||
| 137 | 141 | if templ_7745c5c3_Err != nil { | |
| 138 | 142 | return templ_7745c5c3_Err | |
| 139 | 143 | } | |
| 140 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, " ") | |
| 144 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, " ") | |
| 141 | 145 | if templ_7745c5c3_Err != nil { | |
| 142 | 146 | return templ_7745c5c3_Err | |
| 143 | 147 | } | |
| 144 | 148 | if len(p.Done) == 0 { | |
| 145 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "<p class=\"lede dim\">nothing merged or closed yet.</p>") | |
| 149 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<p class=\"lede dim\">nothing merged or closed yet.</p>") | |
| 146 | 150 | if templ_7745c5c3_Err != nil { | |
| 147 | 151 | return templ_7745c5c3_Err | |
| 148 | 152 | } | |
| 149 | 153 | } | |
| 150 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, " ") | |
| 154 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, " ") | |
| 151 | 155 | if templ_7745c5c3_Err != nil { | |
| 152 | 156 | return templ_7745c5c3_Err | |
| 153 | 157 | } | |
| 154 | 158 | if p.Older != "" || p.Newest != "" { | |
| 155 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "<nav class=\"pager\" aria-label=\"Pages\">") | |
| 159 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "<nav class=\"pager\" aria-label=\"Pages\">") | |
| 156 | 160 | if templ_7745c5c3_Err != nil { | |
| 157 | 161 | return templ_7745c5c3_Err | |
| 158 | 162 | } | |
| 159 | 163 | if p.Newest != "" { | |
| 160 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "<a class=\"btn\" href=\"") | |
| 164 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<a class=\"btn\" href=\"") | |
| 161 | 165 | if templ_7745c5c3_Err != nil { | |
| 162 | 166 | return templ_7745c5c3_Err | |
| 163 | 167 | } | |
| 164 | 168 | var templ_7745c5c3_Var6 templ.SafeURL | |
| 165 | 169 | templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Newest)) | |
| 166 | 170 | if templ_7745c5c3_Err != nil { | |
| 167 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 46, Col: 50} | |
| 171 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 47, Col: 50} | |
| 168 | 172 | } | |
| 169 | 173 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) | |
| 170 | 174 | if templ_7745c5c3_Err != nil { | |
| 171 | 175 | return templ_7745c5c3_Err | |
| 172 | 176 | } | |
| 173 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "\">← Newest</a> ") | |
| 177 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "\">← Newest</a> ") | |
| 174 | 178 | if templ_7745c5c3_Err != nil { | |
| 175 | 179 | return templ_7745c5c3_Err | |
| 176 | 180 | } | |
| 177 | 181 | } else { | |
| 178 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "<span class=\"btn\" aria-disabled=\"true\">← Newest</span> ") | |
| 182 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "<span class=\"btn\" aria-disabled=\"true\">← Newest</span> ") | |
| 179 | 183 | if templ_7745c5c3_Err != nil { | |
| 180 | 184 | return templ_7745c5c3_Err | |
| 181 | 185 | } | |
| 182 | 186 | } | |
| 183 | 187 | if p.Older != "" { | |
| 184 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "<a class=\"btn\" href=\"") | |
| 188 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "<a class=\"btn\" href=\"") | |
| 185 | 189 | if templ_7745c5c3_Err != nil { | |
| 186 | 190 | return templ_7745c5c3_Err | |
| 187 | 191 | } | |
| 188 | 192 | var templ_7745c5c3_Var7 templ.SafeURL | |
| 189 | 193 | templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Older)) | |
| 190 | 194 | if templ_7745c5c3_Err != nil { | |
| 191 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 51, Col: 49} | |
| 195 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 52, Col: 49} | |
| 192 | 196 | } | |
| 193 | 197 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) | |
| 194 | 198 | if templ_7745c5c3_Err != nil { | |
| 195 | 199 | return templ_7745c5c3_Err | |
| 196 | 200 | } | |
| 197 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "\" rel=\"next\">Older →</a>") | |
| 201 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "\" rel=\"next\">Older →</a>") | |
| 198 | 202 | if templ_7745c5c3_Err != nil { | |
| 199 | 203 | return templ_7745c5c3_Err | |
| 200 | 204 | } | |
| 201 | 205 | } else { | |
| 202 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "<span class=\"btn\" aria-disabled=\"true\">Older →</span>") | |
| 206 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "<span class=\"btn\" aria-disabled=\"true\">Older →</span>") | |
| 203 | 207 | if templ_7745c5c3_Err != nil { | |
| 204 | 208 | return templ_7745c5c3_Err | |
| 205 | 209 | } | |
| 206 | 210 | } | |
| 207 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</nav>") | |
| 211 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "</nav>") | |
| 208 | 212 | if templ_7745c5c3_Err != nil { | |
| 209 | 213 | return templ_7745c5c3_Err | |
| 210 | 214 | } | |
| @@ -241,180 +245,180 @@ func mrRows(rows []MRRow, label string) templ.Component { | |||
| 241 | 245 | } | |
| 242 | 246 | ctx = templ.ClearChildren(ctx) | |
| 243 | 247 | if len(rows) > 0 { | |
| 244 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<table class=\"list mrs\" aria-label=\"") | |
| 248 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "<table class=\"list mrs\" aria-label=\"") | |
| 245 | 249 | if templ_7745c5c3_Err != nil { | |
| 246 | 250 | return templ_7745c5c3_Err | |
| 247 | 251 | } | |
| 248 | 252 | var templ_7745c5c3_Var9 string | |
| 249 | 253 | templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.ResolveAttributeValue(label) | |
| 250 | 254 | if templ_7745c5c3_Err != nil { | |
| 251 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 62, Col: 44} | |
| 255 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 63, Col: 44} | |
| 252 | 256 | } | |
| 253 | 257 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var9) | |
| 254 | 258 | if templ_7745c5c3_Err != nil { | |
| 255 | 259 | return templ_7745c5c3_Err | |
| 256 | 260 | } | |
| 257 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "\"><tbody data-rows>") | |
| 261 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "\"><tbody data-rows>") | |
| 258 | 262 | if templ_7745c5c3_Err != nil { | |
| 259 | 263 | return templ_7745c5c3_Err | |
| 260 | 264 | } | |
| 261 | 265 | for _, m := range rows { | |
| 262 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "<tr") | |
| 266 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "<tr") | |
| 263 | 267 | if templ_7745c5c3_Err != nil { | |
| 264 | 268 | return templ_7745c5c3_Err | |
| 265 | 269 | } | |
| 266 | 270 | if m.Cursor { | |
| 267 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, " data-cursor") | |
| 271 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, " data-cursor") | |
| 268 | 272 | if templ_7745c5c3_Err != nil { | |
| 269 | 273 | return templ_7745c5c3_Err | |
| 270 | 274 | } | |
| 271 | 275 | } | |
| 272 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, " data-state=\"") | |
| 276 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, " data-state=\"") | |
| 273 | 277 | if templ_7745c5c3_Err != nil { | |
| 274 | 278 | return templ_7745c5c3_Err | |
| 275 | 279 | } | |
| 276 | 280 | var templ_7745c5c3_Var10 string | |
| 277 | 281 | templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.State) | |
| 278 | 282 | if templ_7745c5c3_Err != nil { | |
| 279 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 65, Col: 55} | |
| 283 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 66, Col: 55} | |
| 280 | 284 | } | |
| 281 | 285 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var10) | |
| 282 | 286 | if templ_7745c5c3_Err != nil { | |
| 283 | 287 | return templ_7745c5c3_Err | |
| 284 | 288 | } | |
| 285 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "\"><td class=\"c-n mute\">") | |
| 289 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "\"><td class=\"c-n mute\">") | |
| 286 | 290 | if templ_7745c5c3_Err != nil { | |
| 287 | 291 | return templ_7745c5c3_Err | |
| 288 | 292 | } | |
| 289 | 293 | var templ_7745c5c3_Var11 string | |
| 290 | 294 | templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(m.Number) | |
| 291 | 295 | if templ_7745c5c3_Err != nil { | |
| 292 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 66, Col: 37} | |
| 296 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 67, Col: 37} | |
| 293 | 297 | } | |
| 294 | 298 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) | |
| 295 | 299 | if templ_7745c5c3_Err != nil { | |
| 296 | 300 | return templ_7745c5c3_Err | |
| 297 | 301 | } | |
| 298 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</td><td class=\"c-state\">") | |
| 302 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "</td><td class=\"c-state\">") | |
| 299 | 303 | if templ_7745c5c3_Err != nil { | |
| 300 | 304 | return templ_7745c5c3_Err | |
| 301 | 305 | } | |
| 302 | 306 | var templ_7745c5c3_Var12 string | |
| 303 | 307 | templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(m.State) | |
| 304 | 308 | if templ_7745c5c3_Err != nil { | |
| 305 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 67, Col: 35} | |
| 309 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 68, Col: 35} | |
| 306 | 310 | } | |
| 307 | 311 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) | |
| 308 | 312 | if templ_7745c5c3_Err != nil { | |
| 309 | 313 | return templ_7745c5c3_Err | |
| 310 | 314 | } | |
| 311 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "</td><td class=\"c-subject\"><a href=\"") | |
| 315 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "</td><td class=\"c-subject\"><a href=\"") | |
| 312 | 316 | if templ_7745c5c3_Err != nil { | |
| 313 | 317 | return templ_7745c5c3_Err | |
| 314 | 318 | } | |
| 315 | 319 | var templ_7745c5c3_Var13 templ.SafeURL | |
| 316 | 320 | templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(m.Href)) | |
| 317 | 321 | if templ_7745c5c3_Err != nil { | |
| 318 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 68, Col: 59} | |
| 322 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 69, Col: 59} | |
| 319 | 323 | } | |
| 320 | 324 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13)) | |
| 321 | 325 | if templ_7745c5c3_Err != nil { | |
| 322 | 326 | return templ_7745c5c3_Err | |
| 323 | 327 | } | |
| 324 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "\">") | |
| 328 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "\">") | |
| 325 | 329 | if templ_7745c5c3_Err != nil { | |
| 326 | 330 | return templ_7745c5c3_Err | |
| 327 | 331 | } | |
| 328 | 332 | var templ_7745c5c3_Var14 string | |
| 329 | 333 | templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(m.Title) | |
| 330 | 334 | if templ_7745c5c3_Err != nil { | |
| 331 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 68, Col: 71} | |
| 335 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 69, Col: 71} | |
| 332 | 336 | } | |
| 333 | 337 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14)) | |
| 334 | 338 | if templ_7745c5c3_Err != nil { | |
| 335 | 339 | return templ_7745c5c3_Err | |
| 336 | 340 | } | |
| 337 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "</a> <span class=\"mute\">") | |
| 341 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "</a> <span class=\"mute\">") | |
| 338 | 342 | if templ_7745c5c3_Err != nil { | |
| 339 | 343 | return templ_7745c5c3_Err | |
| 340 | 344 | } | |
| 341 | 345 | var templ_7745c5c3_Var15 string | |
| 342 | 346 | templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(m.Branches) | |
| 343 | 347 | if templ_7745c5c3_Err != nil { | |
| 344 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 68, Col: 109} | |
| 348 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 69, Col: 109} | |
| 345 | 349 | } | |
| 346 | 350 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15)) | |
| 347 | 351 | if templ_7745c5c3_Err != nil { | |
| 348 | 352 | return templ_7745c5c3_Err | |
| 349 | 353 | } | |
| 350 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "</span></td><td class=\"c-who dim\">") | |
| 354 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</span></td><td class=\"c-who dim\">") | |
| 351 | 355 | if templ_7745c5c3_Err != nil { | |
| 352 | 356 | return templ_7745c5c3_Err | |
| 353 | 357 | } | |
| 354 | 358 | var templ_7745c5c3_Var16 string | |
| 355 | 359 | templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(m.Author) | |
| 356 | 360 | if templ_7745c5c3_Err != nil { | |
| 357 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 69, Col: 38} | |
| 361 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 70, Col: 38} | |
| 358 | 362 | } | |
| 359 | 363 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16)) | |
| 360 | 364 | if templ_7745c5c3_Err != nil { | |
| 361 | 365 | return templ_7745c5c3_Err | |
| 362 | 366 | } | |
| 363 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</td><td class=\"c-when nowrap dim\">") | |
| 367 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "</td><td class=\"c-when nowrap dim\">") | |
| 364 | 368 | if templ_7745c5c3_Err != nil { | |
| 365 | 369 | return templ_7745c5c3_Err | |
| 366 | 370 | } | |
| 367 | 371 | if m.WhenAt != "" { | |
| 368 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<time datetime=\"") | |
| 372 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "<time datetime=\"") | |
| 369 | 373 | if templ_7745c5c3_Err != nil { | |
| 370 | 374 | return templ_7745c5c3_Err | |
| 371 | 375 | } | |
| 372 | 376 | var templ_7745c5c3_Var17 string | |
| 373 | 377 | templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.WhenAt) | |
| 374 | 378 | if templ_7745c5c3_Err != nil { | |
| 375 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 72, Col: 33} | |
| 379 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 73, Col: 33} | |
| 376 | 380 | } | |
| 377 | 381 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var17) | |
| 378 | 382 | if templ_7745c5c3_Err != nil { | |
| 379 | 383 | return templ_7745c5c3_Err | |
| 380 | 384 | } | |
| 381 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\" title=\"") | |
| 385 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "\" title=\"") | |
| 382 | 386 | if templ_7745c5c3_Err != nil { | |
| 383 | 387 | return templ_7745c5c3_Err | |
| 384 | 388 | } | |
| 385 | 389 | var templ_7745c5c3_Var18 string | |
| 386 | 390 | templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.WhenAt) | |
| 387 | 391 | if templ_7745c5c3_Err != nil { | |
| 388 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 72, Col: 52} | |
| 392 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 73, Col: 52} | |
| 389 | 393 | } | |
| 390 | 394 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var18) | |
| 391 | 395 | if templ_7745c5c3_Err != nil { | |
| 392 | 396 | return templ_7745c5c3_Err | |
| 393 | 397 | } | |
| 394 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "\">") | |
| 398 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "\">") | |
| 395 | 399 | if templ_7745c5c3_Err != nil { | |
| 396 | 400 | return templ_7745c5c3_Err | |
| 397 | 401 | } | |
| 398 | 402 | var templ_7745c5c3_Var19 string | |
| 399 | 403 | templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(m.When) | |
| 400 | 404 | if templ_7745c5c3_Err != nil { | |
| 401 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 72, Col: 63} | |
| 405 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 73, Col: 63} | |
| 402 | 406 | } | |
| 403 | 407 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19)) | |
| 404 | 408 | if templ_7745c5c3_Err != nil { | |
| 405 | 409 | return templ_7745c5c3_Err | |
| 406 | 410 | } | |
| 407 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</time>") | |
| 411 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "</time>") | |
| 408 | 412 | if templ_7745c5c3_Err != nil { | |
| 409 | 413 | return templ_7745c5c3_Err | |
| 410 | 414 | } | |
| 411 | 415 | } | |
| 412 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "</td></tr>") | |
| 416 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</td></tr>") | |
| 413 | 417 | if templ_7745c5c3_Err != nil { | |
| 414 | 418 | return templ_7745c5c3_Err | |
| 415 | 419 | } | |
| 416 | 420 | } | |
| 417 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</tbody></table>") | |
| 421 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "</tbody></table>") | |
| 418 | 422 | if templ_7745c5c3_Err != nil { | |
| 419 | 423 | return templ_7745c5c3_Err | |
| 420 | 424 | } | |
| @@ -444,66 +448,66 @@ func mrListRail(p MRListPage) templ.Component { | |||
| 444 | 448 | templ_7745c5c3_Var20 = templ.NopComponent | |
| 445 | 449 | } | |
| 446 | 450 | ctx = templ.ClearChildren(ctx) | |
| 447 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "<section aria-labelledby=\"r-states\"><h2 id=\"r-states\">States</h2><dl class=\"kv\"><dt>open</dt><dd>awaits review</dd><dt>merged</dt><dd>the target took the branch</dd><dt>closed</dt><dd>refused, branch kept</dd></dl></section><section aria-labelledby=\"r-new\"><h2 id=\"r-new\">Open one</h2>") | |
| 451 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "<section aria-labelledby=\"r-states\"><h2 id=\"r-states\">States</h2><dl class=\"kv\"><dt>open</dt><dd>awaits review</dd><dt>merged</dt><dd>the target took the branch</dd><dt>closed</dt><dd>refused, branch kept</dd></dl></section><section aria-labelledby=\"r-new\"><h2 id=\"r-new\">Open one</h2>") | |
| 448 | 452 | if templ_7745c5c3_Err != nil { | |
| 449 | 453 | return templ_7745c5c3_Err | |
| 450 | 454 | } | |
| 451 | 455 | if len(p.Branches) > 0 { | |
| 452 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "<p class=\"dim\">compare a branch with ") | |
| 456 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "<p class=\"dim\">compare a branch with ") | |
| 453 | 457 | if templ_7745c5c3_Err != nil { | |
| 454 | 458 | return templ_7745c5c3_Err | |
| 455 | 459 | } | |
| 456 | 460 | var templ_7745c5c3_Var21 string | |
| 457 | 461 | templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(p.Default) | |
| 458 | 462 | if templ_7745c5c3_Err != nil { | |
| 459 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 97, Col: 51} | |
| 463 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 98, Col: 51} | |
| 460 | 464 | } | |
| 461 | 465 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21)) | |
| 462 | 466 | if templ_7745c5c3_Err != nil { | |
| 463 | 467 | return templ_7745c5c3_Err | |
| 464 | 468 | } | |
| 465 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, ":</p><nav class=\"outline\" aria-label=\"Branches\">") | |
| 469 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, ":</p><nav class=\"outline\" aria-label=\"Branches\">") | |
| 466 | 470 | if templ_7745c5c3_Err != nil { | |
| 467 | 471 | return templ_7745c5c3_Err | |
| 468 | 472 | } | |
| 469 | 473 | for _, b := range p.Branches { | |
| 470 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "<a href=\"") | |
| 474 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "<a href=\"") | |
| 471 | 475 | if templ_7745c5c3_Err != nil { | |
| 472 | 476 | return templ_7745c5c3_Err | |
| 473 | 477 | } | |
| 474 | 478 | var templ_7745c5c3_Var22 templ.SafeURL | |
| 475 | 479 | templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href)) | |
| 476 | 480 | if templ_7745c5c3_Err != nil { | |
| 477 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 100, Col: 36} | |
| 481 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 101, Col: 36} | |
| 478 | 482 | } | |
| 479 | 483 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22)) | |
| 480 | 484 | if templ_7745c5c3_Err != nil { | |
| 481 | 485 | return templ_7745c5c3_Err | |
| 482 | 486 | } | |
| 483 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "\">") | |
| 487 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "\">") | |
| 484 | 488 | if templ_7745c5c3_Err != nil { | |
| 485 | 489 | return templ_7745c5c3_Err | |
| 486 | 490 | } | |
| 487 | 491 | var templ_7745c5c3_Var23 string | |
| 488 | 492 | templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(b.Name) | |
| 489 | 493 | if templ_7745c5c3_Err != nil { | |
| 490 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 100, Col: 47} | |
| 494 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 101, Col: 47} | |
| 491 | 495 | } | |
| 492 | 496 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) | |
| 493 | 497 | if templ_7745c5c3_Err != nil { | |
| 494 | 498 | return templ_7745c5c3_Err | |
| 495 | 499 | } | |
| 496 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "</a>") | |
| 500 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</a>") | |
| 497 | 501 | if templ_7745c5c3_Err != nil { | |
| 498 | 502 | return templ_7745c5c3_Err | |
| 499 | 503 | } | |
| 500 | 504 | } | |
| 501 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</nav>") | |
| 505 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "</nav>") | |
| 502 | 506 | if templ_7745c5c3_Err != nil { | |
| 503 | 507 | return templ_7745c5c3_Err | |
| 504 | 508 | } | |
| 505 | 509 | } else { | |
| 506 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "<p class=\"dim\">there is no other branch to merge yet.</p>") | |
| 510 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "<p class=\"dim\">there is no other branch to merge yet.</p>") | |
| 507 | 511 | if templ_7745c5c3_Err != nil { | |
| 508 | 512 | return templ_7745c5c3_Err | |
| 509 | 513 | } | |
| @@ -512,7 +516,7 @@ func mrListRail(p MRListPage) templ.Component { | |||
| 512 | 516 | if templ_7745c5c3_Err != nil { | |
| 513 | 517 | return templ_7745c5c3_Err | |
| 514 | 518 | } | |
| 515 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</section>") | |
| 519 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "</section>") | |
| 516 | 520 | if templ_7745c5c3_Err != nil { | |
| 517 | 521 | return templ_7745c5c3_Err | |
| 518 | 522 | } | |
| @@ -557,59 +561,59 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 557 | 561 | }() | |
| 558 | 562 | } | |
| 559 | 563 | ctx = templ.InitializeContext(ctx) | |
| 560 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<section class=\"mr-card\"><header class=\"show mr-h\"><h1><span class=\"mute\">") | |
| 564 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "<section class=\"mr-card\"><header class=\"show mr-h\"><h1><span class=\"mute\">") | |
| 561 | 565 | if templ_7745c5c3_Err != nil { | |
| 562 | 566 | return templ_7745c5c3_Err | |
| 563 | 567 | } | |
| 564 | 568 | var templ_7745c5c3_Var26 string | |
| 565 | 569 | templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(p.Number) | |
| 566 | 570 | if templ_7745c5c3_Err != nil { | |
| 567 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 118, Col: 37} | |
| 571 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 119, Col: 37} | |
| 568 | 572 | } | |
| 569 | 573 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26)) | |
| 570 | 574 | if templ_7745c5c3_Err != nil { | |
| 571 | 575 | return templ_7745c5c3_Err | |
| 572 | 576 | } | |
| 573 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</span> ") | |
| 577 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "</span> ") | |
| 574 | 578 | if templ_7745c5c3_Err != nil { | |
| 575 | 579 | return templ_7745c5c3_Err | |
| 576 | 580 | } | |
| 577 | 581 | var templ_7745c5c3_Var27 string | |
| 578 | 582 | templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) | |
| 579 | 583 | if templ_7745c5c3_Err != nil { | |
| 580 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 118, Col: 56} | |
| 584 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 119, Col: 56} | |
| 581 | 585 | } | |
| 582 | 586 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27)) | |
| 583 | 587 | if templ_7745c5c3_Err != nil { | |
| 584 | 588 | return templ_7745c5c3_Err | |
| 585 | 589 | } | |
| 586 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "</h1><dl class=\"kv show-kv\"><dt>state</dt><dd class=\"mr-state\" data-state=\"") | |
| 590 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "</h1><dl class=\"kv show-kv\"><dt>state</dt><dd class=\"mr-state\" data-state=\"") | |
| 587 | 591 | if templ_7745c5c3_Err != nil { | |
| 588 | 592 | return templ_7745c5c3_Err | |
| 589 | 593 | } | |
| 590 | 594 | var templ_7745c5c3_Var28 string | |
| 591 | 595 | templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.State) | |
| 592 | 596 | if templ_7745c5c3_Err != nil { | |
| 593 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 121, Col: 46} | |
| 597 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 122, Col: 46} | |
| 594 | 598 | } | |
| 595 | 599 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28) | |
| 596 | 600 | if templ_7745c5c3_Err != nil { | |
| 597 | 601 | return templ_7745c5c3_Err | |
| 598 | 602 | } | |
| 599 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "\">") | |
| 603 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "\">") | |
| 600 | 604 | if templ_7745c5c3_Err != nil { | |
| 601 | 605 | return templ_7745c5c3_Err | |
| 602 | 606 | } | |
| 603 | 607 | var templ_7745c5c3_Var29 string | |
| 604 | 608 | templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(p.State) | |
| 605 | 609 | if templ_7745c5c3_Err != nil { | |
| 606 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 122, Col: 15} | |
| 610 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 123, Col: 15} | |
| 607 | 611 | } | |
| 608 | 612 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) | |
| 609 | 613 | if templ_7745c5c3_Err != nil { | |
| 610 | 614 | return templ_7745c5c3_Err | |
| 611 | 615 | } | |
| 612 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, " ") | |
| 616 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, " ") | |
| 613 | 617 | if templ_7745c5c3_Err != nil { | |
| 614 | 618 | return templ_7745c5c3_Err | |
| 615 | 619 | } | |
| @@ -617,53 +621,53 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 617 | 621 | var templ_7745c5c3_Var30 string | |
| 618 | 622 | templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | |
| 619 | 623 | if templ_7745c5c3_Err != nil { | |
| 620 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 124, Col: 15} | |
| 624 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 125, Col: 15} | |
| 621 | 625 | } | |
| 622 | 626 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30)) | |
| 623 | 627 | if templ_7745c5c3_Err != nil { | |
| 624 | 628 | return templ_7745c5c3_Err | |
| 625 | 629 | } | |
| 626 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "<a href=\"") | |
| 630 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "<a href=\"") | |
| 627 | 631 | if templ_7745c5c3_Err != nil { | |
| 628 | 632 | return templ_7745c5c3_Err | |
| 629 | 633 | } | |
| 630 | 634 | var templ_7745c5c3_Var31 templ.SafeURL | |
| 631 | 635 | templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.MergedHref)) | |
| 632 | 636 | if templ_7745c5c3_Err != nil { | |
| 633 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 124, Col: 54} | |
| 637 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 125, Col: 54} | |
| 634 | 638 | } | |
| 635 | 639 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31)) | |
| 636 | 640 | if templ_7745c5c3_Err != nil { | |
| 637 | 641 | return templ_7745c5c3_Err | |
| 638 | 642 | } | |
| 639 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "\">") | |
| 643 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "\">") | |
| 640 | 644 | if templ_7745c5c3_Err != nil { | |
| 641 | 645 | return templ_7745c5c3_Err | |
| 642 | 646 | } | |
| 643 | 647 | var templ_7745c5c3_Var32 string | |
| 644 | 648 | templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(p.MergedShort) | |
| 645 | 649 | if templ_7745c5c3_Err != nil { | |
| 646 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 124, Col: 72} | |
| 650 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 125, Col: 72} | |
| 647 | 651 | } | |
| 648 | 652 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32)) | |
| 649 | 653 | if templ_7745c5c3_Err != nil { | |
| 650 | 654 | return templ_7745c5c3_Err | |
| 651 | 655 | } | |
| 652 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "</a>") | |
| 656 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</a>") | |
| 653 | 657 | if templ_7745c5c3_Err != nil { | |
| 654 | 658 | return templ_7745c5c3_Err | |
| 655 | 659 | } | |
| 656 | 660 | var templ_7745c5c3_Var33 string | |
| 657 | 661 | templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(" · " + p.MergeMode) | |
| 658 | 662 | if templ_7745c5c3_Err != nil { | |
| 659 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 124, Col: 100} | |
| 663 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 125, Col: 100} | |
| 660 | 664 | } | |
| 661 | 665 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33)) | |
| 662 | 666 | if templ_7745c5c3_Err != nil { | |
| 663 | 667 | return templ_7745c5c3_Err | |
| 664 | 668 | } | |
| 665 | 669 | } | |
| 666 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</dd><dt>branch</dt><dd>") | |
| 670 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "</dd><dt>branch</dt><dd>") | |
| 667 | 671 | if templ_7745c5c3_Err != nil { | |
| 668 | 672 | return templ_7745c5c3_Err | |
| 669 | 673 | } | |
| @@ -674,7 +678,7 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 674 | 678 | var templ_7745c5c3_Var34 string | |
| 675 | 679 | templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(" → ") | |
| 676 | 680 | if templ_7745c5c3_Err != nil { | |
| 677 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 130, Col: 15} | |
| 681 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 131, Col: 15} | |
| 678 | 682 | } | |
| 679 | 683 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34)) | |
| 680 | 684 | if templ_7745c5c3_Err != nil { | |
| @@ -684,20 +688,20 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 684 | 688 | if templ_7745c5c3_Err != nil { | |
| 685 | 689 | return templ_7745c5c3_Err | |
| 686 | 690 | } | |
| 687 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "</dd><dt>opened</dt><dd>") | |
| 691 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</dd><dt>opened</dt><dd>") | |
| 688 | 692 | if templ_7745c5c3_Err != nil { | |
| 689 | 693 | return templ_7745c5c3_Err | |
| 690 | 694 | } | |
| 691 | 695 | var templ_7745c5c3_Var35 string | |
| 692 | 696 | templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(p.Opened.Name) | |
| 693 | 697 | if templ_7745c5c3_Err != nil { | |
| 694 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 135, Col: 21} | |
| 698 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 136, Col: 21} | |
| 695 | 699 | } | |
| 696 | 700 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35)) | |
| 697 | 701 | if templ_7745c5c3_Err != nil { | |
| 698 | 702 | return templ_7745c5c3_Err | |
| 699 | 703 | } | |
| 700 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, " ") | |
| 704 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, " ") | |
| 701 | 705 | if templ_7745c5c3_Err != nil { | |
| 702 | 706 | return templ_7745c5c3_Err | |
| 703 | 707 | } | |
| @@ -705,98 +709,98 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 705 | 709 | var templ_7745c5c3_Var36 string | |
| 706 | 710 | templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | |
| 707 | 711 | if templ_7745c5c3_Err != nil { | |
| 708 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 137, Col: 15} | |
| 712 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 138, Col: 15} | |
| 709 | 713 | } | |
| 710 | 714 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36)) | |
| 711 | 715 | if templ_7745c5c3_Err != nil { | |
| 712 | 716 | return templ_7745c5c3_Err | |
| 713 | 717 | } | |
| 714 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "<time datetime=\"") | |
| 718 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "<time datetime=\"") | |
| 715 | 719 | if templ_7745c5c3_Err != nil { | |
| 716 | 720 | return templ_7745c5c3_Err | |
| 717 | 721 | } | |
| 718 | 722 | var templ_7745c5c3_Var37 string | |
| 719 | 723 | templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Opened.WhenAt) | |
| 720 | 724 | if templ_7745c5c3_Err != nil { | |
| 721 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 137, Col: 49} | |
| 725 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 138, Col: 49} | |
| 722 | 726 | } | |
| 723 | 727 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var37) | |
| 724 | 728 | if templ_7745c5c3_Err != nil { | |
| 725 | 729 | return templ_7745c5c3_Err | |
| 726 | 730 | } | |
| 727 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "\" title=\"") | |
| 731 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "\" title=\"") | |
| 728 | 732 | if templ_7745c5c3_Err != nil { | |
| 729 | 733 | return templ_7745c5c3_Err | |
| 730 | 734 | } | |
| 731 | 735 | var templ_7745c5c3_Var38 string | |
| 732 | 736 | templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Opened.Abs) | |
| 733 | 737 | if templ_7745c5c3_Err != nil { | |
| 734 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 137, Col: 72} | |
| 738 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 138, Col: 72} | |
| 735 | 739 | } | |
| 736 | 740 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var38) | |
| 737 | 741 | if templ_7745c5c3_Err != nil { | |
| 738 | 742 | return templ_7745c5c3_Err | |
| 739 | 743 | } | |
| 740 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "\">") | |
| 744 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "\">") | |
| 741 | 745 | if templ_7745c5c3_Err != nil { | |
| 742 | 746 | return templ_7745c5c3_Err | |
| 743 | 747 | } | |
| 744 | 748 | var templ_7745c5c3_Var39 string | |
| 745 | 749 | templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinStringErrs(p.Opened.When) | |
| 746 | 750 | if templ_7745c5c3_Err != nil { | |
| 747 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 137, Col: 90} | |
| 751 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 138, Col: 90} | |
| 748 | 752 | } | |
| 749 | 753 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39)) | |
| 750 | 754 | if templ_7745c5c3_Err != nil { | |
| 751 | 755 | return templ_7745c5c3_Err | |
| 752 | 756 | } | |
| 753 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "</time>") | |
| 757 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</time>") | |
| 754 | 758 | if templ_7745c5c3_Err != nil { | |
| 755 | 759 | return templ_7745c5c3_Err | |
| 756 | 760 | } | |
| 757 | 761 | } | |
| 758 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</dd>") | |
| 762 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "</dd>") | |
| 759 | 763 | if templ_7745c5c3_Err != nil { | |
| 760 | 764 | return templ_7745c5c3_Err | |
| 761 | 765 | } | |
| 762 | 766 | if p.UpdatedAt != "" { | |
| 763 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "<dt>updated</dt><dd><time datetime=\"") | |
| 767 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "<dt>updated</dt><dd><time datetime=\"") | |
| 764 | 768 | if templ_7745c5c3_Err != nil { | |
| 765 | 769 | return templ_7745c5c3_Err | |
| 766 | 770 | } | |
| 767 | 771 | var templ_7745c5c3_Var40 string | |
| 768 | 772 | templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.UpdatedAt) | |
| 769 | 773 | if templ_7745c5c3_Err != nil { | |
| 770 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 142, Col: 38} | |
| 774 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 143, Col: 38} | |
| 771 | 775 | } | |
| 772 | 776 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var40) | |
| 773 | 777 | if templ_7745c5c3_Err != nil { | |
| 774 | 778 | return templ_7745c5c3_Err | |
| 775 | 779 | } | |
| 776 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "\">") | |
| 780 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "\">") | |
| 777 | 781 | if templ_7745c5c3_Err != nil { | |
| 778 | 782 | return templ_7745c5c3_Err | |
| 779 | 783 | } | |
| 780 | 784 | var templ_7745c5c3_Var41 string | |
| 781 | 785 | templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(p.Updated) | |
| 782 | 786 | if templ_7745c5c3_Err != nil { | |
| 783 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 142, Col: 52} | |
| 787 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 143, Col: 52} | |
| 784 | 788 | } | |
| 785 | 789 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41)) | |
| 786 | 790 | if templ_7745c5c3_Err != nil { | |
| 787 | 791 | return templ_7745c5c3_Err | |
| 788 | 792 | } | |
| 789 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</time></dd>") | |
| 793 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</time></dd>") | |
| 790 | 794 | if templ_7745c5c3_Err != nil { | |
| 791 | 795 | return templ_7745c5c3_Err | |
| 792 | 796 | } | |
| 793 | 797 | } | |
| 794 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</dl></header>") | |
| 798 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</dl></header>") | |
| 795 | 799 | if templ_7745c5c3_Err != nil { | |
| 796 | 800 | return templ_7745c5c3_Err | |
| 797 | 801 | } | |
| 798 | 802 | if p.Desc != "" { | |
| 799 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "<article class=\"mr-desc prose\" aria-label=\"description\" hx-ignore>") | |
| 803 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "<article class=\"mr-desc prose\" aria-label=\"description\" hx-ignore>") | |
| 800 | 804 | if templ_7745c5c3_Err != nil { | |
| 801 | 805 | return templ_7745c5c3_Err | |
| 802 | 806 | } | |
| @@ -804,7 +808,7 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 804 | 808 | if templ_7745c5c3_Err != nil { | |
| 805 | 809 | return templ_7745c5c3_Err | |
| 806 | 810 | } | |
| 807 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "</article>") | |
| 811 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</article>") | |
| 808 | 812 | if templ_7745c5c3_Err != nil { | |
| 809 | 813 | return templ_7745c5c3_Err | |
| 810 | 814 | } | |
| @@ -813,53 +817,53 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 813 | 817 | if templ_7745c5c3_Err != nil { | |
| 814 | 818 | return templ_7745c5c3_Err | |
| 815 | 819 | } | |
| 816 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</section>") | |
| 820 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "</section>") | |
| 817 | 821 | if templ_7745c5c3_Err != nil { | |
| 818 | 822 | return templ_7745c5c3_Err | |
| 819 | 823 | } | |
| 820 | 824 | if p.Deleting != "" { | |
| 821 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<p class=\"note\" role=\"status\">merged. the branch ") | |
| 825 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "<p class=\"note\" role=\"status\">merged. the branch ") | |
| 822 | 826 | if templ_7745c5c3_Err != nil { | |
| 823 | 827 | return templ_7745c5c3_Err | |
| 824 | 828 | } | |
| 825 | 829 | var templ_7745c5c3_Var42 string | |
| 826 | 830 | templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(p.Deleting) | |
| 827 | 831 | if templ_7745c5c3_Err != nil { | |
| 828 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 154, Col: 64} | |
| 832 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 155, Col: 64} | |
| 829 | 833 | } | |
| 830 | 834 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42)) | |
| 831 | 835 | if templ_7745c5c3_Err != nil { | |
| 832 | 836 | return templ_7745c5c3_Err | |
| 833 | 837 | } | |
| 834 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, " is being deleted.</p>") | |
| 838 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, " is being deleted.</p>") | |
| 835 | 839 | if templ_7745c5c3_Err != nil { | |
| 836 | 840 | return templ_7745c5c3_Err | |
| 837 | 841 | } | |
| 838 | 842 | } | |
| 839 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, " ") | |
| 843 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, " ") | |
| 840 | 844 | if templ_7745c5c3_Err != nil { | |
| 841 | 845 | return templ_7745c5c3_Err | |
| 842 | 846 | } | |
| 843 | 847 | if p.MergeError != "" { | |
| 844 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "<p class=\"d-err\" role=\"alert\">") | |
| 848 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "<p class=\"d-err\" role=\"alert\">") | |
| 845 | 849 | if templ_7745c5c3_Err != nil { | |
| 846 | 850 | return templ_7745c5c3_Err | |
| 847 | 851 | } | |
| 848 | 852 | var templ_7745c5c3_Var43 string | |
| 849 | 853 | templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(p.MergeError) | |
| 850 | 854 | if templ_7745c5c3_Err != nil { | |
| 851 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 157, Col: 47} | |
| 855 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 158, Col: 47} | |
| 852 | 856 | } | |
| 853 | 857 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43)) | |
| 854 | 858 | if templ_7745c5c3_Err != nil { | |
| 855 | 859 | return templ_7745c5c3_Err | |
| 856 | 860 | } | |
| 857 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "</p>") | |
| 861 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "</p>") | |
| 858 | 862 | if templ_7745c5c3_Err != nil { | |
| 859 | 863 | return templ_7745c5c3_Err | |
| 860 | 864 | } | |
| 861 | 865 | } | |
| 862 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, " ") | |
| 866 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, " ") | |
| 863 | 867 | if templ_7745c5c3_Err != nil { | |
| 864 | 868 | return templ_7745c5c3_Err | |
| 865 | 869 | } | |
| @@ -867,131 +871,131 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 867 | 871 | if templ_7745c5c3_Err != nil { | |
| 868 | 872 | return templ_7745c5c3_Err | |
| 869 | 873 | } | |
| 870 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, " <div id=\"mr-range\"") | |
| 874 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, " <div id=\"mr-refresh-status\" role=\"status\" aria-live=\"polite\"></div><div id=\"mr-range\"") | |
| 871 | 875 | if templ_7745c5c3_Err != nil { | |
| 872 | 876 | return templ_7745c5c3_Err | |
| 873 | 877 | } | |
| 874 | 878 | if p.Since == nil && p.SinceNote == "" { | |
| 875 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, " hidden") | |
| 879 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, " hidden") | |
| 876 | 880 | if templ_7745c5c3_Err != nil { | |
| 877 | 881 | return templ_7745c5c3_Err | |
| 878 | 882 | } | |
| 879 | 883 | } | |
| 880 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, ">") | |
| 884 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, ">") | |
| 881 | 885 | if templ_7745c5c3_Err != nil { | |
| 882 | 886 | return templ_7745c5c3_Err | |
| 883 | 887 | } | |
| 884 | 888 | if p.Since != nil { | |
| 885 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "<nav class=\"since\" aria-label=\"Diff range\"><a href=\"") | |
| 889 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "<nav class=\"since\" aria-label=\"Diff range\"><a href=\"") | |
| 886 | 890 | if templ_7745c5c3_Err != nil { | |
| 887 | 891 | return templ_7745c5c3_Err | |
| 888 | 892 | } | |
| 889 | 893 | var templ_7745c5c3_Var44 templ.SafeURL | |
| 890 | 894 | templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Since.AllHref)) | |
| 891 | 895 | if templ_7745c5c3_Err != nil { | |
| 892 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 164, Col: 43} | |
| 896 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 166, Col: 43} | |
| 893 | 897 | } | |
| 894 | 898 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44)) | |
| 895 | 899 | if templ_7745c5c3_Err != nil { | |
| 896 | 900 | return templ_7745c5c3_Err | |
| 897 | 901 | } | |
| 898 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "\"") | |
| 902 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "\"") | |
| 899 | 903 | if templ_7745c5c3_Err != nil { | |
| 900 | 904 | return templ_7745c5c3_Err | |
| 901 | 905 | } | |
| 902 | 906 | if !p.Since.Current { | |
| 903 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, " aria-current=\"page\"") | |
| 907 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, " aria-current=\"page\"") | |
| 904 | 908 | if templ_7745c5c3_Err != nil { | |
| 905 | 909 | return templ_7745c5c3_Err | |
| 906 | 910 | } | |
| 907 | 911 | } | |
| 908 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, ">all changes <span class=\"mute\">vs ") | |
| 912 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, ">all changes <span class=\"mute\">vs ") | |
| 909 | 913 | if templ_7745c5c3_Err != nil { | |
| 910 | 914 | return templ_7745c5c3_Err | |
| 911 | 915 | } | |
| 912 | 916 | var templ_7745c5c3_Var45 string | |
| 913 | 917 | templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 914 | 918 | if templ_7745c5c3_Err != nil { | |
| 915 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 168, Col: 50} | |
| 919 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 170, Col: 50} | |
| 916 | 920 | } | |
| 917 | 921 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45)) | |
| 918 | 922 | if templ_7745c5c3_Err != nil { | |
| 919 | 923 | return templ_7745c5c3_Err | |
| 920 | 924 | } | |
| 921 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "</span></a> <a href=\"") | |
| 925 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "</span></a> <a href=\"") | |
| 922 | 926 | if templ_7745c5c3_Err != nil { | |
| 923 | 927 | return templ_7745c5c3_Err | |
| 924 | 928 | } | |
| 925 | 929 | var templ_7745c5c3_Var46 templ.SafeURL | |
| 926 | 930 | templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Since.SinceHref)) | |
| 927 | 931 | if templ_7745c5c3_Err != nil { | |
| 928 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 170, Col: 45} | |
| 932 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 172, Col: 45} | |
| 929 | 933 | } | |
| 930 | 934 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46)) | |
| 931 | 935 | if templ_7745c5c3_Err != nil { | |
| 932 | 936 | return templ_7745c5c3_Err | |
| 933 | 937 | } | |
| 934 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "\"") | |
| 938 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "\"") | |
| 935 | 939 | if templ_7745c5c3_Err != nil { | |
| 936 | 940 | return templ_7745c5c3_Err | |
| 937 | 941 | } | |
| 938 | 942 | if p.Since.Current { | |
| 939 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, " aria-current=\"page\"") | |
| 943 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, " aria-current=\"page\"") | |
| 940 | 944 | if templ_7745c5c3_Err != nil { | |
| 941 | 945 | return templ_7745c5c3_Err | |
| 942 | 946 | } | |
| 943 | 947 | } | |
| 944 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, ">since your last read <span class=\"mute\">") | |
| 948 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, ">since your last read <span class=\"mute\">") | |
| 945 | 949 | if templ_7745c5c3_Err != nil { | |
| 946 | 950 | return templ_7745c5c3_Err | |
| 947 | 951 | } | |
| 948 | 952 | var templ_7745c5c3_Var47 string | |
| 949 | 953 | templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinStringErrs(p.Since.ReadShort) | |
| 950 | 954 | if templ_7745c5c3_Err != nil { | |
| 951 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 174, Col: 65} | |
| 955 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 176, Col: 65} | |
| 952 | 956 | } | |
| 953 | 957 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47)) | |
| 954 | 958 | if templ_7745c5c3_Err != nil { | |
| 955 | 959 | return templ_7745c5c3_Err | |
| 956 | 960 | } | |
| 957 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, " → ") | |
| 961 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, " → ") | |
| 958 | 962 | if templ_7745c5c3_Err != nil { | |
| 959 | 963 | return templ_7745c5c3_Err | |
| 960 | 964 | } | |
| 961 | 965 | var templ_7745c5c3_Var48 string | |
| 962 | 966 | templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(p.Since.HeadShort) | |
| 963 | 967 | if templ_7745c5c3_Err != nil { | |
| 964 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 174, Col: 91} | |
| 968 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 176, Col: 91} | |
| 965 | 969 | } | |
| 966 | 970 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48)) | |
| 967 | 971 | if templ_7745c5c3_Err != nil { | |
| 968 | 972 | return templ_7745c5c3_Err | |
| 969 | 973 | } | |
| 970 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "</span></a></nav>") | |
| 974 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "</span></a></nav>") | |
| 971 | 975 | if templ_7745c5c3_Err != nil { | |
| 972 | 976 | return templ_7745c5c3_Err | |
| 973 | 977 | } | |
| 974 | 978 | } | |
| 975 | 979 | if p.SinceNote != "" { | |
| 976 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "<p class=\"notice\">") | |
| 980 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "<p class=\"notice\">") | |
| 977 | 981 | if templ_7745c5c3_Err != nil { | |
| 978 | 982 | return templ_7745c5c3_Err | |
| 979 | 983 | } | |
| 980 | 984 | var templ_7745c5c3_Var49 string | |
| 981 | 985 | templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(p.SinceNote) | |
| 982 | 986 | if templ_7745c5c3_Err != nil { | |
| 983 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 178, Col: 35} | |
| 987 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 180, Col: 35} | |
| 984 | 988 | } | |
| 985 | 989 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49)) | |
| 986 | 990 | if templ_7745c5c3_Err != nil { | |
| 987 | 991 | return templ_7745c5c3_Err | |
| 988 | 992 | } | |
| 989 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "</p>") | |
| 993 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "</p>") | |
| 990 | 994 | if templ_7745c5c3_Err != nil { | |
| 991 | 995 | return templ_7745c5c3_Err | |
| 992 | 996 | } | |
| 993 | 997 | } | |
| 994 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "</div>") | |
| 998 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "</div>") | |
| 995 | 999 | if templ_7745c5c3_Err != nil { | |
| 996 | 1000 | return templ_7745c5c3_Err | |
| 997 | 1001 | } | |
| @@ -999,112 +1003,112 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 999 | 1003 | if templ_7745c5c3_Err != nil { | |
| 1000 | 1004 | return templ_7745c5c3_Err | |
| 1001 | 1005 | } | |
| 1002 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, " <div id=\"mr-diff-notices\"") | |
| 1006 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, " <div id=\"mr-diff-notices\"") | |
| 1003 | 1007 | if templ_7745c5c3_Err != nil { | |
| 1004 | 1008 | return templ_7745c5c3_Err | |
| 1005 | 1009 | } | |
| 1006 | 1010 | if !p.Invisible && p.Note == "" { | |
| 1007 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, " hidden") | |
| 1011 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, " hidden") | |
| 1008 | 1012 | if templ_7745c5c3_Err != nil { | |
| 1009 | 1013 | return templ_7745c5c3_Err | |
| 1010 | 1014 | } | |
| 1011 | 1015 | } | |
| 1012 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, ">") | |
| 1016 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, ">") | |
| 1013 | 1017 | if templ_7745c5c3_Err != nil { | |
| 1014 | 1018 | return templ_7745c5c3_Err | |
| 1015 | 1019 | } | |
| 1016 | 1020 | if p.Invisible { | |
| 1017 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>") | |
| 1021 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>") | |
| 1018 | 1022 | if templ_7745c5c3_Err != nil { | |
| 1019 | 1023 | return templ_7745c5c3_Err | |
| 1020 | 1024 | } | |
| 1021 | 1025 | } | |
| 1022 | 1026 | if p.Note != "" { | |
| 1023 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "<p class=\"notice\">") | |
| 1027 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "<p class=\"notice\">") | |
| 1024 | 1028 | if templ_7745c5c3_Err != nil { | |
| 1025 | 1029 | return templ_7745c5c3_Err | |
| 1026 | 1030 | } | |
| 1027 | 1031 | var templ_7745c5c3_Var50 string | |
| 1028 | 1032 | templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | |
| 1029 | 1033 | if templ_7745c5c3_Err != nil { | |
| 1030 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 190, Col: 30} | |
| 1034 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 192, Col: 30} | |
| 1031 | 1035 | } | |
| 1032 | 1036 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50)) | |
| 1033 | 1037 | if templ_7745c5c3_Err != nil { | |
| 1034 | 1038 | return templ_7745c5c3_Err | |
| 1035 | 1039 | } | |
| 1036 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "</p>") | |
| 1040 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "</p>") | |
| 1037 | 1041 | if templ_7745c5c3_Err != nil { | |
| 1038 | 1042 | return templ_7745c5c3_Err | |
| 1039 | 1043 | } | |
| 1040 | 1044 | } | |
| 1041 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "</div><div id=\"diffs\" data-mr") | |
| 1045 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, "</div><div id=\"diffs\" data-mr") | |
| 1042 | 1046 | if templ_7745c5c3_Err != nil { | |
| 1043 | 1047 | return templ_7745c5c3_Err | |
| 1044 | 1048 | } | |
| 1045 | 1049 | if p.Canonical != "" { | |
| 1046 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, " data-canonical=\"") | |
| 1050 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, " data-canonical=\"") | |
| 1047 | 1051 | if templ_7745c5c3_Err != nil { | |
| 1048 | 1052 | return templ_7745c5c3_Err | |
| 1049 | 1053 | } | |
| 1050 | 1054 | var templ_7745c5c3_Var51 string | |
| 1051 | 1055 | templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Canonical) | |
| 1052 | 1056 | if templ_7745c5c3_Err != nil { | |
| 1053 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 197, Col: 32} | |
| 1057 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 199, Col: 32} | |
| 1054 | 1058 | } | |
| 1055 | 1059 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var51) | |
| 1056 | 1060 | if templ_7745c5c3_Err != nil { | |
| 1057 | 1061 | return templ_7745c5c3_Err | |
| 1058 | 1062 | } | |
| 1059 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "\"") | |
| 1063 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, "\"") | |
| 1060 | 1064 | if templ_7745c5c3_Err != nil { | |
| 1061 | 1065 | return templ_7745c5c3_Err | |
| 1062 | 1066 | } | |
| 1063 | 1067 | } | |
| 1064 | 1068 | if p.Both { | |
| 1065 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, " data-diff=\"") | |
| 1069 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, " data-diff=\"") | |
| 1066 | 1070 | if templ_7745c5c3_Err != nil { | |
| 1067 | 1071 | return templ_7745c5c3_Err | |
| 1068 | 1072 | } | |
| 1069 | 1073 | var templ_7745c5c3_Var52 string | |
| 1070 | 1074 | templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | |
| 1071 | 1075 | if templ_7745c5c3_Err != nil { | |
| 1072 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 200, Col: 22} | |
| 1076 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 202, Col: 22} | |
| 1073 | 1077 | } | |
| 1074 | 1078 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var52) | |
| 1075 | 1079 | if templ_7745c5c3_Err != nil { | |
| 1076 | 1080 | return templ_7745c5c3_Err | |
| 1077 | 1081 | } | |
| 1078 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "\"") | |
| 1082 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "\"") | |
| 1079 | 1083 | if templ_7745c5c3_Err != nil { | |
| 1080 | 1084 | return templ_7745c5c3_Err | |
| 1081 | 1085 | } | |
| 1082 | 1086 | } else { | |
| 1083 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, " data-view=\"") | |
| 1087 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, " data-view=\"") | |
| 1084 | 1088 | if templ_7745c5c3_Err != nil { | |
| 1085 | 1089 | return templ_7745c5c3_Err | |
| 1086 | 1090 | } | |
| 1087 | 1091 | var templ_7745c5c3_Var53 string | |
| 1088 | 1092 | templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | |
| 1089 | 1093 | if templ_7745c5c3_Err != nil { | |
| 1090 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 202, Col: 22} | |
| 1094 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 204, Col: 22} | |
| 1091 | 1095 | } | |
| 1092 | 1096 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var53) | |
| 1093 | 1097 | if templ_7745c5c3_Err != nil { | |
| 1094 | 1098 | return templ_7745c5c3_Err | |
| 1095 | 1099 | } | |
| 1096 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "\"") | |
| 1100 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "\"") | |
| 1097 | 1101 | if templ_7745c5c3_Err != nil { | |
| 1098 | 1102 | return templ_7745c5c3_Err | |
| 1099 | 1103 | } | |
| 1100 | 1104 | } | |
| 1101 | 1105 | if p.Both && !p.Pinned { | |
| 1102 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"") | |
| 1106 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"") | |
| 1103 | 1107 | if templ_7745c5c3_Err != nil { | |
| 1104 | 1108 | return templ_7745c5c3_Err | |
| 1105 | 1109 | } | |
| 1106 | 1110 | } | |
| 1107 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, ">") | |
| 1111 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, ">") | |
| 1108 | 1112 | if templ_7745c5c3_Err != nil { | |
| 1109 | 1113 | return templ_7745c5c3_Err | |
| 1110 | 1114 | } | |
| @@ -1115,38 +1119,38 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 1115 | 1119 | } | |
| 1116 | 1120 | } | |
| 1117 | 1121 | if len(p.Files) == 0 { | |
| 1118 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "<p class=\"note\">no changed files.</p>") | |
| 1122 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "<p class=\"note\">no changed files.</p>") | |
| 1119 | 1123 | if templ_7745c5c3_Err != nil { | |
| 1120 | 1124 | return templ_7745c5c3_Err | |
| 1121 | 1125 | } | |
| 1122 | 1126 | } | |
| 1123 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "</div><h2 class=\"rule-h\" id=\"comments\"><span>Comments</span><span class=\"count\">") | |
| 1127 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "</div><div id=\"mr-comments\"><h2 class=\"rule-h\" id=\"comments\"><span>Comments</span><span class=\"count\">") | |
| 1124 | 1128 | if templ_7745c5c3_Err != nil { | |
| 1125 | 1129 | return templ_7745c5c3_Err | |
| 1126 | 1130 | } | |
| 1127 | 1131 | var templ_7745c5c3_Var54 string | |
| 1128 | 1132 | templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NUnresolved)) | |
| 1129 | 1133 | if templ_7745c5c3_Err != nil { | |
| 1130 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 215, Col: 97} | |
| 1134 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 218, Col: 97} | |
| 1131 | 1135 | } | |
| 1132 | 1136 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54)) | |
| 1133 | 1137 | if templ_7745c5c3_Err != nil { | |
| 1134 | 1138 | return templ_7745c5c3_Err | |
| 1135 | 1139 | } | |
| 1136 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, " open / ") | |
| 1140 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, " open / ") | |
| 1137 | 1141 | if templ_7745c5c3_Err != nil { | |
| 1138 | 1142 | return templ_7745c5c3_Err | |
| 1139 | 1143 | } | |
| 1140 | 1144 | var templ_7745c5c3_Var55 string | |
| 1141 | 1145 | templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NComments)) | |
| 1142 | 1146 | if templ_7745c5c3_Err != nil { | |
| 1143 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 215, Col: 126} | |
| 1147 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 218, Col: 126} | |
| 1144 | 1148 | } | |
| 1145 | 1149 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55)) | |
| 1146 | 1150 | if templ_7745c5c3_Err != nil { | |
| 1147 | 1151 | return templ_7745c5c3_Err | |
| 1148 | 1152 | } | |
| 1149 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "</span></h2>") | |
| 1153 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "</span></h2>") | |
| 1150 | 1154 | if templ_7745c5c3_Err != nil { | |
| 1151 | 1155 | return templ_7745c5c3_Err | |
| 1152 | 1156 | } | |
| @@ -1162,26 +1166,22 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||
| 1162 | 1166 | return templ_7745c5c3_Err | |
| 1163 | 1167 | } | |
| 1164 | 1168 | } | |
| 1165 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, " ") | |
| 1166 | - | if templ_7745c5c3_Err != nil { | |
| 1167 | - | return templ_7745c5c3_Err | |
| 1168 | - | } | |
| 1169 | 1169 | if p.NComments == 0 { | |
| 1170 | 1170 | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "<p class=\"dim\">no comments yet.</p>") | |
| 1171 | 1171 | if templ_7745c5c3_Err != nil { | |
| 1172 | 1172 | return templ_7745c5c3_Err | |
| 1173 | 1173 | } | |
| 1174 | 1174 | } | |
| 1175 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, " ") | |
| 1176 | - | if templ_7745c5c3_Err != nil { | |
| 1177 | - | return templ_7745c5c3_Err | |
| 1178 | - | } | |
| 1179 | 1175 | if p.GeneralForm != nil { | |
| 1180 | 1176 | templ_7745c5c3_Err = commentForm(*p.GeneralForm, "").Render(ctx, templ_7745c5c3_Buffer) | |
| 1181 | 1177 | if templ_7745c5c3_Err != nil { | |
| 1182 | 1178 | return templ_7745c5c3_Err | |
| 1183 | 1179 | } | |
| 1184 | 1180 | } | |
| 1181 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "</div>") | |
| 1182 | + | if templ_7745c5c3_Err != nil { | |
| 1183 | + | return templ_7745c5c3_Err | |
| 1184 | + | } | |
| 1185 | 1185 | return nil | |
| 1186 | 1186 | }) | |
| 1187 | 1187 | templ_7745c5c3_Err = Shell(l, mrRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var25), templ_7745c5c3_Buffer) | |
| @@ -1221,7 +1221,7 @@ func branchLink(name, href string) templ.Component { | |||
| 1221 | 1221 | var templ_7745c5c3_Var57 templ.SafeURL | |
| 1222 | 1222 | templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href)) | |
| 1223 | 1223 | if templ_7745c5c3_Err != nil { | |
| 1224 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 233, Col: 31} | |
| 1224 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 237, Col: 31} | |
| 1225 | 1225 | } | |
| 1226 | 1226 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57)) | |
| 1227 | 1227 | if templ_7745c5c3_Err != nil { | |
| @@ -1234,7 +1234,7 @@ func branchLink(name, href string) templ.Component { | |||
| 1234 | 1234 | var templ_7745c5c3_Var58 string | |
| 1235 | 1235 | templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(name) | |
| 1236 | 1236 | if templ_7745c5c3_Err != nil { | |
| 1237 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 233, Col: 40} | |
| 1237 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 237, Col: 40} | |
| 1238 | 1238 | } | |
| 1239 | 1239 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58)) | |
| 1240 | 1240 | if templ_7745c5c3_Err != nil { | |
| @@ -1248,7 +1248,7 @@ func branchLink(name, href string) templ.Component { | |||
| 1248 | 1248 | var templ_7745c5c3_Var59 string | |
| 1249 | 1249 | templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinStringErrs(name) | |
| 1250 | 1250 | if templ_7745c5c3_Err != nil { | |
| 1251 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 235, Col: 8} | |
| 1251 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 239, Col: 8} | |
| 1252 | 1252 | } | |
| 1253 | 1253 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59)) | |
| 1254 | 1254 | if templ_7745c5c3_Err != nil { | |
| @@ -1329,7 +1329,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1329 | 1329 | var templ_7745c5c3_Var62 string | |
| 1330 | 1330 | templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.ResolveAttributeValue("c" + c.ID + suffix) | |
| 1331 | 1331 | if templ_7745c5c3_Err != nil { | |
| 1332 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 254, Col: 42} | |
| 1332 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 42} | |
| 1333 | 1333 | } | |
| 1334 | 1334 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var62) | |
| 1335 | 1335 | if templ_7745c5c3_Err != nil { | |
| @@ -1342,7 +1342,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1342 | 1342 | var templ_7745c5c3_Var63 string | |
| 1343 | 1343 | templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolved)) | |
| 1344 | 1344 | if templ_7745c5c3_Err != nil { | |
| 1345 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 254, Col: 81} | |
| 1345 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 81} | |
| 1346 | 1346 | } | |
| 1347 | 1347 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var63) | |
| 1348 | 1348 | if templ_7745c5c3_Err != nil { | |
| @@ -1365,7 +1365,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1365 | 1365 | var templ_7745c5c3_Var64 string | |
| 1366 | 1366 | templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | |
| 1367 | 1367 | if templ_7745c5c3_Err != nil { | |
| 1368 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 256, Col: 33} | |
| 1368 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 260, Col: 33} | |
| 1369 | 1369 | } | |
| 1370 | 1370 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64)) | |
| 1371 | 1371 | if templ_7745c5c3_Err != nil { | |
| @@ -1379,7 +1379,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1379 | 1379 | var templ_7745c5c3_Var65 string | |
| 1380 | 1380 | templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | |
| 1381 | 1381 | if templ_7745c5c3_Err != nil { | |
| 1382 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 9} | |
| 1382 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 262, Col: 9} | |
| 1383 | 1383 | } | |
| 1384 | 1384 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65)) | |
| 1385 | 1385 | if templ_7745c5c3_Err != nil { | |
| @@ -1392,7 +1392,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1392 | 1392 | var templ_7745c5c3_Var66 string | |
| 1393 | 1393 | templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | |
| 1394 | 1394 | if templ_7745c5c3_Err != nil { | |
| 1395 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 49} | |
| 1395 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 262, Col: 49} | |
| 1396 | 1396 | } | |
| 1397 | 1397 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66) | |
| 1398 | 1398 | if templ_7745c5c3_Err != nil { | |
| @@ -1405,7 +1405,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1405 | 1405 | var templ_7745c5c3_Var67 string | |
| 1406 | 1406 | templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Abs) | |
| 1407 | 1407 | if templ_7745c5c3_Err != nil { | |
| 1408 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 65} | |
| 1408 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 262, Col: 65} | |
| 1409 | 1409 | } | |
| 1410 | 1410 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var67) | |
| 1411 | 1411 | if templ_7745c5c3_Err != nil { | |
| @@ -1418,7 +1418,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1418 | 1418 | var templ_7745c5c3_Var68 string | |
| 1419 | 1419 | templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | |
| 1420 | 1420 | if templ_7745c5c3_Err != nil { | |
| 1421 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 76} | |
| 1421 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 262, Col: 76} | |
| 1422 | 1422 | } | |
| 1423 | 1423 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68)) | |
| 1424 | 1424 | if templ_7745c5c3_Err != nil { | |
| @@ -1433,7 +1433,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1433 | 1433 | var templ_7745c5c3_Var69 string | |
| 1434 | 1434 | templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | |
| 1435 | 1435 | if templ_7745c5c3_Err != nil { | |
| 1436 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 261, Col: 9} | |
| 1436 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 265, Col: 9} | |
| 1437 | 1437 | } | |
| 1438 | 1438 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var69)) | |
| 1439 | 1439 | if templ_7745c5c3_Err != nil { | |
| @@ -1448,7 +1448,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1448 | 1448 | var templ_7745c5c3_Var70 string | |
| 1449 | 1449 | templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | |
| 1450 | 1450 | if templ_7745c5c3_Err != nil { | |
| 1451 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 264, Col: 9} | |
| 1451 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 268, Col: 9} | |
| 1452 | 1452 | } | |
| 1453 | 1453 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70)) | |
| 1454 | 1454 | if templ_7745c5c3_Err != nil { | |
| @@ -1463,7 +1463,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1463 | 1463 | var templ_7745c5c3_Var71 string | |
| 1464 | 1464 | templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | |
| 1465 | 1465 | if templ_7745c5c3_Err != nil { | |
| 1466 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 267, Col: 9} | |
| 1466 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 271, Col: 9} | |
| 1467 | 1467 | } | |
| 1468 | 1468 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71)) | |
| 1469 | 1469 | if templ_7745c5c3_Err != nil { | |
| @@ -1476,7 +1476,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1476 | 1476 | var templ_7745c5c3_Var72 string | |
| 1477 | 1477 | templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(c.Where) | |
| 1478 | 1478 | if templ_7745c5c3_Err != nil { | |
| 1479 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 267, Col: 47} | |
| 1479 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 271, Col: 47} | |
| 1480 | 1480 | } | |
| 1481 | 1481 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72)) | |
| 1482 | 1482 | if templ_7745c5c3_Err != nil { | |
| @@ -1551,7 +1551,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1551 | 1551 | var templ_7745c5c3_Var73 string | |
| 1552 | 1552 | templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict) | |
| 1553 | 1553 | if templ_7745c5c3_Err != nil { | |
| 1554 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 291, Col: 36} | |
| 1554 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 295, Col: 36} | |
| 1555 | 1555 | } | |
| 1556 | 1556 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73)) | |
| 1557 | 1557 | if templ_7745c5c3_Err != nil { | |
| @@ -1570,7 +1570,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1570 | 1570 | var templ_7745c5c3_Var74 string | |
| 1571 | 1571 | templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range) | |
| 1572 | 1572 | if templ_7745c5c3_Err != nil { | |
| 1573 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 294, Col: 31} | |
| 1573 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 298, Col: 31} | |
| 1574 | 1574 | } | |
| 1575 | 1575 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var74)) | |
| 1576 | 1576 | if templ_7745c5c3_Err != nil { | |
| @@ -1589,7 +1589,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1589 | 1589 | var templ_7745c5c3_Var75 string | |
| 1590 | 1590 | templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote) | |
| 1591 | 1591 | if templ_7745c5c3_Err != nil { | |
| 1592 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 297, Col: 65} | |
| 1592 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 301, Col: 65} | |
| 1593 | 1593 | } | |
| 1594 | 1594 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var75) | |
| 1595 | 1595 | if templ_7745c5c3_Err != nil { | |
| @@ -1608,7 +1608,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1608 | 1608 | var templ_7745c5c3_Var76 templ.SafeURL | |
| 1609 | 1609 | templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action)) | |
| 1610 | 1610 | if templ_7745c5c3_Err != nil { | |
| 1611 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 300, Col: 92} | |
| 1611 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 92} | |
| 1612 | 1612 | } | |
| 1613 | 1613 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var76)) | |
| 1614 | 1614 | if templ_7745c5c3_Err != nil { | |
| @@ -1621,7 +1621,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1621 | 1621 | var templ_7745c5c3_Var77 string | |
| 1622 | 1622 | templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From)) | |
| 1623 | 1623 | if templ_7745c5c3_Err != nil { | |
| 1624 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 300, Col: 153} | |
| 1624 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 153} | |
| 1625 | 1625 | } | |
| 1626 | 1626 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var77) | |
| 1627 | 1627 | if templ_7745c5c3_Err != nil { | |
| @@ -1634,7 +1634,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1634 | 1634 | var templ_7745c5c3_Var78 string | |
| 1635 | 1635 | templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text) | |
| 1636 | 1636 | if templ_7745c5c3_Err != nil { | |
| 1637 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 300, Col: 209} | |
| 1637 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 209} | |
| 1638 | 1638 | } | |
| 1639 | 1639 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78)) | |
| 1640 | 1640 | if templ_7745c5c3_Err != nil { | |
| @@ -1653,7 +1653,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1653 | 1653 | var templ_7745c5c3_Var79 templ.SafeURL | |
| 1654 | 1654 | templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action)) | |
| 1655 | 1655 | if templ_7745c5c3_Err != nil { | |
| 1656 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 303, Col: 96} | |
| 1656 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 307, Col: 96} | |
| 1657 | 1657 | } | |
| 1658 | 1658 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var79)) | |
| 1659 | 1659 | if templ_7745c5c3_Err != nil { | |
| @@ -1666,7 +1666,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1666 | 1666 | var templ_7745c5c3_Var80 string | |
| 1667 | 1667 | templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From)) | |
| 1668 | 1668 | if templ_7745c5c3_Err != nil { | |
| 1669 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 303, Col: 159} | |
| 1669 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 307, Col: 159} | |
| 1670 | 1670 | } | |
| 1671 | 1671 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80) | |
| 1672 | 1672 | if templ_7745c5c3_Err != nil { | |
| @@ -1705,7 +1705,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1705 | 1705 | var templ_7745c5c3_Var81 templ.SafeURL | |
| 1706 | 1706 | templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action)) | |
| 1707 | 1707 | if templ_7745c5c3_Err != nil { | |
| 1708 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 314, Col: 77} | |
| 1708 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 77} | |
| 1709 | 1709 | } | |
| 1710 | 1710 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81)) | |
| 1711 | 1711 | if templ_7745c5c3_Err != nil { | |
| @@ -1718,7 +1718,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1718 | 1718 | var templ_7745c5c3_Var82 string | |
| 1719 | 1719 | templ_7745c5c3_Var82, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value)) | |
| 1720 | 1720 | if templ_7745c5c3_Err != nil { | |
| 1721 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 315, Col: 74} | |
| 1721 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 319, Col: 74} | |
| 1722 | 1722 | } | |
| 1723 | 1723 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var82) | |
| 1724 | 1724 | if templ_7745c5c3_Err != nil { | |
| @@ -1736,7 +1736,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1736 | 1736 | var templ_7745c5c3_Var83 string | |
| 1737 | 1737 | templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From)) | |
| 1738 | 1738 | if templ_7745c5c3_Err != nil { | |
| 1739 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 317, Col: 66} | |
| 1739 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 321, Col: 66} | |
| 1740 | 1740 | } | |
| 1741 | 1741 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var83) | |
| 1742 | 1742 | if templ_7745c5c3_Err != nil { | |
| @@ -1754,7 +1754,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||
| 1754 | 1754 | var templ_7745c5c3_Var84 string | |
| 1755 | 1755 | templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label) | |
| 1756 | 1756 | if templ_7745c5c3_Err != nil { | |
| 1757 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 319, Col: 55} | |
| 1757 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 55} | |
| 1758 | 1758 | } | |
| 1759 | 1759 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var84)) | |
| 1760 | 1760 | if templ_7745c5c3_Err != nil { | |
| @@ -1809,7 +1809,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1809 | 1809 | var templ_7745c5c3_Var86 templ.SafeURL | |
| 1810 | 1810 | templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action)) | |
| 1811 | 1811 | if templ_7745c5c3_Err != nil { | |
| 1812 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 334, Col: 67} | |
| 1812 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 338, Col: 67} | |
| 1813 | 1813 | } | |
| 1814 | 1814 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86)) | |
| 1815 | 1815 | if templ_7745c5c3_Err != nil { | |
| @@ -1822,7 +1822,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1822 | 1822 | var templ_7745c5c3_Var87 string | |
| 1823 | 1823 | templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | |
| 1824 | 1824 | if templ_7745c5c3_Err != nil { | |
| 1825 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 335, Col: 28} | |
| 1825 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 339, Col: 28} | |
| 1826 | 1826 | } | |
| 1827 | 1827 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var87) | |
| 1828 | 1828 | if templ_7745c5c3_Err != nil { | |
| @@ -1835,7 +1835,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1835 | 1835 | var templ_7745c5c3_Var88 string | |
| 1836 | 1836 | templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title) | |
| 1837 | 1837 | if templ_7745c5c3_Err != nil { | |
| 1838 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 335, Col: 40} | |
| 1838 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 339, Col: 40} | |
| 1839 | 1839 | } | |
| 1840 | 1840 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var88)) | |
| 1841 | 1841 | if templ_7745c5c3_Err != nil { | |
| @@ -1848,7 +1848,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1848 | 1848 | var templ_7745c5c3_Var89 string | |
| 1849 | 1849 | templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | |
| 1850 | 1850 | if templ_7745c5c3_Err != nil { | |
| 1851 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 337, Col: 21} | |
| 1851 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 341, Col: 21} | |
| 1852 | 1852 | } | |
| 1853 | 1853 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89) | |
| 1854 | 1854 | if templ_7745c5c3_Err != nil { | |
| @@ -1887,7 +1887,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1887 | 1887 | var templ_7745c5c3_Var90 string | |
| 1888 | 1888 | templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path) | |
| 1889 | 1889 | if templ_7745c5c3_Err != nil { | |
| 1890 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 352, Col: 50} | |
| 1890 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 356, Col: 50} | |
| 1891 | 1891 | } | |
| 1892 | 1892 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90) | |
| 1893 | 1893 | if templ_7745c5c3_Err != nil { | |
| @@ -1900,7 +1900,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1900 | 1900 | var templ_7745c5c3_Var91 string | |
| 1901 | 1901 | templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line) | |
| 1902 | 1902 | if templ_7745c5c3_Err != nil { | |
| 1903 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 353, Col: 50} | |
| 1903 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 357, Col: 50} | |
| 1904 | 1904 | } | |
| 1905 | 1905 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91) | |
| 1906 | 1906 | if templ_7745c5c3_Err != nil { | |
| @@ -1913,7 +1913,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1913 | 1913 | var templ_7745c5c3_Var92 string | |
| 1914 | 1914 | templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side) | |
| 1915 | 1915 | if templ_7745c5c3_Err != nil { | |
| 1916 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 354, Col: 50} | |
| 1916 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 358, Col: 50} | |
| 1917 | 1917 | } | |
| 1918 | 1918 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) | |
| 1919 | 1919 | if templ_7745c5c3_Err != nil { | |
| @@ -1926,7 +1926,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1926 | 1926 | var templ_7745c5c3_Var93 string | |
| 1927 | 1927 | templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine) | |
| 1928 | 1928 | if templ_7745c5c3_Err != nil { | |
| 1929 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 355, Col: 86} | |
| 1929 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 359, Col: 86} | |
| 1930 | 1930 | } | |
| 1931 | 1931 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var93) | |
| 1932 | 1932 | if templ_7745c5c3_Err != nil { | |
| @@ -1945,7 +1945,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1945 | 1945 | var templ_7745c5c3_Var94 string | |
| 1946 | 1946 | templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo) | |
| 1947 | 1947 | if templ_7745c5c3_Err != nil { | |
| 1948 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 358, Col: 57} | |
| 1948 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 362, Col: 57} | |
| 1949 | 1949 | } | |
| 1950 | 1950 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var94) | |
| 1951 | 1951 | if templ_7745c5c3_Err != nil { | |
| @@ -1970,7 +1970,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1970 | 1970 | var templ_7745c5c3_Var95 string | |
| 1971 | 1971 | templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From)) | |
| 1972 | 1972 | if templ_7745c5c3_Err != nil { | |
| 1973 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 364, Col: 56} | |
| 1973 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 368, Col: 56} | |
| 1974 | 1974 | } | |
| 1975 | 1975 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var95) | |
| 1976 | 1976 | if templ_7745c5c3_Err != nil { | |
| @@ -1993,7 +1993,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||
| 1993 | 1993 | var templ_7745c5c3_Var96 templ.SafeURL | |
| 1994 | 1994 | templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel)) | |
| 1995 | 1995 | if templ_7745c5c3_Err != nil { | |
| 1996 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 369, Col: 49} | |
| 1996 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 373, Col: 49} | |
| 1997 | 1997 | } | |
| 1998 | 1998 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) | |
| 1999 | 1999 | if templ_7745c5c3_Err != nil { | |
| @@ -2040,7 +2040,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2040 | 2040 | var templ_7745c5c3_Var98 string | |
| 2041 | 2041 | templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitCount) | |
| 2042 | 2042 | if templ_7745c5c3_Err != nil { | |
| 2043 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 378, Col: 55} | |
| 2043 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 382, Col: 55} | |
| 2044 | 2044 | } | |
| 2045 | 2045 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98)) | |
| 2046 | 2046 | if templ_7745c5c3_Err != nil { | |
| @@ -2053,7 +2053,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2053 | 2053 | var templ_7745c5c3_Var99 string | |
| 2054 | 2054 | templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitCount) | |
| 2055 | 2055 | if templ_7745c5c3_Err != nil { | |
| 2056 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 380, Col: 89} | |
| 2056 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 384, Col: 89} | |
| 2057 | 2057 | } | |
| 2058 | 2058 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99)) | |
| 2059 | 2059 | if templ_7745c5c3_Err != nil { | |
| @@ -2066,7 +2066,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2066 | 2066 | var templ_7745c5c3_Var100 string | |
| 2067 | 2067 | templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs("Checks ") | |
| 2068 | 2068 | if templ_7745c5c3_Err != nil { | |
| 2069 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 382, Col: 16} | |
| 2069 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 386, Col: 16} | |
| 2070 | 2070 | } | |
| 2071 | 2071 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100)) | |
| 2072 | 2072 | if templ_7745c5c3_Err != nil { | |
| @@ -2080,7 +2080,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2080 | 2080 | var templ_7745c5c3_Var101 string | |
| 2081 | 2081 | templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(p.ChecksSum.Title) | |
| 2082 | 2082 | if templ_7745c5c3_Err != nil { | |
| 2083 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 385, Col: 26} | |
| 2083 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 389, Col: 26} | |
| 2084 | 2084 | } | |
| 2085 | 2085 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101)) | |
| 2086 | 2086 | if templ_7745c5c3_Err != nil { | |
| @@ -2114,7 +2114,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2114 | 2114 | var templ_7745c5c3_Var102 templ.SafeURL | |
| 2115 | 2115 | templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) | |
| 2116 | 2116 | if templ_7745c5c3_Err != nil { | |
| 2117 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 398, Col: 43} | |
| 2117 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 402, Col: 43} | |
| 2118 | 2118 | } | |
| 2119 | 2119 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) | |
| 2120 | 2120 | if templ_7745c5c3_Err != nil { | |
| @@ -2127,7 +2127,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2127 | 2127 | var templ_7745c5c3_Var103 string | |
| 2128 | 2128 | templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | |
| 2129 | 2129 | if templ_7745c5c3_Err != nil { | |
| 2130 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 398, Col: 55} | |
| 2130 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 402, Col: 55} | |
| 2131 | 2131 | } | |
| 2132 | 2132 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) | |
| 2133 | 2133 | if templ_7745c5c3_Err != nil { | |
| @@ -2140,7 +2140,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2140 | 2140 | var templ_7745c5c3_Var104 string | |
| 2141 | 2141 | templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | |
| 2142 | 2142 | if templ_7745c5c3_Err != nil { | |
| 2143 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 399, Col: 23} | |
| 2143 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 23} | |
| 2144 | 2144 | } | |
| 2145 | 2145 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) | |
| 2146 | 2146 | if templ_7745c5c3_Err != nil { | |
| @@ -2153,7 +2153,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2153 | 2153 | var templ_7745c5c3_Var105 string | |
| 2154 | 2154 | templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | |
| 2155 | 2155 | if templ_7745c5c3_Err != nil { | |
| 2156 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 400, Col: 22} | |
| 2156 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 404, Col: 22} | |
| 2157 | 2157 | } | |
| 2158 | 2158 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105)) | |
| 2159 | 2159 | if templ_7745c5c3_Err != nil { | |
| @@ -2171,7 +2171,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2171 | 2171 | var templ_7745c5c3_Var106 string | |
| 2172 | 2172 | templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | |
| 2173 | 2173 | if templ_7745c5c3_Err != nil { | |
| 2174 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 35} | |
| 2174 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 407, Col: 35} | |
| 2175 | 2175 | } | |
| 2176 | 2176 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var106) | |
| 2177 | 2177 | if templ_7745c5c3_Err != nil { | |
| @@ -2184,7 +2184,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2184 | 2184 | var templ_7745c5c3_Var107 string | |
| 2185 | 2185 | templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | |
| 2186 | 2186 | if templ_7745c5c3_Err != nil { | |
| 2187 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 46} | |
| 2187 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 407, Col: 46} | |
| 2188 | 2188 | } | |
| 2189 | 2189 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107)) | |
| 2190 | 2190 | if templ_7745c5c3_Err != nil { | |
| @@ -2238,7 +2238,7 @@ func mrFooter(p MRPage) templ.Component { | |||
| 2238 | 2238 | var templ_7745c5c3_Var108 string | |
| 2239 | 2239 | templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) | |
| 2240 | 2240 | if templ_7745c5c3_Err != nil { | |
| 2241 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 424, Col: 36} | |
| 2241 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 428, Col: 36} | |
| 2242 | 2242 | } | |
| 2243 | 2243 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) | |
| 2244 | 2244 | if templ_7745c5c3_Err != nil { | |
| @@ -2293,7 +2293,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 2293 | 2293 | var templ_7745c5c3_Var110 string | |
| 2294 | 2294 | templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | |
| 2295 | 2295 | if templ_7745c5c3_Err != nil { | |
| 2296 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 437, Col: 49} | |
| 2296 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 441, Col: 49} | |
| 2297 | 2297 | } | |
| 2298 | 2298 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110)) | |
| 2299 | 2299 | if templ_7745c5c3_Err != nil { | |
| @@ -2324,7 +2324,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 2324 | 2324 | var templ_7745c5c3_Var111 templ.SafeURL | |
| 2325 | 2325 | templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href)) | |
| 2326 | 2326 | if templ_7745c5c3_Err != nil { | |
| 2327 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 450, Col: 37} | |
| 2327 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 454, Col: 37} | |
| 2328 | 2328 | } | |
| 2329 | 2329 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111)) | |
| 2330 | 2330 | if templ_7745c5c3_Err != nil { | |
| @@ -2337,7 +2337,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 2337 | 2337 | var templ_7745c5c3_Var112 string | |
| 2338 | 2338 | templ_7745c5c3_Var112, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author) | |
| 2339 | 2339 | if templ_7745c5c3_Err != nil { | |
| 2340 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 450, Col: 50} | |
| 2340 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 454, Col: 50} | |
| 2341 | 2341 | } | |
| 2342 | 2342 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var112)) | |
| 2343 | 2343 | if templ_7745c5c3_Err != nil { | |
| @@ -2350,7 +2350,7 @@ func mrRail(p MRPage) templ.Component { | |||
| 2350 | 2350 | var templ_7745c5c3_Var113 string | |
| 2351 | 2351 | templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label) | |
| 2352 | 2352 | if templ_7745c5c3_Err != nil { | |
| 2353 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 450, Col: 63} | |
| 2353 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 454, Col: 63} | |
| 2354 | 2354 | } | |
| 2355 | 2355 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113)) | |
| 2356 | 2356 | if templ_7745c5c3_Err != nil { | |
| @@ -2412,7 +2412,7 @@ func mrBar(p MRPage) templ.Component { | |||
| 2412 | 2412 | var templ_7745c5c3_Var115 string | |
| 2413 | 2413 | templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | |
| 2414 | 2414 | if templ_7745c5c3_Err != nil { | |
| 2415 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 467, Col: 55} | |
| 2415 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 471, Col: 55} | |
| 2416 | 2416 | } | |
| 2417 | 2417 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) | |
| 2418 | 2418 | if templ_7745c5c3_Err != nil { | |
| @@ -2425,7 +2425,7 @@ func mrBar(p MRPage) templ.Component { | |||
| 2425 | 2425 | var templ_7745c5c3_Var116 string | |
| 2426 | 2426 | templ_7745c5c3_Var116, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | |
| 2427 | 2427 | if templ_7745c5c3_Err != nil { | |
| 2428 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 467, Col: 95} | |
| 2428 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 471, Col: 95} | |
| 2429 | 2429 | } | |
| 2430 | 2430 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var116)) | |
| 2431 | 2431 | if templ_7745c5c3_Err != nil { | |
| @@ -2438,7 +2438,7 @@ func mrBar(p MRPage) templ.Component { | |||
| 2438 | 2438 | var templ_7745c5c3_Var117 string | |
| 2439 | 2439 | templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | |
| 2440 | 2440 | if templ_7745c5c3_Err != nil { | |
| 2441 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 467, Col: 140} | |
| 2441 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 471, Col: 140} | |
| 2442 | 2442 | } | |
| 2443 | 2443 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117)) | |
| 2444 | 2444 | if templ_7745c5c3_Err != nil { | |
| @@ -2550,7 +2550,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2550 | 2550 | var templ_7745c5c3_Var119 string | |
| 2551 | 2551 | templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error) | |
| 2552 | 2552 | if templ_7745c5c3_Err != nil { | |
| 2553 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 501, Col: 47} | |
| 2553 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 505, Col: 47} | |
| 2554 | 2554 | } | |
| 2555 | 2555 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119)) | |
| 2556 | 2556 | if templ_7745c5c3_Err != nil { | |
| @@ -2569,7 +2569,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2569 | 2569 | var templ_7745c5c3_Var120 templ.SafeURL | |
| 2570 | 2570 | templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) | |
| 2571 | 2571 | if templ_7745c5c3_Err != nil { | |
| 2572 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 505, Col: 80} | |
| 2572 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 509, Col: 80} | |
| 2573 | 2573 | } | |
| 2574 | 2574 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120)) | |
| 2575 | 2575 | if templ_7745c5c3_Err != nil { | |
| @@ -2591,7 +2591,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2591 | 2591 | var templ_7745c5c3_Var121 templ.SafeURL | |
| 2592 | 2592 | templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) | |
| 2593 | 2593 | if templ_7745c5c3_Err != nil { | |
| 2594 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 510, Col: 80} | |
| 2594 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 514, Col: 80} | |
| 2595 | 2595 | } | |
| 2596 | 2596 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) | |
| 2597 | 2597 | if templ_7745c5c3_Err != nil { | |
| @@ -2604,7 +2604,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2604 | 2604 | var templ_7745c5c3_Var122 string | |
| 2605 | 2605 | templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | |
| 2606 | 2606 | if templ_7745c5c3_Err != nil { | |
| 2607 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 511, Col: 59} | |
| 2607 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 515, Col: 59} | |
| 2608 | 2608 | } | |
| 2609 | 2609 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var122) | |
| 2610 | 2610 | if templ_7745c5c3_Err != nil { | |
| @@ -2622,7 +2622,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2622 | 2622 | var templ_7745c5c3_Var123 string | |
| 2623 | 2623 | templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) | |
| 2624 | 2624 | if templ_7745c5c3_Err != nil { | |
| 2625 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 519, Col: 24} | |
| 2625 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 523, Col: 24} | |
| 2626 | 2626 | } | |
| 2627 | 2627 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123) | |
| 2628 | 2628 | if templ_7745c5c3_Err != nil { | |
| @@ -2651,7 +2651,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2651 | 2651 | var templ_7745c5c3_Var124 string | |
| 2652 | 2652 | templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason) | |
| 2653 | 2653 | if templ_7745c5c3_Err != nil { | |
| 2654 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 522, Col: 25} | |
| 2654 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 526, Col: 25} | |
| 2655 | 2655 | } | |
| 2656 | 2656 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124) | |
| 2657 | 2657 | if templ_7745c5c3_Err != nil { | |
| @@ -2664,7 +2664,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2664 | 2664 | var templ_7745c5c3_Var125 string | |
| 2665 | 2665 | templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) | |
| 2666 | 2666 | if templ_7745c5c3_Err != nil { | |
| 2667 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 526, Col: 17} | |
| 2667 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 530, Col: 17} | |
| 2668 | 2668 | } | |
| 2669 | 2669 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125)) | |
| 2670 | 2670 | if templ_7745c5c3_Err != nil { | |
| @@ -2682,7 +2682,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2682 | 2682 | var templ_7745c5c3_Var126 string | |
| 2683 | 2683 | templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) | |
| 2684 | 2684 | if templ_7745c5c3_Err != nil { | |
| 2685 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 528, Col: 46} | |
| 2685 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 532, Col: 46} | |
| 2686 | 2686 | } | |
| 2687 | 2687 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) | |
| 2688 | 2688 | if templ_7745c5c3_Err != nil { | |
| @@ -2710,7 +2710,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2710 | 2710 | var templ_7745c5c3_Var127 string | |
| 2711 | 2711 | templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | |
| 2712 | 2712 | if templ_7745c5c3_Err != nil { | |
| 2713 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 534, Col: 102} | |
| 2713 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 538, Col: 102} | |
| 2714 | 2714 | } | |
| 2715 | 2715 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127)) | |
| 2716 | 2716 | if templ_7745c5c3_Err != nil { | |
| @@ -2738,7 +2738,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2738 | 2738 | var templ_7745c5c3_Var128 string | |
| 2739 | 2739 | templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle()) | |
| 2740 | 2740 | if templ_7745c5c3_Err != nil { | |
| 2741 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 542, Col: 33} | |
| 2741 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 546, Col: 33} | |
| 2742 | 2742 | } | |
| 2743 | 2743 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var128) | |
| 2744 | 2744 | if templ_7745c5c3_Err != nil { | |
| @@ -2751,7 +2751,7 @@ func mergeMenu(p MRPage) templ.Component { | |||
| 2751 | 2751 | var templ_7745c5c3_Var129 string | |
| 2752 | 2752 | templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 2753 | 2753 | if templ_7745c5c3_Err != nil { | |
| 2754 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 545, Col: 28} | |
| 2754 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 549, Col: 28} | |
| 2755 | 2755 | } | |
| 2756 | 2756 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129)) | |
| 2757 | 2757 | if templ_7745c5c3_Err != nil { | |
| @@ -2800,7 +2800,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2800 | 2800 | var templ_7745c5c3_Var131 string | |
| 2801 | 2801 | templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State) | |
| 2802 | 2802 | if templ_7745c5c3_Err != nil { | |
| 2803 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 558, Col: 22} | |
| 2803 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 22} | |
| 2804 | 2804 | } | |
| 2805 | 2805 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131) | |
| 2806 | 2806 | if templ_7745c5c3_Err != nil { | |
| @@ -2813,7 +2813,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2813 | 2813 | var templ_7745c5c3_Var132 string | |
| 2814 | 2814 | templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk)) | |
| 2815 | 2815 | if templ_7745c5c3_Err != nil { | |
| 2816 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 41} | |
| 2816 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 563, Col: 41} | |
| 2817 | 2817 | } | |
| 2818 | 2818 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var132) | |
| 2819 | 2819 | if templ_7745c5c3_Err != nil { | |
| @@ -2826,7 +2826,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2826 | 2826 | var templ_7745c5c3_Var133 string | |
| 2827 | 2827 | templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk)) | |
| 2828 | 2828 | if templ_7745c5c3_Err != nil { | |
| 2829 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 560, Col: 47} | |
| 2829 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 47} | |
| 2830 | 2830 | } | |
| 2831 | 2831 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var133) | |
| 2832 | 2832 | if templ_7745c5c3_Err != nil { | |
| @@ -2839,7 +2839,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2839 | 2839 | var templ_7745c5c3_Var134 string | |
| 2840 | 2840 | templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason) | |
| 2841 | 2841 | if templ_7745c5c3_Err != nil { | |
| 2842 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 561, Col: 29} | |
| 2842 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 565, Col: 29} | |
| 2843 | 2843 | } | |
| 2844 | 2844 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var134) | |
| 2845 | 2845 | if templ_7745c5c3_Err != nil { | |
| @@ -2852,7 +2852,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2852 | 2852 | var templ_7745c5c3_Var135 string | |
| 2853 | 2853 | templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason) | |
| 2854 | 2854 | if templ_7745c5c3_Err != nil { | |
| 2855 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 35} | |
| 2855 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 566, Col: 35} | |
| 2856 | 2856 | } | |
| 2857 | 2857 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135) | |
| 2858 | 2858 | if templ_7745c5c3_Err != nil { | |
| @@ -2865,7 +2865,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2865 | 2865 | var templ_7745c5c3_Var136 string | |
| 2866 | 2866 | templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State) | |
| 2867 | 2867 | if templ_7745c5c3_Err != nil { | |
| 2868 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 42} | |
| 2868 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 568, Col: 42} | |
| 2869 | 2869 | } | |
| 2870 | 2870 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136) | |
| 2871 | 2871 | if templ_7745c5c3_Err != nil { | |
| @@ -2878,7 +2878,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2878 | 2878 | var templ_7745c5c3_Var137 string | |
| 2879 | 2879 | templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label) | |
| 2880 | 2880 | if templ_7745c5c3_Err != nil { | |
| 2881 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 54} | |
| 2881 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 568, Col: 54} | |
| 2882 | 2882 | } | |
| 2883 | 2883 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var137)) | |
| 2884 | 2884 | if templ_7745c5c3_Err != nil { | |
| @@ -2892,7 +2892,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2892 | 2892 | var templ_7745c5c3_Var138 string | |
| 2893 | 2893 | templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | |
| 2894 | 2894 | if templ_7745c5c3_Err != nil { | |
| 2895 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 566, Col: 8} | |
| 2895 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 570, Col: 8} | |
| 2896 | 2896 | } | |
| 2897 | 2897 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) | |
| 2898 | 2898 | if templ_7745c5c3_Err != nil { | |
| @@ -2905,7 +2905,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2905 | 2905 | var templ_7745c5c3_Var139 string | |
| 2906 | 2906 | templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail) | |
| 2907 | 2907 | if templ_7745c5c3_Err != nil { | |
| 2908 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 566, Col: 38} | |
| 2908 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 570, Col: 38} | |
| 2909 | 2909 | } | |
| 2910 | 2910 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) | |
| 2911 | 2911 | if templ_7745c5c3_Err != nil { | |
| @@ -2933,7 +2933,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2933 | 2933 | var templ_7745c5c3_Var140 string | |
| 2934 | 2934 | templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(path) | |
| 2935 | 2935 | if templ_7745c5c3_Err != nil { | |
| 2936 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 572, Col: 20} | |
| 2936 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 576, Col: 20} | |
| 2937 | 2937 | } | |
| 2938 | 2938 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) | |
| 2939 | 2939 | if templ_7745c5c3_Err != nil { | |
| @@ -2957,7 +2957,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||
| 2957 | 2957 | var templ_7745c5c3_Var141 string | |
| 2958 | 2958 | templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote) | |
| 2959 | 2959 | if templ_7745c5c3_Err != nil { | |
| 2960 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 577, Col: 30} | |
| 2960 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 581, Col: 30} | |
| 2961 | 2961 | } | |
| 2962 | 2962 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) | |
| 2963 | 2963 | if templ_7745c5c3_Err != nil { | |
| @@ -3071,7 +3071,7 @@ func moreMenu(p MRPage) templ.Component { | |||
| 3071 | 3071 | var templ_7745c5c3_Var145 string | |
| 3072 | 3072 | templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", ")) | |
| 3073 | 3073 | if templ_7745c5c3_Err != nil { | |
| 3074 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 604, Col: 38} | |
| 3074 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 608, Col: 38} | |
| 3075 | 3075 | } | |
| 3076 | 3076 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) | |
| 3077 | 3077 | if templ_7745c5c3_Err != nil { | |
| @@ -3110,7 +3110,7 @@ func moreMenu(p MRPage) templ.Component { | |||
| 3110 | 3110 | var templ_7745c5c3_Var146 string | |
| 3111 | 3111 | templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Fingerprint) | |
| 3112 | 3112 | if templ_7745c5c3_Err != nil { | |
| 3113 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 44} | |
| 3113 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 624, Col: 44} | |
| 3114 | 3114 | } | |
| 3115 | 3115 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) | |
| 3116 | 3116 | if templ_7745c5c3_Err != nil { | |
| @@ -3138,7 +3138,7 @@ func moreMenu(p MRPage) templ.Component { | |||
| 3138 | 3138 | var templ_7745c5c3_Var147 templ.SafeURL | |
| 3139 | 3139 | templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) | |
| 3140 | 3140 | if templ_7745c5c3_Err != nil { | |
| 3141 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 626, Col: 65} | |
| 3141 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 630, Col: 65} | |
| 3142 | 3142 | } | |
| 3143 | 3143 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) | |
| 3144 | 3144 | if templ_7745c5c3_Err != nil { | |
| @@ -3151,7 +3151,7 @@ func moreMenu(p MRPage) templ.Component { | |||
| 3151 | 3151 | var templ_7745c5c3_Var148 string | |
| 3152 | 3152 | templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | |
| 3153 | 3153 | if templ_7745c5c3_Err != nil { | |
| 3154 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 627, Col: 60} | |
| 3154 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 60} | |
| 3155 | 3155 | } | |
| 3156 | 3156 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148) | |
| 3157 | 3157 | if templ_7745c5c3_Err != nil { | |
| @@ -3169,7 +3169,7 @@ func moreMenu(p MRPage) templ.Component { | |||
| 3169 | 3169 | var templ_7745c5c3_Var149 templ.SafeURL | |
| 3170 | 3170 | templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) | |
| 3171 | 3171 | if templ_7745c5c3_Err != nil { | |
| 3172 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 65} | |
| 3172 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 635, Col: 65} | |
| 3173 | 3173 | } | |
| 3174 | 3174 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var149)) | |
| 3175 | 3175 | if templ_7745c5c3_Err != nil { | |
| @@ -3242,7 +3242,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3242 | 3242 | var templ_7745c5c3_Var152 string | |
| 3243 | 3243 | templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | |
| 3244 | 3244 | if templ_7745c5c3_Err != nil { | |
| 3245 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 17} | |
| 3245 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 652, Col: 17} | |
| 3246 | 3246 | } | |
| 3247 | 3247 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152)) | |
| 3248 | 3248 | if templ_7745c5c3_Err != nil { | |
| @@ -3255,7 +3255,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3255 | 3255 | var templ_7745c5c3_Var153 string | |
| 3256 | 3256 | templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 3257 | 3257 | if templ_7745c5c3_Err != nil { | |
| 3258 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 34} | |
| 3258 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 652, Col: 34} | |
| 3259 | 3259 | } | |
| 3260 | 3260 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153)) | |
| 3261 | 3261 | if templ_7745c5c3_Err != nil { | |
| @@ -3268,7 +3268,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3268 | 3268 | var templ_7745c5c3_Var154 templ.SafeURL | |
| 3269 | 3269 | templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) | |
| 3270 | 3270 | if templ_7745c5c3_Err != nil { | |
| 3271 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 45} | |
| 3271 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 655, Col: 45} | |
| 3272 | 3272 | } | |
| 3273 | 3273 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154)) | |
| 3274 | 3274 | if templ_7745c5c3_Err != nil { | |
| @@ -3281,7 +3281,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3281 | 3281 | var templ_7745c5c3_Var155 string | |
| 3282 | 3282 | templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | |
| 3283 | 3283 | if templ_7745c5c3_Err != nil { | |
| 3284 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 58} | |
| 3284 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 655, Col: 58} | |
| 3285 | 3285 | } | |
| 3286 | 3286 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155)) | |
| 3287 | 3287 | if templ_7745c5c3_Err != nil { | |
| @@ -3294,7 +3294,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3294 | 3294 | var templ_7745c5c3_Var156 templ.SafeURL | |
| 3295 | 3295 | templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) | |
| 3296 | 3296 | if templ_7745c5c3_Err != nil { | |
| 3297 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 653, Col: 45} | |
| 3297 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 657, Col: 45} | |
| 3298 | 3298 | } | |
| 3299 | 3299 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156)) | |
| 3300 | 3300 | if templ_7745c5c3_Err != nil { | |
| @@ -3307,7 +3307,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3307 | 3307 | var templ_7745c5c3_Var157 string | |
| 3308 | 3308 | templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 3309 | 3309 | if templ_7745c5c3_Err != nil { | |
| 3310 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 653, Col: 58} | |
| 3310 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 657, Col: 58} | |
| 3311 | 3311 | } | |
| 3312 | 3312 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157)) | |
| 3313 | 3313 | if templ_7745c5c3_Err != nil { | |
| @@ -3320,7 +3320,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3320 | 3320 | var templ_7745c5c3_Var158 string | |
| 3321 | 3321 | templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) | |
| 3322 | 3322 | if templ_7745c5c3_Err != nil { | |
| 3323 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 655, Col: 21} | |
| 3323 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 659, Col: 21} | |
| 3324 | 3324 | } | |
| 3325 | 3325 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158)) | |
| 3326 | 3326 | if templ_7745c5c3_Err != nil { | |
| @@ -3338,7 +3338,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3338 | 3338 | var templ_7745c5c3_Var159 string | |
| 3339 | 3339 | templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | |
| 3340 | 3340 | if templ_7745c5c3_Err != nil { | |
| 3341 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 659, Col: 29} | |
| 3341 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 663, Col: 29} | |
| 3342 | 3342 | } | |
| 3343 | 3343 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159)) | |
| 3344 | 3344 | if templ_7745c5c3_Err != nil { | |
| @@ -3361,7 +3361,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3361 | 3361 | var templ_7745c5c3_Var160 templ.SafeURL | |
| 3362 | 3362 | templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) | |
| 3363 | 3363 | if templ_7745c5c3_Err != nil { | |
| 3364 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 662, Col: 114} | |
| 3364 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 666, Col: 114} | |
| 3365 | 3365 | } | |
| 3366 | 3366 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160)) | |
| 3367 | 3367 | if templ_7745c5c3_Err != nil { | |
| @@ -3374,7 +3374,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3374 | 3374 | var templ_7745c5c3_Var161 string | |
| 3375 | 3375 | templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) | |
| 3376 | 3376 | if templ_7745c5c3_Err != nil { | |
| 3377 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 662, Col: 135} | |
| 3377 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 666, Col: 135} | |
| 3378 | 3378 | } | |
| 3379 | 3379 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161)) | |
| 3380 | 3380 | if templ_7745c5c3_Err != nil { | |
| @@ -3397,7 +3397,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3397 | 3397 | var templ_7745c5c3_Var162 templ.SafeURL | |
| 3398 | 3398 | templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) | |
| 3399 | 3399 | if templ_7745c5c3_Err != nil { | |
| 3400 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 665, Col: 83} | |
| 3400 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 669, Col: 83} | |
| 3401 | 3401 | } | |
| 3402 | 3402 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162)) | |
| 3403 | 3403 | if templ_7745c5c3_Err != nil { | |
| @@ -3410,7 +3410,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3410 | 3410 | var templ_7745c5c3_Var163 string | |
| 3411 | 3411 | templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) | |
| 3412 | 3412 | if templ_7745c5c3_Err != nil { | |
| 3413 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 666, Col: 62} | |
| 3413 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 670, Col: 62} | |
| 3414 | 3414 | } | |
| 3415 | 3415 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var163) | |
| 3416 | 3416 | if templ_7745c5c3_Err != nil { | |
| @@ -3423,7 +3423,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3423 | 3423 | var templ_7745c5c3_Var164 string | |
| 3424 | 3424 | templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) | |
| 3425 | 3425 | if templ_7745c5c3_Err != nil { | |
| 3426 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 667, Col: 62} | |
| 3426 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 671, Col: 62} | |
| 3427 | 3427 | } | |
| 3428 | 3428 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164) | |
| 3429 | 3429 | if templ_7745c5c3_Err != nil { | |
| @@ -3436,7 +3436,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3436 | 3436 | var templ_7745c5c3_Var165 string | |
| 3437 | 3437 | templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) | |
| 3438 | 3438 | if templ_7745c5c3_Err != nil { | |
| 3439 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 669, Col: 97} | |
| 3439 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 673, Col: 97} | |
| 3440 | 3440 | } | |
| 3441 | 3441 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165) | |
| 3442 | 3442 | if templ_7745c5c3_Err != nil { | |
| @@ -3459,7 +3459,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3459 | 3459 | var templ_7745c5c3_Var166 string | |
| 3460 | 3460 | templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | |
| 3461 | 3461 | if templ_7745c5c3_Err != nil { | |
| 3462 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 679, Col: 57} | |
| 3462 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 683, Col: 57} | |
| 3463 | 3463 | } | |
| 3464 | 3464 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var166)) | |
| 3465 | 3465 | if templ_7745c5c3_Err != nil { | |
| @@ -3472,7 +3472,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3472 | 3472 | var templ_7745c5c3_Var167 string | |
| 3473 | 3473 | templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | |
| 3474 | 3474 | if templ_7745c5c3_Err != nil { | |
| 3475 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 679, Col: 97} | |
| 3475 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 683, Col: 97} | |
| 3476 | 3476 | } | |
| 3477 | 3477 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167)) | |
| 3478 | 3478 | if templ_7745c5c3_Err != nil { | |
| @@ -3485,7 +3485,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3485 | 3485 | var templ_7745c5c3_Var168 string | |
| 3486 | 3486 | templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | |
| 3487 | 3487 | if templ_7745c5c3_Err != nil { | |
| 3488 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 679, Col: 142} | |
| 3488 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 683, Col: 142} | |
| 3489 | 3489 | } | |
| 3490 | 3490 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168)) | |
| 3491 | 3491 | if templ_7745c5c3_Err != nil { | |
| @@ -3521,7 +3521,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3521 | 3521 | var templ_7745c5c3_Var169 string | |
| 3522 | 3522 | templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | |
| 3523 | 3523 | if templ_7745c5c3_Err != nil { | |
| 3524 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 692, Col: 23} | |
| 3524 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 696, Col: 23} | |
| 3525 | 3525 | } | |
| 3526 | 3526 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var169) | |
| 3527 | 3527 | if templ_7745c5c3_Err != nil { | |
| @@ -3539,7 +3539,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||
| 3539 | 3539 | var templ_7745c5c3_Var170 string | |
| 3540 | 3540 | templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | |
| 3541 | 3541 | if templ_7745c5c3_Err != nil { | |
| 3542 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 694, Col: 23} | |
| 3542 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 698, Col: 23} | |
| 3543 | 3543 | } | |
| 3544 | 3544 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170) | |
| 3545 | 3545 | if templ_7745c5c3_Err != nil { | |
| @@ -3609,7 +3609,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3609 | 3609 | var templ_7745c5c3_Var172 string | |
| 3610 | 3610 | templ_7745c5c3_Var172, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) | |
| 3611 | 3611 | if templ_7745c5c3_Err != nil { | |
| 3612 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 710, Col: 67} | |
| 3612 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 714, Col: 67} | |
| 3613 | 3613 | } | |
| 3614 | 3614 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var172)) | |
| 3615 | 3615 | if templ_7745c5c3_Err != nil { | |
| @@ -3627,7 +3627,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3627 | 3627 | var templ_7745c5c3_Var173 templ.SafeURL | |
| 3628 | 3628 | templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) | |
| 3629 | 3629 | if templ_7745c5c3_Err != nil { | |
| 3630 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 714, Col: 37} | |
| 3630 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 718, Col: 37} | |
| 3631 | 3631 | } | |
| 3632 | 3632 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173)) | |
| 3633 | 3633 | if templ_7745c5c3_Err != nil { | |
| @@ -3640,7 +3640,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3640 | 3640 | var templ_7745c5c3_Var174 string | |
| 3641 | 3641 | templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | |
| 3642 | 3642 | if templ_7745c5c3_Err != nil { | |
| 3643 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 714, Col: 49} | |
| 3643 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 718, Col: 49} | |
| 3644 | 3644 | } | |
| 3645 | 3645 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174)) | |
| 3646 | 3646 | if templ_7745c5c3_Err != nil { | |
| @@ -3653,7 +3653,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3653 | 3653 | var templ_7745c5c3_Var175 string | |
| 3654 | 3654 | templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | |
| 3655 | 3655 | if templ_7745c5c3_Err != nil { | |
| 3656 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 715, Col: 32} | |
| 3656 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 719, Col: 32} | |
| 3657 | 3657 | } | |
| 3658 | 3658 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175)) | |
| 3659 | 3659 | if templ_7745c5c3_Err != nil { | |
| @@ -3666,7 +3666,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3666 | 3666 | var templ_7745c5c3_Var176 string | |
| 3667 | 3667 | templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | |
| 3668 | 3668 | if templ_7745c5c3_Err != nil { | |
| 3669 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 717, Col: 16} | |
| 3669 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 721, Col: 16} | |
| 3670 | 3670 | } | |
| 3671 | 3671 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176)) | |
| 3672 | 3672 | if templ_7745c5c3_Err != nil { | |
| @@ -3680,7 +3680,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3680 | 3680 | var templ_7745c5c3_Var177 string | |
| 3681 | 3681 | templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | |
| 3682 | 3682 | if templ_7745c5c3_Err != nil { | |
| 3683 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 719, Col: 15} | |
| 3683 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 723, Col: 15} | |
| 3684 | 3684 | } | |
| 3685 | 3685 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177)) | |
| 3686 | 3686 | if templ_7745c5c3_Err != nil { | |
| @@ -3693,7 +3693,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3693 | 3693 | var templ_7745c5c3_Var178 string | |
| 3694 | 3694 | templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | |
| 3695 | 3695 | if templ_7745c5c3_Err != nil { | |
| 3696 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 719, Col: 42} | |
| 3696 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 723, Col: 42} | |
| 3697 | 3697 | } | |
| 3698 | 3698 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var178) | |
| 3699 | 3699 | if templ_7745c5c3_Err != nil { | |
| @@ -3706,7 +3706,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3706 | 3706 | var templ_7745c5c3_Var179 string | |
| 3707 | 3707 | templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | |
| 3708 | 3708 | if templ_7745c5c3_Err != nil { | |
| 3709 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 719, Col: 53} | |
| 3709 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 723, Col: 53} | |
| 3710 | 3710 | } | |
| 3711 | 3711 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var179)) | |
| 3712 | 3712 | if templ_7745c5c3_Err != nil { | |
| @@ -3734,7 +3734,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3734 | 3734 | var templ_7745c5c3_Var180 string | |
| 3735 | 3735 | templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | |
| 3736 | 3736 | if templ_7745c5c3_Err != nil { | |
| 3737 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 726, Col: 47} | |
| 3737 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 730, Col: 47} | |
| 3738 | 3738 | } | |
| 3739 | 3739 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180)) | |
| 3740 | 3740 | if templ_7745c5c3_Err != nil { | |
| @@ -3757,7 +3757,7 @@ func compareRail(p ComparePage) templ.Component { | |||
| 3757 | 3757 | var templ_7745c5c3_Var181 string | |
| 3758 | 3758 | templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | |
| 3759 | 3759 | if templ_7745c5c3_Err != nil { | |
| 3760 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 731, Col: 66} | |
| 3760 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 735, Col: 66} | |
| 3761 | 3761 | } | |
| 3762 | 3762 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181)) | |
| 3763 | 3763 | if templ_7745c5c3_Err != nil { | |
| @@ -55,26 +55,30 @@ func MRList(l Layout, p MRListPage) templ.Component { | |||||
| 55 | if templ_7745c5c3_Err != nil { | 55 | if templ_7745c5c3_Err != nil { | ||
| 56 | return templ_7745c5c3_Err | 56 | return templ_7745c5c3_Err | ||
| 57 | } | 57 | } | ||
| 58 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, " <div id=\"mr-refresh-status\" role=\"status\" aria-live=\"polite\"></div>") | |||
| 59 | + | if templ_7745c5c3_Err != nil { | |||
| 60 | + | return templ_7745c5c3_Err | |||
| 61 | + | } | |||
| 58 | } | 62 | } | ||
| 59 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, " <div class=\"filter\"><label for=\"mr-filter\" class=\"sr\">filter</label> <input id=\"mr-filter\" type=\"search\" data-filter=\".mrs tbody tr\" placeholder=\"Filter by title, branch, author or state…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div>") | 63 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, " <div class=\"filter\"><label for=\"mr-filter\" class=\"sr\">filter</label> <input id=\"mr-filter\" type=\"search\" data-filter=\".mrs tbody tr\" placeholder=\"Filter by title, branch, author or state…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div>") |
| 60 | if templ_7745c5c3_Err != nil { | 64 | if templ_7745c5c3_Err != nil { | ||
| 61 | return templ_7745c5c3_Err | 65 | return templ_7745c5c3_Err | ||
| 62 | } | 66 | } | ||
| 63 | if p.Newest == "" { | 67 | if p.Newest == "" { | ||
| 64 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<h2 class=\"rule-h\"><span>Open</span><span class=\"count\">") | 68 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "<h2 class=\"rule-h\"><span>Open</span><span class=\"count\">") |
| 65 | if templ_7745c5c3_Err != nil { | 69 | if templ_7745c5c3_Err != nil { | ||
| 66 | return templ_7745c5c3_Err | 70 | return templ_7745c5c3_Err | ||
| 67 | } | 71 | } | ||
| 68 | var templ_7745c5c3_Var3 string | 72 | var templ_7745c5c3_Var3 string | ||
| 69 | templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Open))) | 73 | templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Open))) | ||
| 70 | if templ_7745c5c3_Err != nil { | 74 | if templ_7745c5c3_Err != nil { | ||
| 71 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 29, Col: 78} | 75 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 30, Col: 78} |
| 72 | } | 76 | } | ||
| 73 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) | 77 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) | ||
| 74 | if templ_7745c5c3_Err != nil { | 78 | if templ_7745c5c3_Err != nil { | ||
| 75 | return templ_7745c5c3_Err | 79 | return templ_7745c5c3_Err | ||
| 76 | } | 80 | } | ||
| 77 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</span></h2>") | 81 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "</span></h2>") |
| 78 | if templ_7745c5c3_Err != nil { | 82 | if templ_7745c5c3_Err != nil { | ||
| 79 | return templ_7745c5c3_Err | 83 | return templ_7745c5c3_Err | ||
| 80 | } | 84 | } | ||
| @@ -82,54 +86,54 @@ func MRList(l Layout, p MRListPage) templ.Component { | |||||
| 82 | if templ_7745c5c3_Err != nil { | 86 | if templ_7745c5c3_Err != nil { | ||
| 83 | return templ_7745c5c3_Err | 87 | return templ_7745c5c3_Err | ||
| 84 | } | 88 | } | ||
| 85 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, " ") | 89 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, " ") |
| 86 | if templ_7745c5c3_Err != nil { | 90 | if templ_7745c5c3_Err != nil { | ||
| 87 | return templ_7745c5c3_Err | 91 | return templ_7745c5c3_Err | ||
| 88 | } | 92 | } | ||
| 89 | if len(p.Open) == 0 { | 93 | if len(p.Open) == 0 { | ||
| 90 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<p class=\"lede dim\">no open merge requests.</p>") | 94 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<p class=\"lede dim\">no open merge requests.</p>") |
| 91 | if templ_7745c5c3_Err != nil { | 95 | if templ_7745c5c3_Err != nil { | ||
| 92 | return templ_7745c5c3_Err | 96 | return templ_7745c5c3_Err | ||
| 93 | } | 97 | } | ||
| 94 | } | 98 | } | ||
| 95 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " ") | 99 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, " ") |
| 96 | if templ_7745c5c3_Err != nil { | 100 | if templ_7745c5c3_Err != nil { | ||
| 97 | return templ_7745c5c3_Err | 101 | return templ_7745c5c3_Err | ||
| 98 | } | 102 | } | ||
| 99 | if p.OpenNote != "" { | 103 | if p.OpenNote != "" { | ||
| 100 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<p class=\"note\">") | 104 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "<p class=\"note\">") |
| 101 | if templ_7745c5c3_Err != nil { | 105 | if templ_7745c5c3_Err != nil { | ||
| 102 | return templ_7745c5c3_Err | 106 | return templ_7745c5c3_Err | ||
| 103 | } | 107 | } | ||
| 104 | var templ_7745c5c3_Var4 string | 108 | var templ_7745c5c3_Var4 string | ||
| 105 | templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(p.OpenNote) | 109 | templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(p.OpenNote) | ||
| 106 | if templ_7745c5c3_Err != nil { | 110 | if templ_7745c5c3_Err != nil { | ||
| 107 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 35, Col: 32} | 111 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 36, Col: 32} |
| 108 | } | 112 | } | ||
| 109 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) | 113 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) | ||
| 110 | if templ_7745c5c3_Err != nil { | 114 | if templ_7745c5c3_Err != nil { | ||
| 111 | return templ_7745c5c3_Err | 115 | return templ_7745c5c3_Err | ||
| 112 | } | 116 | } | ||
| 113 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</p>") | 117 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "</p>") |
| 114 | if templ_7745c5c3_Err != nil { | 118 | if templ_7745c5c3_Err != nil { | ||
| 115 | return templ_7745c5c3_Err | 119 | return templ_7745c5c3_Err | ||
| 116 | } | 120 | } | ||
| 117 | } | 121 | } | ||
| 118 | } | 122 | } | ||
| 119 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, " <h2 class=\"rule-h\"><span>Merged and closed</span><span class=\"count\">") | 123 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, " <h2 class=\"rule-h\"><span>Merged and closed</span><span class=\"count\">") |
| 120 | if templ_7745c5c3_Err != nil { | 124 | if templ_7745c5c3_Err != nil { | ||
| 121 | return templ_7745c5c3_Err | 125 | return templ_7745c5c3_Err | ||
| 122 | } | 126 | } | ||
| 123 | var templ_7745c5c3_Var5 string | 127 | var templ_7745c5c3_Var5 string | ||
| 124 | templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Done))) | 128 | templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Done))) | ||
| 125 | if templ_7745c5c3_Err != nil { | 129 | if templ_7745c5c3_Err != nil { | ||
| 126 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 38, Col: 90} | 130 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 39, Col: 90} |
| 127 | } | 131 | } | ||
| 128 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) | 132 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) | ||
| 129 | if templ_7745c5c3_Err != nil { | 133 | if templ_7745c5c3_Err != nil { | ||
| 130 | return templ_7745c5c3_Err | 134 | return templ_7745c5c3_Err | ||
| 131 | } | 135 | } | ||
| 132 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</span></h2>") | 136 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "</span></h2>") |
| 133 | if templ_7745c5c3_Err != nil { | 137 | if templ_7745c5c3_Err != nil { | ||
| 134 | return templ_7745c5c3_Err | 138 | return templ_7745c5c3_Err | ||
| 135 | } | 139 | } | ||
| @@ -137,74 +141,74 @@ func MRList(l Layout, p MRListPage) templ.Component { | |||||
| 137 | if templ_7745c5c3_Err != nil { | 141 | if templ_7745c5c3_Err != nil { | ||
| 138 | return templ_7745c5c3_Err | 142 | return templ_7745c5c3_Err | ||
| 139 | } | 143 | } | ||
| 140 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, " ") | 144 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, " ") |
| 141 | if templ_7745c5c3_Err != nil { | 145 | if templ_7745c5c3_Err != nil { | ||
| 142 | return templ_7745c5c3_Err | 146 | return templ_7745c5c3_Err | ||
| 143 | } | 147 | } | ||
| 144 | if len(p.Done) == 0 { | 148 | if len(p.Done) == 0 { | ||
| 145 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "<p class=\"lede dim\">nothing merged or closed yet.</p>") | 149 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<p class=\"lede dim\">nothing merged or closed yet.</p>") |
| 146 | if templ_7745c5c3_Err != nil { | 150 | if templ_7745c5c3_Err != nil { | ||
| 147 | return templ_7745c5c3_Err | 151 | return templ_7745c5c3_Err | ||
| 148 | } | 152 | } | ||
| 149 | } | 153 | } | ||
| 150 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, " ") | 154 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, " ") |
| 151 | if templ_7745c5c3_Err != nil { | 155 | if templ_7745c5c3_Err != nil { | ||
| 152 | return templ_7745c5c3_Err | 156 | return templ_7745c5c3_Err | ||
| 153 | } | 157 | } | ||
| 154 | if p.Older != "" || p.Newest != "" { | 158 | if p.Older != "" || p.Newest != "" { | ||
| 155 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "<nav class=\"pager\" aria-label=\"Pages\">") | 159 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "<nav class=\"pager\" aria-label=\"Pages\">") |
| 156 | if templ_7745c5c3_Err != nil { | 160 | if templ_7745c5c3_Err != nil { | ||
| 157 | return templ_7745c5c3_Err | 161 | return templ_7745c5c3_Err | ||
| 158 | } | 162 | } | ||
| 159 | if p.Newest != "" { | 163 | if p.Newest != "" { | ||
| 160 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "<a class=\"btn\" href=\"") | 164 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<a class=\"btn\" href=\"") |
| 161 | if templ_7745c5c3_Err != nil { | 165 | if templ_7745c5c3_Err != nil { | ||
| 162 | return templ_7745c5c3_Err | 166 | return templ_7745c5c3_Err | ||
| 163 | } | 167 | } | ||
| 164 | var templ_7745c5c3_Var6 templ.SafeURL | 168 | var templ_7745c5c3_Var6 templ.SafeURL | ||
| 165 | templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Newest)) | 169 | templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Newest)) | ||
| 166 | if templ_7745c5c3_Err != nil { | 170 | if templ_7745c5c3_Err != nil { | ||
| 167 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 46, Col: 50} | 171 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 47, Col: 50} |
| 168 | } | 172 | } | ||
| 169 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) | 173 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) | ||
| 170 | if templ_7745c5c3_Err != nil { | 174 | if templ_7745c5c3_Err != nil { | ||
| 171 | return templ_7745c5c3_Err | 175 | return templ_7745c5c3_Err | ||
| 172 | } | 176 | } | ||
| 173 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "\">← Newest</a> ") | 177 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "\">← Newest</a> ") |
| 174 | if templ_7745c5c3_Err != nil { | 178 | if templ_7745c5c3_Err != nil { | ||
| 175 | return templ_7745c5c3_Err | 179 | return templ_7745c5c3_Err | ||
| 176 | } | 180 | } | ||
| 177 | } else { | 181 | } else { | ||
| 178 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "<span class=\"btn\" aria-disabled=\"true\">← Newest</span> ") | 182 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "<span class=\"btn\" aria-disabled=\"true\">← Newest</span> ") |
| 179 | if templ_7745c5c3_Err != nil { | 183 | if templ_7745c5c3_Err != nil { | ||
| 180 | return templ_7745c5c3_Err | 184 | return templ_7745c5c3_Err | ||
| 181 | } | 185 | } | ||
| 182 | } | 186 | } | ||
| 183 | if p.Older != "" { | 187 | if p.Older != "" { | ||
| 184 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "<a class=\"btn\" href=\"") | 188 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "<a class=\"btn\" href=\"") |
| 185 | if templ_7745c5c3_Err != nil { | 189 | if templ_7745c5c3_Err != nil { | ||
| 186 | return templ_7745c5c3_Err | 190 | return templ_7745c5c3_Err | ||
| 187 | } | 191 | } | ||
| 188 | var templ_7745c5c3_Var7 templ.SafeURL | 192 | var templ_7745c5c3_Var7 templ.SafeURL | ||
| 189 | templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Older)) | 193 | templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Older)) | ||
| 190 | if templ_7745c5c3_Err != nil { | 194 | if templ_7745c5c3_Err != nil { | ||
| 191 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 51, Col: 49} | 195 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 52, Col: 49} |
| 192 | } | 196 | } | ||
| 193 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) | 197 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) | ||
| 194 | if templ_7745c5c3_Err != nil { | 198 | if templ_7745c5c3_Err != nil { | ||
| 195 | return templ_7745c5c3_Err | 199 | return templ_7745c5c3_Err | ||
| 196 | } | 200 | } | ||
| 197 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "\" rel=\"next\">Older →</a>") | 201 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "\" rel=\"next\">Older →</a>") |
| 198 | if templ_7745c5c3_Err != nil { | 202 | if templ_7745c5c3_Err != nil { | ||
| 199 | return templ_7745c5c3_Err | 203 | return templ_7745c5c3_Err | ||
| 200 | } | 204 | } | ||
| 201 | } else { | 205 | } else { | ||
| 202 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "<span class=\"btn\" aria-disabled=\"true\">Older →</span>") | 206 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "<span class=\"btn\" aria-disabled=\"true\">Older →</span>") |
| 203 | if templ_7745c5c3_Err != nil { | 207 | if templ_7745c5c3_Err != nil { | ||
| 204 | return templ_7745c5c3_Err | 208 | return templ_7745c5c3_Err | ||
| 205 | } | 209 | } | ||
| 206 | } | 210 | } | ||
| 207 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</nav>") | 211 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "</nav>") |
| 208 | if templ_7745c5c3_Err != nil { | 212 | if templ_7745c5c3_Err != nil { | ||
| 209 | return templ_7745c5c3_Err | 213 | return templ_7745c5c3_Err | ||
| 210 | } | 214 | } | ||
| @@ -241,180 +245,180 @@ func mrRows(rows []MRRow, label string) templ.Component { | |||||
| 241 | } | 245 | } | ||
| 242 | ctx = templ.ClearChildren(ctx) | 246 | ctx = templ.ClearChildren(ctx) | ||
| 243 | if len(rows) > 0 { | 247 | if len(rows) > 0 { | ||
| 244 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<table class=\"list mrs\" aria-label=\"") | 248 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "<table class=\"list mrs\" aria-label=\"") |
| 245 | if templ_7745c5c3_Err != nil { | 249 | if templ_7745c5c3_Err != nil { | ||
| 246 | return templ_7745c5c3_Err | 250 | return templ_7745c5c3_Err | ||
| 247 | } | 251 | } | ||
| 248 | var templ_7745c5c3_Var9 string | 252 | var templ_7745c5c3_Var9 string | ||
| 249 | templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.ResolveAttributeValue(label) | 253 | templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.ResolveAttributeValue(label) | ||
| 250 | if templ_7745c5c3_Err != nil { | 254 | if templ_7745c5c3_Err != nil { | ||
| 251 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 62, Col: 44} | 255 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 63, Col: 44} |
| 252 | } | 256 | } | ||
| 253 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var9) | 257 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var9) | ||
| 254 | if templ_7745c5c3_Err != nil { | 258 | if templ_7745c5c3_Err != nil { | ||
| 255 | return templ_7745c5c3_Err | 259 | return templ_7745c5c3_Err | ||
| 256 | } | 260 | } | ||
| 257 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "\"><tbody data-rows>") | 261 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "\"><tbody data-rows>") |
| 258 | if templ_7745c5c3_Err != nil { | 262 | if templ_7745c5c3_Err != nil { | ||
| 259 | return templ_7745c5c3_Err | 263 | return templ_7745c5c3_Err | ||
| 260 | } | 264 | } | ||
| 261 | for _, m := range rows { | 265 | for _, m := range rows { | ||
| 262 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "<tr") | 266 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "<tr") |
| 263 | if templ_7745c5c3_Err != nil { | 267 | if templ_7745c5c3_Err != nil { | ||
| 264 | return templ_7745c5c3_Err | 268 | return templ_7745c5c3_Err | ||
| 265 | } | 269 | } | ||
| 266 | if m.Cursor { | 270 | if m.Cursor { | ||
| 267 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, " data-cursor") | 271 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, " data-cursor") |
| 268 | if templ_7745c5c3_Err != nil { | 272 | if templ_7745c5c3_Err != nil { | ||
| 269 | return templ_7745c5c3_Err | 273 | return templ_7745c5c3_Err | ||
| 270 | } | 274 | } | ||
| 271 | } | 275 | } | ||
| 272 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, " data-state=\"") | 276 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, " data-state=\"") |
| 273 | if templ_7745c5c3_Err != nil { | 277 | if templ_7745c5c3_Err != nil { | ||
| 274 | return templ_7745c5c3_Err | 278 | return templ_7745c5c3_Err | ||
| 275 | } | 279 | } | ||
| 276 | var templ_7745c5c3_Var10 string | 280 | var templ_7745c5c3_Var10 string | ||
| 277 | templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.State) | 281 | templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.State) | ||
| 278 | if templ_7745c5c3_Err != nil { | 282 | if templ_7745c5c3_Err != nil { | ||
| 279 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 65, Col: 55} | 283 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 66, Col: 55} |
| 280 | } | 284 | } | ||
| 281 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var10) | 285 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var10) | ||
| 282 | if templ_7745c5c3_Err != nil { | 286 | if templ_7745c5c3_Err != nil { | ||
| 283 | return templ_7745c5c3_Err | 287 | return templ_7745c5c3_Err | ||
| 284 | } | 288 | } | ||
| 285 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "\"><td class=\"c-n mute\">") | 289 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "\"><td class=\"c-n mute\">") |
| 286 | if templ_7745c5c3_Err != nil { | 290 | if templ_7745c5c3_Err != nil { | ||
| 287 | return templ_7745c5c3_Err | 291 | return templ_7745c5c3_Err | ||
| 288 | } | 292 | } | ||
| 289 | var templ_7745c5c3_Var11 string | 293 | var templ_7745c5c3_Var11 string | ||
| 290 | templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(m.Number) | 294 | templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(m.Number) | ||
| 291 | if templ_7745c5c3_Err != nil { | 295 | if templ_7745c5c3_Err != nil { | ||
| 292 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 66, Col: 37} | 296 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 67, Col: 37} |
| 293 | } | 297 | } | ||
| 294 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) | 298 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) | ||
| 295 | if templ_7745c5c3_Err != nil { | 299 | if templ_7745c5c3_Err != nil { | ||
| 296 | return templ_7745c5c3_Err | 300 | return templ_7745c5c3_Err | ||
| 297 | } | 301 | } | ||
| 298 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</td><td class=\"c-state\">") | 302 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "</td><td class=\"c-state\">") |
| 299 | if templ_7745c5c3_Err != nil { | 303 | if templ_7745c5c3_Err != nil { | ||
| 300 | return templ_7745c5c3_Err | 304 | return templ_7745c5c3_Err | ||
| 301 | } | 305 | } | ||
| 302 | var templ_7745c5c3_Var12 string | 306 | var templ_7745c5c3_Var12 string | ||
| 303 | templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(m.State) | 307 | templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(m.State) | ||
| 304 | if templ_7745c5c3_Err != nil { | 308 | if templ_7745c5c3_Err != nil { | ||
| 305 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 67, Col: 35} | 309 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 68, Col: 35} |
| 306 | } | 310 | } | ||
| 307 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) | 311 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) | ||
| 308 | if templ_7745c5c3_Err != nil { | 312 | if templ_7745c5c3_Err != nil { | ||
| 309 | return templ_7745c5c3_Err | 313 | return templ_7745c5c3_Err | ||
| 310 | } | 314 | } | ||
| 311 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "</td><td class=\"c-subject\"><a href=\"") | 315 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "</td><td class=\"c-subject\"><a href=\"") |
| 312 | if templ_7745c5c3_Err != nil { | 316 | if templ_7745c5c3_Err != nil { | ||
| 313 | return templ_7745c5c3_Err | 317 | return templ_7745c5c3_Err | ||
| 314 | } | 318 | } | ||
| 315 | var templ_7745c5c3_Var13 templ.SafeURL | 319 | var templ_7745c5c3_Var13 templ.SafeURL | ||
| 316 | templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(m.Href)) | 320 | templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(m.Href)) | ||
| 317 | if templ_7745c5c3_Err != nil { | 321 | if templ_7745c5c3_Err != nil { | ||
| 318 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 68, Col: 59} | 322 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 69, Col: 59} |
| 319 | } | 323 | } | ||
| 320 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13)) | 324 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13)) | ||
| 321 | if templ_7745c5c3_Err != nil { | 325 | if templ_7745c5c3_Err != nil { | ||
| 322 | return templ_7745c5c3_Err | 326 | return templ_7745c5c3_Err | ||
| 323 | } | 327 | } | ||
| 324 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "\">") | 328 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "\">") |
| 325 | if templ_7745c5c3_Err != nil { | 329 | if templ_7745c5c3_Err != nil { | ||
| 326 | return templ_7745c5c3_Err | 330 | return templ_7745c5c3_Err | ||
| 327 | } | 331 | } | ||
| 328 | var templ_7745c5c3_Var14 string | 332 | var templ_7745c5c3_Var14 string | ||
| 329 | templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(m.Title) | 333 | templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(m.Title) | ||
| 330 | if templ_7745c5c3_Err != nil { | 334 | if templ_7745c5c3_Err != nil { | ||
| 331 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 68, Col: 71} | 335 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 69, Col: 71} |
| 332 | } | 336 | } | ||
| 333 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14)) | 337 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14)) | ||
| 334 | if templ_7745c5c3_Err != nil { | 338 | if templ_7745c5c3_Err != nil { | ||
| 335 | return templ_7745c5c3_Err | 339 | return templ_7745c5c3_Err | ||
| 336 | } | 340 | } | ||
| 337 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "</a> <span class=\"mute\">") | 341 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "</a> <span class=\"mute\">") |
| 338 | if templ_7745c5c3_Err != nil { | 342 | if templ_7745c5c3_Err != nil { | ||
| 339 | return templ_7745c5c3_Err | 343 | return templ_7745c5c3_Err | ||
| 340 | } | 344 | } | ||
| 341 | var templ_7745c5c3_Var15 string | 345 | var templ_7745c5c3_Var15 string | ||
| 342 | templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(m.Branches) | 346 | templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(m.Branches) | ||
| 343 | if templ_7745c5c3_Err != nil { | 347 | if templ_7745c5c3_Err != nil { | ||
| 344 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 68, Col: 109} | 348 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 69, Col: 109} |
| 345 | } | 349 | } | ||
| 346 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15)) | 350 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15)) | ||
| 347 | if templ_7745c5c3_Err != nil { | 351 | if templ_7745c5c3_Err != nil { | ||
| 348 | return templ_7745c5c3_Err | 352 | return templ_7745c5c3_Err | ||
| 349 | } | 353 | } | ||
| 350 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "</span></td><td class=\"c-who dim\">") | 354 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</span></td><td class=\"c-who dim\">") |
| 351 | if templ_7745c5c3_Err != nil { | 355 | if templ_7745c5c3_Err != nil { | ||
| 352 | return templ_7745c5c3_Err | 356 | return templ_7745c5c3_Err | ||
| 353 | } | 357 | } | ||
| 354 | var templ_7745c5c3_Var16 string | 358 | var templ_7745c5c3_Var16 string | ||
| 355 | templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(m.Author) | 359 | templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(m.Author) | ||
| 356 | if templ_7745c5c3_Err != nil { | 360 | if templ_7745c5c3_Err != nil { | ||
| 357 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 69, Col: 38} | 361 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 70, Col: 38} |
| 358 | } | 362 | } | ||
| 359 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16)) | 363 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16)) | ||
| 360 | if templ_7745c5c3_Err != nil { | 364 | if templ_7745c5c3_Err != nil { | ||
| 361 | return templ_7745c5c3_Err | 365 | return templ_7745c5c3_Err | ||
| 362 | } | 366 | } | ||
| 363 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</td><td class=\"c-when nowrap dim\">") | 367 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "</td><td class=\"c-when nowrap dim\">") |
| 364 | if templ_7745c5c3_Err != nil { | 368 | if templ_7745c5c3_Err != nil { | ||
| 365 | return templ_7745c5c3_Err | 369 | return templ_7745c5c3_Err | ||
| 366 | } | 370 | } | ||
| 367 | if m.WhenAt != "" { | 371 | if m.WhenAt != "" { | ||
| 368 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<time datetime=\"") | 372 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "<time datetime=\"") |
| 369 | if templ_7745c5c3_Err != nil { | 373 | if templ_7745c5c3_Err != nil { | ||
| 370 | return templ_7745c5c3_Err | 374 | return templ_7745c5c3_Err | ||
| 371 | } | 375 | } | ||
| 372 | var templ_7745c5c3_Var17 string | 376 | var templ_7745c5c3_Var17 string | ||
| 373 | templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.WhenAt) | 377 | templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.WhenAt) | ||
| 374 | if templ_7745c5c3_Err != nil { | 378 | if templ_7745c5c3_Err != nil { | ||
| 375 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 72, Col: 33} | 379 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 73, Col: 33} |
| 376 | } | 380 | } | ||
| 377 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var17) | 381 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var17) | ||
| 378 | if templ_7745c5c3_Err != nil { | 382 | if templ_7745c5c3_Err != nil { | ||
| 379 | return templ_7745c5c3_Err | 383 | return templ_7745c5c3_Err | ||
| 380 | } | 384 | } | ||
| 381 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\" title=\"") | 385 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "\" title=\"") |
| 382 | if templ_7745c5c3_Err != nil { | 386 | if templ_7745c5c3_Err != nil { | ||
| 383 | return templ_7745c5c3_Err | 387 | return templ_7745c5c3_Err | ||
| 384 | } | 388 | } | ||
| 385 | var templ_7745c5c3_Var18 string | 389 | var templ_7745c5c3_Var18 string | ||
| 386 | templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.WhenAt) | 390 | templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.WhenAt) | ||
| 387 | if templ_7745c5c3_Err != nil { | 391 | if templ_7745c5c3_Err != nil { | ||
| 388 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 72, Col: 52} | 392 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 73, Col: 52} |
| 389 | } | 393 | } | ||
| 390 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var18) | 394 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var18) | ||
| 391 | if templ_7745c5c3_Err != nil { | 395 | if templ_7745c5c3_Err != nil { | ||
| 392 | return templ_7745c5c3_Err | 396 | return templ_7745c5c3_Err | ||
| 393 | } | 397 | } | ||
| 394 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "\">") | 398 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "\">") |
| 395 | if templ_7745c5c3_Err != nil { | 399 | if templ_7745c5c3_Err != nil { | ||
| 396 | return templ_7745c5c3_Err | 400 | return templ_7745c5c3_Err | ||
| 397 | } | 401 | } | ||
| 398 | var templ_7745c5c3_Var19 string | 402 | var templ_7745c5c3_Var19 string | ||
| 399 | templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(m.When) | 403 | templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(m.When) | ||
| 400 | if templ_7745c5c3_Err != nil { | 404 | if templ_7745c5c3_Err != nil { | ||
| 401 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 72, Col: 63} | 405 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 73, Col: 63} |
| 402 | } | 406 | } | ||
| 403 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19)) | 407 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19)) | ||
| 404 | if templ_7745c5c3_Err != nil { | 408 | if templ_7745c5c3_Err != nil { | ||
| 405 | return templ_7745c5c3_Err | 409 | return templ_7745c5c3_Err | ||
| 406 | } | 410 | } | ||
| 407 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</time>") | 411 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "</time>") |
| 408 | if templ_7745c5c3_Err != nil { | 412 | if templ_7745c5c3_Err != nil { | ||
| 409 | return templ_7745c5c3_Err | 413 | return templ_7745c5c3_Err | ||
| 410 | } | 414 | } | ||
| 411 | } | 415 | } | ||
| 412 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "</td></tr>") | 416 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</td></tr>") |
| 413 | if templ_7745c5c3_Err != nil { | 417 | if templ_7745c5c3_Err != nil { | ||
| 414 | return templ_7745c5c3_Err | 418 | return templ_7745c5c3_Err | ||
| 415 | } | 419 | } | ||
| 416 | } | 420 | } | ||
| 417 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</tbody></table>") | 421 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "</tbody></table>") |
| 418 | if templ_7745c5c3_Err != nil { | 422 | if templ_7745c5c3_Err != nil { | ||
| 419 | return templ_7745c5c3_Err | 423 | return templ_7745c5c3_Err | ||
| 420 | } | 424 | } | ||
| @@ -444,66 +448,66 @@ func mrListRail(p MRListPage) templ.Component { | |||||
| 444 | templ_7745c5c3_Var20 = templ.NopComponent | 448 | templ_7745c5c3_Var20 = templ.NopComponent | ||
| 445 | } | 449 | } | ||
| 446 | ctx = templ.ClearChildren(ctx) | 450 | ctx = templ.ClearChildren(ctx) | ||
| 447 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "<section aria-labelledby=\"r-states\"><h2 id=\"r-states\">States</h2><dl class=\"kv\"><dt>open</dt><dd>awaits review</dd><dt>merged</dt><dd>the target took the branch</dd><dt>closed</dt><dd>refused, branch kept</dd></dl></section><section aria-labelledby=\"r-new\"><h2 id=\"r-new\">Open one</h2>") | 451 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "<section aria-labelledby=\"r-states\"><h2 id=\"r-states\">States</h2><dl class=\"kv\"><dt>open</dt><dd>awaits review</dd><dt>merged</dt><dd>the target took the branch</dd><dt>closed</dt><dd>refused, branch kept</dd></dl></section><section aria-labelledby=\"r-new\"><h2 id=\"r-new\">Open one</h2>") |
| 448 | if templ_7745c5c3_Err != nil { | 452 | if templ_7745c5c3_Err != nil { | ||
| 449 | return templ_7745c5c3_Err | 453 | return templ_7745c5c3_Err | ||
| 450 | } | 454 | } | ||
| 451 | if len(p.Branches) > 0 { | 455 | if len(p.Branches) > 0 { | ||
| 452 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "<p class=\"dim\">compare a branch with ") | 456 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "<p class=\"dim\">compare a branch with ") |
| 453 | if templ_7745c5c3_Err != nil { | 457 | if templ_7745c5c3_Err != nil { | ||
| 454 | return templ_7745c5c3_Err | 458 | return templ_7745c5c3_Err | ||
| 455 | } | 459 | } | ||
| 456 | var templ_7745c5c3_Var21 string | 460 | var templ_7745c5c3_Var21 string | ||
| 457 | templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(p.Default) | 461 | templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(p.Default) | ||
| 458 | if templ_7745c5c3_Err != nil { | 462 | if templ_7745c5c3_Err != nil { | ||
| 459 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 97, Col: 51} | 463 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 98, Col: 51} |
| 460 | } | 464 | } | ||
| 461 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21)) | 465 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21)) | ||
| 462 | if templ_7745c5c3_Err != nil { | 466 | if templ_7745c5c3_Err != nil { | ||
| 463 | return templ_7745c5c3_Err | 467 | return templ_7745c5c3_Err | ||
| 464 | } | 468 | } | ||
| 465 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, ":</p><nav class=\"outline\" aria-label=\"Branches\">") | 469 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, ":</p><nav class=\"outline\" aria-label=\"Branches\">") |
| 466 | if templ_7745c5c3_Err != nil { | 470 | if templ_7745c5c3_Err != nil { | ||
| 467 | return templ_7745c5c3_Err | 471 | return templ_7745c5c3_Err | ||
| 468 | } | 472 | } | ||
| 469 | for _, b := range p.Branches { | 473 | for _, b := range p.Branches { | ||
| 470 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "<a href=\"") | 474 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "<a href=\"") |
| 471 | if templ_7745c5c3_Err != nil { | 475 | if templ_7745c5c3_Err != nil { | ||
| 472 | return templ_7745c5c3_Err | 476 | return templ_7745c5c3_Err | ||
| 473 | } | 477 | } | ||
| 474 | var templ_7745c5c3_Var22 templ.SafeURL | 478 | var templ_7745c5c3_Var22 templ.SafeURL | ||
| 475 | templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href)) | 479 | templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href)) | ||
| 476 | if templ_7745c5c3_Err != nil { | 480 | if templ_7745c5c3_Err != nil { | ||
| 477 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 100, Col: 36} | 481 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 101, Col: 36} |
| 478 | } | 482 | } | ||
| 479 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22)) | 483 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22)) | ||
| 480 | if templ_7745c5c3_Err != nil { | 484 | if templ_7745c5c3_Err != nil { | ||
| 481 | return templ_7745c5c3_Err | 485 | return templ_7745c5c3_Err | ||
| 482 | } | 486 | } | ||
| 483 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "\">") | 487 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "\">") |
| 484 | if templ_7745c5c3_Err != nil { | 488 | if templ_7745c5c3_Err != nil { | ||
| 485 | return templ_7745c5c3_Err | 489 | return templ_7745c5c3_Err | ||
| 486 | } | 490 | } | ||
| 487 | var templ_7745c5c3_Var23 string | 491 | var templ_7745c5c3_Var23 string | ||
| 488 | templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(b.Name) | 492 | templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(b.Name) | ||
| 489 | if templ_7745c5c3_Err != nil { | 493 | if templ_7745c5c3_Err != nil { | ||
| 490 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 100, Col: 47} | 494 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 101, Col: 47} |
| 491 | } | 495 | } | ||
| 492 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) | 496 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) | ||
| 493 | if templ_7745c5c3_Err != nil { | 497 | if templ_7745c5c3_Err != nil { | ||
| 494 | return templ_7745c5c3_Err | 498 | return templ_7745c5c3_Err | ||
| 495 | } | 499 | } | ||
| 496 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "</a>") | 500 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</a>") |
| 497 | if templ_7745c5c3_Err != nil { | 501 | if templ_7745c5c3_Err != nil { | ||
| 498 | return templ_7745c5c3_Err | 502 | return templ_7745c5c3_Err | ||
| 499 | } | 503 | } | ||
| 500 | } | 504 | } | ||
| 501 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</nav>") | 505 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "</nav>") |
| 502 | if templ_7745c5c3_Err != nil { | 506 | if templ_7745c5c3_Err != nil { | ||
| 503 | return templ_7745c5c3_Err | 507 | return templ_7745c5c3_Err | ||
| 504 | } | 508 | } | ||
| 505 | } else { | 509 | } else { | ||
| 506 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "<p class=\"dim\">there is no other branch to merge yet.</p>") | 510 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "<p class=\"dim\">there is no other branch to merge yet.</p>") |
| 507 | if templ_7745c5c3_Err != nil { | 511 | if templ_7745c5c3_Err != nil { | ||
| 508 | return templ_7745c5c3_Err | 512 | return templ_7745c5c3_Err | ||
| 509 | } | 513 | } | ||
| @@ -512,7 +516,7 @@ func mrListRail(p MRListPage) templ.Component { | |||||
| 512 | if templ_7745c5c3_Err != nil { | 516 | if templ_7745c5c3_Err != nil { | ||
| 513 | return templ_7745c5c3_Err | 517 | return templ_7745c5c3_Err | ||
| 514 | } | 518 | } | ||
| 515 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</section>") | 519 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "</section>") |
| 516 | if templ_7745c5c3_Err != nil { | 520 | if templ_7745c5c3_Err != nil { | ||
| 517 | return templ_7745c5c3_Err | 521 | return templ_7745c5c3_Err | ||
| 518 | } | 522 | } | ||
| @@ -557,59 +561,59 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 557 | }() | 561 | }() | ||
| 558 | } | 562 | } | ||
| 559 | ctx = templ.InitializeContext(ctx) | 563 | ctx = templ.InitializeContext(ctx) | ||
| 560 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<section class=\"mr-card\"><header class=\"show mr-h\"><h1><span class=\"mute\">") | 564 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "<section class=\"mr-card\"><header class=\"show mr-h\"><h1><span class=\"mute\">") |
| 561 | if templ_7745c5c3_Err != nil { | 565 | if templ_7745c5c3_Err != nil { | ||
| 562 | return templ_7745c5c3_Err | 566 | return templ_7745c5c3_Err | ||
| 563 | } | 567 | } | ||
| 564 | var templ_7745c5c3_Var26 string | 568 | var templ_7745c5c3_Var26 string | ||
| 565 | templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(p.Number) | 569 | templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(p.Number) | ||
| 566 | if templ_7745c5c3_Err != nil { | 570 | if templ_7745c5c3_Err != nil { | ||
| 567 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 118, Col: 37} | 571 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 119, Col: 37} |
| 568 | } | 572 | } | ||
| 569 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26)) | 573 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26)) | ||
| 570 | if templ_7745c5c3_Err != nil { | 574 | if templ_7745c5c3_Err != nil { | ||
| 571 | return templ_7745c5c3_Err | 575 | return templ_7745c5c3_Err | ||
| 572 | } | 576 | } | ||
| 573 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</span> ") | 577 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "</span> ") |
| 574 | if templ_7745c5c3_Err != nil { | 578 | if templ_7745c5c3_Err != nil { | ||
| 575 | return templ_7745c5c3_Err | 579 | return templ_7745c5c3_Err | ||
| 576 | } | 580 | } | ||
| 577 | var templ_7745c5c3_Var27 string | 581 | var templ_7745c5c3_Var27 string | ||
| 578 | templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) | 582 | templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) | ||
| 579 | if templ_7745c5c3_Err != nil { | 583 | if templ_7745c5c3_Err != nil { | ||
| 580 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 118, Col: 56} | 584 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 119, Col: 56} |
| 581 | } | 585 | } | ||
| 582 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27)) | 586 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27)) | ||
| 583 | if templ_7745c5c3_Err != nil { | 587 | if templ_7745c5c3_Err != nil { | ||
| 584 | return templ_7745c5c3_Err | 588 | return templ_7745c5c3_Err | ||
| 585 | } | 589 | } | ||
| 586 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "</h1><dl class=\"kv show-kv\"><dt>state</dt><dd class=\"mr-state\" data-state=\"") | 590 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "</h1><dl class=\"kv show-kv\"><dt>state</dt><dd class=\"mr-state\" data-state=\"") |
| 587 | if templ_7745c5c3_Err != nil { | 591 | if templ_7745c5c3_Err != nil { | ||
| 588 | return templ_7745c5c3_Err | 592 | return templ_7745c5c3_Err | ||
| 589 | } | 593 | } | ||
| 590 | var templ_7745c5c3_Var28 string | 594 | var templ_7745c5c3_Var28 string | ||
| 591 | templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.State) | 595 | templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.State) | ||
| 592 | if templ_7745c5c3_Err != nil { | 596 | if templ_7745c5c3_Err != nil { | ||
| 593 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 121, Col: 46} | 597 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 122, Col: 46} |
| 594 | } | 598 | } | ||
| 595 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28) | 599 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28) | ||
| 596 | if templ_7745c5c3_Err != nil { | 600 | if templ_7745c5c3_Err != nil { | ||
| 597 | return templ_7745c5c3_Err | 601 | return templ_7745c5c3_Err | ||
| 598 | } | 602 | } | ||
| 599 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "\">") | 603 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "\">") |
| 600 | if templ_7745c5c3_Err != nil { | 604 | if templ_7745c5c3_Err != nil { | ||
| 601 | return templ_7745c5c3_Err | 605 | return templ_7745c5c3_Err | ||
| 602 | } | 606 | } | ||
| 603 | var templ_7745c5c3_Var29 string | 607 | var templ_7745c5c3_Var29 string | ||
| 604 | templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(p.State) | 608 | templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(p.State) | ||
| 605 | if templ_7745c5c3_Err != nil { | 609 | if templ_7745c5c3_Err != nil { | ||
| 606 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 122, Col: 15} | 610 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 123, Col: 15} |
| 607 | } | 611 | } | ||
| 608 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) | 612 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) | ||
| 609 | if templ_7745c5c3_Err != nil { | 613 | if templ_7745c5c3_Err != nil { | ||
| 610 | return templ_7745c5c3_Err | 614 | return templ_7745c5c3_Err | ||
| 611 | } | 615 | } | ||
| 612 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, " ") | 616 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, " ") |
| 613 | if templ_7745c5c3_Err != nil { | 617 | if templ_7745c5c3_Err != nil { | ||
| 614 | return templ_7745c5c3_Err | 618 | return templ_7745c5c3_Err | ||
| 615 | } | 619 | } | ||
| @@ -617,53 +621,53 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 617 | var templ_7745c5c3_Var30 string | 621 | var templ_7745c5c3_Var30 string | ||
| 618 | templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | 622 | templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | ||
| 619 | if templ_7745c5c3_Err != nil { | 623 | if templ_7745c5c3_Err != nil { | ||
| 620 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 124, Col: 15} | 624 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 125, Col: 15} |
| 621 | } | 625 | } | ||
| 622 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30)) | 626 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30)) | ||
| 623 | if templ_7745c5c3_Err != nil { | 627 | if templ_7745c5c3_Err != nil { | ||
| 624 | return templ_7745c5c3_Err | 628 | return templ_7745c5c3_Err | ||
| 625 | } | 629 | } | ||
| 626 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "<a href=\"") | 630 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "<a href=\"") |
| 627 | if templ_7745c5c3_Err != nil { | 631 | if templ_7745c5c3_Err != nil { | ||
| 628 | return templ_7745c5c3_Err | 632 | return templ_7745c5c3_Err | ||
| 629 | } | 633 | } | ||
| 630 | var templ_7745c5c3_Var31 templ.SafeURL | 634 | var templ_7745c5c3_Var31 templ.SafeURL | ||
| 631 | templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.MergedHref)) | 635 | templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.MergedHref)) | ||
| 632 | if templ_7745c5c3_Err != nil { | 636 | if templ_7745c5c3_Err != nil { | ||
| 633 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 124, Col: 54} | 637 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 125, Col: 54} |
| 634 | } | 638 | } | ||
| 635 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31)) | 639 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31)) | ||
| 636 | if templ_7745c5c3_Err != nil { | 640 | if templ_7745c5c3_Err != nil { | ||
| 637 | return templ_7745c5c3_Err | 641 | return templ_7745c5c3_Err | ||
| 638 | } | 642 | } | ||
| 639 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "\">") | 643 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "\">") |
| 640 | if templ_7745c5c3_Err != nil { | 644 | if templ_7745c5c3_Err != nil { | ||
| 641 | return templ_7745c5c3_Err | 645 | return templ_7745c5c3_Err | ||
| 642 | } | 646 | } | ||
| 643 | var templ_7745c5c3_Var32 string | 647 | var templ_7745c5c3_Var32 string | ||
| 644 | templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(p.MergedShort) | 648 | templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(p.MergedShort) | ||
| 645 | if templ_7745c5c3_Err != nil { | 649 | if templ_7745c5c3_Err != nil { | ||
| 646 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 124, Col: 72} | 650 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 125, Col: 72} |
| 647 | } | 651 | } | ||
| 648 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32)) | 652 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32)) | ||
| 649 | if templ_7745c5c3_Err != nil { | 653 | if templ_7745c5c3_Err != nil { | ||
| 650 | return templ_7745c5c3_Err | 654 | return templ_7745c5c3_Err | ||
| 651 | } | 655 | } | ||
| 652 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "</a>") | 656 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</a>") |
| 653 | if templ_7745c5c3_Err != nil { | 657 | if templ_7745c5c3_Err != nil { | ||
| 654 | return templ_7745c5c3_Err | 658 | return templ_7745c5c3_Err | ||
| 655 | } | 659 | } | ||
| 656 | var templ_7745c5c3_Var33 string | 660 | var templ_7745c5c3_Var33 string | ||
| 657 | templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(" · " + p.MergeMode) | 661 | templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(" · " + p.MergeMode) | ||
| 658 | if templ_7745c5c3_Err != nil { | 662 | if templ_7745c5c3_Err != nil { | ||
| 659 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 124, Col: 100} | 663 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 125, Col: 100} |
| 660 | } | 664 | } | ||
| 661 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33)) | 665 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33)) | ||
| 662 | if templ_7745c5c3_Err != nil { | 666 | if templ_7745c5c3_Err != nil { | ||
| 663 | return templ_7745c5c3_Err | 667 | return templ_7745c5c3_Err | ||
| 664 | } | 668 | } | ||
| 665 | } | 669 | } | ||
| 666 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</dd><dt>branch</dt><dd>") | 670 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "</dd><dt>branch</dt><dd>") |
| 667 | if templ_7745c5c3_Err != nil { | 671 | if templ_7745c5c3_Err != nil { | ||
| 668 | return templ_7745c5c3_Err | 672 | return templ_7745c5c3_Err | ||
| 669 | } | 673 | } | ||
| @@ -674,7 +678,7 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 674 | var templ_7745c5c3_Var34 string | 678 | var templ_7745c5c3_Var34 string | ||
| 675 | templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(" → ") | 679 | templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(" → ") | ||
| 676 | if templ_7745c5c3_Err != nil { | 680 | if templ_7745c5c3_Err != nil { | ||
| 677 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 130, Col: 15} | 681 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 131, Col: 15} |
| 678 | } | 682 | } | ||
| 679 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34)) | 683 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34)) | ||
| 680 | if templ_7745c5c3_Err != nil { | 684 | if templ_7745c5c3_Err != nil { | ||
| @@ -684,20 +688,20 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 684 | if templ_7745c5c3_Err != nil { | 688 | if templ_7745c5c3_Err != nil { | ||
| 685 | return templ_7745c5c3_Err | 689 | return templ_7745c5c3_Err | ||
| 686 | } | 690 | } | ||
| 687 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "</dd><dt>opened</dt><dd>") | 691 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</dd><dt>opened</dt><dd>") |
| 688 | if templ_7745c5c3_Err != nil { | 692 | if templ_7745c5c3_Err != nil { | ||
| 689 | return templ_7745c5c3_Err | 693 | return templ_7745c5c3_Err | ||
| 690 | } | 694 | } | ||
| 691 | var templ_7745c5c3_Var35 string | 695 | var templ_7745c5c3_Var35 string | ||
| 692 | templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(p.Opened.Name) | 696 | templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(p.Opened.Name) | ||
| 693 | if templ_7745c5c3_Err != nil { | 697 | if templ_7745c5c3_Err != nil { | ||
| 694 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 135, Col: 21} | 698 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 136, Col: 21} |
| 695 | } | 699 | } | ||
| 696 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35)) | 700 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35)) | ||
| 697 | if templ_7745c5c3_Err != nil { | 701 | if templ_7745c5c3_Err != nil { | ||
| 698 | return templ_7745c5c3_Err | 702 | return templ_7745c5c3_Err | ||
| 699 | } | 703 | } | ||
| 700 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, " ") | 704 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, " ") |
| 701 | if templ_7745c5c3_Err != nil { | 705 | if templ_7745c5c3_Err != nil { | ||
| 702 | return templ_7745c5c3_Err | 706 | return templ_7745c5c3_Err | ||
| 703 | } | 707 | } | ||
| @@ -705,98 +709,98 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 705 | var templ_7745c5c3_Var36 string | 709 | var templ_7745c5c3_Var36 string | ||
| 706 | templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | 710 | templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | ||
| 707 | if templ_7745c5c3_Err != nil { | 711 | if templ_7745c5c3_Err != nil { | ||
| 708 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 137, Col: 15} | 712 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 138, Col: 15} |
| 709 | } | 713 | } | ||
| 710 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36)) | 714 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36)) | ||
| 711 | if templ_7745c5c3_Err != nil { | 715 | if templ_7745c5c3_Err != nil { | ||
| 712 | return templ_7745c5c3_Err | 716 | return templ_7745c5c3_Err | ||
| 713 | } | 717 | } | ||
| 714 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "<time datetime=\"") | 718 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "<time datetime=\"") |
| 715 | if templ_7745c5c3_Err != nil { | 719 | if templ_7745c5c3_Err != nil { | ||
| 716 | return templ_7745c5c3_Err | 720 | return templ_7745c5c3_Err | ||
| 717 | } | 721 | } | ||
| 718 | var templ_7745c5c3_Var37 string | 722 | var templ_7745c5c3_Var37 string | ||
| 719 | templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Opened.WhenAt) | 723 | templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Opened.WhenAt) | ||
| 720 | if templ_7745c5c3_Err != nil { | 724 | if templ_7745c5c3_Err != nil { | ||
| 721 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 137, Col: 49} | 725 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 138, Col: 49} |
| 722 | } | 726 | } | ||
| 723 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var37) | 727 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var37) | ||
| 724 | if templ_7745c5c3_Err != nil { | 728 | if templ_7745c5c3_Err != nil { | ||
| 725 | return templ_7745c5c3_Err | 729 | return templ_7745c5c3_Err | ||
| 726 | } | 730 | } | ||
| 727 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "\" title=\"") | 731 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "\" title=\"") |
| 728 | if templ_7745c5c3_Err != nil { | 732 | if templ_7745c5c3_Err != nil { | ||
| 729 | return templ_7745c5c3_Err | 733 | return templ_7745c5c3_Err | ||
| 730 | } | 734 | } | ||
| 731 | var templ_7745c5c3_Var38 string | 735 | var templ_7745c5c3_Var38 string | ||
| 732 | templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Opened.Abs) | 736 | templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Opened.Abs) | ||
| 733 | if templ_7745c5c3_Err != nil { | 737 | if templ_7745c5c3_Err != nil { | ||
| 734 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 137, Col: 72} | 738 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 138, Col: 72} |
| 735 | } | 739 | } | ||
| 736 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var38) | 740 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var38) | ||
| 737 | if templ_7745c5c3_Err != nil { | 741 | if templ_7745c5c3_Err != nil { | ||
| 738 | return templ_7745c5c3_Err | 742 | return templ_7745c5c3_Err | ||
| 739 | } | 743 | } | ||
| 740 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "\">") | 744 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "\">") |
| 741 | if templ_7745c5c3_Err != nil { | 745 | if templ_7745c5c3_Err != nil { | ||
| 742 | return templ_7745c5c3_Err | 746 | return templ_7745c5c3_Err | ||
| 743 | } | 747 | } | ||
| 744 | var templ_7745c5c3_Var39 string | 748 | var templ_7745c5c3_Var39 string | ||
| 745 | templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinStringErrs(p.Opened.When) | 749 | templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinStringErrs(p.Opened.When) | ||
| 746 | if templ_7745c5c3_Err != nil { | 750 | if templ_7745c5c3_Err != nil { | ||
| 747 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 137, Col: 90} | 751 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 138, Col: 90} |
| 748 | } | 752 | } | ||
| 749 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39)) | 753 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39)) | ||
| 750 | if templ_7745c5c3_Err != nil { | 754 | if templ_7745c5c3_Err != nil { | ||
| 751 | return templ_7745c5c3_Err | 755 | return templ_7745c5c3_Err | ||
| 752 | } | 756 | } | ||
| 753 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "</time>") | 757 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</time>") |
| 754 | if templ_7745c5c3_Err != nil { | 758 | if templ_7745c5c3_Err != nil { | ||
| 755 | return templ_7745c5c3_Err | 759 | return templ_7745c5c3_Err | ||
| 756 | } | 760 | } | ||
| 757 | } | 761 | } | ||
| 758 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</dd>") | 762 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "</dd>") |
| 759 | if templ_7745c5c3_Err != nil { | 763 | if templ_7745c5c3_Err != nil { | ||
| 760 | return templ_7745c5c3_Err | 764 | return templ_7745c5c3_Err | ||
| 761 | } | 765 | } | ||
| 762 | if p.UpdatedAt != "" { | 766 | if p.UpdatedAt != "" { | ||
| 763 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "<dt>updated</dt><dd><time datetime=\"") | 767 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "<dt>updated</dt><dd><time datetime=\"") |
| 764 | if templ_7745c5c3_Err != nil { | 768 | if templ_7745c5c3_Err != nil { | ||
| 765 | return templ_7745c5c3_Err | 769 | return templ_7745c5c3_Err | ||
| 766 | } | 770 | } | ||
| 767 | var templ_7745c5c3_Var40 string | 771 | var templ_7745c5c3_Var40 string | ||
| 768 | templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.UpdatedAt) | 772 | templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.UpdatedAt) | ||
| 769 | if templ_7745c5c3_Err != nil { | 773 | if templ_7745c5c3_Err != nil { | ||
| 770 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 142, Col: 38} | 774 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 143, Col: 38} |
| 771 | } | 775 | } | ||
| 772 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var40) | 776 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var40) | ||
| 773 | if templ_7745c5c3_Err != nil { | 777 | if templ_7745c5c3_Err != nil { | ||
| 774 | return templ_7745c5c3_Err | 778 | return templ_7745c5c3_Err | ||
| 775 | } | 779 | } | ||
| 776 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "\">") | 780 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "\">") |
| 777 | if templ_7745c5c3_Err != nil { | 781 | if templ_7745c5c3_Err != nil { | ||
| 778 | return templ_7745c5c3_Err | 782 | return templ_7745c5c3_Err | ||
| 779 | } | 783 | } | ||
| 780 | var templ_7745c5c3_Var41 string | 784 | var templ_7745c5c3_Var41 string | ||
| 781 | templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(p.Updated) | 785 | templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(p.Updated) | ||
| 782 | if templ_7745c5c3_Err != nil { | 786 | if templ_7745c5c3_Err != nil { | ||
| 783 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 142, Col: 52} | 787 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 143, Col: 52} |
| 784 | } | 788 | } | ||
| 785 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41)) | 789 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41)) | ||
| 786 | if templ_7745c5c3_Err != nil { | 790 | if templ_7745c5c3_Err != nil { | ||
| 787 | return templ_7745c5c3_Err | 791 | return templ_7745c5c3_Err | ||
| 788 | } | 792 | } | ||
| 789 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</time></dd>") | 793 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</time></dd>") |
| 790 | if templ_7745c5c3_Err != nil { | 794 | if templ_7745c5c3_Err != nil { | ||
| 791 | return templ_7745c5c3_Err | 795 | return templ_7745c5c3_Err | ||
| 792 | } | 796 | } | ||
| 793 | } | 797 | } | ||
| 794 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</dl></header>") | 798 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</dl></header>") |
| 795 | if templ_7745c5c3_Err != nil { | 799 | if templ_7745c5c3_Err != nil { | ||
| 796 | return templ_7745c5c3_Err | 800 | return templ_7745c5c3_Err | ||
| 797 | } | 801 | } | ||
| 798 | if p.Desc != "" { | 802 | if p.Desc != "" { | ||
| 799 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "<article class=\"mr-desc prose\" aria-label=\"description\" hx-ignore>") | 803 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "<article class=\"mr-desc prose\" aria-label=\"description\" hx-ignore>") |
| 800 | if templ_7745c5c3_Err != nil { | 804 | if templ_7745c5c3_Err != nil { | ||
| 801 | return templ_7745c5c3_Err | 805 | return templ_7745c5c3_Err | ||
| 802 | } | 806 | } | ||
| @@ -804,7 +808,7 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 804 | if templ_7745c5c3_Err != nil { | 808 | if templ_7745c5c3_Err != nil { | ||
| 805 | return templ_7745c5c3_Err | 809 | return templ_7745c5c3_Err | ||
| 806 | } | 810 | } | ||
| 807 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "</article>") | 811 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</article>") |
| 808 | if templ_7745c5c3_Err != nil { | 812 | if templ_7745c5c3_Err != nil { | ||
| 809 | return templ_7745c5c3_Err | 813 | return templ_7745c5c3_Err | ||
| 810 | } | 814 | } | ||
| @@ -813,53 +817,53 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 813 | if templ_7745c5c3_Err != nil { | 817 | if templ_7745c5c3_Err != nil { | ||
| 814 | return templ_7745c5c3_Err | 818 | return templ_7745c5c3_Err | ||
| 815 | } | 819 | } | ||
| 816 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</section>") | 820 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "</section>") |
| 817 | if templ_7745c5c3_Err != nil { | 821 | if templ_7745c5c3_Err != nil { | ||
| 818 | return templ_7745c5c3_Err | 822 | return templ_7745c5c3_Err | ||
| 819 | } | 823 | } | ||
| 820 | if p.Deleting != "" { | 824 | if p.Deleting != "" { | ||
| 821 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<p class=\"note\" role=\"status\">merged. the branch ") | 825 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "<p class=\"note\" role=\"status\">merged. the branch ") |
| 822 | if templ_7745c5c3_Err != nil { | 826 | if templ_7745c5c3_Err != nil { | ||
| 823 | return templ_7745c5c3_Err | 827 | return templ_7745c5c3_Err | ||
| 824 | } | 828 | } | ||
| 825 | var templ_7745c5c3_Var42 string | 829 | var templ_7745c5c3_Var42 string | ||
| 826 | templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(p.Deleting) | 830 | templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(p.Deleting) | ||
| 827 | if templ_7745c5c3_Err != nil { | 831 | if templ_7745c5c3_Err != nil { | ||
| 828 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 154, Col: 64} | 832 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 155, Col: 64} |
| 829 | } | 833 | } | ||
| 830 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42)) | 834 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42)) | ||
| 831 | if templ_7745c5c3_Err != nil { | 835 | if templ_7745c5c3_Err != nil { | ||
| 832 | return templ_7745c5c3_Err | 836 | return templ_7745c5c3_Err | ||
| 833 | } | 837 | } | ||
| 834 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, " is being deleted.</p>") | 838 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, " is being deleted.</p>") |
| 835 | if templ_7745c5c3_Err != nil { | 839 | if templ_7745c5c3_Err != nil { | ||
| 836 | return templ_7745c5c3_Err | 840 | return templ_7745c5c3_Err | ||
| 837 | } | 841 | } | ||
| 838 | } | 842 | } | ||
| 839 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, " ") | 843 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, " ") |
| 840 | if templ_7745c5c3_Err != nil { | 844 | if templ_7745c5c3_Err != nil { | ||
| 841 | return templ_7745c5c3_Err | 845 | return templ_7745c5c3_Err | ||
| 842 | } | 846 | } | ||
| 843 | if p.MergeError != "" { | 847 | if p.MergeError != "" { | ||
| 844 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "<p class=\"d-err\" role=\"alert\">") | 848 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "<p class=\"d-err\" role=\"alert\">") |
| 845 | if templ_7745c5c3_Err != nil { | 849 | if templ_7745c5c3_Err != nil { | ||
| 846 | return templ_7745c5c3_Err | 850 | return templ_7745c5c3_Err | ||
| 847 | } | 851 | } | ||
| 848 | var templ_7745c5c3_Var43 string | 852 | var templ_7745c5c3_Var43 string | ||
| 849 | templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(p.MergeError) | 853 | templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(p.MergeError) | ||
| 850 | if templ_7745c5c3_Err != nil { | 854 | if templ_7745c5c3_Err != nil { | ||
| 851 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 157, Col: 47} | 855 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 158, Col: 47} |
| 852 | } | 856 | } | ||
| 853 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43)) | 857 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43)) | ||
| 854 | if templ_7745c5c3_Err != nil { | 858 | if templ_7745c5c3_Err != nil { | ||
| 855 | return templ_7745c5c3_Err | 859 | return templ_7745c5c3_Err | ||
| 856 | } | 860 | } | ||
| 857 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "</p>") | 861 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "</p>") |
| 858 | if templ_7745c5c3_Err != nil { | 862 | if templ_7745c5c3_Err != nil { | ||
| 859 | return templ_7745c5c3_Err | 863 | return templ_7745c5c3_Err | ||
| 860 | } | 864 | } | ||
| 861 | } | 865 | } | ||
| 862 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, " ") | 866 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, " ") |
| 863 | if templ_7745c5c3_Err != nil { | 867 | if templ_7745c5c3_Err != nil { | ||
| 864 | return templ_7745c5c3_Err | 868 | return templ_7745c5c3_Err | ||
| 865 | } | 869 | } | ||
| @@ -867,131 +871,131 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 867 | if templ_7745c5c3_Err != nil { | 871 | if templ_7745c5c3_Err != nil { | ||
| 868 | return templ_7745c5c3_Err | 872 | return templ_7745c5c3_Err | ||
| 869 | } | 873 | } | ||
| 870 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, " <div id=\"mr-range\"") | 874 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, " <div id=\"mr-refresh-status\" role=\"status\" aria-live=\"polite\"></div><div id=\"mr-range\"") |
| 871 | if templ_7745c5c3_Err != nil { | 875 | if templ_7745c5c3_Err != nil { | ||
| 872 | return templ_7745c5c3_Err | 876 | return templ_7745c5c3_Err | ||
| 873 | } | 877 | } | ||
| 874 | if p.Since == nil && p.SinceNote == "" { | 878 | if p.Since == nil && p.SinceNote == "" { | ||
| 875 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, " hidden") | 879 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, " hidden") |
| 876 | if templ_7745c5c3_Err != nil { | 880 | if templ_7745c5c3_Err != nil { | ||
| 877 | return templ_7745c5c3_Err | 881 | return templ_7745c5c3_Err | ||
| 878 | } | 882 | } | ||
| 879 | } | 883 | } | ||
| 880 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, ">") | 884 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, ">") |
| 881 | if templ_7745c5c3_Err != nil { | 885 | if templ_7745c5c3_Err != nil { | ||
| 882 | return templ_7745c5c3_Err | 886 | return templ_7745c5c3_Err | ||
| 883 | } | 887 | } | ||
| 884 | if p.Since != nil { | 888 | if p.Since != nil { | ||
| 885 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "<nav class=\"since\" aria-label=\"Diff range\"><a href=\"") | 889 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "<nav class=\"since\" aria-label=\"Diff range\"><a href=\"") |
| 886 | if templ_7745c5c3_Err != nil { | 890 | if templ_7745c5c3_Err != nil { | ||
| 887 | return templ_7745c5c3_Err | 891 | return templ_7745c5c3_Err | ||
| 888 | } | 892 | } | ||
| 889 | var templ_7745c5c3_Var44 templ.SafeURL | 893 | var templ_7745c5c3_Var44 templ.SafeURL | ||
| 890 | templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Since.AllHref)) | 894 | templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Since.AllHref)) | ||
| 891 | if templ_7745c5c3_Err != nil { | 895 | if templ_7745c5c3_Err != nil { | ||
| 892 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 164, Col: 43} | 896 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 166, Col: 43} |
| 893 | } | 897 | } | ||
| 894 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44)) | 898 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44)) | ||
| 895 | if templ_7745c5c3_Err != nil { | 899 | if templ_7745c5c3_Err != nil { | ||
| 896 | return templ_7745c5c3_Err | 900 | return templ_7745c5c3_Err | ||
| 897 | } | 901 | } | ||
| 898 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "\"") | 902 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "\"") |
| 899 | if templ_7745c5c3_Err != nil { | 903 | if templ_7745c5c3_Err != nil { | ||
| 900 | return templ_7745c5c3_Err | 904 | return templ_7745c5c3_Err | ||
| 901 | } | 905 | } | ||
| 902 | if !p.Since.Current { | 906 | if !p.Since.Current { | ||
| 903 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, " aria-current=\"page\"") | 907 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, " aria-current=\"page\"") |
| 904 | if templ_7745c5c3_Err != nil { | 908 | if templ_7745c5c3_Err != nil { | ||
| 905 | return templ_7745c5c3_Err | 909 | return templ_7745c5c3_Err | ||
| 906 | } | 910 | } | ||
| 907 | } | 911 | } | ||
| 908 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, ">all changes <span class=\"mute\">vs ") | 912 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, ">all changes <span class=\"mute\">vs ") |
| 909 | if templ_7745c5c3_Err != nil { | 913 | if templ_7745c5c3_Err != nil { | ||
| 910 | return templ_7745c5c3_Err | 914 | return templ_7745c5c3_Err | ||
| 911 | } | 915 | } | ||
| 912 | var templ_7745c5c3_Var45 string | 916 | var templ_7745c5c3_Var45 string | ||
| 913 | templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 917 | templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 914 | if templ_7745c5c3_Err != nil { | 918 | if templ_7745c5c3_Err != nil { | ||
| 915 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 168, Col: 50} | 919 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 170, Col: 50} |
| 916 | } | 920 | } | ||
| 917 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45)) | 921 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45)) | ||
| 918 | if templ_7745c5c3_Err != nil { | 922 | if templ_7745c5c3_Err != nil { | ||
| 919 | return templ_7745c5c3_Err | 923 | return templ_7745c5c3_Err | ||
| 920 | } | 924 | } | ||
| 921 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "</span></a> <a href=\"") | 925 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "</span></a> <a href=\"") |
| 922 | if templ_7745c5c3_Err != nil { | 926 | if templ_7745c5c3_Err != nil { | ||
| 923 | return templ_7745c5c3_Err | 927 | return templ_7745c5c3_Err | ||
| 924 | } | 928 | } | ||
| 925 | var templ_7745c5c3_Var46 templ.SafeURL | 929 | var templ_7745c5c3_Var46 templ.SafeURL | ||
| 926 | templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Since.SinceHref)) | 930 | templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Since.SinceHref)) | ||
| 927 | if templ_7745c5c3_Err != nil { | 931 | if templ_7745c5c3_Err != nil { | ||
| 928 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 170, Col: 45} | 932 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 172, Col: 45} |
| 929 | } | 933 | } | ||
| 930 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46)) | 934 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46)) | ||
| 931 | if templ_7745c5c3_Err != nil { | 935 | if templ_7745c5c3_Err != nil { | ||
| 932 | return templ_7745c5c3_Err | 936 | return templ_7745c5c3_Err | ||
| 933 | } | 937 | } | ||
| 934 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "\"") | 938 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "\"") |
| 935 | if templ_7745c5c3_Err != nil { | 939 | if templ_7745c5c3_Err != nil { | ||
| 936 | return templ_7745c5c3_Err | 940 | return templ_7745c5c3_Err | ||
| 937 | } | 941 | } | ||
| 938 | if p.Since.Current { | 942 | if p.Since.Current { | ||
| 939 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, " aria-current=\"page\"") | 943 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, " aria-current=\"page\"") |
| 940 | if templ_7745c5c3_Err != nil { | 944 | if templ_7745c5c3_Err != nil { | ||
| 941 | return templ_7745c5c3_Err | 945 | return templ_7745c5c3_Err | ||
| 942 | } | 946 | } | ||
| 943 | } | 947 | } | ||
| 944 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, ">since your last read <span class=\"mute\">") | 948 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, ">since your last read <span class=\"mute\">") |
| 945 | if templ_7745c5c3_Err != nil { | 949 | if templ_7745c5c3_Err != nil { | ||
| 946 | return templ_7745c5c3_Err | 950 | return templ_7745c5c3_Err | ||
| 947 | } | 951 | } | ||
| 948 | var templ_7745c5c3_Var47 string | 952 | var templ_7745c5c3_Var47 string | ||
| 949 | templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinStringErrs(p.Since.ReadShort) | 953 | templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinStringErrs(p.Since.ReadShort) | ||
| 950 | if templ_7745c5c3_Err != nil { | 954 | if templ_7745c5c3_Err != nil { | ||
| 951 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 174, Col: 65} | 955 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 176, Col: 65} |
| 952 | } | 956 | } | ||
| 953 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47)) | 957 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47)) | ||
| 954 | if templ_7745c5c3_Err != nil { | 958 | if templ_7745c5c3_Err != nil { | ||
| 955 | return templ_7745c5c3_Err | 959 | return templ_7745c5c3_Err | ||
| 956 | } | 960 | } | ||
| 957 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, " → ") | 961 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, " → ") |
| 958 | if templ_7745c5c3_Err != nil { | 962 | if templ_7745c5c3_Err != nil { | ||
| 959 | return templ_7745c5c3_Err | 963 | return templ_7745c5c3_Err | ||
| 960 | } | 964 | } | ||
| 961 | var templ_7745c5c3_Var48 string | 965 | var templ_7745c5c3_Var48 string | ||
| 962 | templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(p.Since.HeadShort) | 966 | templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(p.Since.HeadShort) | ||
| 963 | if templ_7745c5c3_Err != nil { | 967 | if templ_7745c5c3_Err != nil { | ||
| 964 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 174, Col: 91} | 968 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 176, Col: 91} |
| 965 | } | 969 | } | ||
| 966 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48)) | 970 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48)) | ||
| 967 | if templ_7745c5c3_Err != nil { | 971 | if templ_7745c5c3_Err != nil { | ||
| 968 | return templ_7745c5c3_Err | 972 | return templ_7745c5c3_Err | ||
| 969 | } | 973 | } | ||
| 970 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "</span></a></nav>") | 974 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "</span></a></nav>") |
| 971 | if templ_7745c5c3_Err != nil { | 975 | if templ_7745c5c3_Err != nil { | ||
| 972 | return templ_7745c5c3_Err | 976 | return templ_7745c5c3_Err | ||
| 973 | } | 977 | } | ||
| 974 | } | 978 | } | ||
| 975 | if p.SinceNote != "" { | 979 | if p.SinceNote != "" { | ||
| 976 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "<p class=\"notice\">") | 980 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "<p class=\"notice\">") |
| 977 | if templ_7745c5c3_Err != nil { | 981 | if templ_7745c5c3_Err != nil { | ||
| 978 | return templ_7745c5c3_Err | 982 | return templ_7745c5c3_Err | ||
| 979 | } | 983 | } | ||
| 980 | var templ_7745c5c3_Var49 string | 984 | var templ_7745c5c3_Var49 string | ||
| 981 | templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(p.SinceNote) | 985 | templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(p.SinceNote) | ||
| 982 | if templ_7745c5c3_Err != nil { | 986 | if templ_7745c5c3_Err != nil { | ||
| 983 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 178, Col: 35} | 987 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 180, Col: 35} |
| 984 | } | 988 | } | ||
| 985 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49)) | 989 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49)) | ||
| 986 | if templ_7745c5c3_Err != nil { | 990 | if templ_7745c5c3_Err != nil { | ||
| 987 | return templ_7745c5c3_Err | 991 | return templ_7745c5c3_Err | ||
| 988 | } | 992 | } | ||
| 989 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "</p>") | 993 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "</p>") |
| 990 | if templ_7745c5c3_Err != nil { | 994 | if templ_7745c5c3_Err != nil { | ||
| 991 | return templ_7745c5c3_Err | 995 | return templ_7745c5c3_Err | ||
| 992 | } | 996 | } | ||
| 993 | } | 997 | } | ||
| 994 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "</div>") | 998 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "</div>") |
| 995 | if templ_7745c5c3_Err != nil { | 999 | if templ_7745c5c3_Err != nil { | ||
| 996 | return templ_7745c5c3_Err | 1000 | return templ_7745c5c3_Err | ||
| 997 | } | 1001 | } | ||
| @@ -999,112 +1003,112 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 999 | if templ_7745c5c3_Err != nil { | 1003 | if templ_7745c5c3_Err != nil { | ||
| 1000 | return templ_7745c5c3_Err | 1004 | return templ_7745c5c3_Err | ||
| 1001 | } | 1005 | } | ||
| 1002 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, " <div id=\"mr-diff-notices\"") | 1006 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, " <div id=\"mr-diff-notices\"") |
| 1003 | if templ_7745c5c3_Err != nil { | 1007 | if templ_7745c5c3_Err != nil { | ||
| 1004 | return templ_7745c5c3_Err | 1008 | return templ_7745c5c3_Err | ||
| 1005 | } | 1009 | } | ||
| 1006 | if !p.Invisible && p.Note == "" { | 1010 | if !p.Invisible && p.Note == "" { | ||
| 1007 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, " hidden") | 1011 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, " hidden") |
| 1008 | if templ_7745c5c3_Err != nil { | 1012 | if templ_7745c5c3_Err != nil { | ||
| 1009 | return templ_7745c5c3_Err | 1013 | return templ_7745c5c3_Err | ||
| 1010 | } | 1014 | } | ||
| 1011 | } | 1015 | } | ||
| 1012 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, ">") | 1016 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, ">") |
| 1013 | if templ_7745c5c3_Err != nil { | 1017 | if templ_7745c5c3_Err != nil { | ||
| 1014 | return templ_7745c5c3_Err | 1018 | return templ_7745c5c3_Err | ||
| 1015 | } | 1019 | } | ||
| 1016 | if p.Invisible { | 1020 | if p.Invisible { | ||
| 1017 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>") | 1021 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>") |
| 1018 | if templ_7745c5c3_Err != nil { | 1022 | if templ_7745c5c3_Err != nil { | ||
| 1019 | return templ_7745c5c3_Err | 1023 | return templ_7745c5c3_Err | ||
| 1020 | } | 1024 | } | ||
| 1021 | } | 1025 | } | ||
| 1022 | if p.Note != "" { | 1026 | if p.Note != "" { | ||
| 1023 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "<p class=\"notice\">") | 1027 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "<p class=\"notice\">") |
| 1024 | if templ_7745c5c3_Err != nil { | 1028 | if templ_7745c5c3_Err != nil { | ||
| 1025 | return templ_7745c5c3_Err | 1029 | return templ_7745c5c3_Err | ||
| 1026 | } | 1030 | } | ||
| 1027 | var templ_7745c5c3_Var50 string | 1031 | var templ_7745c5c3_Var50 string | ||
| 1028 | templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | 1032 | templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | ||
| 1029 | if templ_7745c5c3_Err != nil { | 1033 | if templ_7745c5c3_Err != nil { | ||
| 1030 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 190, Col: 30} | 1034 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 192, Col: 30} |
| 1031 | } | 1035 | } | ||
| 1032 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50)) | 1036 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50)) | ||
| 1033 | if templ_7745c5c3_Err != nil { | 1037 | if templ_7745c5c3_Err != nil { | ||
| 1034 | return templ_7745c5c3_Err | 1038 | return templ_7745c5c3_Err | ||
| 1035 | } | 1039 | } | ||
| 1036 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "</p>") | 1040 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "</p>") |
| 1037 | if templ_7745c5c3_Err != nil { | 1041 | if templ_7745c5c3_Err != nil { | ||
| 1038 | return templ_7745c5c3_Err | 1042 | return templ_7745c5c3_Err | ||
| 1039 | } | 1043 | } | ||
| 1040 | } | 1044 | } | ||
| 1041 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "</div><div id=\"diffs\" data-mr") | 1045 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, "</div><div id=\"diffs\" data-mr") |
| 1042 | if templ_7745c5c3_Err != nil { | 1046 | if templ_7745c5c3_Err != nil { | ||
| 1043 | return templ_7745c5c3_Err | 1047 | return templ_7745c5c3_Err | ||
| 1044 | } | 1048 | } | ||
| 1045 | if p.Canonical != "" { | 1049 | if p.Canonical != "" { | ||
| 1046 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, " data-canonical=\"") | 1050 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, " data-canonical=\"") |
| 1047 | if templ_7745c5c3_Err != nil { | 1051 | if templ_7745c5c3_Err != nil { | ||
| 1048 | return templ_7745c5c3_Err | 1052 | return templ_7745c5c3_Err | ||
| 1049 | } | 1053 | } | ||
| 1050 | var templ_7745c5c3_Var51 string | 1054 | var templ_7745c5c3_Var51 string | ||
| 1051 | templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Canonical) | 1055 | templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Canonical) | ||
| 1052 | if templ_7745c5c3_Err != nil { | 1056 | if templ_7745c5c3_Err != nil { | ||
| 1053 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 197, Col: 32} | 1057 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 199, Col: 32} |
| 1054 | } | 1058 | } | ||
| 1055 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var51) | 1059 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var51) | ||
| 1056 | if templ_7745c5c3_Err != nil { | 1060 | if templ_7745c5c3_Err != nil { | ||
| 1057 | return templ_7745c5c3_Err | 1061 | return templ_7745c5c3_Err | ||
| 1058 | } | 1062 | } | ||
| 1059 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "\"") | 1063 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, "\"") |
| 1060 | if templ_7745c5c3_Err != nil { | 1064 | if templ_7745c5c3_Err != nil { | ||
| 1061 | return templ_7745c5c3_Err | 1065 | return templ_7745c5c3_Err | ||
| 1062 | } | 1066 | } | ||
| 1063 | } | 1067 | } | ||
| 1064 | if p.Both { | 1068 | if p.Both { | ||
| 1065 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, " data-diff=\"") | 1069 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, " data-diff=\"") |
| 1066 | if templ_7745c5c3_Err != nil { | 1070 | if templ_7745c5c3_Err != nil { | ||
| 1067 | return templ_7745c5c3_Err | 1071 | return templ_7745c5c3_Err | ||
| 1068 | } | 1072 | } | ||
| 1069 | var templ_7745c5c3_Var52 string | 1073 | var templ_7745c5c3_Var52 string | ||
| 1070 | templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | 1074 | templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | ||
| 1071 | if templ_7745c5c3_Err != nil { | 1075 | if templ_7745c5c3_Err != nil { | ||
| 1072 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 200, Col: 22} | 1076 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 202, Col: 22} |
| 1073 | } | 1077 | } | ||
| 1074 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var52) | 1078 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var52) | ||
| 1075 | if templ_7745c5c3_Err != nil { | 1079 | if templ_7745c5c3_Err != nil { | ||
| 1076 | return templ_7745c5c3_Err | 1080 | return templ_7745c5c3_Err | ||
| 1077 | } | 1081 | } | ||
| 1078 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "\"") | 1082 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "\"") |
| 1079 | if templ_7745c5c3_Err != nil { | 1083 | if templ_7745c5c3_Err != nil { | ||
| 1080 | return templ_7745c5c3_Err | 1084 | return templ_7745c5c3_Err | ||
| 1081 | } | 1085 | } | ||
| 1082 | } else { | 1086 | } else { | ||
| 1083 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, " data-view=\"") | 1087 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, " data-view=\"") |
| 1084 | if templ_7745c5c3_Err != nil { | 1088 | if templ_7745c5c3_Err != nil { | ||
| 1085 | return templ_7745c5c3_Err | 1089 | return templ_7745c5c3_Err | ||
| 1086 | } | 1090 | } | ||
| 1087 | var templ_7745c5c3_Var53 string | 1091 | var templ_7745c5c3_Var53 string | ||
| 1088 | templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | 1092 | templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | ||
| 1089 | if templ_7745c5c3_Err != nil { | 1093 | if templ_7745c5c3_Err != nil { | ||
| 1090 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 202, Col: 22} | 1094 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 204, Col: 22} |
| 1091 | } | 1095 | } | ||
| 1092 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var53) | 1096 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var53) | ||
| 1093 | if templ_7745c5c3_Err != nil { | 1097 | if templ_7745c5c3_Err != nil { | ||
| 1094 | return templ_7745c5c3_Err | 1098 | return templ_7745c5c3_Err | ||
| 1095 | } | 1099 | } | ||
| 1096 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "\"") | 1100 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "\"") |
| 1097 | if templ_7745c5c3_Err != nil { | 1101 | if templ_7745c5c3_Err != nil { | ||
| 1098 | return templ_7745c5c3_Err | 1102 | return templ_7745c5c3_Err | ||
| 1099 | } | 1103 | } | ||
| 1100 | } | 1104 | } | ||
| 1101 | if p.Both && !p.Pinned { | 1105 | if p.Both && !p.Pinned { | ||
| 1102 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"") | 1106 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"") |
| 1103 | if templ_7745c5c3_Err != nil { | 1107 | if templ_7745c5c3_Err != nil { | ||
| 1104 | return templ_7745c5c3_Err | 1108 | return templ_7745c5c3_Err | ||
| 1105 | } | 1109 | } | ||
| 1106 | } | 1110 | } | ||
| 1107 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, ">") | 1111 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, ">") |
| 1108 | if templ_7745c5c3_Err != nil { | 1112 | if templ_7745c5c3_Err != nil { | ||
| 1109 | return templ_7745c5c3_Err | 1113 | return templ_7745c5c3_Err | ||
| 1110 | } | 1114 | } | ||
| @@ -1115,38 +1119,38 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 1115 | } | 1119 | } | ||
| 1116 | } | 1120 | } | ||
| 1117 | if len(p.Files) == 0 { | 1121 | if len(p.Files) == 0 { | ||
| 1118 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "<p class=\"note\">no changed files.</p>") | 1122 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "<p class=\"note\">no changed files.</p>") |
| 1119 | if templ_7745c5c3_Err != nil { | 1123 | if templ_7745c5c3_Err != nil { | ||
| 1120 | return templ_7745c5c3_Err | 1124 | return templ_7745c5c3_Err | ||
| 1121 | } | 1125 | } | ||
| 1122 | } | 1126 | } | ||
| 1123 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "</div><h2 class=\"rule-h\" id=\"comments\"><span>Comments</span><span class=\"count\">") | 1127 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "</div><div id=\"mr-comments\"><h2 class=\"rule-h\" id=\"comments\"><span>Comments</span><span class=\"count\">") |
| 1124 | if templ_7745c5c3_Err != nil { | 1128 | if templ_7745c5c3_Err != nil { | ||
| 1125 | return templ_7745c5c3_Err | 1129 | return templ_7745c5c3_Err | ||
| 1126 | } | 1130 | } | ||
| 1127 | var templ_7745c5c3_Var54 string | 1131 | var templ_7745c5c3_Var54 string | ||
| 1128 | templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NUnresolved)) | 1132 | templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NUnresolved)) | ||
| 1129 | if templ_7745c5c3_Err != nil { | 1133 | if templ_7745c5c3_Err != nil { | ||
| 1130 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 215, Col: 97} | 1134 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 218, Col: 97} |
| 1131 | } | 1135 | } | ||
| 1132 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54)) | 1136 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54)) | ||
| 1133 | if templ_7745c5c3_Err != nil { | 1137 | if templ_7745c5c3_Err != nil { | ||
| 1134 | return templ_7745c5c3_Err | 1138 | return templ_7745c5c3_Err | ||
| 1135 | } | 1139 | } | ||
| 1136 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, " open / ") | 1140 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, " open / ") |
| 1137 | if templ_7745c5c3_Err != nil { | 1141 | if templ_7745c5c3_Err != nil { | ||
| 1138 | return templ_7745c5c3_Err | 1142 | return templ_7745c5c3_Err | ||
| 1139 | } | 1143 | } | ||
| 1140 | var templ_7745c5c3_Var55 string | 1144 | var templ_7745c5c3_Var55 string | ||
| 1141 | templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NComments)) | 1145 | templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NComments)) | ||
| 1142 | if templ_7745c5c3_Err != nil { | 1146 | if templ_7745c5c3_Err != nil { | ||
| 1143 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 215, Col: 126} | 1147 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 218, Col: 126} |
| 1144 | } | 1148 | } | ||
| 1145 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55)) | 1149 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55)) | ||
| 1146 | if templ_7745c5c3_Err != nil { | 1150 | if templ_7745c5c3_Err != nil { | ||
| 1147 | return templ_7745c5c3_Err | 1151 | return templ_7745c5c3_Err | ||
| 1148 | } | 1152 | } | ||
| 1149 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "</span></h2>") | 1153 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "</span></h2>") |
| 1150 | if templ_7745c5c3_Err != nil { | 1154 | if templ_7745c5c3_Err != nil { | ||
| 1151 | return templ_7745c5c3_Err | 1155 | return templ_7745c5c3_Err | ||
| 1152 | } | 1156 | } | ||
| @@ -1162,26 +1166,22 @@ func MergeRequest(l Layout, p MRPage) templ.Component { | |||||
| 1162 | return templ_7745c5c3_Err | 1166 | return templ_7745c5c3_Err | ||
| 1163 | } | 1167 | } | ||
| 1164 | } | 1168 | } | ||
| 1165 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, " ") | |||
| 1166 | - | if templ_7745c5c3_Err != nil { | |||
| 1167 | - | return templ_7745c5c3_Err | |||
| 1168 | - | } | |||
| 1169 | if p.NComments == 0 { | 1169 | if p.NComments == 0 { | ||
| 1170 | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "<p class=\"dim\">no comments yet.</p>") | 1170 | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "<p class=\"dim\">no comments yet.</p>") | ||
| 1171 | if templ_7745c5c3_Err != nil { | 1171 | if templ_7745c5c3_Err != nil { | ||
| 1172 | return templ_7745c5c3_Err | 1172 | return templ_7745c5c3_Err | ||
| 1173 | } | 1173 | } | ||
| 1174 | } | 1174 | } | ||
| 1175 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, " ") | |||
| 1176 | - | if templ_7745c5c3_Err != nil { | |||
| 1177 | - | return templ_7745c5c3_Err | |||
| 1178 | - | } | |||
| 1179 | if p.GeneralForm != nil { | 1175 | if p.GeneralForm != nil { | ||
| 1180 | templ_7745c5c3_Err = commentForm(*p.GeneralForm, "").Render(ctx, templ_7745c5c3_Buffer) | 1176 | templ_7745c5c3_Err = commentForm(*p.GeneralForm, "").Render(ctx, templ_7745c5c3_Buffer) | ||
| 1181 | if templ_7745c5c3_Err != nil { | 1177 | if templ_7745c5c3_Err != nil { | ||
| 1182 | return templ_7745c5c3_Err | 1178 | return templ_7745c5c3_Err | ||
| 1183 | } | 1179 | } | ||
| 1184 | } | 1180 | } | ||
| 1181 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "</div>") | |||
| 1182 | + | if templ_7745c5c3_Err != nil { | |||
| 1183 | + | return templ_7745c5c3_Err | |||
| 1184 | + | } | |||
| 1185 | return nil | 1185 | return nil | ||
| 1186 | }) | 1186 | }) | ||
| 1187 | templ_7745c5c3_Err = Shell(l, mrRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var25), templ_7745c5c3_Buffer) | 1187 | templ_7745c5c3_Err = Shell(l, mrRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var25), templ_7745c5c3_Buffer) | ||
| @@ -1221,7 +1221,7 @@ func branchLink(name, href string) templ.Component { | |||||
| 1221 | var templ_7745c5c3_Var57 templ.SafeURL | 1221 | var templ_7745c5c3_Var57 templ.SafeURL | ||
| 1222 | templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href)) | 1222 | templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href)) | ||
| 1223 | if templ_7745c5c3_Err != nil { | 1223 | if templ_7745c5c3_Err != nil { | ||
| 1224 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 233, Col: 31} | 1224 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 237, Col: 31} |
| 1225 | } | 1225 | } | ||
| 1226 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57)) | 1226 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57)) | ||
| 1227 | if templ_7745c5c3_Err != nil { | 1227 | if templ_7745c5c3_Err != nil { | ||
| @@ -1234,7 +1234,7 @@ func branchLink(name, href string) templ.Component { | |||||
| 1234 | var templ_7745c5c3_Var58 string | 1234 | var templ_7745c5c3_Var58 string | ||
| 1235 | templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(name) | 1235 | templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(name) | ||
| 1236 | if templ_7745c5c3_Err != nil { | 1236 | if templ_7745c5c3_Err != nil { | ||
| 1237 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 233, Col: 40} | 1237 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 237, Col: 40} |
| 1238 | } | 1238 | } | ||
| 1239 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58)) | 1239 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58)) | ||
| 1240 | if templ_7745c5c3_Err != nil { | 1240 | if templ_7745c5c3_Err != nil { | ||
| @@ -1248,7 +1248,7 @@ func branchLink(name, href string) templ.Component { | |||||
| 1248 | var templ_7745c5c3_Var59 string | 1248 | var templ_7745c5c3_Var59 string | ||
| 1249 | templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinStringErrs(name) | 1249 | templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinStringErrs(name) | ||
| 1250 | if templ_7745c5c3_Err != nil { | 1250 | if templ_7745c5c3_Err != nil { | ||
| 1251 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 235, Col: 8} | 1251 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 239, Col: 8} |
| 1252 | } | 1252 | } | ||
| 1253 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59)) | 1253 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59)) | ||
| 1254 | if templ_7745c5c3_Err != nil { | 1254 | if templ_7745c5c3_Err != nil { | ||
| @@ -1329,7 +1329,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1329 | var templ_7745c5c3_Var62 string | 1329 | var templ_7745c5c3_Var62 string | ||
| 1330 | templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.ResolveAttributeValue("c" + c.ID + suffix) | 1330 | templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.ResolveAttributeValue("c" + c.ID + suffix) | ||
| 1331 | if templ_7745c5c3_Err != nil { | 1331 | if templ_7745c5c3_Err != nil { | ||
| 1332 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 254, Col: 42} | 1332 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 42} |
| 1333 | } | 1333 | } | ||
| 1334 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var62) | 1334 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var62) | ||
| 1335 | if templ_7745c5c3_Err != nil { | 1335 | if templ_7745c5c3_Err != nil { | ||
| @@ -1342,7 +1342,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1342 | var templ_7745c5c3_Var63 string | 1342 | var templ_7745c5c3_Var63 string | ||
| 1343 | templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolved)) | 1343 | templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolved)) | ||
| 1344 | if templ_7745c5c3_Err != nil { | 1344 | if templ_7745c5c3_Err != nil { | ||
| 1345 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 254, Col: 81} | 1345 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 81} |
| 1346 | } | 1346 | } | ||
| 1347 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var63) | 1347 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var63) | ||
| 1348 | if templ_7745c5c3_Err != nil { | 1348 | if templ_7745c5c3_Err != nil { | ||
| @@ -1365,7 +1365,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1365 | var templ_7745c5c3_Var64 string | 1365 | var templ_7745c5c3_Var64 string | ||
| 1366 | templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | 1366 | templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | ||
| 1367 | if templ_7745c5c3_Err != nil { | 1367 | if templ_7745c5c3_Err != nil { | ||
| 1368 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 256, Col: 33} | 1368 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 260, Col: 33} |
| 1369 | } | 1369 | } | ||
| 1370 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64)) | 1370 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64)) | ||
| 1371 | if templ_7745c5c3_Err != nil { | 1371 | if templ_7745c5c3_Err != nil { | ||
| @@ -1379,7 +1379,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1379 | var templ_7745c5c3_Var65 string | 1379 | var templ_7745c5c3_Var65 string | ||
| 1380 | templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | 1380 | templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | ||
| 1381 | if templ_7745c5c3_Err != nil { | 1381 | if templ_7745c5c3_Err != nil { | ||
| 1382 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 9} | 1382 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 262, Col: 9} |
| 1383 | } | 1383 | } | ||
| 1384 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65)) | 1384 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65)) | ||
| 1385 | if templ_7745c5c3_Err != nil { | 1385 | if templ_7745c5c3_Err != nil { | ||
| @@ -1392,7 +1392,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1392 | var templ_7745c5c3_Var66 string | 1392 | var templ_7745c5c3_Var66 string | ||
| 1393 | templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | 1393 | templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | ||
| 1394 | if templ_7745c5c3_Err != nil { | 1394 | if templ_7745c5c3_Err != nil { | ||
| 1395 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 49} | 1395 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 262, Col: 49} |
| 1396 | } | 1396 | } | ||
| 1397 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66) | 1397 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66) | ||
| 1398 | if templ_7745c5c3_Err != nil { | 1398 | if templ_7745c5c3_Err != nil { | ||
| @@ -1405,7 +1405,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1405 | var templ_7745c5c3_Var67 string | 1405 | var templ_7745c5c3_Var67 string | ||
| 1406 | templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Abs) | 1406 | templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Abs) | ||
| 1407 | if templ_7745c5c3_Err != nil { | 1407 | if templ_7745c5c3_Err != nil { | ||
| 1408 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 65} | 1408 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 262, Col: 65} |
| 1409 | } | 1409 | } | ||
| 1410 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var67) | 1410 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var67) | ||
| 1411 | if templ_7745c5c3_Err != nil { | 1411 | if templ_7745c5c3_Err != nil { | ||
| @@ -1418,7 +1418,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1418 | var templ_7745c5c3_Var68 string | 1418 | var templ_7745c5c3_Var68 string | ||
| 1419 | templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | 1419 | templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | ||
| 1420 | if templ_7745c5c3_Err != nil { | 1420 | if templ_7745c5c3_Err != nil { | ||
| 1421 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 258, Col: 76} | 1421 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 262, Col: 76} |
| 1422 | } | 1422 | } | ||
| 1423 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68)) | 1423 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68)) | ||
| 1424 | if templ_7745c5c3_Err != nil { | 1424 | if templ_7745c5c3_Err != nil { | ||
| @@ -1433,7 +1433,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1433 | var templ_7745c5c3_Var69 string | 1433 | var templ_7745c5c3_Var69 string | ||
| 1434 | templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | 1434 | templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | ||
| 1435 | if templ_7745c5c3_Err != nil { | 1435 | if templ_7745c5c3_Err != nil { | ||
| 1436 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 261, Col: 9} | 1436 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 265, Col: 9} |
| 1437 | } | 1437 | } | ||
| 1438 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var69)) | 1438 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var69)) | ||
| 1439 | if templ_7745c5c3_Err != nil { | 1439 | if templ_7745c5c3_Err != nil { | ||
| @@ -1448,7 +1448,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1448 | var templ_7745c5c3_Var70 string | 1448 | var templ_7745c5c3_Var70 string | ||
| 1449 | templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | 1449 | templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | ||
| 1450 | if templ_7745c5c3_Err != nil { | 1450 | if templ_7745c5c3_Err != nil { | ||
| 1451 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 264, Col: 9} | 1451 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 268, Col: 9} |
| 1452 | } | 1452 | } | ||
| 1453 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70)) | 1453 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70)) | ||
| 1454 | if templ_7745c5c3_Err != nil { | 1454 | if templ_7745c5c3_Err != nil { | ||
| @@ -1463,7 +1463,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1463 | var templ_7745c5c3_Var71 string | 1463 | var templ_7745c5c3_Var71 string | ||
| 1464 | templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | 1464 | templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | ||
| 1465 | if templ_7745c5c3_Err != nil { | 1465 | if templ_7745c5c3_Err != nil { | ||
| 1466 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 267, Col: 9} | 1466 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 271, Col: 9} |
| 1467 | } | 1467 | } | ||
| 1468 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71)) | 1468 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71)) | ||
| 1469 | if templ_7745c5c3_Err != nil { | 1469 | if templ_7745c5c3_Err != nil { | ||
| @@ -1476,7 +1476,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1476 | var templ_7745c5c3_Var72 string | 1476 | var templ_7745c5c3_Var72 string | ||
| 1477 | templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(c.Where) | 1477 | templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(c.Where) | ||
| 1478 | if templ_7745c5c3_Err != nil { | 1478 | if templ_7745c5c3_Err != nil { | ||
| 1479 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 267, Col: 47} | 1479 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 271, Col: 47} |
| 1480 | } | 1480 | } | ||
| 1481 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72)) | 1481 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72)) | ||
| 1482 | if templ_7745c5c3_Err != nil { | 1482 | if templ_7745c5c3_Err != nil { | ||
| @@ -1551,7 +1551,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1551 | var templ_7745c5c3_Var73 string | 1551 | var templ_7745c5c3_Var73 string | ||
| 1552 | templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict) | 1552 | templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict) | ||
| 1553 | if templ_7745c5c3_Err != nil { | 1553 | if templ_7745c5c3_Err != nil { | ||
| 1554 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 291, Col: 36} | 1554 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 295, Col: 36} |
| 1555 | } | 1555 | } | ||
| 1556 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73)) | 1556 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73)) | ||
| 1557 | if templ_7745c5c3_Err != nil { | 1557 | if templ_7745c5c3_Err != nil { | ||
| @@ -1570,7 +1570,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1570 | var templ_7745c5c3_Var74 string | 1570 | var templ_7745c5c3_Var74 string | ||
| 1571 | templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range) | 1571 | templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range) | ||
| 1572 | if templ_7745c5c3_Err != nil { | 1572 | if templ_7745c5c3_Err != nil { | ||
| 1573 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 294, Col: 31} | 1573 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 298, Col: 31} |
| 1574 | } | 1574 | } | ||
| 1575 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var74)) | 1575 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var74)) | ||
| 1576 | if templ_7745c5c3_Err != nil { | 1576 | if templ_7745c5c3_Err != nil { | ||
| @@ -1589,7 +1589,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1589 | var templ_7745c5c3_Var75 string | 1589 | var templ_7745c5c3_Var75 string | ||
| 1590 | templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote) | 1590 | templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote) | ||
| 1591 | if templ_7745c5c3_Err != nil { | 1591 | if templ_7745c5c3_Err != nil { | ||
| 1592 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 297, Col: 65} | 1592 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 301, Col: 65} |
| 1593 | } | 1593 | } | ||
| 1594 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var75) | 1594 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var75) | ||
| 1595 | if templ_7745c5c3_Err != nil { | 1595 | if templ_7745c5c3_Err != nil { | ||
| @@ -1608,7 +1608,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1608 | var templ_7745c5c3_Var76 templ.SafeURL | 1608 | var templ_7745c5c3_Var76 templ.SafeURL | ||
| 1609 | templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action)) | 1609 | templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action)) | ||
| 1610 | if templ_7745c5c3_Err != nil { | 1610 | if templ_7745c5c3_Err != nil { | ||
| 1611 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 300, Col: 92} | 1611 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 92} |
| 1612 | } | 1612 | } | ||
| 1613 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var76)) | 1613 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var76)) | ||
| 1614 | if templ_7745c5c3_Err != nil { | 1614 | if templ_7745c5c3_Err != nil { | ||
| @@ -1621,7 +1621,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1621 | var templ_7745c5c3_Var77 string | 1621 | var templ_7745c5c3_Var77 string | ||
| 1622 | templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From)) | 1622 | templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From)) | ||
| 1623 | if templ_7745c5c3_Err != nil { | 1623 | if templ_7745c5c3_Err != nil { | ||
| 1624 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 300, Col: 153} | 1624 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 153} |
| 1625 | } | 1625 | } | ||
| 1626 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var77) | 1626 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var77) | ||
| 1627 | if templ_7745c5c3_Err != nil { | 1627 | if templ_7745c5c3_Err != nil { | ||
| @@ -1634,7 +1634,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1634 | var templ_7745c5c3_Var78 string | 1634 | var templ_7745c5c3_Var78 string | ||
| 1635 | templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text) | 1635 | templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text) | ||
| 1636 | if templ_7745c5c3_Err != nil { | 1636 | if templ_7745c5c3_Err != nil { | ||
| 1637 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 300, Col: 209} | 1637 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 209} |
| 1638 | } | 1638 | } | ||
| 1639 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78)) | 1639 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78)) | ||
| 1640 | if templ_7745c5c3_Err != nil { | 1640 | if templ_7745c5c3_Err != nil { | ||
| @@ -1653,7 +1653,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1653 | var templ_7745c5c3_Var79 templ.SafeURL | 1653 | var templ_7745c5c3_Var79 templ.SafeURL | ||
| 1654 | templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action)) | 1654 | templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action)) | ||
| 1655 | if templ_7745c5c3_Err != nil { | 1655 | if templ_7745c5c3_Err != nil { | ||
| 1656 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 303, Col: 96} | 1656 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 307, Col: 96} |
| 1657 | } | 1657 | } | ||
| 1658 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var79)) | 1658 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var79)) | ||
| 1659 | if templ_7745c5c3_Err != nil { | 1659 | if templ_7745c5c3_Err != nil { | ||
| @@ -1666,7 +1666,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1666 | var templ_7745c5c3_Var80 string | 1666 | var templ_7745c5c3_Var80 string | ||
| 1667 | templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From)) | 1667 | templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From)) | ||
| 1668 | if templ_7745c5c3_Err != nil { | 1668 | if templ_7745c5c3_Err != nil { | ||
| 1669 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 303, Col: 159} | 1669 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 307, Col: 159} |
| 1670 | } | 1670 | } | ||
| 1671 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80) | 1671 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80) | ||
| 1672 | if templ_7745c5c3_Err != nil { | 1672 | if templ_7745c5c3_Err != nil { | ||
| @@ -1705,7 +1705,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1705 | var templ_7745c5c3_Var81 templ.SafeURL | 1705 | var templ_7745c5c3_Var81 templ.SafeURL | ||
| 1706 | templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action)) | 1706 | templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action)) | ||
| 1707 | if templ_7745c5c3_Err != nil { | 1707 | if templ_7745c5c3_Err != nil { | ||
| 1708 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 314, Col: 77} | 1708 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 318, Col: 77} |
| 1709 | } | 1709 | } | ||
| 1710 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81)) | 1710 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81)) | ||
| 1711 | if templ_7745c5c3_Err != nil { | 1711 | if templ_7745c5c3_Err != nil { | ||
| @@ -1718,7 +1718,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1718 | var templ_7745c5c3_Var82 string | 1718 | var templ_7745c5c3_Var82 string | ||
| 1719 | templ_7745c5c3_Var82, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value)) | 1719 | templ_7745c5c3_Var82, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value)) | ||
| 1720 | if templ_7745c5c3_Err != nil { | 1720 | if templ_7745c5c3_Err != nil { | ||
| 1721 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 315, Col: 74} | 1721 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 319, Col: 74} |
| 1722 | } | 1722 | } | ||
| 1723 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var82) | 1723 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var82) | ||
| 1724 | if templ_7745c5c3_Err != nil { | 1724 | if templ_7745c5c3_Err != nil { | ||
| @@ -1736,7 +1736,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1736 | var templ_7745c5c3_Var83 string | 1736 | var templ_7745c5c3_Var83 string | ||
| 1737 | templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From)) | 1737 | templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From)) | ||
| 1738 | if templ_7745c5c3_Err != nil { | 1738 | if templ_7745c5c3_Err != nil { | ||
| 1739 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 317, Col: 66} | 1739 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 321, Col: 66} |
| 1740 | } | 1740 | } | ||
| 1741 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var83) | 1741 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var83) | ||
| 1742 | if templ_7745c5c3_Err != nil { | 1742 | if templ_7745c5c3_Err != nil { | ||
| @@ -1754,7 +1754,7 @@ func commentView(c CommentView, suffix string) templ.Component { | |||||
| 1754 | var templ_7745c5c3_Var84 string | 1754 | var templ_7745c5c3_Var84 string | ||
| 1755 | templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label) | 1755 | templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label) | ||
| 1756 | if templ_7745c5c3_Err != nil { | 1756 | if templ_7745c5c3_Err != nil { | ||
| 1757 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 319, Col: 55} | 1757 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 55} |
| 1758 | } | 1758 | } | ||
| 1759 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var84)) | 1759 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var84)) | ||
| 1760 | if templ_7745c5c3_Err != nil { | 1760 | if templ_7745c5c3_Err != nil { | ||
| @@ -1809,7 +1809,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1809 | var templ_7745c5c3_Var86 templ.SafeURL | 1809 | var templ_7745c5c3_Var86 templ.SafeURL | ||
| 1810 | templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action)) | 1810 | templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action)) | ||
| 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: 334, Col: 67} | 1812 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 338, Col: 67} |
| 1813 | } | 1813 | } | ||
| 1814 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86)) | 1814 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86)) | ||
| 1815 | if templ_7745c5c3_Err != nil { | 1815 | if templ_7745c5c3_Err != nil { | ||
| @@ -1822,7 +1822,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1822 | var templ_7745c5c3_Var87 string | 1822 | var templ_7745c5c3_Var87 string | ||
| 1823 | templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | 1823 | templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | ||
| 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: 335, Col: 28} | 1825 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 339, Col: 28} |
| 1826 | } | 1826 | } | ||
| 1827 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var87) | 1827 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var87) | ||
| 1828 | if templ_7745c5c3_Err != nil { | 1828 | if templ_7745c5c3_Err != nil { | ||
| @@ -1835,7 +1835,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1835 | var templ_7745c5c3_Var88 string | 1835 | var templ_7745c5c3_Var88 string | ||
| 1836 | templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title) | 1836 | templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title) | ||
| 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: 335, Col: 40} | 1838 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 339, Col: 40} |
| 1839 | } | 1839 | } | ||
| 1840 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var88)) | 1840 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var88)) | ||
| 1841 | if templ_7745c5c3_Err != nil { | 1841 | if templ_7745c5c3_Err != nil { | ||
| @@ -1848,7 +1848,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1848 | var templ_7745c5c3_Var89 string | 1848 | var templ_7745c5c3_Var89 string | ||
| 1849 | templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | 1849 | templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) | ||
| 1850 | if templ_7745c5c3_Err != nil { | 1850 | if templ_7745c5c3_Err != nil { | ||
| 1851 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 337, Col: 21} | 1851 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 341, Col: 21} |
| 1852 | } | 1852 | } | ||
| 1853 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89) | 1853 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89) | ||
| 1854 | if templ_7745c5c3_Err != nil { | 1854 | if templ_7745c5c3_Err != nil { | ||
| @@ -1887,7 +1887,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1887 | var templ_7745c5c3_Var90 string | 1887 | var templ_7745c5c3_Var90 string | ||
| 1888 | templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path) | 1888 | templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path) | ||
| 1889 | if templ_7745c5c3_Err != nil { | 1889 | if templ_7745c5c3_Err != nil { | ||
| 1890 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 352, Col: 50} | 1890 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 356, Col: 50} |
| 1891 | } | 1891 | } | ||
| 1892 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90) | 1892 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90) | ||
| 1893 | if templ_7745c5c3_Err != nil { | 1893 | if templ_7745c5c3_Err != nil { | ||
| @@ -1900,7 +1900,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1900 | var templ_7745c5c3_Var91 string | 1900 | var templ_7745c5c3_Var91 string | ||
| 1901 | templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line) | 1901 | templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line) | ||
| 1902 | if templ_7745c5c3_Err != nil { | 1902 | if templ_7745c5c3_Err != nil { | ||
| 1903 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 353, Col: 50} | 1903 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 357, Col: 50} |
| 1904 | } | 1904 | } | ||
| 1905 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91) | 1905 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91) | ||
| 1906 | if templ_7745c5c3_Err != nil { | 1906 | if templ_7745c5c3_Err != nil { | ||
| @@ -1913,7 +1913,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1913 | var templ_7745c5c3_Var92 string | 1913 | var templ_7745c5c3_Var92 string | ||
| 1914 | templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side) | 1914 | templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side) | ||
| 1915 | if templ_7745c5c3_Err != nil { | 1915 | if templ_7745c5c3_Err != nil { | ||
| 1916 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 354, Col: 50} | 1916 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 358, Col: 50} |
| 1917 | } | 1917 | } | ||
| 1918 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) | 1918 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) | ||
| 1919 | if templ_7745c5c3_Err != nil { | 1919 | if templ_7745c5c3_Err != nil { | ||
| @@ -1926,7 +1926,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1926 | var templ_7745c5c3_Var93 string | 1926 | var templ_7745c5c3_Var93 string | ||
| 1927 | templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine) | 1927 | templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine) | ||
| 1928 | if templ_7745c5c3_Err != nil { | 1928 | if templ_7745c5c3_Err != nil { | ||
| 1929 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 355, Col: 86} | 1929 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 359, Col: 86} |
| 1930 | } | 1930 | } | ||
| 1931 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var93) | 1931 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var93) | ||
| 1932 | if templ_7745c5c3_Err != nil { | 1932 | if templ_7745c5c3_Err != nil { | ||
| @@ -1945,7 +1945,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1945 | var templ_7745c5c3_Var94 string | 1945 | var templ_7745c5c3_Var94 string | ||
| 1946 | templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo) | 1946 | templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo) | ||
| 1947 | if templ_7745c5c3_Err != nil { | 1947 | if templ_7745c5c3_Err != nil { | ||
| 1948 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 358, Col: 57} | 1948 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 362, Col: 57} |
| 1949 | } | 1949 | } | ||
| 1950 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var94) | 1950 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var94) | ||
| 1951 | if templ_7745c5c3_Err != nil { | 1951 | if templ_7745c5c3_Err != nil { | ||
| @@ -1970,7 +1970,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1970 | var templ_7745c5c3_Var95 string | 1970 | var templ_7745c5c3_Var95 string | ||
| 1971 | templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From)) | 1971 | templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From)) | ||
| 1972 | if templ_7745c5c3_Err != nil { | 1972 | if templ_7745c5c3_Err != nil { | ||
| 1973 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 364, Col: 56} | 1973 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 368, Col: 56} |
| 1974 | } | 1974 | } | ||
| 1975 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var95) | 1975 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var95) | ||
| 1976 | if templ_7745c5c3_Err != nil { | 1976 | if templ_7745c5c3_Err != nil { | ||
| @@ -1993,7 +1993,7 @@ func commentForm(f CommentForm, suffix string) templ.Component { | |||||
| 1993 | var templ_7745c5c3_Var96 templ.SafeURL | 1993 | var templ_7745c5c3_Var96 templ.SafeURL | ||
| 1994 | templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel)) | 1994 | templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel)) | ||
| 1995 | if templ_7745c5c3_Err != nil { | 1995 | if templ_7745c5c3_Err != nil { | ||
| 1996 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 369, Col: 49} | 1996 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 373, Col: 49} |
| 1997 | } | 1997 | } | ||
| 1998 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) | 1998 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) | ||
| 1999 | if templ_7745c5c3_Err != nil { | 1999 | if templ_7745c5c3_Err != nil { | ||
| @@ -2040,7 +2040,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2040 | var templ_7745c5c3_Var98 string | 2040 | var templ_7745c5c3_Var98 string | ||
| 2041 | templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitCount) | 2041 | templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitCount) | ||
| 2042 | if templ_7745c5c3_Err != nil { | 2042 | if templ_7745c5c3_Err != nil { | ||
| 2043 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 378, Col: 55} | 2043 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 382, Col: 55} |
| 2044 | } | 2044 | } | ||
| 2045 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98)) | 2045 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98)) | ||
| 2046 | if templ_7745c5c3_Err != nil { | 2046 | if templ_7745c5c3_Err != nil { | ||
| @@ -2053,7 +2053,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2053 | var templ_7745c5c3_Var99 string | 2053 | var templ_7745c5c3_Var99 string | ||
| 2054 | templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitCount) | 2054 | templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitCount) | ||
| 2055 | if templ_7745c5c3_Err != nil { | 2055 | if templ_7745c5c3_Err != nil { | ||
| 2056 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 380, Col: 89} | 2056 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 384, Col: 89} |
| 2057 | } | 2057 | } | ||
| 2058 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99)) | 2058 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99)) | ||
| 2059 | if templ_7745c5c3_Err != nil { | 2059 | if templ_7745c5c3_Err != nil { | ||
| @@ -2066,7 +2066,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2066 | var templ_7745c5c3_Var100 string | 2066 | var templ_7745c5c3_Var100 string | ||
| 2067 | templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs("Checks ") | 2067 | templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs("Checks ") | ||
| 2068 | if templ_7745c5c3_Err != nil { | 2068 | if templ_7745c5c3_Err != nil { | ||
| 2069 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 382, Col: 16} | 2069 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 386, Col: 16} |
| 2070 | } | 2070 | } | ||
| 2071 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100)) | 2071 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100)) | ||
| 2072 | if templ_7745c5c3_Err != nil { | 2072 | if templ_7745c5c3_Err != nil { | ||
| @@ -2080,7 +2080,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2080 | var templ_7745c5c3_Var101 string | 2080 | var templ_7745c5c3_Var101 string | ||
| 2081 | templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(p.ChecksSum.Title) | 2081 | templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(p.ChecksSum.Title) | ||
| 2082 | if templ_7745c5c3_Err != nil { | 2082 | if templ_7745c5c3_Err != nil { | ||
| 2083 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 385, Col: 26} | 2083 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 389, Col: 26} |
| 2084 | } | 2084 | } | ||
| 2085 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101)) | 2085 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101)) | ||
| 2086 | if templ_7745c5c3_Err != nil { | 2086 | if templ_7745c5c3_Err != nil { | ||
| @@ -2114,7 +2114,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2114 | var templ_7745c5c3_Var102 templ.SafeURL | 2114 | var templ_7745c5c3_Var102 templ.SafeURL | ||
| 2115 | templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) | 2115 | templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) | ||
| 2116 | if templ_7745c5c3_Err != nil { | 2116 | if templ_7745c5c3_Err != nil { | ||
| 2117 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 398, Col: 43} | 2117 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 402, Col: 43} |
| 2118 | } | 2118 | } | ||
| 2119 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) | 2119 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) | ||
| 2120 | if templ_7745c5c3_Err != nil { | 2120 | if templ_7745c5c3_Err != nil { | ||
| @@ -2127,7 +2127,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2127 | var templ_7745c5c3_Var103 string | 2127 | var templ_7745c5c3_Var103 string | ||
| 2128 | templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | 2128 | templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | ||
| 2129 | if templ_7745c5c3_Err != nil { | 2129 | if templ_7745c5c3_Err != nil { | ||
| 2130 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 398, Col: 55} | 2130 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 402, Col: 55} |
| 2131 | } | 2131 | } | ||
| 2132 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) | 2132 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) | ||
| 2133 | if templ_7745c5c3_Err != nil { | 2133 | if templ_7745c5c3_Err != nil { | ||
| @@ -2140,7 +2140,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2140 | var templ_7745c5c3_Var104 string | 2140 | var templ_7745c5c3_Var104 string | ||
| 2141 | templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | 2141 | templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | ||
| 2142 | if templ_7745c5c3_Err != nil { | 2142 | if templ_7745c5c3_Err != nil { | ||
| 2143 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 399, Col: 23} | 2143 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 23} |
| 2144 | } | 2144 | } | ||
| 2145 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) | 2145 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) | ||
| 2146 | if templ_7745c5c3_Err != nil { | 2146 | if templ_7745c5c3_Err != nil { | ||
| @@ -2153,7 +2153,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2153 | var templ_7745c5c3_Var105 string | 2153 | var templ_7745c5c3_Var105 string | ||
| 2154 | templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | 2154 | templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | ||
| 2155 | if templ_7745c5c3_Err != nil { | 2155 | if templ_7745c5c3_Err != nil { | ||
| 2156 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 400, Col: 22} | 2156 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 404, Col: 22} |
| 2157 | } | 2157 | } | ||
| 2158 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105)) | 2158 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105)) | ||
| 2159 | if templ_7745c5c3_Err != nil { | 2159 | if templ_7745c5c3_Err != nil { | ||
| @@ -2171,7 +2171,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2171 | var templ_7745c5c3_Var106 string | 2171 | var templ_7745c5c3_Var106 string | ||
| 2172 | templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | 2172 | templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | ||
| 2173 | if templ_7745c5c3_Err != nil { | 2173 | if templ_7745c5c3_Err != nil { | ||
| 2174 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 35} | 2174 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 407, Col: 35} |
| 2175 | } | 2175 | } | ||
| 2176 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var106) | 2176 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var106) | ||
| 2177 | if templ_7745c5c3_Err != nil { | 2177 | if templ_7745c5c3_Err != nil { | ||
| @@ -2184,7 +2184,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2184 | var templ_7745c5c3_Var107 string | 2184 | var templ_7745c5c3_Var107 string | ||
| 2185 | templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | 2185 | templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | ||
| 2186 | if templ_7745c5c3_Err != nil { | 2186 | if templ_7745c5c3_Err != nil { | ||
| 2187 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 46} | 2187 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 407, Col: 46} |
| 2188 | } | 2188 | } | ||
| 2189 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107)) | 2189 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107)) | ||
| 2190 | if templ_7745c5c3_Err != nil { | 2190 | if templ_7745c5c3_Err != nil { | ||
| @@ -2238,7 +2238,7 @@ func mrFooter(p MRPage) templ.Component { | |||||
| 2238 | var templ_7745c5c3_Var108 string | 2238 | var templ_7745c5c3_Var108 string | ||
| 2239 | templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) | 2239 | templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) | ||
| 2240 | if templ_7745c5c3_Err != nil { | 2240 | if templ_7745c5c3_Err != nil { | ||
| 2241 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 424, Col: 36} | 2241 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 428, Col: 36} |
| 2242 | } | 2242 | } | ||
| 2243 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) | 2243 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) | ||
| 2244 | if templ_7745c5c3_Err != nil { | 2244 | if templ_7745c5c3_Err != nil { | ||
| @@ -2293,7 +2293,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 2293 | var templ_7745c5c3_Var110 string | 2293 | var templ_7745c5c3_Var110 string | ||
| 2294 | templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | 2294 | templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | ||
| 2295 | if templ_7745c5c3_Err != nil { | 2295 | if templ_7745c5c3_Err != nil { | ||
| 2296 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 437, Col: 49} | 2296 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 441, Col: 49} |
| 2297 | } | 2297 | } | ||
| 2298 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110)) | 2298 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110)) | ||
| 2299 | if templ_7745c5c3_Err != nil { | 2299 | if templ_7745c5c3_Err != nil { | ||
| @@ -2324,7 +2324,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 2324 | var templ_7745c5c3_Var111 templ.SafeURL | 2324 | var templ_7745c5c3_Var111 templ.SafeURL | ||
| 2325 | templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href)) | 2325 | templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href)) | ||
| 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: 450, Col: 37} | 2327 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 454, Col: 37} |
| 2328 | } | 2328 | } | ||
| 2329 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111)) | 2329 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111)) | ||
| 2330 | if templ_7745c5c3_Err != nil { | 2330 | if templ_7745c5c3_Err != nil { | ||
| @@ -2337,7 +2337,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 2337 | var templ_7745c5c3_Var112 string | 2337 | var templ_7745c5c3_Var112 string | ||
| 2338 | templ_7745c5c3_Var112, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author) | 2338 | templ_7745c5c3_Var112, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author) | ||
| 2339 | if templ_7745c5c3_Err != nil { | 2339 | if templ_7745c5c3_Err != nil { | ||
| 2340 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 450, Col: 50} | 2340 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 454, Col: 50} |
| 2341 | } | 2341 | } | ||
| 2342 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var112)) | 2342 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var112)) | ||
| 2343 | if templ_7745c5c3_Err != nil { | 2343 | if templ_7745c5c3_Err != nil { | ||
| @@ -2350,7 +2350,7 @@ func mrRail(p MRPage) templ.Component { | |||||
| 2350 | var templ_7745c5c3_Var113 string | 2350 | var templ_7745c5c3_Var113 string | ||
| 2351 | templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label) | 2351 | templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label) | ||
| 2352 | if templ_7745c5c3_Err != nil { | 2352 | if templ_7745c5c3_Err != nil { | ||
| 2353 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 450, Col: 63} | 2353 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 454, Col: 63} |
| 2354 | } | 2354 | } | ||
| 2355 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113)) | 2355 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113)) | ||
| 2356 | if templ_7745c5c3_Err != nil { | 2356 | if templ_7745c5c3_Err != nil { | ||
| @@ -2412,7 +2412,7 @@ func mrBar(p MRPage) templ.Component { | |||||
| 2412 | var templ_7745c5c3_Var115 string | 2412 | var templ_7745c5c3_Var115 string | ||
| 2413 | templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | 2413 | templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | ||
| 2414 | if templ_7745c5c3_Err != nil { | 2414 | if templ_7745c5c3_Err != nil { | ||
| 2415 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 467, Col: 55} | 2415 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 471, Col: 55} |
| 2416 | } | 2416 | } | ||
| 2417 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) | 2417 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) | ||
| 2418 | if templ_7745c5c3_Err != nil { | 2418 | if templ_7745c5c3_Err != nil { | ||
| @@ -2425,7 +2425,7 @@ func mrBar(p MRPage) templ.Component { | |||||
| 2425 | var templ_7745c5c3_Var116 string | 2425 | var templ_7745c5c3_Var116 string | ||
| 2426 | templ_7745c5c3_Var116, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | 2426 | templ_7745c5c3_Var116, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | ||
| 2427 | if templ_7745c5c3_Err != nil { | 2427 | if templ_7745c5c3_Err != nil { | ||
| 2428 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 467, Col: 95} | 2428 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 471, Col: 95} |
| 2429 | } | 2429 | } | ||
| 2430 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var116)) | 2430 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var116)) | ||
| 2431 | if templ_7745c5c3_Err != nil { | 2431 | if templ_7745c5c3_Err != nil { | ||
| @@ -2438,7 +2438,7 @@ func mrBar(p MRPage) templ.Component { | |||||
| 2438 | var templ_7745c5c3_Var117 string | 2438 | var templ_7745c5c3_Var117 string | ||
| 2439 | templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | 2439 | templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | ||
| 2440 | if templ_7745c5c3_Err != nil { | 2440 | if templ_7745c5c3_Err != nil { | ||
| 2441 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 467, Col: 140} | 2441 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 471, Col: 140} |
| 2442 | } | 2442 | } | ||
| 2443 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117)) | 2443 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117)) | ||
| 2444 | if templ_7745c5c3_Err != nil { | 2444 | if templ_7745c5c3_Err != nil { | ||
| @@ -2550,7 +2550,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2550 | var templ_7745c5c3_Var119 string | 2550 | var templ_7745c5c3_Var119 string | ||
| 2551 | templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error) | 2551 | templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error) | ||
| 2552 | if templ_7745c5c3_Err != nil { | 2552 | if templ_7745c5c3_Err != nil { | ||
| 2553 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 501, Col: 47} | 2553 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 505, Col: 47} |
| 2554 | } | 2554 | } | ||
| 2555 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119)) | 2555 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119)) | ||
| 2556 | if templ_7745c5c3_Err != nil { | 2556 | if templ_7745c5c3_Err != nil { | ||
| @@ -2569,7 +2569,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2569 | var templ_7745c5c3_Var120 templ.SafeURL | 2569 | var templ_7745c5c3_Var120 templ.SafeURL | ||
| 2570 | templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) | 2570 | templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) | ||
| 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: 505, Col: 80} | 2572 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 509, Col: 80} |
| 2573 | } | 2573 | } | ||
| 2574 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120)) | 2574 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120)) | ||
| 2575 | if templ_7745c5c3_Err != nil { | 2575 | if templ_7745c5c3_Err != nil { | ||
| @@ -2591,7 +2591,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2591 | var templ_7745c5c3_Var121 templ.SafeURL | 2591 | var templ_7745c5c3_Var121 templ.SafeURL | ||
| 2592 | templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) | 2592 | templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) | ||
| 2593 | if templ_7745c5c3_Err != nil { | 2593 | if templ_7745c5c3_Err != nil { | ||
| 2594 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 510, Col: 80} | 2594 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 514, Col: 80} |
| 2595 | } | 2595 | } | ||
| 2596 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) | 2596 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) | ||
| 2597 | if templ_7745c5c3_Err != nil { | 2597 | if templ_7745c5c3_Err != nil { | ||
| @@ -2604,7 +2604,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2604 | var templ_7745c5c3_Var122 string | 2604 | var templ_7745c5c3_Var122 string | ||
| 2605 | templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | 2605 | templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | ||
| 2606 | if templ_7745c5c3_Err != nil { | 2606 | if templ_7745c5c3_Err != nil { | ||
| 2607 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 511, Col: 59} | 2607 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 515, Col: 59} |
| 2608 | } | 2608 | } | ||
| 2609 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var122) | 2609 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var122) | ||
| 2610 | if templ_7745c5c3_Err != nil { | 2610 | if templ_7745c5c3_Err != nil { | ||
| @@ -2622,7 +2622,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2622 | var templ_7745c5c3_Var123 string | 2622 | var templ_7745c5c3_Var123 string | ||
| 2623 | templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) | 2623 | templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) | ||
| 2624 | if templ_7745c5c3_Err != nil { | 2624 | if templ_7745c5c3_Err != nil { | ||
| 2625 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 519, Col: 24} | 2625 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 523, Col: 24} |
| 2626 | } | 2626 | } | ||
| 2627 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123) | 2627 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123) | ||
| 2628 | if templ_7745c5c3_Err != nil { | 2628 | if templ_7745c5c3_Err != nil { | ||
| @@ -2651,7 +2651,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2651 | var templ_7745c5c3_Var124 string | 2651 | var templ_7745c5c3_Var124 string | ||
| 2652 | templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason) | 2652 | templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason) | ||
| 2653 | if templ_7745c5c3_Err != nil { | 2653 | if templ_7745c5c3_Err != nil { | ||
| 2654 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 522, Col: 25} | 2654 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 526, Col: 25} |
| 2655 | } | 2655 | } | ||
| 2656 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124) | 2656 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124) | ||
| 2657 | if templ_7745c5c3_Err != nil { | 2657 | if templ_7745c5c3_Err != nil { | ||
| @@ -2664,7 +2664,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2664 | var templ_7745c5c3_Var125 string | 2664 | var templ_7745c5c3_Var125 string | ||
| 2665 | templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) | 2665 | templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) | ||
| 2666 | if templ_7745c5c3_Err != nil { | 2666 | if templ_7745c5c3_Err != nil { | ||
| 2667 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 526, Col: 17} | 2667 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 530, Col: 17} |
| 2668 | } | 2668 | } | ||
| 2669 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125)) | 2669 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125)) | ||
| 2670 | if templ_7745c5c3_Err != nil { | 2670 | if templ_7745c5c3_Err != nil { | ||
| @@ -2682,7 +2682,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2682 | var templ_7745c5c3_Var126 string | 2682 | var templ_7745c5c3_Var126 string | ||
| 2683 | templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) | 2683 | templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) | ||
| 2684 | if templ_7745c5c3_Err != nil { | 2684 | if templ_7745c5c3_Err != nil { | ||
| 2685 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 528, Col: 46} | 2685 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 532, Col: 46} |
| 2686 | } | 2686 | } | ||
| 2687 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) | 2687 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) | ||
| 2688 | if templ_7745c5c3_Err != nil { | 2688 | if templ_7745c5c3_Err != nil { | ||
| @@ -2710,7 +2710,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2710 | var templ_7745c5c3_Var127 string | 2710 | var templ_7745c5c3_Var127 string | ||
| 2711 | templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | 2711 | templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | ||
| 2712 | if templ_7745c5c3_Err != nil { | 2712 | if templ_7745c5c3_Err != nil { | ||
| 2713 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 534, Col: 102} | 2713 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 538, Col: 102} |
| 2714 | } | 2714 | } | ||
| 2715 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127)) | 2715 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127)) | ||
| 2716 | if templ_7745c5c3_Err != nil { | 2716 | if templ_7745c5c3_Err != nil { | ||
| @@ -2738,7 +2738,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2738 | var templ_7745c5c3_Var128 string | 2738 | var templ_7745c5c3_Var128 string | ||
| 2739 | templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle()) | 2739 | templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle()) | ||
| 2740 | if templ_7745c5c3_Err != nil { | 2740 | if templ_7745c5c3_Err != nil { | ||
| 2741 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 542, Col: 33} | 2741 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 546, Col: 33} |
| 2742 | } | 2742 | } | ||
| 2743 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var128) | 2743 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var128) | ||
| 2744 | if templ_7745c5c3_Err != nil { | 2744 | if templ_7745c5c3_Err != nil { | ||
| @@ -2751,7 +2751,7 @@ func mergeMenu(p MRPage) templ.Component { | |||||
| 2751 | var templ_7745c5c3_Var129 string | 2751 | var templ_7745c5c3_Var129 string | ||
| 2752 | templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 2752 | templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 2753 | if templ_7745c5c3_Err != nil { | 2753 | if templ_7745c5c3_Err != nil { | ||
| 2754 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 545, Col: 28} | 2754 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 549, Col: 28} |
| 2755 | } | 2755 | } | ||
| 2756 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129)) | 2756 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129)) | ||
| 2757 | if templ_7745c5c3_Err != nil { | 2757 | if templ_7745c5c3_Err != nil { | ||
| @@ -2800,7 +2800,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2800 | var templ_7745c5c3_Var131 string | 2800 | var templ_7745c5c3_Var131 string | ||
| 2801 | templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State) | 2801 | templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State) | ||
| 2802 | if templ_7745c5c3_Err != nil { | 2802 | if templ_7745c5c3_Err != nil { | ||
| 2803 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 558, Col: 22} | 2803 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 22} |
| 2804 | } | 2804 | } | ||
| 2805 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131) | 2805 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131) | ||
| 2806 | if templ_7745c5c3_Err != nil { | 2806 | if templ_7745c5c3_Err != nil { | ||
| @@ -2813,7 +2813,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2813 | var templ_7745c5c3_Var132 string | 2813 | var templ_7745c5c3_Var132 string | ||
| 2814 | templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk)) | 2814 | templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk)) | ||
| 2815 | if templ_7745c5c3_Err != nil { | 2815 | if templ_7745c5c3_Err != nil { | ||
| 2816 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 41} | 2816 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 563, Col: 41} |
| 2817 | } | 2817 | } | ||
| 2818 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var132) | 2818 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var132) | ||
| 2819 | if templ_7745c5c3_Err != nil { | 2819 | if templ_7745c5c3_Err != nil { | ||
| @@ -2826,7 +2826,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2826 | var templ_7745c5c3_Var133 string | 2826 | var templ_7745c5c3_Var133 string | ||
| 2827 | templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk)) | 2827 | templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk)) | ||
| 2828 | if templ_7745c5c3_Err != nil { | 2828 | if templ_7745c5c3_Err != nil { | ||
| 2829 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 560, Col: 47} | 2829 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 47} |
| 2830 | } | 2830 | } | ||
| 2831 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var133) | 2831 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var133) | ||
| 2832 | if templ_7745c5c3_Err != nil { | 2832 | if templ_7745c5c3_Err != nil { | ||
| @@ -2839,7 +2839,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2839 | var templ_7745c5c3_Var134 string | 2839 | var templ_7745c5c3_Var134 string | ||
| 2840 | templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason) | 2840 | templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason) | ||
| 2841 | if templ_7745c5c3_Err != nil { | 2841 | if templ_7745c5c3_Err != nil { | ||
| 2842 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 561, Col: 29} | 2842 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 565, Col: 29} |
| 2843 | } | 2843 | } | ||
| 2844 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var134) | 2844 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var134) | ||
| 2845 | if templ_7745c5c3_Err != nil { | 2845 | if templ_7745c5c3_Err != nil { | ||
| @@ -2852,7 +2852,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2852 | var templ_7745c5c3_Var135 string | 2852 | var templ_7745c5c3_Var135 string | ||
| 2853 | templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason) | 2853 | templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason) | ||
| 2854 | if templ_7745c5c3_Err != nil { | 2854 | if templ_7745c5c3_Err != nil { | ||
| 2855 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 35} | 2855 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 566, Col: 35} |
| 2856 | } | 2856 | } | ||
| 2857 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135) | 2857 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135) | ||
| 2858 | if templ_7745c5c3_Err != nil { | 2858 | if templ_7745c5c3_Err != nil { | ||
| @@ -2865,7 +2865,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2865 | var templ_7745c5c3_Var136 string | 2865 | var templ_7745c5c3_Var136 string | ||
| 2866 | templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State) | 2866 | templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State) | ||
| 2867 | if templ_7745c5c3_Err != nil { | 2867 | if templ_7745c5c3_Err != nil { | ||
| 2868 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 42} | 2868 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 568, Col: 42} |
| 2869 | } | 2869 | } | ||
| 2870 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136) | 2870 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136) | ||
| 2871 | if templ_7745c5c3_Err != nil { | 2871 | if templ_7745c5c3_Err != nil { | ||
| @@ -2878,7 +2878,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2878 | var templ_7745c5c3_Var137 string | 2878 | var templ_7745c5c3_Var137 string | ||
| 2879 | templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label) | 2879 | templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label) | ||
| 2880 | if templ_7745c5c3_Err != nil { | 2880 | if templ_7745c5c3_Err != nil { | ||
| 2881 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 54} | 2881 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 568, Col: 54} |
| 2882 | } | 2882 | } | ||
| 2883 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var137)) | 2883 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var137)) | ||
| 2884 | if templ_7745c5c3_Err != nil { | 2884 | if templ_7745c5c3_Err != nil { | ||
| @@ -2892,7 +2892,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2892 | var templ_7745c5c3_Var138 string | 2892 | var templ_7745c5c3_Var138 string | ||
| 2893 | templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | 2893 | templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(" ") | ||
| 2894 | if templ_7745c5c3_Err != nil { | 2894 | if templ_7745c5c3_Err != nil { | ||
| 2895 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 566, Col: 8} | 2895 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 570, Col: 8} |
| 2896 | } | 2896 | } | ||
| 2897 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) | 2897 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) | ||
| 2898 | if templ_7745c5c3_Err != nil { | 2898 | if templ_7745c5c3_Err != nil { | ||
| @@ -2905,7 +2905,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2905 | var templ_7745c5c3_Var139 string | 2905 | var templ_7745c5c3_Var139 string | ||
| 2906 | templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail) | 2906 | templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail) | ||
| 2907 | if templ_7745c5c3_Err != nil { | 2907 | if templ_7745c5c3_Err != nil { | ||
| 2908 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 566, Col: 38} | 2908 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 570, Col: 38} |
| 2909 | } | 2909 | } | ||
| 2910 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) | 2910 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) | ||
| 2911 | if templ_7745c5c3_Err != nil { | 2911 | if templ_7745c5c3_Err != nil { | ||
| @@ -2933,7 +2933,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2933 | var templ_7745c5c3_Var140 string | 2933 | var templ_7745c5c3_Var140 string | ||
| 2934 | templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(path) | 2934 | templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(path) | ||
| 2935 | if templ_7745c5c3_Err != nil { | 2935 | if templ_7745c5c3_Err != nil { | ||
| 2936 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 572, Col: 20} | 2936 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 576, Col: 20} |
| 2937 | } | 2937 | } | ||
| 2938 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) | 2938 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) | ||
| 2939 | if templ_7745c5c3_Err != nil { | 2939 | if templ_7745c5c3_Err != nil { | ||
| @@ -2957,7 +2957,7 @@ func MRMergeability(v MergeabilityView) templ.Component { | |||||
| 2957 | var templ_7745c5c3_Var141 string | 2957 | var templ_7745c5c3_Var141 string | ||
| 2958 | templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote) | 2958 | templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote) | ||
| 2959 | if templ_7745c5c3_Err != nil { | 2959 | if templ_7745c5c3_Err != nil { | ||
| 2960 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 577, Col: 30} | 2960 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 581, Col: 30} |
| 2961 | } | 2961 | } | ||
| 2962 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) | 2962 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) | ||
| 2963 | if templ_7745c5c3_Err != nil { | 2963 | if templ_7745c5c3_Err != nil { | ||
| @@ -3071,7 +3071,7 @@ func moreMenu(p MRPage) templ.Component { | |||||
| 3071 | var templ_7745c5c3_Var145 string | 3071 | var templ_7745c5c3_Var145 string | ||
| 3072 | templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", ")) | 3072 | templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", ")) | ||
| 3073 | if templ_7745c5c3_Err != nil { | 3073 | if templ_7745c5c3_Err != nil { | ||
| 3074 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 604, Col: 38} | 3074 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 608, Col: 38} |
| 3075 | } | 3075 | } | ||
| 3076 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) | 3076 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) | ||
| 3077 | if templ_7745c5c3_Err != nil { | 3077 | if templ_7745c5c3_Err != nil { | ||
| @@ -3110,7 +3110,7 @@ func moreMenu(p MRPage) templ.Component { | |||||
| 3110 | var templ_7745c5c3_Var146 string | 3110 | var templ_7745c5c3_Var146 string | ||
| 3111 | templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Fingerprint) | 3111 | templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Fingerprint) | ||
| 3112 | if templ_7745c5c3_Err != nil { | 3112 | if templ_7745c5c3_Err != nil { | ||
| 3113 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 44} | 3113 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 624, Col: 44} |
| 3114 | } | 3114 | } | ||
| 3115 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) | 3115 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) | ||
| 3116 | if templ_7745c5c3_Err != nil { | 3116 | if templ_7745c5c3_Err != nil { | ||
| @@ -3138,7 +3138,7 @@ func moreMenu(p MRPage) templ.Component { | |||||
| 3138 | var templ_7745c5c3_Var147 templ.SafeURL | 3138 | var templ_7745c5c3_Var147 templ.SafeURL | ||
| 3139 | templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) | 3139 | templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) | ||
| 3140 | if templ_7745c5c3_Err != nil { | 3140 | if templ_7745c5c3_Err != nil { | ||
| 3141 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 626, Col: 65} | 3141 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 630, Col: 65} |
| 3142 | } | 3142 | } | ||
| 3143 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) | 3143 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) | ||
| 3144 | if templ_7745c5c3_Err != nil { | 3144 | if templ_7745c5c3_Err != nil { | ||
| @@ -3151,7 +3151,7 @@ func moreMenu(p MRPage) templ.Component { | |||||
| 3151 | var templ_7745c5c3_Var148 string | 3151 | var templ_7745c5c3_Var148 string | ||
| 3152 | templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | 3152 | templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) | ||
| 3153 | if templ_7745c5c3_Err != nil { | 3153 | if templ_7745c5c3_Err != nil { | ||
| 3154 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 627, Col: 60} | 3154 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 60} |
| 3155 | } | 3155 | } | ||
| 3156 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148) | 3156 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148) | ||
| 3157 | if templ_7745c5c3_Err != nil { | 3157 | if templ_7745c5c3_Err != nil { | ||
| @@ -3169,7 +3169,7 @@ func moreMenu(p MRPage) templ.Component { | |||||
| 3169 | var templ_7745c5c3_Var149 templ.SafeURL | 3169 | var templ_7745c5c3_Var149 templ.SafeURL | ||
| 3170 | templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) | 3170 | templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) | ||
| 3171 | if templ_7745c5c3_Err != nil { | 3171 | if templ_7745c5c3_Err != nil { | ||
| 3172 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 65} | 3172 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 635, Col: 65} |
| 3173 | } | 3173 | } | ||
| 3174 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var149)) | 3174 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var149)) | ||
| 3175 | if templ_7745c5c3_Err != nil { | 3175 | if templ_7745c5c3_Err != nil { | ||
| @@ -3242,7 +3242,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3242 | var templ_7745c5c3_Var152 string | 3242 | var templ_7745c5c3_Var152 string | ||
| 3243 | templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | 3243 | templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | ||
| 3244 | if templ_7745c5c3_Err != nil { | 3244 | if templ_7745c5c3_Err != nil { | ||
| 3245 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 17} | 3245 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 652, Col: 17} |
| 3246 | } | 3246 | } | ||
| 3247 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152)) | 3247 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152)) | ||
| 3248 | if templ_7745c5c3_Err != nil { | 3248 | if templ_7745c5c3_Err != nil { | ||
| @@ -3255,7 +3255,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3255 | var templ_7745c5c3_Var153 string | 3255 | var templ_7745c5c3_Var153 string | ||
| 3256 | templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 3256 | templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 3257 | if templ_7745c5c3_Err != nil { | 3257 | if templ_7745c5c3_Err != nil { | ||
| 3258 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 34} | 3258 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 652, Col: 34} |
| 3259 | } | 3259 | } | ||
| 3260 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153)) | 3260 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153)) | ||
| 3261 | if templ_7745c5c3_Err != nil { | 3261 | if templ_7745c5c3_Err != nil { | ||
| @@ -3268,7 +3268,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3268 | var templ_7745c5c3_Var154 templ.SafeURL | 3268 | var templ_7745c5c3_Var154 templ.SafeURL | ||
| 3269 | templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) | 3269 | templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) | ||
| 3270 | if templ_7745c5c3_Err != nil { | 3270 | if templ_7745c5c3_Err != nil { | ||
| 3271 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 45} | 3271 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 655, Col: 45} |
| 3272 | } | 3272 | } | ||
| 3273 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154)) | 3273 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154)) | ||
| 3274 | if templ_7745c5c3_Err != nil { | 3274 | if templ_7745c5c3_Err != nil { | ||
| @@ -3281,7 +3281,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3281 | var templ_7745c5c3_Var155 string | 3281 | var templ_7745c5c3_Var155 string | ||
| 3282 | templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | 3282 | templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) | ||
| 3283 | if templ_7745c5c3_Err != nil { | 3283 | if templ_7745c5c3_Err != nil { | ||
| 3284 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 58} | 3284 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 655, Col: 58} |
| 3285 | } | 3285 | } | ||
| 3286 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155)) | 3286 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155)) | ||
| 3287 | if templ_7745c5c3_Err != nil { | 3287 | if templ_7745c5c3_Err != nil { | ||
| @@ -3294,7 +3294,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3294 | var templ_7745c5c3_Var156 templ.SafeURL | 3294 | var templ_7745c5c3_Var156 templ.SafeURL | ||
| 3295 | templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) | 3295 | templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) | ||
| 3296 | if templ_7745c5c3_Err != nil { | 3296 | if templ_7745c5c3_Err != nil { | ||
| 3297 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 653, Col: 45} | 3297 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 657, Col: 45} |
| 3298 | } | 3298 | } | ||
| 3299 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156)) | 3299 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156)) | ||
| 3300 | if templ_7745c5c3_Err != nil { | 3300 | if templ_7745c5c3_Err != nil { | ||
| @@ -3307,7 +3307,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3307 | var templ_7745c5c3_Var157 string | 3307 | var templ_7745c5c3_Var157 string | ||
| 3308 | templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 3308 | templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 3309 | if templ_7745c5c3_Err != nil { | 3309 | if templ_7745c5c3_Err != nil { | ||
| 3310 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 653, Col: 58} | 3310 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 657, Col: 58} |
| 3311 | } | 3311 | } | ||
| 3312 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157)) | 3312 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157)) | ||
| 3313 | if templ_7745c5c3_Err != nil { | 3313 | if templ_7745c5c3_Err != nil { | ||
| @@ -3320,7 +3320,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3320 | var templ_7745c5c3_Var158 string | 3320 | var templ_7745c5c3_Var158 string | ||
| 3321 | templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) | 3321 | templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) | ||
| 3322 | if templ_7745c5c3_Err != nil { | 3322 | if templ_7745c5c3_Err != nil { | ||
| 3323 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 655, Col: 21} | 3323 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 659, Col: 21} |
| 3324 | } | 3324 | } | ||
| 3325 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158)) | 3325 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158)) | ||
| 3326 | if templ_7745c5c3_Err != nil { | 3326 | if templ_7745c5c3_Err != nil { | ||
| @@ -3338,7 +3338,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3338 | var templ_7745c5c3_Var159 string | 3338 | var templ_7745c5c3_Var159 string | ||
| 3339 | templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | 3339 | templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | ||
| 3340 | if templ_7745c5c3_Err != nil { | 3340 | if templ_7745c5c3_Err != nil { | ||
| 3341 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 659, Col: 29} | 3341 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 663, Col: 29} |
| 3342 | } | 3342 | } | ||
| 3343 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159)) | 3343 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159)) | ||
| 3344 | if templ_7745c5c3_Err != nil { | 3344 | if templ_7745c5c3_Err != nil { | ||
| @@ -3361,7 +3361,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3361 | var templ_7745c5c3_Var160 templ.SafeURL | 3361 | var templ_7745c5c3_Var160 templ.SafeURL | ||
| 3362 | templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) | 3362 | templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) | ||
| 3363 | if templ_7745c5c3_Err != nil { | 3363 | if templ_7745c5c3_Err != nil { | ||
| 3364 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 662, Col: 114} | 3364 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 666, Col: 114} |
| 3365 | } | 3365 | } | ||
| 3366 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160)) | 3366 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160)) | ||
| 3367 | if templ_7745c5c3_Err != nil { | 3367 | if templ_7745c5c3_Err != nil { | ||
| @@ -3374,7 +3374,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3374 | var templ_7745c5c3_Var161 string | 3374 | var templ_7745c5c3_Var161 string | ||
| 3375 | templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) | 3375 | templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) | ||
| 3376 | if templ_7745c5c3_Err != nil { | 3376 | if templ_7745c5c3_Err != nil { | ||
| 3377 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 662, Col: 135} | 3377 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 666, Col: 135} |
| 3378 | } | 3378 | } | ||
| 3379 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161)) | 3379 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161)) | ||
| 3380 | if templ_7745c5c3_Err != nil { | 3380 | if templ_7745c5c3_Err != nil { | ||
| @@ -3397,7 +3397,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3397 | var templ_7745c5c3_Var162 templ.SafeURL | 3397 | var templ_7745c5c3_Var162 templ.SafeURL | ||
| 3398 | templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) | 3398 | templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) | ||
| 3399 | if templ_7745c5c3_Err != nil { | 3399 | if templ_7745c5c3_Err != nil { | ||
| 3400 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 665, Col: 83} | 3400 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 669, Col: 83} |
| 3401 | } | 3401 | } | ||
| 3402 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162)) | 3402 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162)) | ||
| 3403 | if templ_7745c5c3_Err != nil { | 3403 | if templ_7745c5c3_Err != nil { | ||
| @@ -3410,7 +3410,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3410 | var templ_7745c5c3_Var163 string | 3410 | var templ_7745c5c3_Var163 string | ||
| 3411 | templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) | 3411 | templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) | ||
| 3412 | if templ_7745c5c3_Err != nil { | 3412 | if templ_7745c5c3_Err != nil { | ||
| 3413 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 666, Col: 62} | 3413 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 670, Col: 62} |
| 3414 | } | 3414 | } | ||
| 3415 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var163) | 3415 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var163) | ||
| 3416 | if templ_7745c5c3_Err != nil { | 3416 | if templ_7745c5c3_Err != nil { | ||
| @@ -3423,7 +3423,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3423 | var templ_7745c5c3_Var164 string | 3423 | var templ_7745c5c3_Var164 string | ||
| 3424 | templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) | 3424 | templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) | ||
| 3425 | if templ_7745c5c3_Err != nil { | 3425 | if templ_7745c5c3_Err != nil { | ||
| 3426 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 667, Col: 62} | 3426 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 671, Col: 62} |
| 3427 | } | 3427 | } | ||
| 3428 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164) | 3428 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164) | ||
| 3429 | if templ_7745c5c3_Err != nil { | 3429 | if templ_7745c5c3_Err != nil { | ||
| @@ -3436,7 +3436,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3436 | var templ_7745c5c3_Var165 string | 3436 | var templ_7745c5c3_Var165 string | ||
| 3437 | templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) | 3437 | templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) | ||
| 3438 | if templ_7745c5c3_Err != nil { | 3438 | if templ_7745c5c3_Err != nil { | ||
| 3439 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 669, Col: 97} | 3439 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 673, Col: 97} |
| 3440 | } | 3440 | } | ||
| 3441 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165) | 3441 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165) | ||
| 3442 | if templ_7745c5c3_Err != nil { | 3442 | if templ_7745c5c3_Err != nil { | ||
| @@ -3459,7 +3459,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3459 | var templ_7745c5c3_Var166 string | 3459 | var templ_7745c5c3_Var166 string | ||
| 3460 | templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | 3460 | templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files")) | ||
| 3461 | if templ_7745c5c3_Err != nil { | 3461 | if templ_7745c5c3_Err != nil { | ||
| 3462 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 679, Col: 57} | 3462 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 683, Col: 57} |
| 3463 | } | 3463 | } | ||
| 3464 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var166)) | 3464 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var166)) | ||
| 3465 | if templ_7745c5c3_Err != nil { | 3465 | if templ_7745c5c3_Err != nil { | ||
| @@ -3472,7 +3472,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3472 | var templ_7745c5c3_Var167 string | 3472 | var templ_7745c5c3_Var167 string | ||
| 3473 | templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | 3473 | templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) | ||
| 3474 | if templ_7745c5c3_Err != nil { | 3474 | if templ_7745c5c3_Err != nil { | ||
| 3475 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 679, Col: 97} | 3475 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 683, Col: 97} |
| 3476 | } | 3476 | } | ||
| 3477 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167)) | 3477 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167)) | ||
| 3478 | if templ_7745c5c3_Err != nil { | 3478 | if templ_7745c5c3_Err != nil { | ||
| @@ -3485,7 +3485,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3485 | var templ_7745c5c3_Var168 string | 3485 | var templ_7745c5c3_Var168 string | ||
| 3486 | templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | 3486 | templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) | ||
| 3487 | if templ_7745c5c3_Err != nil { | 3487 | if templ_7745c5c3_Err != nil { | ||
| 3488 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 679, Col: 142} | 3488 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 683, Col: 142} |
| 3489 | } | 3489 | } | ||
| 3490 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168)) | 3490 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168)) | ||
| 3491 | if templ_7745c5c3_Err != nil { | 3491 | if templ_7745c5c3_Err != nil { | ||
| @@ -3521,7 +3521,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3521 | var templ_7745c5c3_Var169 string | 3521 | var templ_7745c5c3_Var169 string | ||
| 3522 | templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | 3522 | templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | ||
| 3523 | if templ_7745c5c3_Err != nil { | 3523 | if templ_7745c5c3_Err != nil { | ||
| 3524 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 692, Col: 23} | 3524 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 696, Col: 23} |
| 3525 | } | 3525 | } | ||
| 3526 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var169) | 3526 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var169) | ||
| 3527 | if templ_7745c5c3_Err != nil { | 3527 | if templ_7745c5c3_Err != nil { | ||
| @@ -3539,7 +3539,7 @@ func Compare(l Layout, p ComparePage) templ.Component { | |||||
| 3539 | var templ_7745c5c3_Var170 string | 3539 | var templ_7745c5c3_Var170 string | ||
| 3540 | templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | 3540 | templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) | ||
| 3541 | if templ_7745c5c3_Err != nil { | 3541 | if templ_7745c5c3_Err != nil { | ||
| 3542 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 694, Col: 23} | 3542 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 698, Col: 23} |
| 3543 | } | 3543 | } | ||
| 3544 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170) | 3544 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170) | ||
| 3545 | if templ_7745c5c3_Err != nil { | 3545 | if templ_7745c5c3_Err != nil { | ||
| @@ -3609,7 +3609,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3609 | var templ_7745c5c3_Var172 string | 3609 | var templ_7745c5c3_Var172 string | ||
| 3610 | templ_7745c5c3_Var172, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) | 3610 | templ_7745c5c3_Var172, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) | ||
| 3611 | if templ_7745c5c3_Err != nil { | 3611 | if templ_7745c5c3_Err != nil { | ||
| 3612 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 710, Col: 67} | 3612 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 714, Col: 67} |
| 3613 | } | 3613 | } | ||
| 3614 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var172)) | 3614 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var172)) | ||
| 3615 | if templ_7745c5c3_Err != nil { | 3615 | if templ_7745c5c3_Err != nil { | ||
| @@ -3627,7 +3627,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3627 | var templ_7745c5c3_Var173 templ.SafeURL | 3627 | var templ_7745c5c3_Var173 templ.SafeURL | ||
| 3628 | templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) | 3628 | templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) | ||
| 3629 | if templ_7745c5c3_Err != nil { | 3629 | if templ_7745c5c3_Err != nil { | ||
| 3630 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 714, Col: 37} | 3630 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 718, Col: 37} |
| 3631 | } | 3631 | } | ||
| 3632 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173)) | 3632 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173)) | ||
| 3633 | if templ_7745c5c3_Err != nil { | 3633 | if templ_7745c5c3_Err != nil { | ||
| @@ -3640,7 +3640,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3640 | var templ_7745c5c3_Var174 string | 3640 | var templ_7745c5c3_Var174 string | ||
| 3641 | templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | 3641 | templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) | ||
| 3642 | if templ_7745c5c3_Err != nil { | 3642 | if templ_7745c5c3_Err != nil { | ||
| 3643 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 714, Col: 49} | 3643 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 718, Col: 49} |
| 3644 | } | 3644 | } | ||
| 3645 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174)) | 3645 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174)) | ||
| 3646 | if templ_7745c5c3_Err != nil { | 3646 | if templ_7745c5c3_Err != nil { | ||
| @@ -3653,7 +3653,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3653 | var templ_7745c5c3_Var175 string | 3653 | var templ_7745c5c3_Var175 string | ||
| 3654 | templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | 3654 | templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) | ||
| 3655 | if templ_7745c5c3_Err != nil { | 3655 | if templ_7745c5c3_Err != nil { | ||
| 3656 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 715, Col: 32} | 3656 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 719, Col: 32} |
| 3657 | } | 3657 | } | ||
| 3658 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175)) | 3658 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175)) | ||
| 3659 | if templ_7745c5c3_Err != nil { | 3659 | if templ_7745c5c3_Err != nil { | ||
| @@ -3666,7 +3666,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3666 | var templ_7745c5c3_Var176 string | 3666 | var templ_7745c5c3_Var176 string | ||
| 3667 | templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | 3667 | templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) | ||
| 3668 | if templ_7745c5c3_Err != nil { | 3668 | if templ_7745c5c3_Err != nil { | ||
| 3669 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 717, Col: 16} | 3669 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 721, Col: 16} |
| 3670 | } | 3670 | } | ||
| 3671 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176)) | 3671 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176)) | ||
| 3672 | if templ_7745c5c3_Err != nil { | 3672 | if templ_7745c5c3_Err != nil { | ||
| @@ -3680,7 +3680,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3680 | var templ_7745c5c3_Var177 string | 3680 | var templ_7745c5c3_Var177 string | ||
| 3681 | templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | 3681 | templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(" · ") | ||
| 3682 | if templ_7745c5c3_Err != nil { | 3682 | if templ_7745c5c3_Err != nil { | ||
| 3683 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 719, Col: 15} | 3683 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 723, Col: 15} |
| 3684 | } | 3684 | } | ||
| 3685 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177)) | 3685 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177)) | ||
| 3686 | if templ_7745c5c3_Err != nil { | 3686 | if templ_7745c5c3_Err != nil { | ||
| @@ -3693,7 +3693,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3693 | var templ_7745c5c3_Var178 string | 3693 | var templ_7745c5c3_Var178 string | ||
| 3694 | templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | 3694 | templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) | ||
| 3695 | if templ_7745c5c3_Err != nil { | 3695 | if templ_7745c5c3_Err != nil { | ||
| 3696 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 719, Col: 42} | 3696 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 723, Col: 42} |
| 3697 | } | 3697 | } | ||
| 3698 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var178) | 3698 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var178) | ||
| 3699 | if templ_7745c5c3_Err != nil { | 3699 | if templ_7745c5c3_Err != nil { | ||
| @@ -3706,7 +3706,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3706 | var templ_7745c5c3_Var179 string | 3706 | var templ_7745c5c3_Var179 string | ||
| 3707 | templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | 3707 | templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) | ||
| 3708 | if templ_7745c5c3_Err != nil { | 3708 | if templ_7745c5c3_Err != nil { | ||
| 3709 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 719, Col: 53} | 3709 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 723, Col: 53} |
| 3710 | } | 3710 | } | ||
| 3711 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var179)) | 3711 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var179)) | ||
| 3712 | if templ_7745c5c3_Err != nil { | 3712 | if templ_7745c5c3_Err != nil { | ||
| @@ -3734,7 +3734,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3734 | var templ_7745c5c3_Var180 string | 3734 | var templ_7745c5c3_Var180 string | ||
| 3735 | templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | 3735 | templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) | ||
| 3736 | if templ_7745c5c3_Err != nil { | 3736 | if templ_7745c5c3_Err != nil { | ||
| 3737 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 726, Col: 47} | 3737 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 730, Col: 47} |
| 3738 | } | 3738 | } | ||
| 3739 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180)) | 3739 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180)) | ||
| 3740 | if templ_7745c5c3_Err != nil { | 3740 | if templ_7745c5c3_Err != nil { | ||
| @@ -3757,7 +3757,7 @@ func compareRail(p ComparePage) templ.Component { | |||||
| 3757 | var templ_7745c5c3_Var181 string | 3757 | var templ_7745c5c3_Var181 string | ||
| 3758 | templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | 3758 | templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) | ||
| 3759 | if templ_7745c5c3_Err != nil { | 3759 | if templ_7745c5c3_Err != nil { | ||
| 3760 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 731, Col: 66} | 3760 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 735, Col: 66} |
| 3761 | } | 3761 | } | ||
| 3762 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181)) | 3762 | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181)) | ||
| 3763 | if templ_7745c5c3_Err != nil { | 3763 | if templ_7745c5c3_Err != nil { | ||
M internal/adapters/web/static/js/ermite.js +4 -1
| @@ -965,7 +965,10 @@ window.ermiteLive = (() => { | |||
| 965 | 965 | reload() { | |
| 966 | 966 | if (reloading) return; | |
| 967 | 967 | reloading = true; | |
| 968 | - | setTimeout(() => location.reload(), 300); | |
| 968 | + | setTimeout(() => { | |
| 969 | + | reloading = false; | |
| 970 | + | if (window.ermiteLive.canReload?.() !== false) location.reload(); | |
| 971 | + | }, 300); | |
| 969 | 972 | }, | |
| 970 | 973 | // error handles htmx:sse:error (detail.status is the status of a refused | |
| 971 | 974 | // reconnection). hx-sse retries for ever; a 404 or a 401 will not change by | |
| @@ -965,7 +965,10 @@ window.ermiteLive = (() => { | |||||
| 965 | reload() { | 965 | reload() { | ||
| 966 | if (reloading) return; | 966 | if (reloading) return; | ||
| 967 | reloading = true; | 967 | reloading = true; | ||
| 968 | - | setTimeout(() => location.reload(), 300); | 968 | + | setTimeout(() => { |
| 969 | + | reloading = false; | |||
| 970 | + | if (window.ermiteLive.canReload?.() !== false) location.reload(); | |||
| 971 | + | }, 300); | |||
| 969 | }, | 972 | }, | ||
| 970 | // error handles htmx:sse:error (detail.status is the status of a refused | 973 | // error handles htmx:sse:error (detail.status is the status of a refused | ||
| 971 | // reconnection). hx-sse retries for ever; a 404 or a 401 will not change by | 974 | // reconnection). hx-sse retries for ever; a 404 or a 401 will not change by | ||
M internal/adapters/web/static/js/mr.js +78 -90
| @@ -430,34 +430,33 @@ window.ermiteMR = (() => { | |||
| 430 | 430 | // a dirty bit for pushes received during that request. Drafts are checked | |
| 431 | 431 | // again after the fetch: typing while the network is slow is safe too. | |
| 432 | 432 | function refresher({ blocked, fetchPage, apply, notice, failed, delay = 300 }) { | |
| 433 | - | let timer, busy = false, pending = false, force = false; | |
| 433 | + | let timer, busy = false, pending = false; | |
| 434 | 434 | const schedule = () => { clearTimeout(timer); timer = setTimeout(run, delay); }; | |
| 435 | 435 | async function run() { | |
| 436 | 436 | if (busy || !pending) return; | |
| 437 | - | if (!force && blocked()) { notice(true); return; } | |
| 437 | + | if (blocked()) { notice(true); return; } | |
| 438 | 438 | busy = true; | |
| 439 | 439 | pending = false; | |
| 440 | - | const manual = force; force = false; | |
| 441 | 440 | try { | |
| 442 | 441 | const page = await fetchPage(); | |
| 443 | - | if (!manual && blocked()) { pending = true; notice(true); return; } | |
| 444 | - | if (await apply(page, manual) === false) { pending = true; notice(true); } | |
| 442 | + | if (blocked()) { pending = true; notice(true); return; } | |
| 443 | + | if (await apply(page) === false) { pending = true; notice(true); } | |
| 445 | 444 | else notice(false); | |
| 446 | - | } catch { failed(); } | |
| 445 | + | } catch { if (blocked()) { pending = true; notice(true); } else failed(); } | |
| 447 | 446 | finally { | |
| 448 | 447 | busy = false; | |
| 449 | - | if (pending && (force || !blocked())) schedule(); | |
| 448 | + | if (pending && !blocked()) schedule(); | |
| 450 | 449 | } | |
| 451 | 450 | } | |
| 452 | 451 | return { | |
| 453 | - | request(manual = false) { pending = true; force ||= manual; schedule(); }, | |
| 452 | + | request() { pending = true; schedule(); }, | |
| 454 | 453 | resume() { if (pending) schedule(); }, | |
| 455 | 454 | pending() { return pending || busy; }, | |
| 456 | 455 | }; | |
| 457 | 456 | } | |
| 458 | 457 | ||
| 459 | 458 | function hasDraft() { | |
| 460 | - | return $$('textarea').some((t) => (t.value.length > 0 && t.value !== t.defaultValue) || document.activeElement === t) || | |
| 459 | + | return $$('textarea').some((t) => (t.value !== t.defaultValue) || document.activeElement === t) || | |
| 461 | 460 | !!document.activeElement?.closest?.('.cform'); | |
| 462 | 461 | } | |
| 463 | 462 | ||
| @@ -470,19 +469,24 @@ window.ermiteMR = (() => { | |||
| 470 | 469 | const bounds = diffs.getBoundingClientRect(); | |
| 471 | 470 | const x = Math.max(1, Math.min(innerWidth - 1, bounds.left + Math.min(100, bounds.width / 2))); | |
| 472 | 471 | // A bounded number of probes, independent of the number of diff lines. | |
| 473 | - | for (const y of [top + 2, top + 24, top + 64, top + 128]) { | |
| 474 | - | if (y >= innerHeight) break; | |
| 472 | + | let y = top + 2, fallback; | |
| 473 | + | for (let probe = 0; probe < 6 && y < innerHeight; probe++) { | |
| 475 | 474 | const hit = document.elementFromPoint(x, y); | |
| 476 | 475 | const file = hit?.closest('details.dfile'); | |
| 477 | - | if (!file || !diffs.contains(file)) continue; | |
| 476 | + | if (!file || !diffs.contains(file)) { y += 32; continue; } | |
| 478 | 477 | const row = hit.closest('tr'); | |
| 479 | 478 | const link = row && $('.ln a[href*="on="]', row); | |
| 480 | 479 | const header = $(':scope > summary', file); | |
| 481 | - | return { file: file.dataset.file, | |
| 482 | - | on: link && new URL(link.href, location.href).searchParams.get('on'), | |
| 483 | - | offset: (link ? row : header).getBoundingClientRect().top, | |
| 484 | - | headerOffset: header.getBoundingClientRect().top, y: scrollY }; | |
| 480 | + | const headerOffset = file.getBoundingClientRect().top; | |
| 481 | + | fallback = { file: file.dataset.file, offset: headerOffset, headerOffset, y: scrollY }; | |
| 482 | + | if (link) return { ...fallback, | |
| 483 | + | on: new URL(link.href, location.href).searchParams.get('on'), | |
| 484 | + | suffix: link.getAttribute('href').split('on=')[1].split('#')[0], | |
| 485 | + | offset: row.getBoundingClientRect().top }; | |
| 486 | + | if (file.open && header) y = Math.max(y + 24, header.getBoundingClientRect().bottom + 2); | |
| 487 | + | else return fallback; | |
| 485 | 488 | } | |
| 489 | + | if (fallback) return fallback; | |
| 486 | 490 | return { y: scrollY }; | |
| 487 | 491 | } | |
| 488 | 492 | ||
| @@ -490,110 +494,92 @@ window.ermiteMR = (() => { | |||
| 490 | 494 | const file = $$('#diffs details.dfile').find((f) => f.dataset.file === anchor.file); | |
| 491 | 495 | let el, offset = anchor.offset; | |
| 492 | 496 | if (file && anchor.on) { | |
| 493 | - | // Exact href suffix: no traversal or measurement of every line. URLSearchParams | |
| 494 | - | // uses the same form encoding as the Go line links (space is '+'). | |
| 495 | - | const parts = /^(new|old):(\d+):(.+)$/.exec(anchor.on); | |
| 496 | - | const path = parts && new URLSearchParams({ path: parts[3] }).toString().slice(5); | |
| 497 | - | const suffix = parts && 'on=' + parts[1] + ':' + parts[2] + ':' + path + '#' + file.id; | |
| 497 | + | const suffix = anchor.suffix && 'on=' + anchor.suffix + '#' + file.id; | |
| 498 | 498 | const layout = $('#diffs').dataset.diff || $('#diffs').dataset.view; | |
| 499 | 499 | const table = $(layout === 'split' && !window.matchMedia?.('(max-width: 720px)').matches ? '.dt.spl' : '.dt.uni', file) || file; | |
| 500 | 500 | if (suffix) el = $('a[href$="' + CSS.escape(suffix) + '"]', table)?.closest('tr'); | |
| 501 | 501 | } | |
| 502 | - | if (!el && file) { el = $(':scope > summary', file); offset = anchor.headerOffset ?? anchor.offset; } | |
| 502 | + | if (!el && file) { el = file; offset = anchor.headerOffset ?? anchor.offset; } | |
| 503 | 503 | if (el) window.scrollBy({ top: el.getBoundingClientRect().top - offset, behavior: 'instant' }); | |
| 504 | 504 | else window.scrollTo({ top: Math.max(0, Math.min(anchor.y, document.documentElement.scrollHeight - innerHeight)), behavior: 'instant' }); | |
| 505 | 505 | } | |
| 506 | 506 | ||
| 507 | - | async function fetchPage() { | |
| 508 | - | const res = await fetch(location.href, { credentials: 'same-origin', headers: { Accept: 'text/html' } }); | |
| 507 | + | async function fetchPage(url = location.href, mobileRetry = false) { | |
| 508 | + | const res = await fetch(url, { credentials: 'same-origin', headers: { Accept: 'text/html' } }); | |
| 509 | 509 | if (!res.ok || res.redirected) throw new Error('MR refresh refused'); | |
| 510 | 510 | const page = new DOMParser().parseFromString(await res.text(), 'text/html'); | |
| 511 | 511 | if (!$('#diffs[data-mr]', page) || !$('.mr-bar', page) || !$('.hint-live', page)) throw new Error('not an MR page'); | |
| 512 | + | const unified = core.mobileURL(url, $('#diffs', page).dataset.view, | |
| 513 | + | !!window.matchMedia?.('(max-width: 720px)').matches); | |
| 514 | + | if (unified && !mobileRetry) return fetchPage(unified, true); | |
| 512 | 515 | return page; | |
| 513 | 516 | } | |
| 514 | 517 | ||
| 515 | - | // Use htmx's swap rather than replaceWith: its cleanup retires the old SSE | |
| 516 | - | // reader and hx-live bindings, and process activates the inserted controls. | |
| 518 | + | // htmx 4's public delete swap invokes recursive before:cleanup (including | |
| 519 | + | // hx-sse's abort/reader.cancel and hx-live's binding disposal). Only an empty | |
| 520 | + | // string is parsed; the fetched nodes themselves are adopted, never serialized. | |
| 517 | 521 | async function replaceRegion(old, fresh) { | |
| 518 | 522 | if (!old || !fresh) throw new Error('missing MR refresh region'); | |
| 519 | 523 | for (const el of $$('[autofocus]', fresh)) el.removeAttribute('autofocus'); | |
| 520 | - | await window.htmx.swap({ sourceElement: old, target: old, text: fresh.outerHTML, | |
| 521 | - | swap: 'outerHTML settle:0 transition:false focusScroll:false', push: false, replace: false }); | |
| 524 | + | const marker = document.createComment('MR region'); | |
| 525 | + | old.before(marker); | |
| 526 | + | await window.htmx.swap({ sourceElement: old, target: old, text: '', | |
| 527 | + | swap: 'delete settle:0 transition:false', push: false, replace: false }); | |
| 528 | + | const node = document.adoptNode(fresh); | |
| 529 | + | marker.replaceWith(node); | |
| 530 | + | window.htmx.process(node); | |
| 522 | 531 | } | |
| 523 | 532 | ||
| 524 | - | async function refreshPage(page, manual = false) { | |
| 525 | - | const regions = ['.mr-footer', '#mr-range', '.mr-bar', '#mr-diff-notices', '#diffs', '.rail', '.hint-live']; | |
| 533 | + | async function refreshPage(page) { | |
| 534 | + | const regions = ['.mr-footer', '#mr-range', '.mr-bar', '#mr-diff-notices', '#diffs', '#mr-comments', '.rail', '.hint-live']; | |
| 526 | 535 | for (const sel of regions) if (!$(sel) || !$(sel, page)) throw new Error('missing MR region'); | |
| 527 | 536 | let anchor = scrollAnchor(); | |
| 537 | + | const nextDiffs = $('#diffs', page); | |
| 538 | + | const mobile = !!window.matchMedia?.('(max-width: 720px)').matches; | |
| 539 | + | const chosen = mobile ? 'unified' : ($('#diffs').dataset.diff || $('#diffs').dataset.view); | |
| 540 | + | if (nextDiffs.dataset.diff) nextDiffs.dataset.diff = chosen; | |
| 541 | + | // A one-layout response must use its own contract, never the old page's. | |
| 542 | + | if (mobile && nextDiffs.dataset.view === 'split') throw new Error('mobile needs unified'); | |
| 528 | 543 | const anchorFile = $$('#diffs details.dfile', page).find((f) => f.dataset.file === anchor.file); | |
| 529 | 544 | const placeholder = anchorFile && $('.dlazy[data-src]', anchorFile); | |
| 530 | 545 | if (placeholder) { | |
| 531 | - | const d = $('#diffs').dataset; | |
| 546 | + | const d = nextDiffs.dataset; | |
| 532 | 547 | const url = placeholder.dataset.src + '&view=' + encodeURIComponent(d.diff || d.view || 'unified') + '&layouts=' + (d.diff ? 'both' : 'one'); | |
| 533 | 548 | const res = await fetch(url, { credentials: 'same-origin', headers: { Accept: 'text/html' } }); | |
| 534 | 549 | if (!res.ok || res.redirected) throw new Error('anchor window changed'); | |
| 535 | - | const windowPage = new DOMParser().parseFromString(await res.text(), 'text/html'); | |
| 536 | - | const byID = new Map($$('#diffs details.dfile', page).map((f) => [f.id, f])); | |
| 537 | - | for (const f of $$('details.dfile', windowPage)) byID.get(f.id)?.replaceWith(f); | |
| 538 | - | if (!manual && hasDraft()) return false; | |
| 550 | + | let windowPage = new DOMParser().parseFromString(await res.text(), 'text/html'); | |
| 551 | + | if (hasDraft()) return false; | |
| 539 | 552 | anchor = scrollAnchor(); | |
| 553 | + | const windowFiles = $$('details.dfile', windowPage); | |
| 554 | + | // If the reader moved outside this window, discard it; lazy loading will | |
| 555 | + | // fetch the new position rather than committing an unrelated window. | |
| 556 | + | if (windowFiles.some((f) => f.dataset.file === anchor.file)) { | |
| 557 | + | const byID = new Map($$('#diffs details.dfile', page).map((f) => [f.id, f])); | |
| 558 | + | for (const f of windowFiles) byID.get(f.id)?.replaceWith(f); | |
| 559 | + | } | |
| 560 | + | windowPage = null; | |
| 540 | 561 | } | |
| 562 | + | if (hasDraft()) return false; | |
| 541 | 563 | const files = new Map($$('#diffs details.dfile').map((f) => [f.dataset.file, f.open])); | |
| 542 | 564 | const folded = $('.r-files')?.hasAttribute('data-folded'); | |
| 543 | 565 | const railY = $('.rail')?.scrollTop, filesY = $('.r-files .files')?.scrollTop; | |
| 544 | 566 | const footerOpen = $('#mr-panels')?.open; | |
| 545 | 567 | const tab = $('[data-mr-tabs] [aria-selected="true"]')?.id; | |
| 546 | 568 | const active = document.activeElement; | |
| 547 | - | const focus = active && { menu: active.closest?.('details.menu')?.id, id: active.id, tag: active.tagName, name: active.getAttribute('name'), href: active.getAttribute('href') }; | |
| 548 | - | // Manual refresh keeps even an active draft whose line disappeared. It | |
| 549 | - | // stays an ordinary form, under an explicit previous-diff label. | |
| 550 | - | const drafts = [...new Set($$('#diffs textarea').filter((t) => t.value !== t.defaultValue || t === active || t.closest('form')?.contains(active)).map((t) => t.closest('form')).filter(Boolean))]; | |
| 551 | - | let draftID = 0; | |
| 552 | - | for (const form of drafts) { | |
| 553 | - | for (const t of $$('textarea', form)) { | |
| 554 | - | if (!t.id) t.id = 'mr-preserved-draft-' + (++draftID); | |
| 555 | - | if (t === active) focus.id = t.id; | |
| 556 | - | } | |
| 557 | - | const id = $('textarea', form)?.id; | |
| 558 | - | const replacement = id && $$('textarea', page).find((t) => t.id === id)?.closest('.cform'); | |
| 559 | - | const copy = form.cloneNode(true); | |
| 560 | - | const originalFields = $$('textarea, input, select', form); | |
| 561 | - | $$('textarea, input, select', copy).forEach((field, i) => { | |
| 562 | - | const original = originalFields[i]; | |
| 563 | - | if (field.tagName === 'TEXTAREA') field.textContent = original.defaultValue; | |
| 564 | - | else if (field.tagName === 'INPUT') { field.setAttribute('value', original.value); field.toggleAttribute('checked', original.checked); } | |
| 565 | - | }); | |
| 566 | - | if (replacement) replacement.replaceWith(copy); | |
| 567 | - | else { | |
| 568 | - | const box = page.createElement('div'); | |
| 569 | - | const label = page.createElement('p'); label.className = 'notice'; | |
| 570 | - | label.textContent = 'Unsent comment on the previous diff (the line may have moved).'; | |
| 571 | - | box.append(label, copy); $('#diffs', page).prepend(box); | |
| 572 | - | } | |
| 573 | - | } | |
| 574 | - | // Serializing markup does not retain textarea.value or selection. Restore | |
| 575 | - | // values after the htmx swap, without ever clearing the source drafts. | |
| 576 | - | const values = drafts.flatMap((f) => $$('textarea', f).map((t) => ({ id: t.id, value: t.value, start: t.selectionStart, end: t.selectionEnd }))); | |
| 569 | + | const focus = active && { file: active.closest?.('.files a')?.getAttribute('title'), region: regions.find((sel) => $(sel)?.contains(active)), menu: active.closest?.('details.menu')?.id, id: active.id, tag: active.tagName, name: active.getAttribute('name'), href: active.getAttribute('href') }; | |
| 577 | 570 | for (const f of $$('#diffs details.dfile', page)) if (files.has(f.dataset.file)) f.open = files.get(f.dataset.file); | |
| 578 | 571 | ++diffGeneration; ++revealGen; moved = false; loading.clear(); lazyIO?.disconnect(); | |
| 579 | - | // Keep the chosen client-side layout when the URL was not pinned. | |
| 580 | - | const layout = $('#diffs')?.dataset; | |
| 581 | - | if (layout?.diff && $('#diffs', page).dataset.diff) $('#diffs', page).dataset.diff = layout.diff; | |
| 582 | 572 | $('#diffs', page).dataset.mrStarted = 'true'; | |
| 583 | 573 | for (const sel of regions) { | |
| 584 | 574 | const fresh = $(sel, page); | |
| 585 | 575 | await replaceRegion($(sel), fresh); | |
| 586 | - | fresh.remove(); // release each parsed region as soon as it is consumed | |
| 587 | - | } | |
| 588 | - | for (const v of values) { | |
| 589 | - | const t = document.getElementById(v.id); | |
| 590 | - | if (t) { t.value = v.value; t.setSelectionRange(v.start, v.end); } | |
| 591 | 576 | } | |
| 592 | 577 | for (const key of ['ref', 'sha', 'paths', 'blob']) { | |
| 593 | 578 | if (page.body.dataset[key] !== undefined) document.body.dataset[key] = page.body.dataset[key]; | |
| 594 | 579 | } | |
| 595 | 580 | const oldSHA = $('.hdr .ref .sha'), newSHA = $('.hdr .ref .sha', page); | |
| 596 | 581 | if (oldSHA && newSHA) oldSHA.textContent = newSHA.textContent; | |
| 582 | + | page = null; | |
| 597 | 583 | panels(); | |
| 598 | 584 | if (tab) { | |
| 599 | 585 | const oldURL = location.href; | |
| @@ -609,38 +595,40 @@ window.ermiteMR = (() => { | |||
| 609 | 595 | window.ermite?.refreshFiles?.(); | |
| 610 | 596 | watch(); | |
| 611 | 597 | if (focus && active !== document.body) { | |
| 612 | - | const same = (e) => e.tagName === focus.tag && (focus.id ? e.id === focus.id : | |
| 613 | - | focus.href ? e.getAttribute('href') === focus.href : focus.name && e.getAttribute('name') === focus.name); | |
| 614 | - | const el = focus.menu && !focus.id && !focus.name && !focus.href ? document.getElementById(focus.menu)?.querySelector(':scope > summary') : focus.id ? document.getElementById(focus.id) : focus.href ? $('a[href="' + CSS.escape(focus.href) + '"]') : focus.name ? $('[name="' + CSS.escape(focus.name) + '"]') : null; | |
| 615 | - | if (el && (same(el) || focus.menu)) el.focus({ preventScroll: true }); | |
| 598 | + | const region = focus.region ? $(focus.region) : document; | |
| 599 | + | const menu = focus.menu && document.getElementById(focus.menu); | |
| 600 | + | if (menu) menu.open = true; | |
| 601 | + | const el = focus.file ? $('a[title="' + CSS.escape(focus.file) + '"]', region) : | |
| 602 | + | focus.id ? document.getElementById(focus.id) : | |
| 603 | + | focus.href ? $('a[href="' + CSS.escape(focus.href) + '"]', region) : | |
| 604 | + | focus.name ? $('[name="' + CSS.escape(focus.name) + '"]', region) : | |
| 605 | + | menu?.querySelector(':scope > summary'); | |
| 606 | + | el?.focus({ preventScroll: true }); | |
| 616 | 607 | } | |
| 617 | 608 | restoreAnchor(anchor); | |
| 618 | 609 | } | |
| 619 | 610 | ||
| 620 | 611 | function refreshNotice(deferred) { | |
| 621 | - | let slot = $('#mr-refresh-status'); | |
| 622 | - | if (!slot) { | |
| 623 | - | slot = document.createElement('div'); slot.id = 'mr-refresh-status'; slot.className = 'live-slot'; | |
| 624 | - | slot.setAttribute('role', 'status'); slot.setAttribute('aria-live', 'polite'); | |
| 625 | - | $('#mr-notice')?.after(slot); | |
| 626 | - | } | |
| 627 | - | slot.className = deferred ? 'live-slot' : 'sr'; | |
| 612 | + | const slot = $('#mr-refresh-status'); | |
| 613 | + | if (!slot) return; | |
| 628 | 614 | slot.replaceChildren(); | |
| 629 | 615 | if (!deferred) { | |
| 630 | - | const text = document.createElement('span'); text.textContent = 'branch updated'; slot.append(text); | |
| 616 | + | const text = document.createElement('span'); text.className = 'sr'; text.textContent = 'branch updated'; slot.append(text); | |
| 631 | 617 | return; | |
| 632 | 618 | } | |
| 633 | 619 | slot.append('branch updated — refreshing after your comment. '); | |
| 634 | - | const a = document.createElement('a'); a.href = location.href; a.textContent = 'refresh now'; | |
| 635 | - | a.addEventListener('click', (e) => { e.preventDefault(); headRefresh.request(true); }); | |
| 636 | - | slot.append(a); | |
| 620 | + | ||
| 637 | 621 | } | |
| 638 | 622 | const headRefresh = refresher({ blocked: hasDraft, fetchPage, apply: refreshPage, notice: refreshNotice, | |
| 639 | - | failed: () => { if (hasDraft()) refreshNotice(true); else window.ermiteLive?.reload(); } }); | |
| 623 | + | failed: () => window.ermiteLive?.reload() }); | |
| 640 | 624 | function headChanged() { if ($('#diffs[data-mr]')) headRefresh.request(); } | |
| 641 | 625 | ||
| 642 | 626 | function start() { | |
| 643 | 627 | if (!$('#diffs[data-mr]')) return; | |
| 628 | + | if (window.ermiteLive) window.ermiteLive.canReload = () => { | |
| 629 | + | if (!hasDraft()) return true; | |
| 630 | + | headRefresh.request(); refreshNotice(true); return false; | |
| 631 | + | }; | |
| 644 | 632 | // Global delegation is installed once; replacement regions have their own | |
| 645 | 633 | // disposable panel/touch hooks below. | |
| 646 | 634 | if ($('#diffs').dataset.mrStarted) return; | |
| @@ -651,7 +639,7 @@ window.ermiteMR = (() => { | |||
| 651 | 639 | if (!cancel || !headRefresh.pending() || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) return; | |
| 652 | 640 | e.preventDefault(); | |
| 653 | 641 | const form = cancel.closest('.cform'); | |
| 654 | - | for (const t of $$('textarea', form)) t.value = ''; | |
| 642 | + | for (const t of $$('textarea', form)) t.value = t.defaultValue; | |
| 655 | 643 | if (form.contains(document.activeElement)) document.activeElement.blur(); | |
| 656 | 644 | headRefresh.resume(); | |
| 657 | 645 | }); | |
| @@ -430,34 +430,33 @@ window.ermiteMR = (() => { | |||||
| 430 | // a dirty bit for pushes received during that request. Drafts are checked | 430 | // a dirty bit for pushes received during that request. Drafts are checked | ||
| 431 | // again after the fetch: typing while the network is slow is safe too. | 431 | // again after the fetch: typing while the network is slow is safe too. | ||
| 432 | function refresher({ blocked, fetchPage, apply, notice, failed, delay = 300 }) { | 432 | function refresher({ blocked, fetchPage, apply, notice, failed, delay = 300 }) { | ||
| 433 | - | let timer, busy = false, pending = false, force = false; | 433 | + | let timer, busy = false, pending = false; |
| 434 | const schedule = () => { clearTimeout(timer); timer = setTimeout(run, delay); }; | 434 | const schedule = () => { clearTimeout(timer); timer = setTimeout(run, delay); }; | ||
| 435 | async function run() { | 435 | async function run() { | ||
| 436 | if (busy || !pending) return; | 436 | if (busy || !pending) return; | ||
| 437 | - | if (!force && blocked()) { notice(true); return; } | 437 | + | if (blocked()) { notice(true); return; } |
| 438 | busy = true; | 438 | busy = true; | ||
| 439 | pending = false; | 439 | pending = false; | ||
| 440 | - | const manual = force; force = false; | |||
| 441 | try { | 440 | try { | ||
| 442 | const page = await fetchPage(); | 441 | const page = await fetchPage(); | ||
| 443 | - | if (!manual && blocked()) { pending = true; notice(true); return; } | 442 | + | if (blocked()) { pending = true; notice(true); return; } |
| 444 | - | if (await apply(page, manual) === false) { pending = true; notice(true); } | 443 | + | if (await apply(page) === false) { pending = true; notice(true); } |
| 445 | else notice(false); | 444 | else notice(false); | ||
| 446 | - | } catch { failed(); } | 445 | + | } catch { if (blocked()) { pending = true; notice(true); } else failed(); } |
| 447 | finally { | 446 | finally { | ||
| 448 | busy = false; | 447 | busy = false; | ||
| 449 | - | if (pending && (force || !blocked())) schedule(); | 448 | + | if (pending && !blocked()) schedule(); |
| 450 | } | 449 | } | ||
| 451 | } | 450 | } | ||
| 452 | return { | 451 | return { | ||
| 453 | - | request(manual = false) { pending = true; force ||= manual; schedule(); }, | 452 | + | request() { pending = true; schedule(); }, |
| 454 | resume() { if (pending) schedule(); }, | 453 | resume() { if (pending) schedule(); }, | ||
| 455 | pending() { return pending || busy; }, | 454 | pending() { return pending || busy; }, | ||
| 456 | }; | 455 | }; | ||
| 457 | } | 456 | } | ||
| 458 | 457 | ||||
| 459 | function hasDraft() { | 458 | function hasDraft() { | ||
| 460 | - | return $$('textarea').some((t) => (t.value.length > 0 && t.value !== t.defaultValue) || document.activeElement === t) || | 459 | + | return $$('textarea').some((t) => (t.value !== t.defaultValue) || document.activeElement === t) || |
| 461 | !!document.activeElement?.closest?.('.cform'); | 460 | !!document.activeElement?.closest?.('.cform'); | ||
| 462 | } | 461 | } | ||
| 463 | 462 | ||||
| @@ -470,19 +469,24 @@ window.ermiteMR = (() => { | |||||
| 470 | const bounds = diffs.getBoundingClientRect(); | 469 | const bounds = diffs.getBoundingClientRect(); | ||
| 471 | const x = Math.max(1, Math.min(innerWidth - 1, bounds.left + Math.min(100, bounds.width / 2))); | 470 | const x = Math.max(1, Math.min(innerWidth - 1, bounds.left + Math.min(100, bounds.width / 2))); | ||
| 472 | // A bounded number of probes, independent of the number of diff lines. | 471 | // A bounded number of probes, independent of the number of diff lines. | ||
| 473 | - | for (const y of [top + 2, top + 24, top + 64, top + 128]) { | 472 | + | let y = top + 2, fallback; |
| 474 | - | if (y >= innerHeight) break; | 473 | + | for (let probe = 0; probe < 6 && y < innerHeight; probe++) { |
| 475 | const hit = document.elementFromPoint(x, y); | 474 | const hit = document.elementFromPoint(x, y); | ||
| 476 | const file = hit?.closest('details.dfile'); | 475 | const file = hit?.closest('details.dfile'); | ||
| 477 | - | if (!file || !diffs.contains(file)) continue; | 476 | + | if (!file || !diffs.contains(file)) { y += 32; continue; } |
| 478 | const row = hit.closest('tr'); | 477 | const row = hit.closest('tr'); | ||
| 479 | const link = row && $('.ln a[href*="on="]', row); | 478 | const link = row && $('.ln a[href*="on="]', row); | ||
| 480 | const header = $(':scope > summary', file); | 479 | const header = $(':scope > summary', file); | ||
| 481 | - | return { file: file.dataset.file, | 480 | + | const headerOffset = file.getBoundingClientRect().top; |
| 482 | - | on: link && new URL(link.href, location.href).searchParams.get('on'), | 481 | + | fallback = { file: file.dataset.file, offset: headerOffset, headerOffset, y: scrollY }; |
| 483 | - | offset: (link ? row : header).getBoundingClientRect().top, | 482 | + | if (link) return { ...fallback, |
| 484 | - | headerOffset: header.getBoundingClientRect().top, y: scrollY }; | 483 | + | on: new URL(link.href, location.href).searchParams.get('on'), |
| 484 | + | suffix: link.getAttribute('href').split('on=')[1].split('#')[0], | |||
| 485 | + | offset: row.getBoundingClientRect().top }; | |||
| 486 | + | if (file.open && header) y = Math.max(y + 24, header.getBoundingClientRect().bottom + 2); | |||
| 487 | + | else return fallback; | |||
| 485 | } | 488 | } | ||
| 489 | + | if (fallback) return fallback; | |||
| 486 | return { y: scrollY }; | 490 | return { y: scrollY }; | ||
| 487 | } | 491 | } | ||
| 488 | 492 | ||||
| @@ -490,110 +494,92 @@ window.ermiteMR = (() => { | |||||
| 490 | const file = $$('#diffs details.dfile').find((f) => f.dataset.file === anchor.file); | 494 | const file = $$('#diffs details.dfile').find((f) => f.dataset.file === anchor.file); | ||
| 491 | let el, offset = anchor.offset; | 495 | let el, offset = anchor.offset; | ||
| 492 | if (file && anchor.on) { | 496 | if (file && anchor.on) { | ||
| 493 | - | // Exact href suffix: no traversal or measurement of every line. URLSearchParams | 497 | + | const suffix = anchor.suffix && 'on=' + anchor.suffix + '#' + file.id; |
| 494 | - | // uses the same form encoding as the Go line links (space is '+'). | |||
| 495 | - | const parts = /^(new|old):(\d+):(.+)$/.exec(anchor.on); | |||
| 496 | - | const path = parts && new URLSearchParams({ path: parts[3] }).toString().slice(5); | |||
| 497 | - | const suffix = parts && 'on=' + parts[1] + ':' + parts[2] + ':' + path + '#' + file.id; | |||
| 498 | const layout = $('#diffs').dataset.diff || $('#diffs').dataset.view; | 498 | const layout = $('#diffs').dataset.diff || $('#diffs').dataset.view; | ||
| 499 | const table = $(layout === 'split' && !window.matchMedia?.('(max-width: 720px)').matches ? '.dt.spl' : '.dt.uni', file) || file; | 499 | const table = $(layout === 'split' && !window.matchMedia?.('(max-width: 720px)').matches ? '.dt.spl' : '.dt.uni', file) || file; | ||
| 500 | if (suffix) el = $('a[href$="' + CSS.escape(suffix) + '"]', table)?.closest('tr'); | 500 | if (suffix) el = $('a[href$="' + CSS.escape(suffix) + '"]', table)?.closest('tr'); | ||
| 501 | } | 501 | } | ||
| 502 | - | if (!el && file) { el = $(':scope > summary', file); offset = anchor.headerOffset ?? anchor.offset; } | 502 | + | if (!el && file) { el = file; offset = anchor.headerOffset ?? anchor.offset; } |
| 503 | if (el) window.scrollBy({ top: el.getBoundingClientRect().top - offset, behavior: 'instant' }); | 503 | if (el) window.scrollBy({ top: el.getBoundingClientRect().top - offset, behavior: 'instant' }); | ||
| 504 | else window.scrollTo({ top: Math.max(0, Math.min(anchor.y, document.documentElement.scrollHeight - innerHeight)), behavior: 'instant' }); | 504 | else window.scrollTo({ top: Math.max(0, Math.min(anchor.y, document.documentElement.scrollHeight - innerHeight)), behavior: 'instant' }); | ||
| 505 | } | 505 | } | ||
| 506 | 506 | ||||
| 507 | - | async function fetchPage() { | 507 | + | async function fetchPage(url = location.href, mobileRetry = false) { |
| 508 | - | const res = await fetch(location.href, { credentials: 'same-origin', headers: { Accept: 'text/html' } }); | 508 | + | const res = await fetch(url, { credentials: 'same-origin', headers: { Accept: 'text/html' } }); |
| 509 | if (!res.ok || res.redirected) throw new Error('MR refresh refused'); | 509 | if (!res.ok || res.redirected) throw new Error('MR refresh refused'); | ||
| 510 | const page = new DOMParser().parseFromString(await res.text(), 'text/html'); | 510 | const page = new DOMParser().parseFromString(await res.text(), 'text/html'); | ||
| 511 | if (!$('#diffs[data-mr]', page) || !$('.mr-bar', page) || !$('.hint-live', page)) throw new Error('not an MR page'); | 511 | if (!$('#diffs[data-mr]', page) || !$('.mr-bar', page) || !$('.hint-live', page)) throw new Error('not an MR page'); | ||
| 512 | + | const unified = core.mobileURL(url, $('#diffs', page).dataset.view, | |||
| 513 | + | !!window.matchMedia?.('(max-width: 720px)').matches); | |||
| 514 | + | if (unified && !mobileRetry) return fetchPage(unified, true); | |||
| 512 | return page; | 515 | return page; | ||
| 513 | } | 516 | } | ||
| 514 | 517 | ||||
| 515 | - | // Use htmx's swap rather than replaceWith: its cleanup retires the old SSE | 518 | + | // htmx 4's public delete swap invokes recursive before:cleanup (including |
| 516 | - | // reader and hx-live bindings, and process activates the inserted controls. | 519 | + | // hx-sse's abort/reader.cancel and hx-live's binding disposal). Only an empty |
| 520 | + | // string is parsed; the fetched nodes themselves are adopted, never serialized. | |||
| 517 | async function replaceRegion(old, fresh) { | 521 | async function replaceRegion(old, fresh) { | ||
| 518 | if (!old || !fresh) throw new Error('missing MR refresh region'); | 522 | if (!old || !fresh) throw new Error('missing MR refresh region'); | ||
| 519 | for (const el of $$('[autofocus]', fresh)) el.removeAttribute('autofocus'); | 523 | for (const el of $$('[autofocus]', fresh)) el.removeAttribute('autofocus'); | ||
| 520 | - | await window.htmx.swap({ sourceElement: old, target: old, text: fresh.outerHTML, | 524 | + | const marker = document.createComment('MR region'); |
| 521 | - | swap: 'outerHTML settle:0 transition:false focusScroll:false', push: false, replace: false }); | 525 | + | old.before(marker); |
| 526 | + | await window.htmx.swap({ sourceElement: old, target: old, text: '', | |||
| 527 | + | swap: 'delete settle:0 transition:false', push: false, replace: false }); | |||
| 528 | + | const node = document.adoptNode(fresh); | |||
| 529 | + | marker.replaceWith(node); | |||
| 530 | + | window.htmx.process(node); | |||
| 522 | } | 531 | } | ||
| 523 | 532 | ||||
| 524 | - | async function refreshPage(page, manual = false) { | 533 | + | async function refreshPage(page) { |
| 525 | - | const regions = ['.mr-footer', '#mr-range', '.mr-bar', '#mr-diff-notices', '#diffs', '.rail', '.hint-live']; | 534 | + | const regions = ['.mr-footer', '#mr-range', '.mr-bar', '#mr-diff-notices', '#diffs', '#mr-comments', '.rail', '.hint-live']; |
| 526 | for (const sel of regions) if (!$(sel) || !$(sel, page)) throw new Error('missing MR region'); | 535 | for (const sel of regions) if (!$(sel) || !$(sel, page)) throw new Error('missing MR region'); | ||
| 527 | let anchor = scrollAnchor(); | 536 | let anchor = scrollAnchor(); | ||
| 537 | + | const nextDiffs = $('#diffs', page); | |||
| 538 | + | const mobile = !!window.matchMedia?.('(max-width: 720px)').matches; | |||
| 539 | + | const chosen = mobile ? 'unified' : ($('#diffs').dataset.diff || $('#diffs').dataset.view); | |||
| 540 | + | if (nextDiffs.dataset.diff) nextDiffs.dataset.diff = chosen; | |||
| 541 | + | // A one-layout response must use its own contract, never the old page's. | |||
| 542 | + | if (mobile && nextDiffs.dataset.view === 'split') throw new Error('mobile needs unified'); | |||
| 528 | const anchorFile = $$('#diffs details.dfile', page).find((f) => f.dataset.file === anchor.file); | 543 | const anchorFile = $$('#diffs details.dfile', page).find((f) => f.dataset.file === anchor.file); | ||
| 529 | const placeholder = anchorFile && $('.dlazy[data-src]', anchorFile); | 544 | const placeholder = anchorFile && $('.dlazy[data-src]', anchorFile); | ||
| 530 | if (placeholder) { | 545 | if (placeholder) { | ||
| 531 | - | const d = $('#diffs').dataset; | 546 | + | const d = nextDiffs.dataset; |
| 532 | const url = placeholder.dataset.src + '&view=' + encodeURIComponent(d.diff || d.view || 'unified') + '&layouts=' + (d.diff ? 'both' : 'one'); | 547 | const url = placeholder.dataset.src + '&view=' + encodeURIComponent(d.diff || d.view || 'unified') + '&layouts=' + (d.diff ? 'both' : 'one'); | ||
| 533 | const res = await fetch(url, { credentials: 'same-origin', headers: { Accept: 'text/html' } }); | 548 | const res = await fetch(url, { credentials: 'same-origin', headers: { Accept: 'text/html' } }); | ||
| 534 | if (!res.ok || res.redirected) throw new Error('anchor window changed'); | 549 | if (!res.ok || res.redirected) throw new Error('anchor window changed'); | ||
| 535 | - | const windowPage = new DOMParser().parseFromString(await res.text(), 'text/html'); | 550 | + | let windowPage = new DOMParser().parseFromString(await res.text(), 'text/html'); |
| 536 | - | const byID = new Map($$('#diffs details.dfile', page).map((f) => [f.id, f])); | 551 | + | if (hasDraft()) return false; |
| 537 | - | for (const f of $$('details.dfile', windowPage)) byID.get(f.id)?.replaceWith(f); | |||
| 538 | - | if (!manual && hasDraft()) return false; | |||
| 539 | anchor = scrollAnchor(); | 552 | anchor = scrollAnchor(); | ||
| 553 | + | const windowFiles = $$('details.dfile', windowPage); | |||
| 554 | + | // If the reader moved outside this window, discard it; lazy loading will | |||
| 555 | + | // fetch the new position rather than committing an unrelated window. | |||
| 556 | + | if (windowFiles.some((f) => f.dataset.file === anchor.file)) { | |||
| 557 | + | const byID = new Map($$('#diffs details.dfile', page).map((f) => [f.id, f])); | |||
| 558 | + | for (const f of windowFiles) byID.get(f.id)?.replaceWith(f); | |||
| 559 | + | } | |||
| 560 | + | windowPage = null; | |||
| 540 | } | 561 | } | ||
| 562 | + | if (hasDraft()) return false; | |||
| 541 | const files = new Map($$('#diffs details.dfile').map((f) => [f.dataset.file, f.open])); | 563 | const files = new Map($$('#diffs details.dfile').map((f) => [f.dataset.file, f.open])); | ||
| 542 | const folded = $('.r-files')?.hasAttribute('data-folded'); | 564 | const folded = $('.r-files')?.hasAttribute('data-folded'); | ||
| 543 | const railY = $('.rail')?.scrollTop, filesY = $('.r-files .files')?.scrollTop; | 565 | const railY = $('.rail')?.scrollTop, filesY = $('.r-files .files')?.scrollTop; | ||
| 544 | const footerOpen = $('#mr-panels')?.open; | 566 | const footerOpen = $('#mr-panels')?.open; | ||
| 545 | const tab = $('[data-mr-tabs] [aria-selected="true"]')?.id; | 567 | const tab = $('[data-mr-tabs] [aria-selected="true"]')?.id; | ||
| 546 | const active = document.activeElement; | 568 | const active = document.activeElement; | ||
| 547 | - | const focus = active && { menu: active.closest?.('details.menu')?.id, id: active.id, tag: active.tagName, name: active.getAttribute('name'), href: active.getAttribute('href') }; | 569 | + | const focus = active && { file: active.closest?.('.files a')?.getAttribute('title'), region: regions.find((sel) => $(sel)?.contains(active)), menu: active.closest?.('details.menu')?.id, id: active.id, tag: active.tagName, name: active.getAttribute('name'), href: active.getAttribute('href') }; |
| 548 | - | // Manual refresh keeps even an active draft whose line disappeared. It | |||
| 549 | - | // stays an ordinary form, under an explicit previous-diff label. | |||
| 550 | - | const drafts = [...new Set($$('#diffs textarea').filter((t) => t.value !== t.defaultValue || t === active || t.closest('form')?.contains(active)).map((t) => t.closest('form')).filter(Boolean))]; | |||
| 551 | - | let draftID = 0; | |||
| 552 | - | for (const form of drafts) { | |||
| 553 | - | for (const t of $$('textarea', form)) { | |||
| 554 | - | if (!t.id) t.id = 'mr-preserved-draft-' + (++draftID); | |||
| 555 | - | if (t === active) focus.id = t.id; | |||
| 556 | - | } | |||
| 557 | - | const id = $('textarea', form)?.id; | |||
| 558 | - | const replacement = id && $$('textarea', page).find((t) => t.id === id)?.closest('.cform'); | |||
| 559 | - | const copy = form.cloneNode(true); | |||
| 560 | - | const originalFields = $$('textarea, input, select', form); | |||
| 561 | - | $$('textarea, input, select', copy).forEach((field, i) => { | |||
| 562 | - | const original = originalFields[i]; | |||
| 563 | - | if (field.tagName === 'TEXTAREA') field.textContent = original.defaultValue; | |||
| 564 | - | else if (field.tagName === 'INPUT') { field.setAttribute('value', original.value); field.toggleAttribute('checked', original.checked); } | |||
| 565 | - | }); | |||
| 566 | - | if (replacement) replacement.replaceWith(copy); | |||
| 567 | - | else { | |||
| 568 | - | const box = page.createElement('div'); | |||
| 569 | - | const label = page.createElement('p'); label.className = 'notice'; | |||
| 570 | - | label.textContent = 'Unsent comment on the previous diff (the line may have moved).'; | |||
| 571 | - | box.append(label, copy); $('#diffs', page).prepend(box); | |||
| 572 | - | } | |||
| 573 | - | } | |||
| 574 | - | // Serializing markup does not retain textarea.value or selection. Restore | |||
| 575 | - | // values after the htmx swap, without ever clearing the source drafts. | |||
| 576 | - | const values = drafts.flatMap((f) => $$('textarea', f).map((t) => ({ id: t.id, value: t.value, start: t.selectionStart, end: t.selectionEnd }))); | |||
| 577 | for (const f of $$('#diffs details.dfile', page)) if (files.has(f.dataset.file)) f.open = files.get(f.dataset.file); | 570 | for (const f of $$('#diffs details.dfile', page)) if (files.has(f.dataset.file)) f.open = files.get(f.dataset.file); | ||
| 578 | ++diffGeneration; ++revealGen; moved = false; loading.clear(); lazyIO?.disconnect(); | 571 | ++diffGeneration; ++revealGen; moved = false; loading.clear(); lazyIO?.disconnect(); | ||
| 579 | - | // Keep the chosen client-side layout when the URL was not pinned. | |||
| 580 | - | const layout = $('#diffs')?.dataset; | |||
| 581 | - | if (layout?.diff && $('#diffs', page).dataset.diff) $('#diffs', page).dataset.diff = layout.diff; | |||
| 582 | $('#diffs', page).dataset.mrStarted = 'true'; | 572 | $('#diffs', page).dataset.mrStarted = 'true'; | ||
| 583 | for (const sel of regions) { | 573 | for (const sel of regions) { | ||
| 584 | const fresh = $(sel, page); | 574 | const fresh = $(sel, page); | ||
| 585 | await replaceRegion($(sel), fresh); | 575 | await replaceRegion($(sel), fresh); | ||
| 586 | - | fresh.remove(); // release each parsed region as soon as it is consumed | |||
| 587 | - | } | |||
| 588 | - | for (const v of values) { | |||
| 589 | - | const t = document.getElementById(v.id); | |||
| 590 | - | if (t) { t.value = v.value; t.setSelectionRange(v.start, v.end); } | |||
| 591 | } | 576 | } | ||
| 592 | for (const key of ['ref', 'sha', 'paths', 'blob']) { | 577 | for (const key of ['ref', 'sha', 'paths', 'blob']) { | ||
| 593 | if (page.body.dataset[key] !== undefined) document.body.dataset[key] = page.body.dataset[key]; | 578 | if (page.body.dataset[key] !== undefined) document.body.dataset[key] = page.body.dataset[key]; | ||
| 594 | } | 579 | } | ||
| 595 | const oldSHA = $('.hdr .ref .sha'), newSHA = $('.hdr .ref .sha', page); | 580 | const oldSHA = $('.hdr .ref .sha'), newSHA = $('.hdr .ref .sha', page); | ||
| 596 | if (oldSHA && newSHA) oldSHA.textContent = newSHA.textContent; | 581 | if (oldSHA && newSHA) oldSHA.textContent = newSHA.textContent; | ||
| 582 | + | page = null; | |||
| 597 | panels(); | 583 | panels(); | ||
| 598 | if (tab) { | 584 | if (tab) { | ||
| 599 | const oldURL = location.href; | 585 | const oldURL = location.href; | ||
| @@ -609,38 +595,40 @@ window.ermiteMR = (() => { | |||||
| 609 | window.ermite?.refreshFiles?.(); | 595 | window.ermite?.refreshFiles?.(); | ||
| 610 | watch(); | 596 | watch(); | ||
| 611 | if (focus && active !== document.body) { | 597 | if (focus && active !== document.body) { | ||
| 612 | - | const same = (e) => e.tagName === focus.tag && (focus.id ? e.id === focus.id : | 598 | + | const region = focus.region ? $(focus.region) : document; |
| 613 | - | focus.href ? e.getAttribute('href') === focus.href : focus.name && e.getAttribute('name') === focus.name); | 599 | + | const menu = focus.menu && document.getElementById(focus.menu); |
| 614 | - | const el = focus.menu && !focus.id && !focus.name && !focus.href ? document.getElementById(focus.menu)?.querySelector(':scope > summary') : focus.id ? document.getElementById(focus.id) : focus.href ? $('a[href="' + CSS.escape(focus.href) + '"]') : focus.name ? $('[name="' + CSS.escape(focus.name) + '"]') : null; | 600 | + | if (menu) menu.open = true; |
| 615 | - | if (el && (same(el) || focus.menu)) el.focus({ preventScroll: true }); | 601 | + | const el = focus.file ? $('a[title="' + CSS.escape(focus.file) + '"]', region) : |
| 602 | + | focus.id ? document.getElementById(focus.id) : | |||
| 603 | + | focus.href ? $('a[href="' + CSS.escape(focus.href) + '"]', region) : | |||
| 604 | + | focus.name ? $('[name="' + CSS.escape(focus.name) + '"]', region) : | |||
| 605 | + | menu?.querySelector(':scope > summary'); | |||
| 606 | + | el?.focus({ preventScroll: true }); | |||
| 616 | } | 607 | } | ||
| 617 | restoreAnchor(anchor); | 608 | restoreAnchor(anchor); | ||
| 618 | } | 609 | } | ||
| 619 | 610 | ||||
| 620 | function refreshNotice(deferred) { | 611 | function refreshNotice(deferred) { | ||
| 621 | - | let slot = $('#mr-refresh-status'); | 612 | + | const slot = $('#mr-refresh-status'); |
| 622 | - | if (!slot) { | 613 | + | if (!slot) return; |
| 623 | - | slot = document.createElement('div'); slot.id = 'mr-refresh-status'; slot.className = 'live-slot'; | |||
| 624 | - | slot.setAttribute('role', 'status'); slot.setAttribute('aria-live', 'polite'); | |||
| 625 | - | $('#mr-notice')?.after(slot); | |||
| 626 | - | } | |||
| 627 | - | slot.className = deferred ? 'live-slot' : 'sr'; | |||
| 628 | slot.replaceChildren(); | 614 | slot.replaceChildren(); | ||
| 629 | if (!deferred) { | 615 | if (!deferred) { | ||
| 630 | - | const text = document.createElement('span'); text.textContent = 'branch updated'; slot.append(text); | 616 | + | const text = document.createElement('span'); text.className = 'sr'; text.textContent = 'branch updated'; slot.append(text); |
| 631 | return; | 617 | return; | ||
| 632 | } | 618 | } | ||
| 633 | slot.append('branch updated — refreshing after your comment. '); | 619 | slot.append('branch updated — refreshing after your comment. '); | ||
| 634 | - | const a = document.createElement('a'); a.href = location.href; a.textContent = 'refresh now'; | 620 | + | |
| 635 | - | a.addEventListener('click', (e) => { e.preventDefault(); headRefresh.request(true); }); | |||
| 636 | - | slot.append(a); | |||
| 637 | } | 621 | } | ||
| 638 | const headRefresh = refresher({ blocked: hasDraft, fetchPage, apply: refreshPage, notice: refreshNotice, | 622 | const headRefresh = refresher({ blocked: hasDraft, fetchPage, apply: refreshPage, notice: refreshNotice, | ||
| 639 | - | failed: () => { if (hasDraft()) refreshNotice(true); else window.ermiteLive?.reload(); } }); | 623 | + | failed: () => window.ermiteLive?.reload() }); |
| 640 | function headChanged() { if ($('#diffs[data-mr]')) headRefresh.request(); } | 624 | function headChanged() { if ($('#diffs[data-mr]')) headRefresh.request(); } | ||
| 641 | 625 | ||||
| 642 | function start() { | 626 | function start() { | ||
| 643 | if (!$('#diffs[data-mr]')) return; | 627 | if (!$('#diffs[data-mr]')) return; | ||
| 628 | + | if (window.ermiteLive) window.ermiteLive.canReload = () => { | |||
| 629 | + | if (!hasDraft()) return true; | |||
| 630 | + | headRefresh.request(); refreshNotice(true); return false; | |||
| 631 | + | }; | |||
| 644 | // Global delegation is installed once; replacement regions have their own | 632 | // Global delegation is installed once; replacement regions have their own | ||
| 645 | // disposable panel/touch hooks below. | 633 | // disposable panel/touch hooks below. | ||
| 646 | if ($('#diffs').dataset.mrStarted) return; | 634 | if ($('#diffs').dataset.mrStarted) return; | ||
| @@ -651,7 +639,7 @@ window.ermiteMR = (() => { | |||||
| 651 | if (!cancel || !headRefresh.pending() || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) return; | 639 | if (!cancel || !headRefresh.pending() || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) return; | ||
| 652 | e.preventDefault(); | 640 | e.preventDefault(); | ||
| 653 | const form = cancel.closest('.cform'); | 641 | const form = cancel.closest('.cform'); | ||
| 654 | - | for (const t of $$('textarea', form)) t.value = ''; | 642 | + | for (const t of $$('textarea', form)) t.value = t.defaultValue; |
| 655 | if (form.contains(document.activeElement)) document.activeElement.blur(); | 643 | if (form.contains(document.activeElement)) document.activeElement.blur(); | ||
| 656 | headRefresh.resume(); | 644 | headRefresh.resume(); | ||
| 657 | }); | 645 | }); | ||