repo: janusweb
action: commit
revision: 
path_from: 
revision_from: 8147840e595ab09692ed55b7ea181bfe39a0e304:
path_to: 
revision_to: 
git.thebackupbox.net
janusweb
git clone git://git.thebackupbox.net/janusweb
commit 8147840e595ab09692ed55b7ea181bfe39a0e304
Author: James Baicoianu 
Date:   Sat Feb 19 15:20:19 2022 -0800

    de chat for private rooms, handle missing elements

diff --git a/media/assets/webui/apps/comms/comms.html b/media/assets/webui/apps/comms/comms.html
index 61f8f325fe30fbbb33424a46ea5eb41e327098ce..
index ..ae7e6cf15a16ddf725579aff29d2386e8df1cd4d 100644
--- a/media/assets/webui/apps/comms/comms.html
+++ b/media/assets/webui/apps/comms/comms.html
@@ -2,4 +2,4 @@

 
 
-
+
diff --git a/media/assets/webui/apps/comms/comms.js b/media/assets/webui/apps/comms/comms.js
index 2e798d1101860e65a92675a2bb9653de83c89118..
index ..6e0bde43866dcbb343a5b998025252e4199d1601 100644
--- a/media/assets/webui/apps/comms/comms.js
+++ b/media/assets/webui/apps/comms/comms.js
@@ -93,16 +93,17 @@ elation.elements.define('janus-comms-userlist', class extends elation.elements.u
     this.elements = elation.elements.fromTemplate('janus.comms.userlist', this);
     this.client = this.getClient();
     this.janusweb = this.client.janusweb;
+
     this.userlist_room = this.elements.userlist_room;
     this.userlist_online = this.elements.userlist_online;
     this.userlist_friends = this.elements.userlist_friends;
-
     this.usermarkers = {};

     elation.events.add(this.janusweb, 'room_load_start', (ev) => { this.updateRoom(ev.data); });
     elation.events.add(this.janusweb.network, 'janusweb_user_joined,janusweb_user_left,janusweb_user_disconnected', (ev) => this.updateUsers());
     setTimeout(() => {
       this.updateUsers();
+      this.updateRoom(room);
     }, 100);
   }
   getClient() {
@@ -121,6 +122,13 @@ elation.elements.define('janus-comms-userlist', class extends elation.elements.u
     this.userlist_room = this.userlist_room;
     this.userlist_online = this.userlist_online;
     this.userlist_friends = this.userlist_friends;
+    if (room.private) {
+      this.parentNode.elements.chat.open = false;
+      this.elements.userlist_details.open = false;
+    } else {
+      this.parentNode.elements.chat.open = true;
+      this.elements.userlist_details.open = true;
+    }
     this.updateUsers();
   }
   updateUsers() {
@@ -129,10 +137,12 @@ elation.elements.define('janus-comms-userlist', class extends elation.elements.u
     var users = Object.keys(remoteplayers);
     users.unshift(player.userid);

-    this.elements.roomusers.value = users.length;
-    
-    this.userlist_room.setItems(users);
-
+    if (this.elements.roomusers) {
+      this.elements.roomusers.value = users.length;
+    }
+    if (this.userlist_room) {
+      this.userlist_room.setItems(users);
+    }
     for (let k in remoteplayers) {
       let p = remoteplayers[k];
       if (this.usermarkers[k] && this.usermarkers[k].parent !== p.getProxyObject()) {
@@ -147,7 +157,6 @@ elation.elements.define('janus-comms-userlist', class extends elation.elements.u
         });
         this.usermarkers[k].start();
       } 
-
     }
   }
   setFont(fontname) {
@@ -207,6 +216,7 @@ elation.elements.define('janus-comms-chat', class extends elation.elements.base
   }
   handleUserJoined(ev) {
     var data = ev.data;
+if (!this.elements.chatmessages) return;
     this.elements.chatmessages.add({
       timestamp: new Date().getTime(),
       type: 'join',
@@ -217,6 +227,7 @@ elation.elements.define('janus-comms-chat', class extends elation.elements.base
   }
   handleUserLeft(ev) {
     var data = ev.data;
+if (!this.elements.chatmessages) return;
     this.elements.chatmessages.add({
       timestamp: new Date().getTime(),
       type: 'part',
@@ -227,6 +238,7 @@ elation.elements.define('janus-comms-chat', class extends elation.elements.base
   }
   handleUserDisconnected(ev) {
     var data = ev.data;
+if (!this.elements.chatmessages) return;
     this.elements.chatmessages.add({
       timestamp: new Date().getTime(),
       type: 'disconnect',
@@ -237,6 +249,7 @@ elation.elements.define('janus-comms-chat', class extends elation.elements.base
   }
   handleUserChat(ev) {
     var data = ev.data;
+if (!this.elements.chatmessages) return;
     this.elements.chatmessages.add({
       timestamp: new Date().getTime(),
       type: 'chat',
@@ -249,6 +262,7 @@ elation.elements.define('janus-comms-chat', class extends elation.elements.base
   sendMessage(msg) {
     if (msg && msg.length > 0) {
       janus.network.send({'method': 'chat', data: msg});
+if (!this.elements.chatmessages) return;
       this.elements.chatmessages.add({
         timestamp: new Date().getTime(),
         type: 'selfchat',
@@ -260,6 +274,7 @@ elation.elements.define('janus-comms-chat', class extends elation.elements.base
     }
   }
   handleClientPrint(msg) {
+if (!this.elements.chatmessages) return;
     this.elements.chatmessages.add({
       timestamp: new Date().getTime(),
       type: 'print',
diff --git a/media/assets/webui/apps/comms/userlist.html b/media/assets/webui/apps/comms/userlist.html
index 073e23f12c2169e4fab2cbe046c2e4f54236802e..
index ..975719de83985eb86cb380b7fc50559db4aa7a7a 100644
--- a/media/assets/webui/apps/comms/userlist.html
+++ b/media/assets/webui/apps/comms/userlist.html
@@ -1,9 +1,11 @@
-
- Online Users () - {?room.private} -

Private Room

+{?room.private} +
+ No online users

This room is marked as private. You are not broadcasting your location while here - others can't see you, and you can't see them.

- {/room.private} +
+{:else} +
+ Online Users ()
+{/room.private}

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