From 07038f2b78de3ecf3a28f2d1278dcb25e6a8cac1 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 14 Jan 2021 01:02:13 +0000 Subject: [PATCH] infopane: wip player list, displays something, before accounts Signed-off-by: Ian Jackson --- nwtemplates/player-info-pane.tera | 9 ++++++++- src/global.rs | 19 ++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/nwtemplates/player-info-pane.tera b/nwtemplates/player-info-pane.tera index 735511f5..2a0589fa 100644 --- a/nwtemplates/player-info-pane.tera +++ b/nwtemplates/player-info-pane.tera @@ -1,4 +1,11 @@ +{# -*- HTML -*- -#} -{{ players }} +{% for p in players %} +
+#{{ p.player_num }} +{{ p.nick | escape }} + +
+{% endfor %} diff --git a/src/global.rs b/src/global.rs index 914ab088..bf63e69d 100644 --- a/src/global.rs +++ b/src/global.rs @@ -411,11 +411,24 @@ impl Instance { pub fn player_info_pane(&self) -> Html { #[derive(Serialize,Debug)] struct RenderContext<'r> { - players: &'r DenseSlotMap, + players: Vec>, } - let render = RenderContext { - players: &self.gs.players, + #[derive(Serialize,Debug)] + struct RenderPlayer<'r> { + player_num: u32, + nick: &'r str, + account: &'r str, }; + let players = self.gs.players.iter().filter_map(|(player, gpl)| { + let ipl = self.iplayers.get(player)?; + let (idx, _) = player.data().get_idx_version(); + Some(RenderPlayer { + player_num: idx, + nick: &gpl.nick, + account: "todo", + }) + }).collect::>(); + let render = RenderContext { players }; let html = Html(nwtemplates::render("player-info-pane.tera", &render) .context("render player info template")?); html -- 2.30.2