chiark / gitweb /
infopane: wip player list, displays something, before accounts
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 14 Jan 2021 01:02:13 +0000 (01:02 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 14 Jan 2021 01:02:13 +0000 (01:02 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
nwtemplates/player-info-pane.tera
src/global.rs

index 735511f5cf6cc3c6bf6bfcb776f73b4e714261dd..2a0589facf1604ef2426794c4b9c845a5352ae5d 100644 (file)
@@ -1,4 +1,11 @@
+{# -*- HTML -*- -#}
 <!-- Copyright 2020-2021 Ian Jackson and contributors to Otter
      SPDX-License-Identifier: AGPL-3.0-or-later
      There is NO WARRANTY. -->
-{{ players }}
+{% for p in players %}
+<div class="player">
+<span class="player_num">#{{ p.player_num }}</span>
+<span class="nick">{{ p.nick | escape }}</span>
+<span class="account">[{{ p.account | escape }}]</span>
+</div>
+{% endfor %}
index 914ab088b0e5f12f49e1f5f72fbad90500f60bc6..bf63e69d2569b807383ed7c4242e93ab0cbe5acf 100644 (file)
@@ -411,11 +411,24 @@ impl Instance {
   pub fn player_info_pane(&self) -> Html {
     #[derive(Serialize,Debug)]
     struct RenderContext<'r> {
-      players: &'r DenseSlotMap<PlayerId, GPlayerState>,
+      players: Vec<RenderPlayer<'r>>,
     }
-    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::<Vec<_>>();
+    let render = RenderContext { players };
     let html = Html(nwtemplates::render("player-info-pane.tera", &render)
       .context("render player info template")?);
     html