diff --git a/_datafiles/html/public/webclient-pure.html b/_datafiles/html/public/webclient-pure.html
index 7dbed51d..4189e4d7 100644
--- a/_datafiles/html/public/webclient-pure.html
+++ b/_datafiles/html/public/webclient-pure.html
@@ -255,6 +255,69 @@
Volume Controls
roomZones: {},
};
let GMCPUpdateHandlers = {
+ "Comm": function() {
+
+ var obj = GMCPStructs["Comm"];
+ if ( !obj.Channel ) {
+ return;
+ }
+
+ if ( !GMCPWindows['Comm'] && GMCPWindows['Comm'] !== false ) {
+
+ GMCPWindows['Comm'] = new WinBox({ title: "Communications",
+ mount: document.getElementById("comm-output"),
+ background: "#1c6b60", border: 1,
+ x: "right", y: 450,
+ width:363, height:20+290,
+ header: 20,
+ bottom: 60, // Limit how far down it can go. This affects docking the minimized window.
+ // end limit position range
+ onclose: force => { GMCPWindows['Comm'] = false; return false; },
+ });
+
+ GMCPWindows['Comm'].Message = function(channelName, fromName, fromSource, message) {
+
+ // add new text output
+ var tab = document.getElementById("comm-tab-"+channelName);
+ var panel = document.getElementById("comm-"+channelName);
+
+ if ( tab.classList.contains('active') ) {
+ tab.dataset.unread = 0;
+ tab.innerText = tab.dataset.label;
+ } else {
+ tab.dataset.unread = parseInt(tab.dataset.unread)+1;
+ tab.innerText = tab.dataset.label + "(" + String(tab.dataset.unread) + ")";
+ }
+
+ var p = document.createElement('p');
+ p.innerHTML = '' +
+ fromName +
+ ': ' +
+ '' +
+ message +
+ '';
+ panel.appendChild(p);
+
+ // clean up overflow
+ panelContainer = GMCPWindows['Comm'].window;
+ while (panel.scrollHeight > panelContainer.clientHeight-58) {
+ if ( panel.childElementCount < 1) {
+ break;
+ }
+ panel.removeChild(panel.firstElementChild);
+ }
+
+ };
+
+ }
+
+ if ( GMCPWindows['Comm'] === false ) {
+ return;
+ }
+
+ GMCPWindows['Comm'].Message(obj.Channel.channel, obj.Channel.sender, obj.Channel.source, obj.Channel.text);
+
+ },
"Room": function() {
var obj = GMCPStructs["Room"];
@@ -269,10 +332,12 @@ Volume Controls
background: "#1c6b60",
border: 1,
x: "right",
- y: 0,
- width:300,
- height:20+300,
+ y: 66,
+ width:363,
+ height:20+363,
header: 20,
+ bottom: 60, // Limit how far down it can go. This affects docking the minimized window.
+ // end limit position range
onclose: force => { GMCPWindows['Map'] = false; return false; },
oncreate: ops => {
@@ -391,17 +456,13 @@ Volume Controls
mount: document.getElementById("vitals-bars"),
background: "#1c6b60",
border: 1,
- x: "right",
- y: 320,
+ x: window.innerWidth-300-63,//"right",
+ y: 0,
width:300,
- height:20+120,
+ height:20+40,
header: 20,
+ bottom: 60, // Limit how far down it can go. This affects docking the minimized window.
onclose: force => { GMCPWindows['Char.Vitals'] = false; return false; },
- oncreate: opts => {
- opts.width = document.getElementById('vitals-bars').style.width;
- opts.height = "48px";
- }
-
});
}
@@ -983,86 +1044,181 @@ Volume Controls
/* add these styles once (e.g. in your global
+
+
+
+
+
+
+
@@ -1074,7 +1230,26 @@
Volume Controls
+
+
+
+
+
+
+
+
+
+
+
+
+
+