feat: Add zero-padding to transaction flow numbering for better alignment

This commit is contained in:
Jose Luis Montañes Ojados
2026-01-19 22:09:45 +01:00
parent b2ff043923
commit 6abea047d1

View File

@@ -1390,6 +1390,14 @@ func (m *Model) updateCallDetailView() {
// --- Transaction Flow ---
var right strings.Builder
// Calculate padding needed
digits := len(fmt.Sprintf("%d", len(flow.Packets)))
if digits < 2 {
digits = 2
}
// Pad format string e.g. "%03d."
numFmt := fmt.Sprintf("%%0%dd.", digits)
for i, pkt := range flow.Packets {
arrow := "→"
arrowStyle := m.styles.ArrowOut
@@ -1428,7 +1436,9 @@ func (m *Model) updateCallDetailView() {
}
ts := pkt.Timestamp.Format("15:04:05.000")
lineStr := fmt.Sprintf("%d. [%s] %s %s", i+1, ts, arrowStyle.Render(arrow), summaryStyle.Render(pkt.Summary()))
// Use pre-calculated format
numStr := fmt.Sprintf(numFmt, i+1)
lineStr := fmt.Sprintf("%s [%s] %s %s", numStr, ts, arrowStyle.Render(arrow), summaryStyle.Render(pkt.Summary()))
if pkt.SDP != nil {
mediaIP := pkt.SDP.GetSDPMediaIP()
@@ -1494,6 +1504,13 @@ func (m *Model) exportCallToLog(flow *sip.CallFlow, filename string) error {
fmt.Fprintf(f, "Transaction Flow:\n")
fmt.Fprintf(f, "-----------------\n")
// Calculate padding needed
digits := len(fmt.Sprintf("%d", len(flow.Packets)))
if digits < 2 {
digits = 2
}
numFmt := fmt.Sprintf("%%0%dd.", digits)
for i, pkt := range flow.Packets {
arrow := "->"
if len(flow.Packets) > 0 && pkt.SourceIP != flow.Packets[0].SourceIP {
@@ -1513,8 +1530,10 @@ func (m *Model) exportCallToLog(flow *sip.CallFlow, filename string) error {
dst = fmt.Sprintf("%s (%s)", dst, pkt.DestIP)
}
fmt.Fprintf(f, "%d. [%s] %s %s %s (%s line %d)\n",
i+1,
// Use pre-calculated format
numStr := fmt.Sprintf(numFmt, i+1)
fmt.Fprintf(f, "%s [%s] %s %s %s (%s line %d)\n",
numStr,
pkt.Timestamp.Format("15:04:05.000"),
src, arrow, dst,
summary,