+{# -*- 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 %}
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