diff options
| author | tv <tv@krebsco.de> | 2026-11-02 22:05:50 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-02 22:05:50 +0100 |
| commit | df314df4793765ea5334ac75b97d415286cc7fa3 (patch) | |
| tree | 1ed6c10c066fc5b273c7cf04a1b341e70e38c4a8 /src/api/dashboard/mod.rs | |
| parent | 627efc3b2620d75fcf2deab170187ba2e082417c (diff) | |
dashboard: double-click opens peer dashboard
Diffstat (limited to 'src/api/dashboard/mod.rs')
| -rw-r--r-- | src/api/dashboard/mod.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/api/dashboard/mod.rs b/src/api/dashboard/mod.rs index db7efa3..91b81d4 100644 --- a/src/api/dashboard/mod.rs +++ b/src/api/dashboard/mod.rs @@ -320,9 +320,13 @@ async fn build(state: &AppState, graph: &Graph, live: bool) -> JsonValue { let list = super::peers::peer_list(state).await; let stats = serde_json::to_value(super::stats::collect(state, &list).await).unwrap_or_default(); let peers = serde_json::to_value(&list).unwrap_or_default(); - let aliases = { + let (aliases, dashboards) = { let replica = state.doc.read().await; - members::aliases(&replica.doc) + let dashboards: std::collections::HashMap<String, String> = members::members(&replica.doc) + .into_iter() + .filter_map(|pk| members::dashboard(&replica.doc, &pk).map(|url| (pk, url))) + .collect(); + (members::aliases(&replica.doc), dashboards) }; let local = state.local_id(); let intended: Map<String, JsonValue> = graph @@ -362,7 +366,8 @@ async fn build(state: &AppState, graph: &Graph, live: bool) -> JsonValue { for member in graph.intended.keys().chain(measured.keys()) { members_json.insert( member.clone(), - json!({ "alias": aliases.get(member), "self": member == local }), + json!({ "alias": aliases.get(member), "self": member == local, + "dashboard": dashboards.get(member) }), ); } json!({ |
