let topic = ""; let emisorId; let isloading = false; let slaMsgsParent; window.addEventListener('resize', function () { document.querySelectorAll('.sala_logo') .forEach(el => el.style.height = el.clientWidth + 'px'); }); window.addEventListener('load', function() { document.querySelectorAll('.sala_logo') .forEach(el => el.style.height = el.clientWidth + 'px'); let formElem = document.getElementById('chat-msg-form'); if(formElem === undefined){ return false; } slaMsgsParent = document.getElementById('sala-msgs-parent'); emisorId = formElem.dataset.emisorId; emisorId = parseInt(emisorId); formElem.onsubmit = function (e) { e.preventDefault(); if(!topic || topic === '') return false; const publishRoute = "chat/" + topic; let message = this.elements.message.value; fetch(publishRoute, {method: 'POST', body: JSON.stringify({message: message})}); this.elements.message.value = ''; this.elements.message.focus(); } document.getElementById('chat-message').oninput = function (e) { document.getElementById('msgsubmit').disabled = this.value === '' || isloading; this.style.height = 'inherit'; let computed = window.getComputedStyle(this); let height = parseInt(computed.getPropertyValue('border-top-width'), 10) + parseInt(computed.getPropertyValue('padding-top'), 10) + this.scrollHeight + parseInt(computed.getPropertyValue('padding-bottom'), 10) + parseInt(computed.getPropertyValue('border-bottom-width'), 10); this.style.height = height + 'px'; } let dataURL= document.getElementById('chat-wrapper').dataset.subscribeUrl; const subscribeURL = new URL(dataURL); document.querySelectorAll('.sala_item') .forEach(el => { el.addEventListener('click', changeSala); el.addEventListener('keypress', changeSala); el.setAttribute('disabled', 'disabed'); const pubUrl = el.dataset.publishUrl; topic = pubUrl.split("/").pop(); subscribeURL.searchParams.append('topic', topic); //updateEventSource(subscribeURL); }); new EventSource(subscribeURL).onmessage = ({data}) => { const message = JSON.parse(data); let ul = document.getElementById('message-list'); if(!message) throw new Error("Datos no vĂ¡lidos"); if(registration) registration.showNotification("Nuevo mensaje", {body:message.notifMsg}); let htmlMsg = message.emisorId === emisorId ? message.emisorView : message.receptorView; let liElem = document.createElement("li"); let sala = message.sala; updateLastMessageAndDate(sala, message.salaDescView); if(message.emisorId !== emisorId){ if(!ul || (slaMsgsParent.dataset.activeChat && slaMsgsParent.dataset.activeChat !== sala)){ updateUnreadedBadge(sala); } if(ul && slaMsgsParent.dataset.activeChat && slaMsgsParent.dataset.activeChat === sala){ let liNewMsg = ul.getElementsByClassName( 'unreaded-list' ); if(!liNewMsg || liNewMsg.length === 0){ liElem.setAttribute("class", "unreaded-list"); liElem.innerHTML = '