chiark / gitweb /
infopane: Plumbing for player list, shows up in client
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 14 Jan 2021 00:06:45 +0000 (00:06 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 14 Jan 2021 00:15:03 +0000 (00:15 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/global.rs
templates/macros.tera
templates/script.ts

index f873f1f836438c1a3952bf969908b7844083e20d..bd900d5cb4dc1bbd55f80fc817160ab1048f1b7f 100644 (file)
@@ -409,7 +409,9 @@ impl Instance {
 
   #[throws(InternalError)]
   pub fn player_info_pane(&self) -> Html {
-    let html = Html::from_txt("Players list from server, but NYI");// xxx
+    let html = Html(format!(
+      "Players list from server, but NYI {}", &self.gs.gen,
+    ));// xxx
     html
   }
 }
index 20ccbf5957a17fef610f26fc15057c735ce05dd2..1ddc193818146be6e636e61027270fe910f8f768 100644 (file)
@@ -102,7 +102,9 @@ Hi {{nick | escape}}
  </div>
 
  <div id="pane_players" class="somepane" style="display:none">
+  <div id="player_list">
 {{ player_info_pane }}
+  </div>
  </div>
 
 </div id="infopane">
index 75612cf4b07d3ca10339fd8ebef5cec94a26ea62..b36b0e6938977750d9b779d12ade95027ec6569d 100644 (file)
@@ -884,14 +884,23 @@ function drag_cancel() {
 
 // ----- general -----
 
+type PlayersUpdate = { new_info_pane: string };
+
 messages.AddPlayer = <MessageHandler>function
-(j: { player: string, data: PlayerInfo }) {
+(j: { player: string, data: PlayerInfo } & PlayersUpdate) {
   players[j.player] = j.data;
+  player_info_pane_set(j);
 }
 
 messages.RemovePlayer = <MessageHandler>function
-(j: { player: string }) {
+(j: { player: string } & PlayersUpdate ) {
   delete players[j.player];
+  player_info_pane_set(j);
+}
+
+function player_info_pane_set(j: PlayersUpdate) {
+  document.getElementById('player_list')!
+    .innerHTML = j.new_info_pane;
 }
 
 messages.SetLinks = <MessageHandler>function