⋯ 1 hidden line@@ -1285,52 +1294,52 @@ func commentView(c CommentView, suffix string) templ.Component { 1285 var templ_7745c5c3_Var62 string 1294 var templ_7745c5c3_Var62 string 1286 templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.JoinStringErrs(" " ) 1295 templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.JoinStringErrs(" " ) 1287 if templ_7745c5c3_Err != nil { 1296 if templ_7745c5c3_Err != nil { 1288 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 239, Col: 9} 1297 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 238, Col: 9} 1289 } 1298 } 1290 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var62)) 1299 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var62)) 1291 if templ_7745c5c3_Err != nil { 1300 if templ_7745c5c3_Err != nil { 1292 return templ_7745c5c3_Err 1301 return templ_7745c5c3_Err 1293 } 1302 } 1294 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "<time class=\"mute\" datetime=\"" ) 1303 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "<time class=\"mute\" datetime=\"" ) 1295 if templ_7745c5c3_Err != nil { 1304 if templ_7745c5c3_Err != nil { 1296 return templ_7745c5c3_Err 1305 return templ_7745c5c3_Err 1297 } 1306 } 1298 var templ_7745c5c3_Var63 string 1307 var templ_7745c5c3_Var63 string 1299 templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) 1308 templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) 1300 if templ_7745c5c3_Err != nil { 1309 if templ_7745c5c3_Err != nil { 1301 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 239, Col: 49} 1310 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 238, Col: 49} 1302 } 1311 } 1303 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var63) 1312 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var63) 1304 if templ_7745c5c3_Err != nil { 1313 if templ_7745c5c3_Err != nil { 1305 return templ_7745c5c3_Err 1314 return templ_7745c5c3_Err 1306 } 1315 } 1307 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "\" title=\"" ) 1316 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "\" title=\"" ) 1308 if templ_7745c5c3_Err != nil { 1317 if templ_7745c5c3_Err != nil { 1309 return templ_7745c5c3_Err 1318 return templ_7745c5c3_Err 1310 } 1319 } 1311 var templ_7745c5c3_Var64 string 1320 var templ_7745c5c3_Var64 string 1312 templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Abs) 1321 templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Abs) 1313 if templ_7745c5c3_Err != nil { 1322 if templ_7745c5c3_Err != nil { 1314 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 239, Col: 65} 1323 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 238, Col: 65} 1315 } 1324 } 1316 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var64) 1325 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var64) 1317 if templ_7745c5c3_Err != nil { 1326 if templ_7745c5c3_Err != nil { 1318 return templ_7745c5c3_Err 1327 return templ_7745c5c3_Err 1319 } 1328 } 1320 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "\">" ) 1329 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "\">" ) 1321 if templ_7745c5c3_Err != nil { 1330 if templ_7745c5c3_Err != nil { 1322 return templ_7745c5c3_Err 1331 return templ_7745c5c3_Err 1323 } 1332 } 1324 var templ_7745c5c3_Var65 string 1333 var templ_7745c5c3_Var65 string 1325 templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) 1334 templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) 1326 if templ_7745c5c3_Err != nil { 1335 if templ_7745c5c3_Err != nil { 1327 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 239, Col: 76} 1336 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 238, Col: 76} 1328 } 1337 } 1329 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65)) 1338 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65)) 1330 if templ_7745c5c3_Err != nil { 1339 if templ_7745c5c3_Err != nil { 1331 return templ_7745c5c3_Err 1340 return templ_7745c5c3_Err 1332 } 1341 } 1333 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "</time> " ) 1342 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "</time> " ) 1334 if templ_7745c5c3_Err != nil { 1343 if templ_7745c5c3_Err != nil { 1335 return templ_7745c5c3_Err 1344 return templ_7745c5c3_Err 1336 } 1345 } ⋯ 2 hidden lines@@ -1369,111 +1378,296 @@ func commentView(c CommentView, suffix string) templ.Component { 1369 var templ_7745c5c3_Var68 string 1378 var templ_7745c5c3_Var68 string 1370 templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(" " ) 1379 templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(" " ) 1371 if templ_7745c5c3_Err != nil { 1380 if templ_7745c5c3_Err != nil { 1372 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 248, Col: 9} 1381 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 247, Col: 9} 1373 } 1382 } 1374 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68)) 1383 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68)) 1375 if templ_7745c5c3_Err != nil { 1384 if templ_7745c5c3_Err != nil { 1376 return templ_7745c5c3_Err 1385 return templ_7745c5c3_Err 1377 } 1386 } 1378 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "<span class=\"c-where mute\">" ) 1387 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "<span class=\"c-where mute\">" ) 1379 if templ_7745c5c3_Err != nil { 1388 if templ_7745c5c3_Err != nil { 1380 return templ_7745c5c3_Err 1389 return templ_7745c5c3_Err 1381 } 1390 } 1382 var templ_7745c5c3_Var69 string 1391 var templ_7745c5c3_Var69 string 1383 templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(c.Where) 1392 templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(c.Where) 1384 if templ_7745c5c3_Err != nil { 1393 if templ_7745c5c3_Err != nil { 1385 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 248, Col: 47} 1394 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 247, Col: 47} 1386 } 1395 } 1387 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var69)) 1396 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var69)) 1388 if templ_7745c5c3_Err != nil { 1397 if templ_7745c5c3_Err != nil { 1389 return templ_7745c5c3_Err 1398 return templ_7745c5c3_Err 1390 } 1399 } 1391 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, "</span>" ) 1400 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, "</span>" ) 1392 if templ_7745c5c3_Err != nil { 1401 if templ_7745c5c3_Err != nil { 1393 return templ_7745c5c3_Err 1402 return templ_7745c5c3_Err 1394 } 1403 } 1395 } 1404 } 1396 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "</p><p class=\"c-text\">" ) 1405 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "</p>" ) 1397 if templ_7745c5c3_Err != nil { 1406 if templ_7745c5c3_Err != nil { 1398 return templ_7745c5c3_Err 1407 return templ_7745c5c3_Err 1399 } 1408 } 1400 - templ_7745c5c3_Err = userText(c.Parts).Render(ctx, templ_7745c5c3_Buffer) 1409 + if c.Deleted { 1401 - if templ_7745c5c3_Err != nil { 1410 + if c.Verdict != "" { 1402 - return templ_7745c5c3_Err 1411 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "<p class=\"mute\">text deleted</p>" ) 1412 + if templ_7745c5c3_Err != nil { 1413 + return templ_7745c5c3_Err 1414 + } 1415 + } else { 1416 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "<p class=\"mute\">deleted note</p>" ) 1417 + if templ_7745c5c3_Err != nil { 1418 + return templ_7745c5c3_Err 1419 + } 1420 + } 1421 + } else { 1422 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "<div class=\"c-body prose\">" ) 1423 + if templ_7745c5c3_Err != nil { 1424 + return templ_7745c5c3_Err 1425 + } 1426 + if suffix == "-s" { 1427 + templ_7745c5c3_Err = templ.Raw(string(c.BodySplit)).Render(ctx, templ_7745c5c3_Buffer) 1428 + if templ_7745c5c3_Err != nil { 1429 + return templ_7745c5c3_Err 1430 + } 1431 + } else { 1432 + templ_7745c5c3_Err = templ.Raw(string(c.Body)).Render(ctx, templ_7745c5c3_Buffer) 1433 + if templ_7745c5c3_Err != nil { 1434 + return templ_7745c5c3_Err 1435 + } 1436 + } 1437 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "</div>" ) 1438 + if templ_7745c5c3_Err != nil { 1439 + return templ_7745c5c3_Err 1440 + } 1403 } 1441 } 1404 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, "</p>" ) 1442 + if c.Edited { 1405 - if templ_7745c5c3_Err != nil { 1443 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "<span class=\"mute\">edited</span> " ) 1406 - return templ_7745c5c3_Err 1444 + if templ_7745c5c3_Err != nil { 1445 + return templ_7745c5c3_Err 1446 + } 1407 } 1447 } 1408 - if c.Resolve != nil { 1448 + if c.Verdict != "" { 1409 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "<form class=\"c-act\" method=\"post\" action=\"" ) 1449 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "<span class=\"c-state\">" ) 1410 if templ_7745c5c3_Err != nil { 1450 if templ_7745c5c3_Err != nil { 1411 return templ_7745c5c3_Err 1451 return templ_7745c5c3_Err 1412 } 1452 } 1413 - var templ_7745c5c3_Var70 templ.SafeURL 1453 + var templ_7745c5c3_Var70 string 1414 - templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action)) 1454 + templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict) 1415 if templ_7745c5c3_Err != nil { 1455 if templ_7745c5c3_Err != nil { 1416 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 253, Col: 77} 1456 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 269, Col: 36} 1417 } 1457 } 1418 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70)) 1458 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70)) 1419 if templ_7745c5c3_Err != nil { 1459 if templ_7745c5c3_Err != nil { 1420 return templ_7745c5c3_Err 1460 return templ_7745c5c3_Err 1421 } 1461 } 1422 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "\"><input type=\"hidden\" name=\"resolved\" value=\"" ) 1462 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "</span> " ) 1463 + if templ_7745c5c3_Err != nil { 1464 + return templ_7745c5c3_Err 1465 + } 1466 + } 1467 + if c.Range != "" { 1468 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "<span class=\"mute\">" ) 1423 if templ_7745c5c3_Err != nil { 1469 if templ_7745c5c3_Err != nil { 1424 return templ_7745c5c3_Err 1470 return templ_7745c5c3_Err 1425 } 1471 } 1426 var templ_7745c5c3_Var71 string 1472 var templ_7745c5c3_Var71 string 1427 - templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value)) 1473 + templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range) 1474 + if templ_7745c5c3_Err != nil { 1475 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 272, Col: 31} 1476 + } 1477 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71)) 1478 + if templ_7745c5c3_Err != nil { 1479 + return templ_7745c5c3_Err 1480 + } 1481 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "</span> " ) 1482 + if templ_7745c5c3_Err != nil { 1483 + return templ_7745c5c3_Err 1484 + } 1485 + } 1486 + if c.Quote != "" { 1487 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "<button type=\"button\" class=\"btn\" data-js data-quote=\"" ) 1488 + if templ_7745c5c3_Err != nil { 1489 + return templ_7745c5c3_Err 1490 + } 1491 + var templ_7745c5c3_Var72 string 1492 + templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote) 1493 + if templ_7745c5c3_Err != nil { 1494 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 275, Col: 65} 1495 + } 1496 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var72) 1428 if templ_7745c5c3_Err != nil { 1497 if templ_7745c5c3_Err != nil { 1429 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 254, Col: 74} 1498 + return templ_7745c5c3_Err 1499 + } 1500 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "\">Quote</button> " ) 1501 + if templ_7745c5c3_Err != nil { 1502 + return templ_7745c5c3_Err 1430 } 1503 } 1431 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var71) 1504 + } 1505 + if c.Edit != nil { 1506 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "<details><summary>Edit</summary><form method=\"post\" action=\"" ) 1432 if templ_7745c5c3_Err != nil { 1507 if templ_7745c5c3_Err != nil { 1433 return templ_7745c5c3_Err 1508 return templ_7745c5c3_Err 1434 } 1509 } 1435 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "\"> " ) 1510 + var templ_7745c5c3_Var73 templ.SafeURL 1511 + templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action)) 1512 + if templ_7745c5c3_Err != nil { 1513 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 278, Col: 92} 1514 + } 1515 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73)) 1516 + if templ_7745c5c3_Err != nil { 1517 + return templ_7745c5c3_Err 1518 + } 1519 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "\"><input type=\"hidden\" name=\"from\" value=\"" ) 1520 + if templ_7745c5c3_Err != nil { 1521 + return templ_7745c5c3_Err 1522 + } 1523 + var templ_7745c5c3_Var74 string 1524 + templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From)) 1525 + if templ_7745c5c3_Err != nil { 1526 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 278, Col: 153} 1527 + } 1528 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var74) 1529 + if templ_7745c5c3_Err != nil { 1530 + return templ_7745c5c3_Err 1531 + } 1532 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "\"><textarea name=\"text\" maxlength=\"8000\">" ) 1533 + if templ_7745c5c3_Err != nil { 1534 + return templ_7745c5c3_Err 1535 + } 1536 + var templ_7745c5c3_Var75 string 1537 + templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text) 1538 + if templ_7745c5c3_Err != nil { 1539 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 278, Col: 209} 1540 + } 1541 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var75)) 1542 + if templ_7745c5c3_Err != nil { 1543 + return templ_7745c5c3_Err 1544 + } 1545 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "</textarea><button class=\"btn\" type=\"submit\">Save</button></form></details> " ) 1546 + if templ_7745c5c3_Err != nil { 1547 + return templ_7745c5c3_Err 1548 + } 1549 + } 1550 + if c.Delete != nil { 1551 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<details><summary>Delete</summary><form method=\"post\" action=\"" ) 1552 + if templ_7745c5c3_Err != nil { 1553 + return templ_7745c5c3_Err 1554 + } 1555 + var templ_7745c5c3_Var76 templ.SafeURL 1556 + templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action)) 1557 + if templ_7745c5c3_Err != nil { 1558 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 281, Col: 96} 1559 + } 1560 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var76)) 1561 + if templ_7745c5c3_Err != nil { 1562 + return templ_7745c5c3_Err 1563 + } 1564 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "\"><input type=\"hidden\" name=\"from\" value=\"" ) 1565 + if templ_7745c5c3_Err != nil { 1566 + return templ_7745c5c3_Err 1567 + } 1568 + var templ_7745c5c3_Var77 string 1569 + templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From)) 1570 + if templ_7745c5c3_Err != nil { 1571 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 281, Col: 159} 1572 + } 1573 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var77) 1574 + if templ_7745c5c3_Err != nil { 1575 + return templ_7745c5c3_Err 1576 + } 1577 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "\"><p>Delete this note?</p><button class=\"btn\" type=\"submit\">Confirm delete</button></form></details> " ) 1578 + if templ_7745c5c3_Err != nil { 1579 + return templ_7745c5c3_Err 1580 + } 1581 + } 1582 + for _, reply := range c.Replies { 1583 + templ_7745c5c3_Err = commentView(reply, suffix).Render(ctx, templ_7745c5c3_Buffer) 1584 + if templ_7745c5c3_Err != nil { 1585 + return templ_7745c5c3_Err 1586 + } 1587 + } 1588 + if c.Reply != nil { 1589 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "<details data-reply><summary>Reply</summary>" ) 1590 + if templ_7745c5c3_Err != nil { 1591 + return templ_7745c5c3_Err 1592 + } 1593 + templ_7745c5c3_Err = commentForm(*c.Reply, suffix).Render(ctx, templ_7745c5c3_Buffer) 1594 + if templ_7745c5c3_Err != nil { 1595 + return templ_7745c5c3_Err 1596 + } 1597 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "</details> " ) 1598 + if templ_7745c5c3_Err != nil { 1599 + return templ_7745c5c3_Err 1600 + } 1601 + } 1602 + if c.Resolve != nil { 1603 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "<form class=\"c-act\" method=\"post\" action=\"" ) 1604 + if templ_7745c5c3_Err != nil { 1605 + return templ_7745c5c3_Err 1606 + } 1607 + var templ_7745c5c3_Var78 templ.SafeURL 1608 + templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action)) 1609 + if templ_7745c5c3_Err != nil { 1610 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 292, Col: 77} 1611 + } 1612 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78)) 1613 + if templ_7745c5c3_Err != nil { 1614 + return templ_7745c5c3_Err 1615 + } 1616 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "\"><input type=\"hidden\" name=\"resolved\" value=\"" ) 1617 + if templ_7745c5c3_Err != nil { 1618 + return templ_7745c5c3_Err 1619 + } 1620 + var templ_7745c5c3_Var79 string 1621 + templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value)) 1622 + if templ_7745c5c3_Err != nil { 1623 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 293, Col: 74} 1624 + } 1625 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var79) 1626 + if templ_7745c5c3_Err != nil { 1627 + return templ_7745c5c3_Err 1628 + } 1629 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "\"> " ) 1436 if templ_7745c5c3_Err != nil { 1630 if templ_7745c5c3_Err != nil { 1437 return templ_7745c5c3_Err 1631 return templ_7745c5c3_Err 1438 } 1632 } 1439 if c.Resolve.From > 0 { 1633 if c.Resolve.From > 0 { 1440 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "<input type=\"hidden\" name=\"from\" value=\"" ) 1634 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "<input type=\"hidden\" name=\"from\" value=\"" ) 1441 if templ_7745c5c3_Err != nil { 1635 if templ_7745c5c3_Err != nil { 1442 return templ_7745c5c3_Err 1636 return templ_7745c5c3_Err 1443 } 1637 } 1444 - var templ_7745c5c3_Var72 string 1638 + var templ_7745c5c3_Var80 string 1445 - templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From)) 1639 + templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From)) 1446 if templ_7745c5c3_Err != nil { 1640 if templ_7745c5c3_Err != nil { 1447 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 256, Col: 66} 1641 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 295, Col: 66} 1448 } 1642 } 1449 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var72) 1643 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80) 1450 if templ_7745c5c3_Err != nil { 1644 if templ_7745c5c3_Err != nil { 1451 return templ_7745c5c3_Err 1645 return templ_7745c5c3_Err 1452 } 1646 } 1453 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "\"> " ) 1647 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "\"> " ) 1454 if templ_7745c5c3_Err != nil { 1648 if templ_7745c5c3_Err != nil { 1455 return templ_7745c5c3_Err 1649 return templ_7745c5c3_Err 1456 } 1650 } 1457 } 1651 } 1458 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "<button type=\"submit\" class=\"btn\">" ) 1652 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "<button type=\"submit\" class=\"btn\">" ) 1459 if templ_7745c5c3_Err != nil { 1653 if templ_7745c5c3_Err != nil { 1460 return templ_7745c5c3_Err 1654 return templ_7745c5c3_Err 1461 } 1655 } 1462 - var templ_7745c5c3_Var73 string 1656 + var templ_7745c5c3_Var81 string 1463 - templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label) 1657 + templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label) 1464 if templ_7745c5c3_Err != nil { 1658 if templ_7745c5c3_Err != nil { 1465 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 258, Col: 55} 1659 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 297, Col: 55} 1466 } 1660 } 1467 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73)) 1661 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81)) 1468 if templ_7745c5c3_Err != nil { 1662 if templ_7745c5c3_Err != nil { 1469 return templ_7745c5c3_Err 1663 return templ_7745c5c3_Err 1470 } 1664 } 1471 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "</button></form>" ) 1665 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "</button></form>" ) 1472 if templ_7745c5c3_Err != nil { 1666 if templ_7745c5c3_Err != nil { 1473 return templ_7745c5c3_Err 1667 return templ_7745c5c3_Err 1474 } 1668 } 1475 } 1669 } 1476 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "</div>" ) 1670 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "</div>" ) 1477 if templ_7745c5c3_Err != nil { 1671 if templ_7745c5c3_Err != nil { 1478 return templ_7745c5c3_Err 1672 return templ_7745c5c3_Err 1479 } 1673 } ⋯ 25 hidden lines@@ -1505,165 +1699,203 @@ func commentForm(f CommentForm, suffix string) templ.Component { 1505 }() 1699 }() 1506 } 1700 } 1507 ctx = templ.InitializeContext(ctx) 1701 ctx = templ.InitializeContext(ctx) 1508 - templ_7745c5c3_Var74 := templ.GetChildren(ctx) 1702 + templ_7745c5c3_Var82 := templ.GetChildren(ctx) 1509 - if templ_7745c5c3_Var74 == nil { 1703 + if templ_7745c5c3_Var82 == nil { 1510 - templ_7745c5c3_Var74 = templ.NopComponent 1704 + templ_7745c5c3_Var82 = templ.NopComponent 1511 } 1705 } 1512 ctx = templ.ClearChildren(ctx) 1706 ctx = templ.ClearChildren(ctx) 1513 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "<form class=\"cform\" method=\"post\" action=\"" ) 1707 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "<form class=\"cform\" method=\"post\" action=\"" ) 1514 if templ_7745c5c3_Err != nil { 1708 if templ_7745c5c3_Err != nil { 1515 return templ_7745c5c3_Err 1709 return templ_7745c5c3_Err 1516 } 1710 } 1517 - var templ_7745c5c3_Var75 templ.SafeURL 1711 + var templ_7745c5c3_Var83 templ.SafeURL 1518 - templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action)) 1712 + templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action)) 1519 if templ_7745c5c3_Err != nil { 1713 if templ_7745c5c3_Err != nil { 1520 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 273, Col: 67} 1714 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 312, Col: 67} 1521 } 1715 } 1522 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var75)) 1716 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var83)) 1523 if templ_7745c5c3_Err != nil { 1717 if templ_7745c5c3_Err != nil { 1524 return templ_7745c5c3_Err 1718 return templ_7745c5c3_Err 1525 } 1719 } 1526 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "\"><label for=\"" ) 1720 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "\"><label for=\"" ) 1527 if templ_7745c5c3_Err != nil { 1721 if templ_7745c5c3_Err != nil { 1528 return templ_7745c5c3_Err 1722 return templ_7745c5c3_Err 1529 } 1723 } 1530 - var templ_7745c5c3_Var76 string 1724 + var templ_7745c5c3_Var84 string 1531 - templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) 1725 + templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) 1532 if templ_7745c5c3_Err != nil { 1726 if templ_7745c5c3_Err != nil { 1533 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 274, Col: 28} 1727 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 313, Col: 28} 1534 } 1728 } 1535 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var76) 1729 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var84) 1536 if templ_7745c5c3_Err != nil { 1730 if templ_7745c5c3_Err != nil { 1537 return templ_7745c5c3_Err 1731 return templ_7745c5c3_Err 1538 } 1732 } 1539 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "\">" ) 1733 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "\">" ) 1540 if templ_7745c5c3_Err != nil { 1734 if templ_7745c5c3_Err != nil { 1541 return templ_7745c5c3_Err 1735 return templ_7745c5c3_Err 1542 } 1736 } 1543 - var templ_7745c5c3_Var77 string 1737 + var templ_7745c5c3_Var85 string 1544 - templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title) 1738 + templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title) 1545 if templ_7745c5c3_Err != nil { 1739 if templ_7745c5c3_Err != nil { 1546 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 274, Col: 40} 1740 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 313, Col: 40} 1547 } 1741 } 1548 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var77)) 1742 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85)) 1549 if templ_7745c5c3_Err != nil { 1743 if templ_7745c5c3_Err != nil { 1550 return templ_7745c5c3_Err 1744 return templ_7745c5c3_Err 1551 } 1745 } 1552 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "</label> <textarea id=\"" ) 1746 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "</label> <textarea id=\"" ) 1553 if templ_7745c5c3_Err != nil { 1747 if templ_7745c5c3_Err != nil { 1554 return templ_7745c5c3_Err 1748 return templ_7745c5c3_Err 1555 } 1749 } 1556 - var templ_7745c5c3_Var78 string 1750 + var templ_7745c5c3_Var86 string 1557 - templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) 1751 + templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix) 1558 if templ_7745c5c3_Err != nil { 1752 if templ_7745c5c3_Err != nil { 1559 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 276, Col: 21} 1753 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 315, Col: 21} 1560 } 1754 } 1561 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var78) 1755 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var86) 1562 if templ_7745c5c3_Err != nil { 1756 if templ_7745c5c3_Err != nil { 1563 return templ_7745c5c3_Err 1757 return templ_7745c5c3_Err 1564 } 1758 } 1565 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "\" name=\"text\" rows=\"3\" maxlength=\"8000\" required placeholder=\"plain text, 8000 characters at most\"" ) 1759 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "\" name=\"text\" rows=\"3\" maxlength=\"8000\" placeholder=\"Markdown, 8000 characters at most\"" ) 1566 if templ_7745c5c3_Err != nil { 1760 if templ_7745c5c3_Err != nil { 1567 return templ_7745c5c3_Err 1761 return templ_7745c5c3_Err 1568 } 1762 } 1569 if f.Focus { 1763 if f.Focus { 1570 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, " autofocus" ) 1764 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, " autofocus" ) 1571 if templ_7745c5c3_Err != nil { 1765 if templ_7745c5c3_Err != nil { 1572 return templ_7745c5c3_Err 1766 return templ_7745c5c3_Err 1573 } 1767 } 1574 } 1768 } 1575 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "></textarea> " ) 1769 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "></textarea> " ) 1576 if templ_7745c5c3_Err != nil { 1770 if templ_7745c5c3_Err != nil { 1577 return templ_7745c5c3_Err 1771 return templ_7745c5c3_Err 1578 } 1772 } 1579 if f.Path != "" { 1773 if f.Path != "" { 1580 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "<input type=\"hidden\" name=\"path\" value=\"" ) 1774 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "<input type=\"hidden\" name=\"path\" value=\"" ) 1581 if templ_7745c5c3_Err != nil { 1775 if templ_7745c5c3_Err != nil { 1582 return templ_7745c5c3_Err 1776 return templ_7745c5c3_Err 1583 } 1777 } 1584 - var templ_7745c5c3_Var79 string 1778 + var templ_7745c5c3_Var87 string 1585 - templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path) 1779 + templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path) 1586 if templ_7745c5c3_Err != nil { 1780 if templ_7745c5c3_Err != nil { 1587 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 287, Col: 50} 1781 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 325, Col: 50} 1588 } 1782 } 1589 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var79) 1783 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var87) 1590 if templ_7745c5c3_Err != nil { 1784 if templ_7745c5c3_Err != nil { 1591 return templ_7745c5c3_Err 1785 return templ_7745c5c3_Err 1592 } 1786 } 1593 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "\"> <input type=\"hidden\" name=\"line\" value=\"" ) 1787 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "\"> <input type=\"hidden\" name=\"line\" value=\"" ) 1594 if templ_7745c5c3_Err != nil { 1788 if templ_7745c5c3_Err != nil { 1595 return templ_7745c5c3_Err 1789 return templ_7745c5c3_Err 1596 } 1790 } 1597 - var templ_7745c5c3_Var80 string 1791 + var templ_7745c5c3_Var88 string 1598 - templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line) 1792 + templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line) 1599 if templ_7745c5c3_Err != nil { 1793 if templ_7745c5c3_Err != nil { 1600 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 288, Col: 50} 1794 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 326, Col: 50} 1601 } 1795 } 1602 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80) 1796 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var88) 1603 if templ_7745c5c3_Err != nil { 1797 if templ_7745c5c3_Err != nil { 1604 return templ_7745c5c3_Err 1798 return templ_7745c5c3_Err 1605 } 1799 } 1606 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "\"> <input type=\"hidden\" name=\"side\" value=\"" ) 1800 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "\"> <input type=\"hidden\" name=\"side\" value=\"" ) 1607 if templ_7745c5c3_Err != nil { 1801 if templ_7745c5c3_Err != nil { 1608 return templ_7745c5c3_Err 1802 return templ_7745c5c3_Err 1609 } 1803 } 1610 - var templ_7745c5c3_Var81 string 1804 + var templ_7745c5c3_Var89 string 1611 - templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side) 1805 + templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side) 1806 + if templ_7745c5c3_Err != nil { 1807 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 327, Col: 50} 1808 + } 1809 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89) 1810 + if templ_7745c5c3_Err != nil { 1811 + return templ_7745c5c3_Err 1812 + } 1813 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\"> <label>from line <input type=\"number\" name=\"start_line\" min=\"1\" value=\"" ) 1814 + if templ_7745c5c3_Err != nil { 1815 + return templ_7745c5c3_Err 1816 + } 1817 + var templ_7745c5c3_Var90 string 1818 + templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine) 1612 if templ_7745c5c3_Err != nil { 1819 if templ_7745c5c3_Err != nil { 1613 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 289, Col: 50} 1820 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 328, Col: 86} 1614 } 1821 } 1615 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var81) 1822 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90) 1616 if templ_7745c5c3_Err != nil { 1823 if templ_7745c5c3_Err != nil { 1617 return templ_7745c5c3_Err 1824 return templ_7745c5c3_Err 1618 } 1825 } 1619 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "\"> " ) 1826 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "\"></label> " ) 1827 + if templ_7745c5c3_Err != nil { 1828 + return templ_7745c5c3_Err 1829 + } 1830 + } 1831 + if f.ReplyTo != "" { 1832 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "<input type=\"hidden\" name=\"reply_to\" value=\"" ) 1833 + if templ_7745c5c3_Err != nil { 1834 + return templ_7745c5c3_Err 1835 + } 1836 + var templ_7745c5c3_Var91 string 1837 + templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo) 1838 + if templ_7745c5c3_Err != nil { 1839 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 331, Col: 57} 1840 + } 1841 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91) 1842 + if templ_7745c5c3_Err != nil { 1843 + return templ_7745c5c3_Err 1844 + } 1845 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "\"> " ) 1846 + if templ_7745c5c3_Err != nil { 1847 + return templ_7745c5c3_Err 1848 + } 1849 + } 1850 + if f.Path == "" && f.ReplyTo == "" { 1851 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "<fieldset><legend>Verdict</legend><label><input type=\"radio\" name=\"verdict\" value=\"\" checked>Note</label><label><input type=\"radio\" name=\"verdict\" value=\"approve\">Approve</label><label><input type=\"radio\" name=\"verdict\" value=\"changes_requested\">Request changes</label></fieldset>" ) 1620 if templ_7745c5c3_Err != nil { 1852 if templ_7745c5c3_Err != nil { 1621 return templ_7745c5c3_Err 1853 return templ_7745c5c3_Err 1622 } 1854 } 1623 } 1855 } 1624 if f.From > 0 { 1856 if f.From > 0 { 1625 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "<input type=\"hidden\" name=\"from\" value=\"" ) 1857 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, "<input type=\"hidden\" name=\"from\" value=\"" ) 1626 if templ_7745c5c3_Err != nil { 1858 if templ_7745c5c3_Err != nil { 1627 return templ_7745c5c3_Err 1859 return templ_7745c5c3_Err 1628 } 1860 } 1629 - var templ_7745c5c3_Var82 string 1861 + var templ_7745c5c3_Var92 string 1630 - templ_7745c5c3_Var82, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From)) 1862 + templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From)) 1631 if templ_7745c5c3_Err != nil { 1863 if templ_7745c5c3_Err != nil { 1632 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 292, Col: 56} 1864 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 337, Col: 56} 1633 } 1865 } 1634 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var82) 1866 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) 1635 if templ_7745c5c3_Err != nil { 1867 if templ_7745c5c3_Err != nil { 1636 return templ_7745c5c3_Err 1868 return templ_7745c5c3_Err 1637 } 1869 } 1638 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "\">" ) 1870 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "\">" ) 1639 if templ_7745c5c3_Err != nil { 1871 if templ_7745c5c3_Err != nil { 1640 return templ_7745c5c3_Err 1872 return templ_7745c5c3_Err 1641 } 1873 } 1642 } 1874 } 1643 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "<div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Comment</button> " ) 1875 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "<div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Comment</button> " ) 1644 if templ_7745c5c3_Err != nil { 1876 if templ_7745c5c3_Err != nil { 1645 return templ_7745c5c3_Err 1877 return templ_7745c5c3_Err 1646 } 1878 } 1647 if f.Cancel != "" { 1879 if f.Cancel != "" { 1648 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "<a class=\"btn\" href=\"" ) 1880 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "<a class=\"btn\" href=\"" ) 1649 if templ_7745c5c3_Err != nil { 1881 if templ_7745c5c3_Err != nil { 1650 return templ_7745c5c3_Err 1882 return templ_7745c5c3_Err 1651 } 1883 } 1652 - var templ_7745c5c3_Var83 templ.SafeURL 1884 + var templ_7745c5c3_Var93 templ.SafeURL 1653 - templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel)) 1885 + templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel)) 1654 if templ_7745c5c3_Err != nil { 1886 if templ_7745c5c3_Err != nil { 1655 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 297, Col: 49} 1887 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 342, Col: 49} 1656 } 1888 } 1657 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var83)) 1889 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var93)) 1658 if templ_7745c5c3_Err != nil { 1890 if templ_7745c5c3_Err != nil { 1659 return templ_7745c5c3_Err 1891 return templ_7745c5c3_Err 1660 } 1892 } 1661 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "\">Cancel</a>" ) 1893 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "\">Cancel</a>" ) 1662 if templ_7745c5c3_Err != nil { 1894 if templ_7745c5c3_Err != nil { 1663 return templ_7745c5c3_Err 1895 return templ_7745c5c3_Err 1664 } 1896 } 1665 } 1897 } 1666 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "</div></form>" ) 1898 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "</div></form>" ) 1667 if templ_7745c5c3_Err != nil { 1899 if templ_7745c5c3_Err != nil { 1668 return templ_7745c5c3_Err 1900 return templ_7745c5c3_Err 1669 } 1901 } ⋯ 1 hidden line@@ -1713,82 +1945,147 @@ func mrRail(p MRPage) templ.Component { 1713 if templ_7745c5c3_Err != nil { 1945 if templ_7745c5c3_Err != nil { 1714 return templ_7745c5c3_Err 1946 return templ_7745c5c3_Err 1715 } 1947 } 1716 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "</section>" ) 1948 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "</section>" ) 1717 if templ_7745c5c3_Err != nil { 1949 if templ_7745c5c3_Err != nil { 1718 return templ_7745c5c3_Err 1950 return templ_7745c5c3_Err 1719 } 1951 } 1952 + if len(p.Verdicts) > 0 { 1953 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<section><h2>Verdicts</h2><ul>" ) 1954 + if templ_7745c5c3_Err != nil { 1955 + return templ_7745c5c3_Err 1956 + } 1957 + for _, v := range p.Verdicts { 1958 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "<li><a href=\"" ) 1959 + if templ_7745c5c3_Err != nil { 1960 + return templ_7745c5c3_Err 1961 + } 1962 + var templ_7745c5c3_Var96 templ.SafeURL 1963 + templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href)) 1964 + if templ_7745c5c3_Err != nil { 1965 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 364, Col: 37} 1966 + } 1967 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) 1968 + if templ_7745c5c3_Err != nil { 1969 + return templ_7745c5c3_Err 1970 + } 1971 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, "\">" ) 1972 + if templ_7745c5c3_Err != nil { 1973 + return templ_7745c5c3_Err 1974 + } 1975 + var templ_7745c5c3_Var97 string 1976 + templ_7745c5c3_Var97, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author) 1977 + if templ_7745c5c3_Err != nil { 1978 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 364, Col: 50} 1979 + } 1980 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var97)) 1981 + if templ_7745c5c3_Err != nil { 1982 + return templ_7745c5c3_Err 1983 + } 1984 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, ": " ) 1985 + if templ_7745c5c3_Err != nil { 1986 + return templ_7745c5c3_Err 1987 + } 1988 + var templ_7745c5c3_Var98 string 1989 + templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label) 1990 + if templ_7745c5c3_Err != nil { 1991 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 364, Col: 63} 1992 + } 1993 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98)) 1994 + if templ_7745c5c3_Err != nil { 1995 + return templ_7745c5c3_Err 1996 + } 1997 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "</a> " ) 1998 + if templ_7745c5c3_Err != nil { 1999 + return templ_7745c5c3_Err 2000 + } 2001 + if v.Stale { 2002 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "<span class=\"mute\">(stale)</span>" ) 2003 + if templ_7745c5c3_Err != nil { 2004 + return templ_7745c5c3_Err 2005 + } 2006 + } 2007 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "</li>" ) 2008 + if templ_7745c5c3_Err != nil { 2009 + return templ_7745c5c3_Err 2010 + } 2011 + } 2012 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "</ul></section>" ) 2013 + if templ_7745c5c3_Err != nil { 2014 + return templ_7745c5c3_Err 2015 + } 2016 + } 1720 templ_7745c5c3_Err = MRChecks(p.Checks).Render(ctx, templ_7745c5c3_Buffer) 2017 templ_7745c5c3_Err = MRChecks(p.Checks).Render(ctx, templ_7745c5c3_Buffer) 1721 if templ_7745c5c3_Err != nil { 2018 if templ_7745c5c3_Err != nil { 1722 return templ_7745c5c3_Err 2019 return templ_7745c5c3_Err 1723 } 2020 } 1724 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "<section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">" ) 2021 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "<section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">" ) 1725 if templ_7745c5c3_Err != nil { 2022 if templ_7745c5c3_Err != nil { 1726 return templ_7745c5c3_Err 2023 return templ_7745c5c3_Err 1727 } 2024 } 1728 - var templ_7745c5c3_Var86 string 2025 + var templ_7745c5c3_Var99 string 1729 - templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits))) 2026 + templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits))) 1730 if templ_7745c5c3_Err != nil { 2027 if templ_7745c5c3_Err != nil { 1731 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 315, Col: 71} 2028 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 375, Col: 71} 1732 } 2029 } 1733 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86)) 2030 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99)) 1734 if templ_7745c5c3_Err != nil { 2031 if templ_7745c5c3_Err != nil { 1735 return templ_7745c5c3_Err 2032 return templ_7745c5c3_Err 1736 } 2033 } 1737 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "</span></h2><ul class=\"pcommits\">" ) 2034 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, "</span></h2><ul class=\"pcommits\">" ) 1738 if templ_7745c5c3_Err != nil { 2035 if templ_7745c5c3_Err != nil { 1739 return templ_7745c5c3_Err 2036 return templ_7745c5c3_Err 1740 } 2037 } 1741 for _, c := range p.Commits { 2038 for _, c := range p.Commits { 1742 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "<li" ) 2039 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, "<li" ) 1743 if templ_7745c5c3_Err != nil { 2040 if templ_7745c5c3_Err != nil { 1744 return templ_7745c5c3_Err 2041 return templ_7745c5c3_Err 1745 } 2042 } 1746 if c.New { 2043 if c.New { 1747 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, " data-new" ) 2044 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, " data-new" ) 1748 if templ_7745c5c3_Err != nil { 2045 if templ_7745c5c3_Err != nil { 1749 return templ_7745c5c3_Err 2046 return templ_7745c5c3_Err 1750 } 2047 } 1751 } 2048 } 1752 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "><a href=\"" ) 2049 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, "><a href=\"" ) 1753 if templ_7745c5c3_Err != nil { 2050 if templ_7745c5c3_Err != nil { 1754 return templ_7745c5c3_Err 2051 return templ_7745c5c3_Err 1755 } 2052 } 1756 - var templ_7745c5c3_Var87 templ.SafeURL 2053 + var templ_7745c5c3_Var100 templ.SafeURL 1757 - templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) 2054 + templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) 1758 if templ_7745c5c3_Err != nil { 2055 if templ_7745c5c3_Err != nil { 1759 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 319, Col: 36} 2056 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 379, Col: 36} 1760 } 2057 } 1761 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var87)) 2058 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100)) 1762 if templ_7745c5c3_Err != nil { 2059 if templ_7745c5c3_Err != nil { 1763 return templ_7745c5c3_Err 2060 return templ_7745c5c3_Err 1764 } 2061 } 1765 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "\">" ) 2062 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, "\">" ) 1766 if templ_7745c5c3_Err != nil { 2063 if templ_7745c5c3_Err != nil { 1767 return templ_7745c5c3_Err 2064 return templ_7745c5c3_Err 1768 } 2065 } 1769 - var templ_7745c5c3_Var88 string 2066 + var templ_7745c5c3_Var101 string 1770 - templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) 2067 + templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) 1771 if templ_7745c5c3_Err != nil { 2068 if templ_7745c5c3_Err != nil { 1772 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 319, Col: 48} 2069 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 379, Col: 48} 1773 } 2070 } 1774 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var88)) 2071 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101)) 1775 if templ_7745c5c3_Err != nil { 2072 if templ_7745c5c3_Err != nil { 1776 return templ_7745c5c3_Err 2073 return templ_7745c5c3_Err 1777 } 2074 } 1778 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "</a> <span class=\"s\">" ) 2075 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "</a> <span class=\"s\">" ) 1779 if templ_7745c5c3_Err != nil { 2076 if templ_7745c5c3_Err != nil { 1780 return templ_7745c5c3_Err 2077 return templ_7745c5c3_Err 1781 } 2078 } 1782 - var templ_7745c5c3_Var89 string 2079 + var templ_7745c5c3_Var102 string 1783 - templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) 2080 + templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) 1784 if templ_7745c5c3_Err != nil { 2081 if templ_7745c5c3_Err != nil { 1785 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 320, Col: 32} 2082 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 380, Col: 32} 1786 } 2083 } 1787 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var89)) 2084 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) 1788 if templ_7745c5c3_Err != nil { 2085 if templ_7745c5c3_Err != nil { 1789 return templ_7745c5c3_Err 2086 return templ_7745c5c3_Err 1790 } 2087 } 1791 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "</span> " ) 2088 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, "</span> " ) 1792 if templ_7745c5c3_Err != nil { 2089 if templ_7745c5c3_Err != nil { 1793 return templ_7745c5c3_Err 2090 return templ_7745c5c3_Err 1794 } 2091 } ⋯ 3 hidden lines@@ -1798,138 +2095,138 @@ func mrRail(p MRPage) templ.Component { 1798 return templ_7745c5c3_Err 2095 return templ_7745c5c3_Err 1799 } 2096 } 1800 } 2097 } 1801 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "<span class=\"mute\">" ) 2098 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, "<span class=\"mute\">" ) 1802 if templ_7745c5c3_Err != nil { 2099 if templ_7745c5c3_Err != nil { 1803 return templ_7745c5c3_Err 2100 return templ_7745c5c3_Err 1804 } 2101 } 1805 - var templ_7745c5c3_Var90 string 2102 + var templ_7745c5c3_Var103 string 1806 - templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) 2103 + templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) 1807 if templ_7745c5c3_Err != nil { 2104 if templ_7745c5c3_Err != nil { 1808 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 325, Col: 16} 2105 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 385, Col: 16} 1809 } 2106 } 1810 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var90)) 2107 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) 1811 if templ_7745c5c3_Err != nil { 2108 if templ_7745c5c3_Err != nil { 1812 return templ_7745c5c3_Err 2109 return templ_7745c5c3_Err 1813 } 2110 } 1814 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, " " ) 2111 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, " " ) 1815 if templ_7745c5c3_Err != nil { 2112 if templ_7745c5c3_Err != nil { 1816 return templ_7745c5c3_Err 2113 return templ_7745c5c3_Err 1817 } 2114 } 1818 if c.WhenAt != "" { 2115 if c.WhenAt != "" { 1819 - var templ_7745c5c3_Var91 string 2116 + var templ_7745c5c3_Var104 string 1820 - templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.JoinStringErrs(" · " ) 2117 + templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(" · " ) 1821 if templ_7745c5c3_Err != nil { 2118 if templ_7745c5c3_Err != nil { 1822 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 327, Col: 15} 2119 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 387, Col: 15} 1823 } 2120 } 1824 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var91)) 2121 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) 1825 if templ_7745c5c3_Err != nil { 2122 if templ_7745c5c3_Err != nil { 1826 return templ_7745c5c3_Err 2123 return templ_7745c5c3_Err 1827 } 2124 } 1828 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "<time datetime=\"" ) 2125 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "<time datetime=\"" ) 1829 if templ_7745c5c3_Err != nil { 2126 if templ_7745c5c3_Err != nil { 1830 return templ_7745c5c3_Err 2127 return templ_7745c5c3_Err 1831 } 2128 } 1832 - var templ_7745c5c3_Var92 string 2129 + var templ_7745c5c3_Var105 string 1833 - templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) 2130 + templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) 1834 if templ_7745c5c3_Err != nil { 2131 if templ_7745c5c3_Err != nil { 1835 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 327, Col: 42} 2132 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 387, Col: 42} 1836 } 2133 } 1837 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92) 2134 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var105) 1838 if templ_7745c5c3_Err != nil { 2135 if templ_7745c5c3_Err != nil { 1839 return templ_7745c5c3_Err 2136 return templ_7745c5c3_Err 1840 } 2137 } 1841 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\">" ) 2138 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, "\">" ) 1842 if templ_7745c5c3_Err != nil { 2139 if templ_7745c5c3_Err != nil { 1843 return templ_7745c5c3_Err 2140 return templ_7745c5c3_Err 1844 } 2141 } 1845 - var templ_7745c5c3_Var93 string 2142 + var templ_7745c5c3_Var106 string 1846 - templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) 2143 + templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) 1847 if templ_7745c5c3_Err != nil { 2144 if templ_7745c5c3_Err != nil { 1848 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 327, Col: 53} 2145 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 387, Col: 53} 1849 } 2146 } 1850 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var93)) 2147 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var106)) 1851 if templ_7745c5c3_Err != nil { 2148 if templ_7745c5c3_Err != nil { 1852 return templ_7745c5c3_Err 2149 return templ_7745c5c3_Err 1853 } 2150 } 1854 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "</time> " ) 2151 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "</time> " ) 1855 if templ_7745c5c3_Err != nil { 2152 if templ_7745c5c3_Err != nil { 1856 return templ_7745c5c3_Err 2153 return templ_7745c5c3_Err 1857 } 2154 } 1858 } 2155 } 1859 if c.New { 2156 if c.New { 1860 - var templ_7745c5c3_Var94 string 2157 + var templ_7745c5c3_Var107 string 1861 - templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.JoinStringErrs(" · new" ) 2158 + templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinStringErrs(" · new" ) 1862 if templ_7745c5c3_Err != nil { 2159 if templ_7745c5c3_Err != nil { 1863 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 330, Col: 18} 2160 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 390, Col: 18} 1864 } 2161 } 1865 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var94)) 2162 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107)) 1866 if templ_7745c5c3_Err != nil { 2163 if templ_7745c5c3_Err != nil { 1867 return templ_7745c5c3_Err 2164 return templ_7745c5c3_Err 1868 } 2165 } 1869 } 2166 } 1870 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "</span></li>" ) 2167 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, "</span></li>" ) 1871 if templ_7745c5c3_Err != nil { 2168 if templ_7745c5c3_Err != nil { 1872 return templ_7745c5c3_Err 2169 return templ_7745c5c3_Err 1873 } 2170 } 1874 } 2171 } 1875 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "</ul>" ) 2172 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "</ul>" ) 1876 if templ_7745c5c3_Err != nil { 2173 if templ_7745c5c3_Err != nil { 1877 return templ_7745c5c3_Err 2174 return templ_7745c5c3_Err 1878 } 2175 } 1879 if len(p.Commits) == 0 { 2176 if len(p.Commits) == 0 { 1880 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "<p class=\"dim\">no commit to merge.</p>" ) 2177 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, "<p class=\"dim\">no commit to merge.</p>" ) 1881 if templ_7745c5c3_Err != nil { 2178 if templ_7745c5c3_Err != nil { 1882 return templ_7745c5c3_Err 2179 return templ_7745c5c3_Err 1883 } 2180 } 1884 } 2181 } 1885 if p.CommitsNote != "" { 2182 if p.CommitsNote != "" { 1886 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, "<p class=\"note\">" ) 2183 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "<p class=\"note\">" ) 1887 if templ_7745c5c3_Err != nil { 2184 if templ_7745c5c3_Err != nil { 1888 return templ_7745c5c3_Err 2185 return templ_7745c5c3_Err 1889 } 2186 } 1890 - var templ_7745c5c3_Var95 string 2187 + var templ_7745c5c3_Var108 string 1891 - templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) 2188 + templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote) 1892 if templ_7745c5c3_Err != nil { 2189 if templ_7745c5c3_Err != nil { 1893 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 340, Col: 34} 2190 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 400, Col: 34} 1894 } 2191 } 1895 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95)) 2192 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) 1896 if templ_7745c5c3_Err != nil { 2193 if templ_7745c5c3_Err != nil { 1897 return templ_7745c5c3_Err 2194 return templ_7745c5c3_Err 1898 } 2195 } 1899 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "</p>" ) 2196 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "</p>" ) 1900 if templ_7745c5c3_Err != nil { 2197 if templ_7745c5c3_Err != nil { 1901 return templ_7745c5c3_Err 2198 return templ_7745c5c3_Err 1902 } 2199 } 1903 } 2200 } 1904 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "</section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>" ) 2201 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "</section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>" ) 1905 if templ_7745c5c3_Err != nil { 2202 if templ_7745c5c3_Err != nil { 1906 return templ_7745c5c3_Err 2203 return templ_7745c5c3_Err 1907 } 2204 } 1908 - var templ_7745c5c3_Var96 string 2205 + var templ_7745c5c3_Var109 string 1909 - templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", " )) 2206 + templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", " )) 1910 if templ_7745c5c3_Err != nil { 2207 if templ_7745c5c3_Err != nil { 1911 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 347, Col: 36} 2208 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 407, Col: 36} 1912 } 2209 } 1913 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96)) 2210 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109)) 1914 if templ_7745c5c3_Err != nil { 2211 if templ_7745c5c3_Err != nil { 1915 return templ_7745c5c3_Err 2212 return templ_7745c5c3_Err 1916 } 2213 } 1917 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "</dd><dt>checks</dt><dd>" ) 2214 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, "</dd><dt>checks</dt><dd>" ) 1918 if templ_7745c5c3_Err != nil { 2215 if templ_7745c5c3_Err != nil { 1919 return templ_7745c5c3_Err 2216 return templ_7745c5c3_Err 1920 } 2217 } 1921 if p.ChecksBlock { 2218 if p.ChecksBlock { 1922 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "failing ones block the merge" ) 2219 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "failing ones block the merge" ) 1923 if templ_7745c5c3_Err != nil { 2220 if templ_7745c5c3_Err != nil { 1924 return templ_7745c5c3_Err 2221 return templ_7745c5c3_Err 1925 } 2222 } 1926 } else { 2223 } else { 1927 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "do not block the merge" ) 2224 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, "do not block the merge" ) 1928 if templ_7745c5c3_Err != nil { 2225 if templ_7745c5c3_Err != nil { 1929 return templ_7745c5c3_Err 2226 return templ_7745c5c3_Err 1930 } 2227 } 1931 } 2228 } 1932 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "</dd></dl></section>" ) 2229 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, "</dd></dl></section>" ) 1933 if templ_7745c5c3_Err != nil { 2230 if templ_7745c5c3_Err != nil { 1934 return templ_7745c5c3_Err 2231 return templ_7745c5c3_Err 1935 } 2232 } ⋯ 20 hidden lines@@ -2066,219 +2363,219 @@ func mergeMenu(p MRPage) templ.Component { 2066 }() 2363 }() 2067 } 2364 } 2068 ctx = templ.InitializeContext(ctx) 2365 ctx = templ.InitializeContext(ctx) 2069 - templ_7745c5c3_Var101 := templ.GetChildren(ctx) 2366 + templ_7745c5c3_Var114 := templ.GetChildren(ctx) 2070 - if templ_7745c5c3_Var101 == nil { 2367 + if templ_7745c5c3_Var114 == nil { 2071 - templ_7745c5c3_Var101 = templ.NopComponent 2368 + templ_7745c5c3_Var114 = templ.NopComponent 2072 } 2369 } 2073 ctx = templ.ClearChildren(ctx) 2370 ctx = templ.ClearChildren(ctx) 2074 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">" ) 2371 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 214, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">" ) 2075 if templ_7745c5c3_Err != nil { 2372 if templ_7745c5c3_Err != nil { 2076 return templ_7745c5c3_Err 2373 return templ_7745c5c3_Err 2077 } 2374 } 2078 if p.Box.ReadyAction != "" { 2375 if p.Box.ReadyAction != "" { 2079 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "Draft " ) 2376 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 215, "Draft " ) 2080 if templ_7745c5c3_Err != nil { 2377 if templ_7745c5c3_Err != nil { 2081 return templ_7745c5c3_Err 2378 return templ_7745c5c3_Err 2082 } 2379 } 2083 } else { 2380 } else { 2084 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "Merge " ) 2381 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "Merge " ) 2085 if templ_7745c5c3_Err != nil { 2382 if templ_7745c5c3_Err != nil { 2086 return templ_7745c5c3_Err 2383 return templ_7745c5c3_Err 2087 } 2384 } 2088 } 2385 } 2089 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "<kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>" ) 2386 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, "<kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>" ) 2090 if templ_7745c5c3_Err != nil { 2387 if templ_7745c5c3_Err != nil { 2091 return templ_7745c5c3_Err 2388 return templ_7745c5c3_Err 2092 } 2389 } 2093 if p.Box.HeadGone { 2390 if p.Box.HeadGone { 2094 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, "gone: the source branch was deleted" ) 2391 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, "gone: the source branch was deleted" ) 2095 if templ_7745c5c3_Err != nil { 2392 if templ_7745c5c3_Err != nil { 2096 return templ_7745c5c3_Err 2393 return templ_7745c5c3_Err 2097 } 2394 } 2098 } else { 2395 } else { 2099 - var templ_7745c5c3_Var102 string 2396 + var templ_7745c5c3_Var115 string 2100 - templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort) 2397 + templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort) 2101 if templ_7745c5c3_Err != nil { 2398 if templ_7745c5c3_Err != nil { 2102 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 399, Col: 19} 2399 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 459, Col: 19} 2103 } 2400 } 2104 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102)) 2401 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) 2105 if templ_7745c5c3_Err != nil { 2402 if templ_7745c5c3_Err != nil { 2106 return templ_7745c5c3_Err 2403 return templ_7745c5c3_Err 2107 } 2404 } 2108 } 2405 } 2109 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, "</dd><dt>into</dt><dd>" ) 2406 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "</dd><dt>into</dt><dd>" ) 2110 if templ_7745c5c3_Err != nil { 2407 if templ_7745c5c3_Err != nil { 2111 return templ_7745c5c3_Err 2408 return templ_7745c5c3_Err 2112 } 2409 } 2113 - var templ_7745c5c3_Var103 string 2410 + var templ_7745c5c3_Var116 string 2114 - templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) 2411 + templ_7745c5c3_Var116, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) 2115 if templ_7745c5c3_Err != nil { 2412 if templ_7745c5c3_Err != nil { 2116 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 403, Col: 18} 2413 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 463, Col: 18} 2117 } 2414 } 2118 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103)) 2415 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var116)) 2119 if templ_7745c5c3_Err != nil { 2416 if templ_7745c5c3_Err != nil { 2120 return templ_7745c5c3_Err 2417 return templ_7745c5c3_Err 2121 } 2418 } 2122 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, "</dd></dl>" ) 2419 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, "</dd></dl>" ) 2123 if templ_7745c5c3_Err != nil { 2420 if templ_7745c5c3_Err != nil { 2124 return templ_7745c5c3_Err 2421 return templ_7745c5c3_Err 2125 } 2422 } 2126 if p.Box.ReadyAction != "" { 2423 if p.Box.ReadyAction != "" { 2127 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, "<p class=\"d-draft\">this is a draft: it cannot be merged until it is ready for review.</p><form class=\"d-btns\" method=\"post\" action=\"" ) 2424 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "<p class=\"d-draft\">this is a draft: it cannot be merged until it is ready for review.</p><form class=\"d-btns\" method=\"post\" action=\"" ) 2128 if templ_7745c5c3_Err != nil { 2425 if templ_7745c5c3_Err != nil { 2129 return templ_7745c5c3_Err 2426 return templ_7745c5c3_Err 2130 } 2427 } 2131 - var templ_7745c5c3_Var104 templ.SafeURL 2428 + var templ_7745c5c3_Var117 templ.SafeURL 2132 - templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) 2429 + templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction)) 2133 if templ_7745c5c3_Err != nil { 2430 if templ_7745c5c3_Err != nil { 2134 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 407, Col: 80} 2431 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 467, Col: 80} 2135 } 2432 } 2136 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104)) 2433 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117)) 2137 if templ_7745c5c3_Err != nil { 2434 if templ_7745c5c3_Err != nil { 2138 return templ_7745c5c3_Err 2435 return templ_7745c5c3_Err 2139 } 2436 } 2140 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, "\"><button type=\"submit\" class=\"btn primary\" data-default title=\"remove the draft prefix from the title\">Ready for review</button></form>" ) 2437 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, "\"><button type=\"submit\" class=\"btn primary\" data-default title=\"remove the draft prefix from the title\">Ready for review</button></form>" ) 2141 if templ_7745c5c3_Err != nil { 2438 if templ_7745c5c3_Err != nil { 2142 return templ_7745c5c3_Err 2439 return templ_7745c5c3_Err 2143 } 2440 } 2144 } else if !p.Box.HeadGone { 2441 } else if !p.Box.HeadGone { 2145 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "<form class=\"d-acts\" method=\"post\" action=\"" ) 2442 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "<form class=\"d-acts\" method=\"post\" action=\"" ) 2146 if templ_7745c5c3_Err != nil { 2443 if templ_7745c5c3_Err != nil { 2147 return templ_7745c5c3_Err 2444 return templ_7745c5c3_Err 2148 } 2445 } 2149 - var templ_7745c5c3_Var105 templ.SafeURL 2446 + var templ_7745c5c3_Var118 templ.SafeURL 2150 - templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) 2447 + templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction)) 2151 if templ_7745c5c3_Err != nil { 2448 if templ_7745c5c3_Err != nil { 2152 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 411, Col: 80} 2449 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 471, Col: 80} 2153 } 2450 } 2154 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105)) 2451 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118)) 2155 if templ_7745c5c3_Err != nil { 2452 if templ_7745c5c3_Err != nil { 2156 return templ_7745c5c3_Err 2453 return templ_7745c5c3_Err 2157 } 2454 } 2158 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, "\"><input type=\"hidden\" name=\"head_id\" value=\"" ) 2455 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "\"><input type=\"hidden\" name=\"head_id\" value=\"" ) 2159 if templ_7745c5c3_Err != nil { 2456 if templ_7745c5c3_Err != nil { 2160 return templ_7745c5c3_Err 2457 return templ_7745c5c3_Err 2161 } 2458 } 2162 - var templ_7745c5c3_Var106 string 2459 + var templ_7745c5c3_Var119 string 2163 - templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) 2460 + templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) 2164 if templ_7745c5c3_Err != nil { 2461 if templ_7745c5c3_Err != nil { 2165 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 412, Col: 59} 2462 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 472, Col: 59} 2166 } 2463 } 2167 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var106) 2464 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var119) 2168 if templ_7745c5c3_Err != nil { 2465 if templ_7745c5c3_Err != nil { 2169 return templ_7745c5c3_Err 2466 return templ_7745c5c3_Err 2170 } 2467 } 2171 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> " ) 2468 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> " ) 2172 if templ_7745c5c3_Err != nil { 2469 if templ_7745c5c3_Err != nil { 2173 return templ_7745c5c3_Err 2470 return templ_7745c5c3_Err 2174 } 2471 } 2175 for i, m := range p.Box.Modes { 2472 for i, m := range p.Box.Modes { 2176 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, "<label><input type=\"radio\" name=\"mode\" value=\"" ) 2473 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "<label><input type=\"radio\" name=\"mode\" value=\"" ) 2177 if templ_7745c5c3_Err != nil { 2474 if templ_7745c5c3_Err != nil { 2178 return templ_7745c5c3_Err 2475 return templ_7745c5c3_Err 2179 } 2476 } 2180 - var templ_7745c5c3_Var107 string 2477 + var templ_7745c5c3_Var120 string 2181 - templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) 2478 + templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value) 2182 if templ_7745c5c3_Err != nil { 2479 if templ_7745c5c3_Err != nil { 2183 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 417, Col: 55} 2480 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 477, Col: 55} 2184 } 2481 } 2185 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var107) 2482 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var120) 2186 if templ_7745c5c3_Err != nil { 2483 if templ_7745c5c3_Err != nil { 2187 return templ_7745c5c3_Err 2484 return templ_7745c5c3_Err 2188 } 2485 } 2189 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "\"" ) 2486 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, "\"" ) 2190 if templ_7745c5c3_Err != nil { 2487 if templ_7745c5c3_Err != nil { 2191 return templ_7745c5c3_Err 2488 return templ_7745c5c3_Err 2192 } 2489 } 2193 if i == 0 { 2490 if i == 0 { 2194 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, " checked" ) 2491 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, " checked" ) 2195 if templ_7745c5c3_Err != nil { 2492 if templ_7745c5c3_Err != nil { 2196 return templ_7745c5c3_Err 2493 return templ_7745c5c3_Err 2197 } 2494 } 2198 } 2495 } 2199 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "> " ) 2496 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "> " ) 2200 if templ_7745c5c3_Err != nil { 2497 if templ_7745c5c3_Err != nil { 2201 return templ_7745c5c3_Err 2498 return templ_7745c5c3_Err 2202 } 2499 } 2203 - var templ_7745c5c3_Var108 string 2500 + var templ_7745c5c3_Var121 string 2204 - templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) 2501 + templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label) 2205 if templ_7745c5c3_Err != nil { 2502 if templ_7745c5c3_Err != nil { 2206 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 418, Col: 17} 2503 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 478, Col: 17} 2207 } 2504 } 2208 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108)) 2505 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) 2209 if templ_7745c5c3_Err != nil { 2506 if templ_7745c5c3_Err != nil { 2210 return templ_7745c5c3_Err 2507 return templ_7745c5c3_Err 2211 } 2508 } 2212 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, " " ) 2509 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, " " ) 2213 if templ_7745c5c3_Err != nil { 2510 if templ_7745c5c3_Err != nil { 2214 return templ_7745c5c3_Err 2511 return templ_7745c5c3_Err 2215 } 2512 } 2216 if i < 9 { 2513 if i < 9 { 2217 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "<kbd aria-hidden=\"true\">" ) 2514 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "<kbd aria-hidden=\"true\">" ) 2218 if templ_7745c5c3_Err != nil { 2515 if templ_7745c5c3_Err != nil { 2219 return templ_7745c5c3_Err 2516 return templ_7745c5c3_Err 2220 } 2517 } 2221 - var templ_7745c5c3_Var109 string 2518 + var templ_7745c5c3_Var122 string 2222 - templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) 2519 + templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1)) 2223 if templ_7745c5c3_Err != nil { 2520 if templ_7745c5c3_Err != nil { 2224 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 420, Col: 46} 2521 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 480, Col: 46} 2225 } 2522 } 2226 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109)) 2523 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122)) 2227 if templ_7745c5c3_Err != nil { 2524 if templ_7745c5c3_Err != nil { 2228 return templ_7745c5c3_Err 2525 return templ_7745c5c3_Err 2229 } 2526 } 2230 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, "</kbd>" ) 2527 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "</kbd>" ) 2231 if templ_7745c5c3_Err != nil { 2528 if templ_7745c5c3_Err != nil { 2232 return templ_7745c5c3_Err 2529 return templ_7745c5c3_Err 2233 } 2530 } 2234 } 2531 } 2235 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "</label>" ) 2532 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "</label>" ) 2236 if templ_7745c5c3_Err != nil { 2533 if templ_7745c5c3_Err != nil { 2237 return templ_7745c5c3_Err 2534 return templ_7745c5c3_Err 2238 } 2535 } 2239 } 2536 } 2240 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "</fieldset>" ) 2537 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</fieldset>" ) 2241 if templ_7745c5c3_Err != nil { 2538 if templ_7745c5c3_Err != nil { 2242 return templ_7745c5c3_Err 2539 return templ_7745c5c3_Err 2243 } 2540 } 2244 if p.Box.CanDeleteBranch { 2541 if p.Box.CanDeleteBranch { 2245 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete " ) 2542 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete " ) 2246 if templ_7745c5c3_Err != nil { 2543 if templ_7745c5c3_Err != nil { 2247 return templ_7745c5c3_Err 2544 return templ_7745c5c3_Err 2248 } 2545 } 2249 - var templ_7745c5c3_Var110 string 2546 + var templ_7745c5c3_Var123 string 2250 - templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) 2547 + templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) 2251 if templ_7745c5c3_Err != nil { 2548 if templ_7745c5c3_Err != nil { 2252 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 426, Col: 102} 2549 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 486, Col: 102} 2253 } 2550 } 2254 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110)) 2551 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var123)) 2255 if templ_7745c5c3_Err != nil { 2552 if templ_7745c5c3_Err != nil { 2256 return templ_7745c5c3_Err 2553 return templ_7745c5c3_Err 2257 } 2554 } 2258 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>" ) 2555 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>" ) 2259 if templ_7745c5c3_Err != nil { 2556 if templ_7745c5c3_Err != nil { 2260 return templ_7745c5c3_Err 2557 return templ_7745c5c3_Err 2261 } 2558 } 2262 } 2559 } 2263 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default>Merge into " ) 2560 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default>Merge into " ) 2264 if templ_7745c5c3_Err != nil { 2561 if templ_7745c5c3_Err != nil { 2265 return templ_7745c5c3_Err 2562 return templ_7745c5c3_Err 2266 } 2563 } 2267 - var templ_7745c5c3_Var111 string 2564 + var templ_7745c5c3_Var124 string 2268 - templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) 2565 + templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) 2269 if templ_7745c5c3_Err != nil { 2566 if templ_7745c5c3_Err != nil { 2270 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 429, Col: 82} 2567 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 489, Col: 82} 2271 } 2568 } 2272 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111)) 2569 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var124)) 2273 if templ_7745c5c3_Err != nil { 2570 if templ_7745c5c3_Err != nil { 2274 return templ_7745c5c3_Err 2571 return templ_7745c5c3_Err 2275 } 2572 } 2276 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, "</button></div></form>" ) 2573 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "</button></div></form>" ) 2277 if templ_7745c5c3_Err != nil { 2574 if templ_7745c5c3_Err != nil { 2278 return templ_7745c5c3_Err 2575 return templ_7745c5c3_Err 2279 } 2576 } 2280 } 2577 } 2281 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, "</div></details>" ) 2578 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "</div></details>" ) 2282 if templ_7745c5c3_Err != nil { 2579 if templ_7745c5c3_Err != nil { 2283 return templ_7745c5c3_Err 2580 return templ_7745c5c3_Err 2284 } 2581 } ⋯ 19 hidden lines@@ -2304,66 +2601,66 @@ func moreMenu(p MRPage) templ.Component { 2304 }() 2601 }() 2305 } 2602 } 2306 ctx = templ.InitializeContext(ctx) 2603 ctx = templ.InitializeContext(ctx) 2307 - templ_7745c5c3_Var112 := templ.GetChildren(ctx) 2604 + templ_7745c5c3_Var125 := templ.GetChildren(ctx) 2308 - if templ_7745c5c3_Var112 == nil { 2605 + if templ_7745c5c3_Var125 == nil { 2309 - templ_7745c5c3_Var112 = templ.NopComponent 2606 + templ_7745c5c3_Var125 = templ.NopComponent 2310 } 2607 } 2311 ctx = templ.ClearChildren(ctx) 2608 ctx = templ.ClearChildren(ctx) 2312 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 207, "<details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\">" ) 2609 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "<details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\">" ) 2313 if templ_7745c5c3_Err != nil { 2610 if templ_7745c5c3_Err != nil { 2314 return templ_7745c5c3_Err 2611 return templ_7745c5c3_Err 2315 } 2612 } 2316 if p.Box.CanMarkRead { 2613 if p.Box.CanMarkRead { 2317 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 208, "<form method=\"post\" action=\"" ) 2614 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "<form method=\"post\" action=\"" ) 2318 if templ_7745c5c3_Err != nil { 2615 if templ_7745c5c3_Err != nil { 2319 return templ_7745c5c3_Err 2616 return templ_7745c5c3_Err 2320 } 2617 } 2321 - var templ_7745c5c3_Var113 templ.SafeURL 2618 + var templ_7745c5c3_Var126 templ.SafeURL 2322 - templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) 2619 + templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction)) 2323 if templ_7745c5c3_Err != nil { 2620 if templ_7745c5c3_Err != nil { 2324 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 444, Col: 64} 2621 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 504, Col: 64} 2325 } 2622 } 2326 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113)) 2623 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) 2327 if templ_7745c5c3_Err != nil { 2624 if templ_7745c5c3_Err != nil { 2328 return templ_7745c5c3_Err 2625 return templ_7745c5c3_Err 2329 } 2626 } 2330 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 209, "\"><input type=\"hidden\" name=\"head_id\" value=\"" ) 2627 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "\"><input type=\"hidden\" name=\"head_id\" value=\"" ) 2331 if templ_7745c5c3_Err != nil { 2628 if templ_7745c5c3_Err != nil { 2332 return templ_7745c5c3_Err 2629 return templ_7745c5c3_Err 2333 } 2630 } 2334 - var templ_7745c5c3_Var114 string 2631 + var templ_7745c5c3_Var127 string 2335 - templ_7745c5c3_Var114, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) 2632 + templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head) 2336 if templ_7745c5c3_Err != nil { 2633 if templ_7745c5c3_Err != nil { 2337 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 445, Col: 59} 2634 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 505, Col: 59} 2338 } 2635 } 2339 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var114) 2636 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var127) 2340 if templ_7745c5c3_Err != nil { 2637 if templ_7745c5c3_Err != nil { 2341 return templ_7745c5c3_Err 2638 return templ_7745c5c3_Err 2342 } 2639 } 2343 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 210, "\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form>" ) 2640 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, "\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form>" ) 2344 if templ_7745c5c3_Err != nil { 2641 if templ_7745c5c3_Err != nil { 2345 return templ_7745c5c3_Err 2642 return templ_7745c5c3_Err 2346 } 2643 } 2347 } 2644 } 2348 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 211, "<form method=\"post\" action=\"" ) 2645 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, "<form method=\"post\" action=\"" ) 2349 if templ_7745c5c3_Err != nil { 2646 if templ_7745c5c3_Err != nil { 2350 return templ_7745c5c3_Err 2647 return templ_7745c5c3_Err 2351 } 2648 } 2352 - var templ_7745c5c3_Var115 templ.SafeURL 2649 + var templ_7745c5c3_Var128 templ.SafeURL 2353 - templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) 2650 + templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction)) 2354 if templ_7745c5c3_Err != nil { 2651 if templ_7745c5c3_Err != nil { 2355 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 449, Col: 64} 2652 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 509, Col: 64} 2356 } 2653 } 2357 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115)) 2654 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128)) 2358 if templ_7745c5c3_Err != nil { 2655 if templ_7745c5c3_Err != nil { 2359 return templ_7745c5c3_Err 2656 return templ_7745c5c3_Err 2360 } 2657 } 2361 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 212, "\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form>" ) 2658 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, "\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form>" ) 2362 if templ_7745c5c3_Err != nil { 2659 if templ_7745c5c3_Err != nil { 2363 return templ_7745c5c3_Err 2660 return templ_7745c5c3_Err 2364 } 2661 } 2365 if !p.Box.HeadGone && p.Box.ReadyAction == "" { 2662 if !p.Box.HeadGone && p.Box.ReadyAction == "" { 2366 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 213, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>" ) 2663 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>" ) 2367 if templ_7745c5c3_Err != nil { 2664 if templ_7745c5c3_Err != nil { 2368 return templ_7745c5c3_Err 2665 return templ_7745c5c3_Err 2369 } 2666 } ⋯ 5 hidden lines@@ -2417,263 +2714,263 @@ func Compare(l Layout, p ComparePage) templ.Component { 2417 }() 2714 }() 2418 } 2715 } 2419 ctx = templ.InitializeContext(ctx) 2716 ctx = templ.InitializeContext(ctx) 2420 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "<header class=\"show mr-h\"><h1>" ) 2717 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "<header class=\"show mr-h\"><h1>" ) 2421 if templ_7745c5c3_Err != nil { 2718 if templ_7745c5c3_Err != nil { 2422 return templ_7745c5c3_Err 2719 return templ_7745c5c3_Err 2423 } 2720 } 2424 - var templ_7745c5c3_Var118 string 2721 + var templ_7745c5c3_Var131 string 2425 - templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) 2722 + templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) 2426 if templ_7745c5c3_Err != nil { 2723 if templ_7745c5c3_Err != nil { 2427 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 465, Col: 17} 2724 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 525, Col: 17} 2428 } 2725 } 2429 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118)) 2726 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var131)) 2430 if templ_7745c5c3_Err != nil { 2727 if templ_7745c5c3_Err != nil { 2431 return templ_7745c5c3_Err 2728 return templ_7745c5c3_Err 2432 } 2729 } 2433 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, " → " ) 2730 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, " → " ) 2434 if templ_7745c5c3_Err != nil { 2731 if templ_7745c5c3_Err != nil { 2435 return templ_7745c5c3_Err 2732 return templ_7745c5c3_Err 2436 } 2733 } 2437 - var templ_7745c5c3_Var119 string 2734 + var templ_7745c5c3_Var132 string 2438 - templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) 2735 + templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) 2439 if templ_7745c5c3_Err != nil { 2736 if templ_7745c5c3_Err != nil { 2440 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 465, Col: 34} 2737 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 525, Col: 34} 2441 } 2738 } 2442 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119)) 2739 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132)) 2443 if templ_7745c5c3_Err != nil { 2740 if templ_7745c5c3_Err != nil { 2444 return templ_7745c5c3_Err 2741 return templ_7745c5c3_Err 2445 } 2742 } 2446 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"" ) 2743 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"" ) 2447 if templ_7745c5c3_Err != nil { 2744 if templ_7745c5c3_Err != nil { 2448 return templ_7745c5c3_Err 2745 return templ_7745c5c3_Err 2449 } 2746 } 2450 - var templ_7745c5c3_Var120 templ.SafeURL 2747 + var templ_7745c5c3_Var133 templ.SafeURL 2451 - templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) 2748 + templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref)) 2452 if templ_7745c5c3_Err != nil { 2749 if templ_7745c5c3_Err != nil { 2453 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 468, Col: 45} 2750 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 528, Col: 45} 2454 } 2751 } 2455 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120)) 2752 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var133)) 2456 if templ_7745c5c3_Err != nil { 2753 if templ_7745c5c3_Err != nil { 2457 return templ_7745c5c3_Err 2754 return templ_7745c5c3_Err 2458 } 2755 } 2459 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "\">" ) 2756 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "\">" ) 2460 if templ_7745c5c3_Err != nil { 2757 if templ_7745c5c3_Err != nil { 2461 return templ_7745c5c3_Err 2758 return templ_7745c5c3_Err 2462 } 2759 } 2463 - var templ_7745c5c3_Var121 string 2760 + var templ_7745c5c3_Var134 string 2464 - templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) 2761 + templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source) 2465 if templ_7745c5c3_Err != nil { 2762 if templ_7745c5c3_Err != nil { 2466 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 468, Col: 58} 2763 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 528, Col: 58} 2467 } 2764 } 2468 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121)) 2765 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var134)) 2469 if templ_7745c5c3_Err != nil { 2766 if templ_7745c5c3_Err != nil { 2470 return templ_7745c5c3_Err 2767 return templ_7745c5c3_Err 2471 } 2768 } 2472 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, "</a></dd><dt>target</dt><dd><a href=\"" ) 2769 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "</a></dd><dt>target</dt><dd><a href=\"" ) 2473 if templ_7745c5c3_Err != nil { 2770 if templ_7745c5c3_Err != nil { 2474 return templ_7745c5c3_Err 2771 return templ_7745c5c3_Err 2475 } 2772 } 2476 - var templ_7745c5c3_Var122 templ.SafeURL 2773 + var templ_7745c5c3_Var135 templ.SafeURL 2477 - templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) 2774 + templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref)) 2478 if templ_7745c5c3_Err != nil { 2775 if templ_7745c5c3_Err != nil { 2479 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 470, Col: 45} 2776 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 530, Col: 45} 2480 } 2777 } 2481 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122)) 2778 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var135)) 2482 if templ_7745c5c3_Err != nil { 2779 if templ_7745c5c3_Err != nil { 2483 return templ_7745c5c3_Err 2780 return templ_7745c5c3_Err 2484 } 2781 } 2485 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "\">" ) 2782 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "\">" ) 2486 if templ_7745c5c3_Err != nil { 2783 if templ_7745c5c3_Err != nil { 2487 return templ_7745c5c3_Err 2784 return templ_7745c5c3_Err 2488 } 2785 } 2489 - var templ_7745c5c3_Var123 string 2786 + var templ_7745c5c3_Var136 string 2490 - templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) 2787 + templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) 2491 if templ_7745c5c3_Err != nil { 2788 if templ_7745c5c3_Err != nil { 2492 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 470, Col: 58} 2789 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 530, Col: 58} 2493 } 2790 } 2494 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var123)) 2791 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var136)) 2495 if templ_7745c5c3_Err != nil { 2792 if templ_7745c5c3_Err != nil { 2496 return templ_7745c5c3_Err 2793 return templ_7745c5c3_Err 2497 } 2794 } 2498 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, "</a></dd><dt>ahead</dt><dd>" ) 2795 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "</a></dd><dt>ahead</dt><dd>" ) 2499 if templ_7745c5c3_Err != nil { 2796 if templ_7745c5c3_Err != nil { 2500 return templ_7745c5c3_Err 2797 return templ_7745c5c3_Err 2501 } 2798 } 2502 - var templ_7745c5c3_Var124 string 2799 + var templ_7745c5c3_Var137 string 2503 - templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) 2800 + templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText) 2504 if templ_7745c5c3_Err != nil { 2801 if templ_7745c5c3_Err != nil { 2505 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 472, Col: 21} 2802 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 532, Col: 21} 2506 } 2803 } 2507 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var124)) 2804 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var137)) 2508 if templ_7745c5c3_Err != nil { 2805 if templ_7745c5c3_Err != nil { 2509 return templ_7745c5c3_Err 2806 return templ_7745c5c3_Err 2510 } 2807 } 2511 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "</dd></dl></header>" ) 2808 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, "</dd></dl></header>" ) 2512 if templ_7745c5c3_Err != nil { 2809 if templ_7745c5c3_Err != nil { 2513 return templ_7745c5c3_Err 2810 return templ_7745c5c3_Err 2514 } 2811 } 2515 if p.Note != "" { 2812 if p.Note != "" { 2516 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "<p class=\"notice\">" ) 2813 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<p class=\"notice\">" ) 2517 if templ_7745c5c3_Err != nil { 2814 if templ_7745c5c3_Err != nil { 2518 return templ_7745c5c3_Err 2815 return templ_7745c5c3_Err 2519 } 2816 } 2520 - var templ_7745c5c3_Var125 string 2817 + var templ_7745c5c3_Var138 string 2521 - templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) 2818 + templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) 2522 if templ_7745c5c3_Err != nil { 2819 if templ_7745c5c3_Err != nil { 2523 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 476, Col: 29} 2820 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 536, Col: 29} 2524 } 2821 } 2525 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125)) 2822 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) 2526 if templ_7745c5c3_Err != nil { 2823 if templ_7745c5c3_Err != nil { 2527 return templ_7745c5c3_Err 2824 return templ_7745c5c3_Err 2528 } 2825 } 2529 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "</p>" ) 2826 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, "</p>" ) 2530 if templ_7745c5c3_Err != nil { 2827 if templ_7745c5c3_Err != nil { 2531 return templ_7745c5c3_Err 2828 return templ_7745c5c3_Err 2532 } 2829 } 2533 } 2830 } 2534 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, " " ) 2831 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, " " ) 2535 if templ_7745c5c3_Err != nil { 2832 if templ_7745c5c3_Err != nil { 2536 return templ_7745c5c3_Err 2833 return templ_7745c5c3_Err 2537 } 2834 } 2538 if p.Existing != nil { 2835 if p.Existing != nil { 2539 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"" ) 2836 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"" ) 2540 if templ_7745c5c3_Err != nil { 2837 if templ_7745c5c3_Err != nil { 2541 return templ_7745c5c3_Err 2838 return templ_7745c5c3_Err 2542 } 2839 } 2543 - var templ_7745c5c3_Var126 templ.SafeURL 2840 + var templ_7745c5c3_Var139 templ.SafeURL 2544 - templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) 2841 + templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href)) 2545 if templ_7745c5c3_Err != nil { 2842 if templ_7745c5c3_Err != nil { 2546 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 479, Col: 114} 2843 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 539, Col: 114} 2547 } 2844 } 2548 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126)) 2845 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) 2549 if templ_7745c5c3_Err != nil { 2846 if templ_7745c5c3_Err != nil { 2550 return templ_7745c5c3_Err 2847 return templ_7745c5c3_Err 2551 } 2848 } 2552 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "\">" ) 2849 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, "\">" ) 2553 if templ_7745c5c3_Err != nil { 2850 if templ_7745c5c3_Err != nil { 2554 return templ_7745c5c3_Err 2851 return templ_7745c5c3_Err 2555 } 2852 } 2556 - var templ_7745c5c3_Var127 string 2853 + var templ_7745c5c3_Var140 string 2557 - templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) 2854 + templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label) 2558 if templ_7745c5c3_Err != nil { 2855 if templ_7745c5c3_Err != nil { 2559 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 479, Col: 135} 2856 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 539, Col: 135} 2560 } 2857 } 2561 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127)) 2858 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) 2562 if templ_7745c5c3_Err != nil { 2859 if templ_7745c5c3_Err != nil { 2563 return templ_7745c5c3_Err 2860 return templ_7745c5c3_Err 2564 } 2861 } 2565 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "</a></p>" ) 2862 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, "</a></p>" ) 2566 if templ_7745c5c3_Err != nil { 2863 if templ_7745c5c3_Err != nil { 2567 return templ_7745c5c3_Err 2864 return templ_7745c5c3_Err 2568 } 2865 } 2569 } 2866 } 2570 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, " " ) 2867 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, " " ) 2571 if templ_7745c5c3_Err != nil { 2868 if templ_7745c5c3_Err != nil { 2572 return templ_7745c5c3_Err 2869 return templ_7745c5c3_Err 2573 } 2870 } 2574 if p.Create != nil { 2871 if p.Create != nil { 2575 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "<form class=\"cform create\" method=\"post\" action=\"" ) 2872 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "<form class=\"cform create\" method=\"post\" action=\"" ) 2576 if templ_7745c5c3_Err != nil { 2873 if templ_7745c5c3_Err != nil { 2577 return templ_7745c5c3_Err 2874 return templ_7745c5c3_Err 2578 } 2875 } 2579 - var templ_7745c5c3_Var128 templ.SafeURL 2876 + var templ_7745c5c3_Var141 templ.SafeURL 2580 - templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) 2877 + templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action)) 2581 if templ_7745c5c3_Err != nil { 2878 if templ_7745c5c3_Err != nil { 2582 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 482, Col: 83} 2879 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 542, Col: 83} 2583 } 2880 } 2584 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128)) 2881 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) 2585 if templ_7745c5c3_Err != nil { 2882 if templ_7745c5c3_Err != nil { 2586 return templ_7745c5c3_Err 2883 return templ_7745c5c3_Err 2587 } 2884 } 2588 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "\"><input type=\"hidden\" name=\"source\" value=\"" ) 2885 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "\"><input type=\"hidden\" name=\"source\" value=\"" ) 2589 if templ_7745c5c3_Err != nil { 2886 if templ_7745c5c3_Err != nil { 2590 return templ_7745c5c3_Err 2887 return templ_7745c5c3_Err 2591 } 2888 } 2592 - var templ_7745c5c3_Var129 string 2889 + var templ_7745c5c3_Var142 string 2593 - templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) 2890 + templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source) 2594 if templ_7745c5c3_Err != nil { 2891 if templ_7745c5c3_Err != nil { 2595 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 483, Col: 62} 2892 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 543, Col: 62} 2596 } 2893 } 2597 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var129) 2894 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var142) 2598 if templ_7745c5c3_Err != nil { 2895 if templ_7745c5c3_Err != nil { 2599 return templ_7745c5c3_Err 2896 return templ_7745c5c3_Err 2600 } 2897 } 2601 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "\"> <input type=\"hidden\" name=\"target\" value=\"" ) 2898 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\"> <input type=\"hidden\" name=\"target\" value=\"" ) 2602 if templ_7745c5c3_Err != nil { 2899 if templ_7745c5c3_Err != nil { 2603 return templ_7745c5c3_Err 2900 return templ_7745c5c3_Err 2604 } 2901 } 2605 - var templ_7745c5c3_Var130 string 2902 + var templ_7745c5c3_Var143 string 2606 - templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) 2903 + templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target) 2607 if templ_7745c5c3_Err != nil { 2904 if templ_7745c5c3_Err != nil { 2608 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 484, Col: 62} 2905 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 544, Col: 62} 2609 } 2906 } 2610 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var130) 2907 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var143) 2611 if templ_7745c5c3_Err != nil { 2908 if templ_7745c5c3_Err != nil { 2612 return templ_7745c5c3_Err 2909 return templ_7745c5c3_Err 2613 } 2910 } 2614 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "\"> <label for=\"mr-title\">title</label> <input id=\"mr-title\" name=\"title\" type=\"text\" maxlength=\"120\" required value=\"" ) 2911 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\"> <label for=\"mr-title\">title</label> <input id=\"mr-title\" name=\"title\" type=\"text\" maxlength=\"120\" required value=\"" ) 2615 if templ_7745c5c3_Err != nil { 2912 if templ_7745c5c3_Err != nil { 2616 return templ_7745c5c3_Err 2913 return templ_7745c5c3_Err 2617 } 2914 } 2618 - var templ_7745c5c3_Var131 string 2915 + var templ_7745c5c3_Var144 string 2619 - templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) 2916 + templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title) 2620 if templ_7745c5c3_Err != nil { 2917 if templ_7745c5c3_Err != nil { 2621 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 486, Col: 97} 2918 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 546, Col: 97} 2622 } 2919 } 2623 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131) 2920 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var144) 2624 if templ_7745c5c3_Err != nil { 2921 if templ_7745c5c3_Err != nil { 2625 return templ_7745c5c3_Err 2922 return templ_7745c5c3_Err 2626 } 2923 } 2627 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "\" autocomplete=\"off\"> <label for=\"mr-desc\">description</label> <textarea id=\"mr-desc\" name=\"description\" rows=\"4\" maxlength=\"8000\" placeholder=\"Markdown, optional\"></textarea><div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Create merge request</button></div></form>" ) 2924 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\" autocomplete=\"off\"> <label for=\"mr-desc\">description</label> <textarea id=\"mr-desc\" name=\"description\" rows=\"4\" maxlength=\"8000\" placeholder=\"Markdown, optional\"></textarea><div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Create merge request</button></div></form>" ) 2628 if templ_7745c5c3_Err != nil { 2925 if templ_7745c5c3_Err != nil { 2629 return templ_7745c5c3_Err 2926 return templ_7745c5c3_Err 2630 } 2927 } 2631 } 2928 } 2632 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, " " ) 2929 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, " " ) 2633 if templ_7745c5c3_Err != nil { 2930 if templ_7745c5c3_Err != nil { 2634 return templ_7745c5c3_Err 2931 return templ_7745c5c3_Err 2635 } 2932 } 2636 if p.HasDiff { 2933 if p.HasDiff { 2637 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">" ) 2934 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">" ) 2638 if templ_7745c5c3_Err != nil { 2935 if templ_7745c5c3_Err != nil { 2639 return templ_7745c5c3_Err 2936 return templ_7745c5c3_Err 2640 } 2937 } 2641 - var templ_7745c5c3_Var132 string 2938 + var templ_7745c5c3_Var145 string 2642 - templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file" , "files" )) 2939 + templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file" , "files" )) 2643 if templ_7745c5c3_Err != nil { 2940 if templ_7745c5c3_Err != nil { 2644 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 496, Col: 57} 2941 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 556, Col: 57} 2645 } 2942 } 2646 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132)) 2943 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) 2647 if templ_7745c5c3_Err != nil { 2944 if templ_7745c5c3_Err != nil { 2648 return templ_7745c5c3_Err 2945 return templ_7745c5c3_Err 2649 } 2946 } 2650 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, " · <span class=\"plus\">+" ) 2947 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, " · <span class=\"plus\">+" ) 2651 if templ_7745c5c3_Err != nil { 2948 if templ_7745c5c3_Err != nil { 2652 return templ_7745c5c3_Err 2949 return templ_7745c5c3_Err 2653 } 2950 } 2654 - var templ_7745c5c3_Var133 string 2951 + var templ_7745c5c3_Var146 string 2655 - templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) 2952 + templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds)) 2656 if templ_7745c5c3_Err != nil { 2953 if templ_7745c5c3_Err != nil { 2657 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 496, Col: 97} 2954 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 556, Col: 97} 2658 } 2955 } 2659 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var133)) 2956 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) 2660 if templ_7745c5c3_Err != nil { 2957 if templ_7745c5c3_Err != nil { 2661 return templ_7745c5c3_Err 2958 return templ_7745c5c3_Err 2662 } 2959 } 2663 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "</span> <span class=\"minus\">-" ) 2960 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span> <span class=\"minus\">-" ) 2664 if templ_7745c5c3_Err != nil { 2961 if templ_7745c5c3_Err != nil { 2665 return templ_7745c5c3_Err 2962 return templ_7745c5c3_Err 2666 } 2963 } 2667 - var templ_7745c5c3_Var134 string 2964 + var templ_7745c5c3_Var147 string 2668 - templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) 2965 + templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels)) 2669 if templ_7745c5c3_Err != nil { 2966 if templ_7745c5c3_Err != nil { 2670 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 496, Col: 142} 2967 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 556, Col: 142} 2671 } 2968 } 2672 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var134)) 2969 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) 2673 if templ_7745c5c3_Err != nil { 2970 if templ_7745c5c3_Err != nil { 2674 return templ_7745c5c3_Err 2971 return templ_7745c5c3_Err 2675 } 2972 } 2676 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "</span></span> <span class=\"grow\"></span>" ) 2973 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "</span></span> <span class=\"grow\"></span>" ) 2677 if templ_7745c5c3_Err != nil { 2974 if templ_7745c5c3_Err != nil { 2678 return templ_7745c5c3_Err 2975 return templ_7745c5c3_Err 2679 } 2976 } ⋯ 9 hidden lines@@ -2689,64 +2986,64 @@ func Compare(l Layout, p ComparePage) templ.Component { 2689 if templ_7745c5c3_Err != nil { 2986 if templ_7745c5c3_Err != nil { 2690 return templ_7745c5c3_Err 2987 return templ_7745c5c3_Err 2691 } 2988 } 2692 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "</div>" ) 2989 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "</div>" ) 2693 if templ_7745c5c3_Err != nil { 2990 if templ_7745c5c3_Err != nil { 2694 return templ_7745c5c3_Err 2991 return templ_7745c5c3_Err 2695 } 2992 } 2696 if p.Invisible { 2993 if p.Invisible { 2697 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>" ) 2994 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>" ) 2698 if templ_7745c5c3_Err != nil { 2995 if templ_7745c5c3_Err != nil { 2699 return templ_7745c5c3_Err 2996 return templ_7745c5c3_Err 2700 } 2997 } 2701 } 2998 } 2702 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, " <div id=\"diffs\"" ) 2999 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, " <div id=\"diffs\"" ) 2703 if templ_7745c5c3_Err != nil { 3000 if templ_7745c5c3_Err != nil { 2704 return templ_7745c5c3_Err 3001 return templ_7745c5c3_Err 2705 } 3002 } 2706 if p.Both { 3003 if p.Both { 2707 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, " data-diff=\"" ) 3004 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, " data-diff=\"" ) 2708 if templ_7745c5c3_Err != nil { 3005 if templ_7745c5c3_Err != nil { 2709 return templ_7745c5c3_Err 3006 return templ_7745c5c3_Err 2710 } 3007 } 2711 - var templ_7745c5c3_Var135 string 3008 + var templ_7745c5c3_Var148 string 2712 - templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) 3009 + templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) 2713 if templ_7745c5c3_Err != nil { 3010 if templ_7745c5c3_Err != nil { 2714 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 511, Col: 23} 3011 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 571, Col: 23} 2715 } 3012 } 2716 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135) 3013 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148) 2717 if templ_7745c5c3_Err != nil { 3014 if templ_7745c5c3_Err != nil { 2718 return templ_7745c5c3_Err 3015 return templ_7745c5c3_Err 2719 } 3016 } 2720 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, "\"" ) 3017 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "\"" ) 2721 if templ_7745c5c3_Err != nil { 3018 if templ_7745c5c3_Err != nil { 2722 return templ_7745c5c3_Err 3019 return templ_7745c5c3_Err 2723 } 3020 } 2724 } else { 3021 } else { 2725 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, " data-view=\"" ) 3022 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, " data-view=\"" ) 2726 if templ_7745c5c3_Err != nil { 3023 if templ_7745c5c3_Err != nil { 2727 return templ_7745c5c3_Err 3024 return templ_7745c5c3_Err 2728 } 3025 } 2729 - var templ_7745c5c3_Var136 string 3026 + var templ_7745c5c3_Var149 string 2730 - templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) 3027 + templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View) 2731 if templ_7745c5c3_Err != nil { 3028 if templ_7745c5c3_Err != nil { 2732 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 513, Col: 23} 3029 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 573, Col: 23} 2733 } 3030 } 2734 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136) 3031 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var149) 2735 if templ_7745c5c3_Err != nil { 3032 if templ_7745c5c3_Err != nil { 2736 return templ_7745c5c3_Err 3033 return templ_7745c5c3_Err 2737 } 3034 } 2738 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "\"" ) 3035 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "\"" ) 2739 if templ_7745c5c3_Err != nil { 3036 if templ_7745c5c3_Err != nil { 2740 return templ_7745c5c3_Err 3037 return templ_7745c5c3_Err 2741 } 3038 } 2742 } 3039 } 2743 if p.Both && !p.Pinned { 3040 if p.Both && !p.Pinned { 2744 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"" ) 3041 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"" ) 2745 if templ_7745c5c3_Err != nil { 3042 if templ_7745c5c3_Err != nil { 2746 return templ_7745c5c3_Err 3043 return templ_7745c5c3_Err 2747 } 3044 } 2748 } 3045 } 2749 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, ">" ) 3046 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, ">" ) 2750 if templ_7745c5c3_Err != nil { 3047 if templ_7745c5c3_Err != nil { 2751 return templ_7745c5c3_Err 3048 return templ_7745c5c3_Err 2752 } 3049 } ⋯ 17 hidden lines@@ -2787,173 +3084,173 @@ func compareRail(p ComparePage) templ.Component { 2787 }() 3084 }() 2788 } 3085 } 2789 ctx = templ.InitializeContext(ctx) 3086 ctx = templ.InitializeContext(ctx) 2790 - templ_7745c5c3_Var137 := templ.GetChildren(ctx) 3087 + templ_7745c5c3_Var150 := templ.GetChildren(ctx) 2791 - if templ_7745c5c3_Var137 == nil { 3088 + if templ_7745c5c3_Var150 == nil { 2792 - templ_7745c5c3_Var137 = templ.NopComponent 3089 + templ_7745c5c3_Var150 = templ.NopComponent 2793 } 3090 } 2794 ctx = templ.ClearChildren(ctx) 3091 ctx = templ.ClearChildren(ctx) 2795 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">" ) 3092 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">" ) 2796 if templ_7745c5c3_Err != nil { 3093 if templ_7745c5c3_Err != nil { 2797 return templ_7745c5c3_Err 3094 return templ_7745c5c3_Err 2798 } 3095 } 2799 - var templ_7745c5c3_Var138 string 3096 + var templ_7745c5c3_Var151 string 2800 - templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) 3097 + templ_7745c5c3_Var151, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead))) 2801 if templ_7745c5c3_Err != nil { 3098 if templ_7745c5c3_Err != nil { 2802 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 529, Col: 67} 3099 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 589, Col: 67} 2803 } 3100 } 2804 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var138)) 3101 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var151)) 2805 if templ_7745c5c3_Err != nil { 3102 if templ_7745c5c3_Err != nil { 2806 return templ_7745c5c3_Err 3103 return templ_7745c5c3_Err 2807 } 3104 } 2808 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "</span></h2><ul class=\"pcommits\">" ) 3105 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "</span></h2><ul class=\"pcommits\">" ) 2809 if templ_7745c5c3_Err != nil { 3106 if templ_7745c5c3_Err != nil { 2810 return templ_7745c5c3_Err 3107 return templ_7745c5c3_Err 2811 } 3108 } 2812 for _, c := range p.Ahead { 3109 for _, c := range p.Ahead { 2813 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "<li><a href=\"" ) 3110 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "<li><a href=\"" ) 2814 if templ_7745c5c3_Err != nil { 3111 if templ_7745c5c3_Err != nil { 2815 return templ_7745c5c3_Err 3112 return templ_7745c5c3_Err 2816 } 3113 } 2817 - var templ_7745c5c3_Var139 templ.SafeURL 3114 + var templ_7745c5c3_Var152 templ.SafeURL 2818 - templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) 3115 + templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref)) 2819 if templ_7745c5c3_Err != nil { 3116 if templ_7745c5c3_Err != nil { 2820 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 533, Col: 37} 3117 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 593, Col: 37} 2821 } 3118 } 2822 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139)) 3119 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152)) 2823 if templ_7745c5c3_Err != nil { 3120 if templ_7745c5c3_Err != nil { 2824 return templ_7745c5c3_Err 3121 return templ_7745c5c3_Err 2825 } 3122 } 2826 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "\">" ) 3123 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 287, "\">" ) 2827 if templ_7745c5c3_Err != nil { 3124 if templ_7745c5c3_Err != nil { 2828 return templ_7745c5c3_Err 3125 return templ_7745c5c3_Err 2829 } 3126 } 2830 - var templ_7745c5c3_Var140 string 3127 + var templ_7745c5c3_Var153 string 2831 - templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) 3128 + templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short) 2832 if templ_7745c5c3_Err != nil { 3129 if templ_7745c5c3_Err != nil { 2833 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 533, Col: 49} 3130 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 593, Col: 49} 2834 } 3131 } 2835 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140)) 3132 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153)) 2836 if templ_7745c5c3_Err != nil { 3133 if templ_7745c5c3_Err != nil { 2837 return templ_7745c5c3_Err 3134 return templ_7745c5c3_Err 2838 } 3135 } 2839 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "</a> <span class=\"s\">" ) 3136 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "</a> <span class=\"s\">" ) 2840 if templ_7745c5c3_Err != nil { 3137 if templ_7745c5c3_Err != nil { 2841 return templ_7745c5c3_Err 3138 return templ_7745c5c3_Err 2842 } 3139 } 2843 - var templ_7745c5c3_Var141 string 3140 + var templ_7745c5c3_Var154 string 2844 - templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) 3141 + templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject) 2845 if templ_7745c5c3_Err != nil { 3142 if templ_7745c5c3_Err != nil { 2846 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 534, Col: 32} 3143 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 594, Col: 32} 2847 } 3144 } 2848 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141)) 3145 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154)) 2849 if templ_7745c5c3_Err != nil { 3146 if templ_7745c5c3_Err != nil { 2850 return templ_7745c5c3_Err 3147 return templ_7745c5c3_Err 2851 } 3148 } 2852 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, "</span> <span class=\"mute\">" ) 3149 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, "</span> <span class=\"mute\">" ) 2853 if templ_7745c5c3_Err != nil { 3150 if templ_7745c5c3_Err != nil { 2854 return templ_7745c5c3_Err 3151 return templ_7745c5c3_Err 2855 } 3152 } 2856 - var templ_7745c5c3_Var142 string 3153 + var templ_7745c5c3_Var155 string 2857 - templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) 3154 + templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author) 2858 if templ_7745c5c3_Err != nil { 3155 if templ_7745c5c3_Err != nil { 2859 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 536, Col: 16} 3156 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 596, Col: 16} 2860 } 3157 } 2861 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142)) 3158 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155)) 2862 if templ_7745c5c3_Err != nil { 3159 if templ_7745c5c3_Err != nil { 2863 return templ_7745c5c3_Err 3160 return templ_7745c5c3_Err 2864 } 3161 } 2865 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, " " ) 3162 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, " " ) 2866 if templ_7745c5c3_Err != nil { 3163 if templ_7745c5c3_Err != nil { 2867 return templ_7745c5c3_Err 3164 return templ_7745c5c3_Err 2868 } 3165 } 2869 if c.WhenAt != "" { 3166 if c.WhenAt != "" { 2870 - var templ_7745c5c3_Var143 string 3167 + var templ_7745c5c3_Var156 string 2871 - templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(" · " ) 3168 + templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinStringErrs(" · " ) 2872 if templ_7745c5c3_Err != nil { 3169 if templ_7745c5c3_Err != nil { 2873 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 538, Col: 15} 3170 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 598, Col: 15} 2874 } 3171 } 2875 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143)) 3172 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156)) 2876 if templ_7745c5c3_Err != nil { 3173 if templ_7745c5c3_Err != nil { 2877 return templ_7745c5c3_Err 3174 return templ_7745c5c3_Err 2878 } 3175 } 2879 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, "<time datetime=\"" ) 3176 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "<time datetime=\"" ) 2880 if templ_7745c5c3_Err != nil { 3177 if templ_7745c5c3_Err != nil { 2881 return templ_7745c5c3_Err 3178 return templ_7745c5c3_Err 2882 } 3179 } 2883 - var templ_7745c5c3_Var144 string 3180 + var templ_7745c5c3_Var157 string 2884 - templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) 3181 + templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt) 2885 if templ_7745c5c3_Err != nil { 3182 if templ_7745c5c3_Err != nil { 2886 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 538, Col: 42} 3183 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 598, Col: 42} 2887 } 3184 } 2888 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var144) 3185 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var157) 2889 if templ_7745c5c3_Err != nil { 3186 if templ_7745c5c3_Err != nil { 2890 return templ_7745c5c3_Err 3187 return templ_7745c5c3_Err 2891 } 3188 } 2892 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, "\">" ) 3189 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, "\">" ) 2893 if templ_7745c5c3_Err != nil { 3190 if templ_7745c5c3_Err != nil { 2894 return templ_7745c5c3_Err 3191 return templ_7745c5c3_Err 2895 } 3192 } 2896 - var templ_7745c5c3_Var145 string 3193 + var templ_7745c5c3_Var158 string 2897 - templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) 3194 + templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(c.When) 2898 if templ_7745c5c3_Err != nil { 3195 if templ_7745c5c3_Err != nil { 2899 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 538, Col: 53} 3196 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 598, Col: 53} 2900 } 3197 } 2901 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145)) 3198 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158)) 2902 if templ_7745c5c3_Err != nil { 3199 if templ_7745c5c3_Err != nil { 2903 return templ_7745c5c3_Err 3200 return templ_7745c5c3_Err 2904 } 3201 } 2905 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, "</time>" ) 3202 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "</time>" ) 2906 if templ_7745c5c3_Err != nil { 3203 if templ_7745c5c3_Err != nil { 2907 return templ_7745c5c3_Err 3204 return templ_7745c5c3_Err 2908 } 3205 } 2909 } 3206 } 2910 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, "</span></li>" ) 3207 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, "</span></li>" ) 2911 if templ_7745c5c3_Err != nil { 3208 if templ_7745c5c3_Err != nil { 2912 return templ_7745c5c3_Err 3209 return templ_7745c5c3_Err 2913 } 3210 } 2914 } 3211 } 2915 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, "</ul>" ) 3212 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</ul>" ) 2916 if templ_7745c5c3_Err != nil { 3213 if templ_7745c5c3_Err != nil { 2917 return templ_7745c5c3_Err 3214 return templ_7745c5c3_Err 2918 } 3215 } 2919 if len(p.Ahead) == 0 { 3216 if len(p.Ahead) == 0 { 2920 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "<p class=\"dim\">no commit ahead of " ) 3217 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "<p class=\"dim\">no commit ahead of " ) 2921 if templ_7745c5c3_Err != nil { 3218 if templ_7745c5c3_Err != nil { 2922 return templ_7745c5c3_Err 3219 return templ_7745c5c3_Err 2923 } 3220 } 2924 - var templ_7745c5c3_Var146 string 3221 + var templ_7745c5c3_Var159 string 2925 - templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) 3222 + templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target) 2926 if templ_7745c5c3_Err != nil { 3223 if templ_7745c5c3_Err != nil { 2927 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 545, Col: 47} 3224 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 605, Col: 47} 2928 } 3225 } 2929 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146)) 3226 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159)) 2930 if templ_7745c5c3_Err != nil { 3227 if templ_7745c5c3_Err != nil { 2931 return templ_7745c5c3_Err 3228 return templ_7745c5c3_Err 2932 } 3229 } 2933 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, ".</p>" ) 3230 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, ".</p>" ) 2934 if templ_7745c5c3_Err != nil { 3231 if templ_7745c5c3_Err != nil { 2935 return templ_7745c5c3_Err 3232 return templ_7745c5c3_Err 2936 } 3233 } 2937 } 3234 } 2938 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "</section>" ) 3235 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "</section>" ) 2939 if templ_7745c5c3_Err != nil { 3236 if templ_7745c5c3_Err != nil { 2940 return templ_7745c5c3_Err 3237 return templ_7745c5c3_Err 2941 } 3238 } 2942 if p.HasDiff { 3239 if p.HasDiff { 2943 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">" ) 3240 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">" ) 2944 if templ_7745c5c3_Err != nil { 3241 if templ_7745c5c3_Err != nil { 2945 return templ_7745c5c3_Err 3242 return templ_7745c5c3_Err 2946 } 3243 } 2947 - var templ_7745c5c3_Var147 string 3244 + var templ_7745c5c3_Var160 string 2948 - templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) 3245 + templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files))) 2949 if templ_7745c5c3_Err != nil { 3246 if templ_7745c5c3_Err != nil { 2950 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 550, Col: 66} 3247 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ` , Line: 610, Col: 66} 2951 } 3248 } 2952 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147)) 3249 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160)) 2953 if templ_7745c5c3_Err != nil { 3250 if templ_7745c5c3_Err != nil { 2954 return templ_7745c5c3_Err 3251 return templ_7745c5c3_Err 2955 } 3252 } 2956 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "</span></h2>" ) 3253 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</span></h2>" ) 2957 if templ_7745c5c3_Err != nil { 3254 if templ_7745c5c3_Err != nil { 2958 return templ_7745c5c3_Err 3255 return templ_7745c5c3_Err 2959 } 3256 }