(function (root, factory) { if (typeof define === 'function' && define.amd) { define(["converse"], factory); } else { factory(converse); } }(this, function (converse) { let __, html, _converse; converse.plugins.add("toolbar-utilities", { 'dependencies': [], 'initialize': function () { _converse = this._converse; __ = _converse.__; html = converse.env.html; _converse.api.listen.on('getToolbarButtons', function(toolbar_el, buttons) { let style = "width:18px; height:18px; fill:var(--chat-color);"; if (toolbar_el.model.get("type") === "chatroom") { style = "width:18px; height:18px; fill:var(--muc-color);"; } buttons.push(html` `); buttons.push(html` `); buttons.push(html` `); return buttons; }); } }); function openChatbox(view) { let jid = view.model.get("jid"); let type = view.model.get("type"); console.debug("openChatbox", jid, type); if (jid) { if (type == "chatbox") _converse.api.chats.open(jid, {'bring_to_foreground': true}, true); else if (type == "chatroom") _converse.api.rooms.open(jid, {'bring_to_foreground': true}, true); } } function refreshHistory(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("refreshHistory", chatview); chatview.close(); setTimeout(function() { openChatbox(chatview) }); } async function trashHistory(ev) { ev.stopPropagation(); ev.preventDefault(); const result = confirm(_converse.__('Are you sure you want to clear the messages from this conversation?')); if (result === true) { const toolbar_el = converse.env.utils.ancestor(ev.target, 'converse-chat-toolbar'); await toolbar_el.model.messages.clearStore(); toolbar_el.model.messages.fetched.resolve(); } } function scrollToBottom(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')); const ele = chatview.querySelector(".chat-content__messages"); console.debug("scrollToBottom", ele); ele.scrollTo(0, ele.scrollHeight); } }));