diff options
| author | tv <tv@krebsco.de> | 2026-11-01 20:02:13 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-01 20:02:13 +0100 |
| commit | b27e1e0d349d490c08b15d024064301382dc6f58 (patch) | |
| tree | 993b4074cfe91fd6d272a9d162610491ed96f312 /src | |
| parent | a70409f0d26d64e411382301eb11fbb8ac8e0036 (diff) | |
dashboard: figures open on press
Diffstat (limited to 'src')
| -rw-r--r-- | src/api/dashboard/dashboard.html | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/api/dashboard/dashboard.html b/src/api/dashboard/dashboard.html index d8b8f6c..6490cd5 100644 --- a/src/api/dashboard/dashboard.html +++ b/src/api/dashboard/dashboard.html @@ -368,8 +368,20 @@ function tree(key, value, path) { if (details.open) open.add(path); else open.delete(path); }); const entries = Array.isArray(value) ? value.map((v, i) => [String(i), v]) : Object.entries(value); - details.append(el("summary", {}, el("span", { class: "key" }, key), - Array.isArray(value) ? " [" + value.length + "]" : "")); + const summary = el("summary", {}, el("span", { class: "key" }, key), + Array.isArray(value) ? " [" + value.length + "]" : ""); + // Opened or closed on press, as the peers' rows are focused: the tree is drawn anew + // every second (ages), and a click whose press and release land on two drawings is + // lost. Keys (Enter, space) still click. + summary.addEventListener("pointerdown", event => { + if (event.button !== 0) return; + event.preventDefault(); + details.open = !details.open; + }); + summary.addEventListener("click", event => { + if (event.detail !== 0) event.preventDefault(); + }); + details.append(summary); for (const [k, v] of entries) details.append(tree(k, v, path + "." + k)); return details; } |
