(function (root, factory) { if (typeof define === 'function' && define.amd) { define(["converse"], factory); } else { factory(converse); } }(this, function (converse) { let _converse, html, __, converseConn, voicechatServer; converse.plugins.add("voicechat", { dependencies: [], initialize: function () { _converse = this._converse; html = converse.env.html; __ = _converse.__; _converse.api.settings.extend({ voicechat_server: 'https://talk.4ng.net' }); _converse.api.listen.on('getToolbarButtons', function(toolbar_el, buttons) { voicechatServer = _converse.api.settings.get('voicechat_server'); console.debug("getToolbarButtons", voicechatServer, toolbar_el.model); if (toolbar_el.model.get("type") === "chatroom") { const voiceChatStart = __('Voice Chat'); const color = "fill:var(--muc-color);"; buttons.push(html` `); } return buttons; }); _converse.api.listen.on('connected', async function() { converseConn = await _converse.api.connection.get(); }); console.log("voicechat plugin is ready"); } }); function performAudio(ev) { ev.stopPropagation(); ev.preventDefault(); const toolbar_el = converse.env.utils.ancestor(ev.target, 'converse-chat-toolbar'); const chatview = _converse.chatboxviews.get(toolbar_el.model.get('jid')); console.debug("performAudio", chatview, toolbar_el.model); const jid = toolbar_el.model.get("jid"); const id = toolbar_el.model.get("box_id"); const occupants = chatview.querySelector('.occupants'); console.debug("performAudio", jid, id, occupants, chatview); const button = toolbar_el.querySelector('.plugin-voicechat'); const chatroom_body = chatview.querySelector('.chatroom-body'); let iframe = chatview.querySelector('.occupants-voice-chat'); if (!iframe) { iframe = document.createElement("div"); iframe.classList.add('occupants-voice-chat'); // col-xs-12 col-md-4 col-xl-2 iframe.style.display = "none"; iframe.style.width = "500px"; iframe.classList.add('col-xs-12'); iframe.classList.add('col-md-4'); iframe.classList.add('col-xl-2'); chatroom_body.appendChild(iframe); } if (iframe.style.display == "none") { chatview.model.save({'hidden_occupants': true}); const style = "width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden;"; console.debug("performAudio iframe", voicechatServer, jid); iframe.innerHTML = ''; iframe.style.display = ""; button.classList.add('blink_me'); } else { chatview.model.save({'hidden_occupants': false}); iframe.innerHTML = ""; iframe.style.display = "none"; button.classList.remove('blink_me'); } chatview.scrollDown(); } }));