aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/api/dashboard/dashboard.html13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/api/dashboard/dashboard.html b/src/api/dashboard/dashboard.html
index da370e9..baffcf2 100644
--- a/src/api/dashboard/dashboard.html
+++ b/src/api/dashboard/dashboard.html
@@ -261,6 +261,8 @@
th { color: var(--muted); font-weight: 500; position: sticky; top: 0;
background: var(--panel); }
#peers tr[data-peer] { cursor: pointer; }
+ /* Not neighbours: only answered. */
+ #peers tr.answered td { opacity: .5; }
#peers tr.focused td { background: var(--line); }
.id { font-family: ui-monospace, monospace; font-size: 12px; }
/* Where messages go: the start of the address, the rest in its tooltip. */
@@ -556,7 +558,7 @@ function renderPeers() {
"this node's (its offset taken off): this minute's mean, and the last 15 minutes' as " +
"a line; good to half the round trip, but the trend exactly" };
const rows = [el("tr", {}, ...["peer", "status", "seen", "via", "rtt", "hop", "clock",
- "neighbour", "reaches", "epoch"]
+ "reaches", "epoch"]
.map(h => el("th", { title: headers[h] || "" }, h)))];
// Whom this node reaches, to tell those a peer reaches and it doesn't.
const ours = new Set(state.peers.localReaches || []);
@@ -567,8 +569,12 @@ function renderPeers() {
const via = destination
? destination.address + (destination.connection ? " (" + destination.connection + ")" : "")
: "";
- const row = el("tr", { "data-peer": id, class: id === focused ? "focused" : "" },
- el("td", { title: id }, peer.alias || el("span", { class: "id" }, short(id))),
+ // Not a neighbour: this node only answers it (muted).
+ const row = el("tr", { "data-peer": id,
+ class: (id === focused ? "focused" : "") + (peer.neighbour ? "" : " answered") },
+ el("td", { title: id + (peer.neighbour ? ""
+ : "\nnot a neighbour: this node only answers it, and syncs with it on its own only as a neighbour") },
+ peer.alias || el("span", { class: "id" }, short(id))),
// How long dormant is about how long unseen ("seen"): in the tooltip only.
el("td", { class: peer.status, title: peer.status === "dormant"
? "dormant for " + age(aged("dormantForSecs", peer.dormantForSecs)) : "" }, peer.status),
@@ -580,7 +586,6 @@ function renderPeers() {
el("td", { class: clockOff(peer.clock) ? "clock-off" : "", title: peer.clock
? "ahead of this node's by " + peer.clock.offsetMs + " ms, give or take " +
peer.clock.withinMs + " ms" : "" }, peer.clock ? seconds(peer.clock.offsetMs) : ""),
- el("td", {}, peer.neighbour ? "yes" : ""),
reachesCell(peer.reaches, ours, id),
epochCell(peer.epoch, peer.sameEpoch));
rows.push(row);