diff --git a/alembic/versions/20260713_0100_a1b2c3d4e5f6_add_reversible_to_routes.py b/alembic/versions/20260713_0100_f1e2d3c4b5a6_add_reversible_to_routes.py similarity index 93% rename from alembic/versions/20260713_0100_a1b2c3d4e5f6_add_reversible_to_routes.py rename to alembic/versions/20260713_0100_f1e2d3c4b5a6_add_reversible_to_routes.py index 9ac7ec1..91f1e16 100644 --- a/alembic/versions/20260713_0100_a1b2c3d4e5f6_add_reversible_to_routes.py +++ b/alembic/versions/20260713_0100_f1e2d3c4b5a6_add_reversible_to_routes.py @@ -1,6 +1,6 @@ """add reversible column to routes -Revision ID: a1b2c3d4e5f6 +Revision ID: f1e2d3c4b5a6 Revises: 8f2a3c4d5e6f Create Date: 2026-07-13 01:00:00.000000+00:00 @@ -15,7 +15,7 @@ from typing import Sequence, Union import sqlalchemy as sa from alembic import op -revision: str = "a1b2c3d4e5f6" +revision: str = "f1e2d3c4b5a6" down_revision: Union[str, None] = "8f2a3c4d5e6f" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None diff --git a/src/meshcore_hub/web/static/js/spa/pages/routes.js b/src/meshcore_hub/web/static/js/spa/pages/routes.js index d21cfcc..f822b3b 100644 --- a/src/meshcore_hub/web/static/js/spa/pages/routes.js +++ b/src/meshcore_hub/web/static/js/spa/pages/routes.js @@ -89,7 +89,6 @@ function renderRouteCard(route, { isAdmin, onDelete, onEdit, onExpand, isExpande const badgeCls = qualityBadgeClass(q, route.enabled); const label = qualityLabel(q, route.enabled); const dot = qualityDot(q, route.enabled); - const visBadge = html`${route.visibility}`; const adminButtons = isAdmin ? html`
@@ -112,7 +111,6 @@ function renderRouteCard(route, { isAdmin, onDelete, onEdit, onExpand, isExpande

${route.name} - ${visBadge}

${route.description ? html`

${route.description}

` : nothing}
@@ -123,6 +121,9 @@ function renderRouteCard(route, { isAdmin, onDelete, onEdit, onExpand, isExpande
${renderPathChips(route)}
${renderNumbersLine(route)} +
+ ${route.match_width}B \u00B7 ${(route.route_nodes || []).length} ${t('routes.nodes_count')}${route.max_hop_span ? html` \u00B7 ${t('routes.span')}: ${route.max_hop_span}` : nothing} +
${adminButtons} ${expandContent} diff --git a/src/meshcore_hub/web/static/locales/en.json b/src/meshcore_hub/web/static/locales/en.json index 60e1d75..2bb037b 100644 --- a/src/meshcore_hub/web/static/locales/en.json +++ b/src/meshcore_hub/web/static/locales/en.json @@ -335,6 +335,7 @@ "span_label": "Max Span", "enabled_label": "Enabled", "reversible_label": "Reversible (match both directions)", + "nodes_count": "nodes", "disabled": "Disabled", "not_evaluated": "Not yet evaluated", "diagnosis": "Diagnosis", diff --git a/src/meshcore_hub/web/static/locales/nl.json b/src/meshcore_hub/web/static/locales/nl.json index a47f026..406f6be 100644 --- a/src/meshcore_hub/web/static/locales/nl.json +++ b/src/meshcore_hub/web/static/locales/nl.json @@ -240,6 +240,7 @@ "quality_unknown": "Onbekend", "disabled": "Uitgeschakeld", "reversible_label": "Omkeerbaar (beide richtingen)", + "nodes_count": "knooppunten", "search_nodes_placeholder": "Zoek op naam of public key\u2026", "path_label": "Padknooppunten", "path_help": "Zoek op knooppuntnaam of public key en selecteer uit de resultaten. Minimaal 2 unieke knooppunten vereist.",