diff --git a/package.json b/package.json index 2520ff4..af0f27f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "site-gateway", - "version": "0.11.67", + "version": "0.11.68", "private": true, "description": "Site Gateway: simple self-hosted website publishing, reverse proxying, and automatic HTTPS.", "type": "module", diff --git a/src/public/app.js b/src/public/app.js index 4c00c12..cb78327 100644 --- a/src/public/app.js +++ b/src/public/app.js @@ -281,7 +281,8 @@ function renderPerformance() { $("#performance-sparkline").innerHTML = points.length ? `${gridLines}` : ""; if (!points.length) $("#performance-sparkline-labels").innerHTML = 'No request data for this window yet.'; const routes = data.routes || []; - $("#performance-rows").innerHTML = routes.length ? routes.map(route => `${escapeHtml(route.host)}${route.hourRequests}${route.dayRequests}${route.dayErrors ? `${route.dayErrors}` : "0"}${route.dayAvgMs == null ? "—" : `${route.dayAvgMs} ms`}`).join("") : 'No requests have been logged yet.'; + const countCell = (count, errors) => `${count}${errors ? ` · ${errors}` : ""}`; + $("#performance-rows").innerHTML = routes.length ? routes.map(route => `${escapeHtml(route.host)}${countCell(route.hourRequests, route.hourErrors)}${countCell(route.dayRequests, route.dayErrors)}${route.dayAvgMs == null ? "—" : `${route.dayAvgMs} ms`}`).join("") : 'No requests have been logged yet.'; if (selected) $(`#performance-rows tr.row-highlight`)?.scrollIntoView({ block: "nearest" }); } diff --git a/src/public/index.html b/src/public/index.html index b05b7b5..2eb9299 100644 --- a/src/public/index.html +++ b/src/public/index.html @@ -155,7 +155,7 @@

Per-route

Throughput by domain

Requests, error rate, and average response time for each configured domain.

-
DomainLast hourLast 24hErrors (24h)Avg. response
+
DomainLast hourLast 24hAvg. response