Better systray notifications support

This commit is contained in:
Nick Denry 2020-05-12 20:56:18 +03:00
parent 21683ccbca
commit 29dd383a3f
2 changed files with 28 additions and 10 deletions

View File

@ -4,6 +4,21 @@ chimeversePlugin.register = (login) => {
converse.plugins.add('chimeVerse', { converse.plugins.add('chimeVerse', {
initialize: (event) => { initialize: (event) => {
let _converse = event.properties._converse 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([ Promise.all([
_converse.api.waitUntil('rosterContactsFetched'), _converse.api.waitUntil('rosterContactsFetched'),
_converse.api.waitUntil('chatBoxesFetched') _converse.api.waitUntil('chatBoxesFetched')
@ -13,15 +28,18 @@ chimeversePlugin.register = (login) => {
document.dispatchEvent(event) document.dispatchEvent(event)
}) })
_converse.api.listen.on('message', (data) => { _converse.api.listen.on('message', (data) => {
let sender = data.stanza.attributes.from.nodeValue // Display notifications only for "payloaded" messages
let senderJid = sender if (isBodyMessage(data.stanza.childNodes)) {
if (sender.indexOf('/') !== -1) { let sender = data.stanza.attributes.from.nodeValue
senderJid = sender.substr(0, sender.lastIndexOf('/')) let senderJid = sender
} if (sender.indexOf('/') !== -1) {
if (senderJid != login) { senderJid = sender.substr(0, sender.lastIndexOf('/'))
console.log(senderJid) }
let event = new CustomEvent('conversejs-unread', {detail: senderJid}) if (senderJid != login) {
document.dispatchEvent(event) console.log(senderJid)
let event = new CustomEvent('conversejs-unread', {detail: senderJid})
document.dispatchEvent(event)
}
} }
}) })
_converse.api.listen.on('chatBoxFocused', () => { _converse.api.listen.on('chatBoxFocused', () => {

View File

@ -62,7 +62,7 @@ function createWindow () {
menuService.createMenu() menuService.createMenu()
// Open the DevTools. // Open the DevTools.
mainWindow.webContents.openDevTools() // mainWindow.webContents.openDevTools()
// Before close // Before close
if (minimizeOnClose !== 'undefined') { if (minimizeOnClose !== 'undefined') {