Better systray notifications support
This commit is contained in:
parent
21683ccbca
commit
29dd383a3f
|
@ -4,6 +4,21 @@ chimeversePlugin.register = (login) => {
|
|||
converse.plugins.add('chimeVerse', {
|
||||
initialize: (event) => {
|
||||
let _converse = event.properties._converse
|
||||
|
||||
/**
|
||||
* Check if message stanza has some body payload
|
||||
* @param {*} stanzaNodes
|
||||
*/
|
||||
let isBodyMessage = (stanzaNodes) => {
|
||||
let result = false
|
||||
Object.keys(stanzaNodes).some((key) => {
|
||||
if (stanzaNodes[key].nodeName == 'body') {
|
||||
result = true
|
||||
}
|
||||
})
|
||||
return result
|
||||
}
|
||||
|
||||
Promise.all([
|
||||
_converse.api.waitUntil('rosterContactsFetched'),
|
||||
_converse.api.waitUntil('chatBoxesFetched')
|
||||
|
@ -13,6 +28,8 @@ chimeversePlugin.register = (login) => {
|
|||
document.dispatchEvent(event)
|
||||
})
|
||||
_converse.api.listen.on('message', (data) => {
|
||||
// Display notifications only for "payloaded" messages
|
||||
if (isBodyMessage(data.stanza.childNodes)) {
|
||||
let sender = data.stanza.attributes.from.nodeValue
|
||||
let senderJid = sender
|
||||
if (sender.indexOf('/') !== -1) {
|
||||
|
@ -23,6 +40,7 @@ chimeversePlugin.register = (login) => {
|
|||
let event = new CustomEvent('conversejs-unread', {detail: senderJid})
|
||||
document.dispatchEvent(event)
|
||||
}
|
||||
}
|
||||
})
|
||||
_converse.api.listen.on('chatBoxFocused', () => {
|
||||
let event = new CustomEvent('conversejs-no-unread')
|
||||
|
|
Loading…
Reference in New Issue