From 3ea2809df0b7affe644ff32ab862d21dae6607ea Mon Sep 17 00:00:00 2001 From: Joel Krauska Date: Mon, 27 Oct 2025 14:38:35 -0700 Subject: [PATCH] render traceroutes on top --- meshview/web.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/meshview/web.py b/meshview/web.py index 65d69d8..7122cda 100644 --- a/meshview/web.py +++ b/meshview/web.py @@ -857,17 +857,28 @@ async def graph_traceroute2(request): } ) - # Create edges + # Create edges - organize by whether path is complete + incomplete_edges = [] + complete_edges = [] + for path in paths: color = '#' + hex(hash(tuple(path)))[3:9] - for src, dest in zip(path, path[1:], strict=False): - chart_edges.append( - { - "source": str(src), - "target": str(dest), - "originalColor": color, - } - ) + is_complete = path[-1] == dest + for src, dest_node in zip(path, path[1:], strict=False): + edge = { + "source": str(src), + "target": str(dest_node), + "originalColor": color, + } + if is_complete: + complete_edges.append(edge) + else: + incomplete_edges.append(edge) + + # Add incomplete edges first, then complete edges + # This ensures complete paths render on top + chart_edges.extend(incomplete_edges) + chart_edges.extend(complete_edges) chart_data = { "nodes": chart_nodes,