repo: janusweb
action: commit
revision: 
path_from: 
revision_from: 9b2d1fb7c09aa265021c432e57ade969800c2b1f:
path_to: 
revision_to: 
git.thebackupbox.net
janusweb
git clone git://git.thebackupbox.net/janusweb
commit 9b2d1fb7c09aa265021c432e57ade969800c2b1f
Author: James Baicoianu 
Date:   Thu Oct 17 17:22:13 2024 -0700

    Update online user list more reliably when joining new rooms

diff --git a/media/assets/webui/apps/comms/comms.js b/media/assets/webui/apps/comms/comms.js
index 130a049e920c20f4e8c989a810eb387a59055c38..
index ..a3a553cb7011534533045fb8309eb27fabfb5ff9 100644
--- a/media/assets/webui/apps/comms/comms.js
+++ b/media/assets/webui/apps/comms/comms.js
@@ -100,6 +100,7 @@ elation.elements.define('janus-comms-userlist', class extends elation.elements.u
     this.usermarkers = {};

     elation.events.add(this.janusweb, 'room_load_start', (ev) => { this.updateRoom(ev.data || ev.element); });
+    elation.events.add(this.janusweb, 'room_change', (ev) => { let newroom = this.janusweb.rooms[this.janusweb.getRoomId(ev.data)]; if (newroom) this.updateRoom(newroom); });
     elation.events.add(this.janusweb.network, 'janusweb_user_joined,janusweb_user_left,janusweb_user_disconnected', (ev) => this.updateUsers());
     setTimeout(() => {
       //this.updateUsers();
@@ -132,10 +133,16 @@ elation.elements.define('janus-comms-userlist', class extends elation.elements.u
       this.elements.userlist_details.open = true;
     }
     this.updateUsers();
+    elation.events.add(this.room, 'join', ev => {
+      setTimeout(() => {
+        this.updateUsers();
+      }, 1000);
+    });
+    elation.events.add(this.room, 'room_active', ev => { this.updateUsers(); });
   }
   updateUsers() {
     if (!janus.network) return;
-    var remoteplayers = janus.network.remoteplayers;
+    var remoteplayers = this.room.players;
     var users = Object.keys(remoteplayers);
     //users.unshift(player.userid);

-----END OF PAGE-----