Open related chat on tray icon click

This commit is contained in:
Nick Denry 2020-05-12 19:55:56 +03:00
parent 49a66a895c
commit 21683ccbca
6 changed files with 42 additions and 17 deletions

View File

@ -43,11 +43,15 @@ angApp.factory('ChimeVerseService', ($window, CredentialsServise, SystemService,
})
}
chimeverseService.chatToOpen = null
$window.document.addEventListener('conversejs-logout', function (e) {
chimeverseService.logout()
});
$window.document.addEventListener('conversejs-unread', function (e) {
let sender = e.detail
chimeverseService.chatToOpen = sender
chimeverseService._notifyMessage()
});

View File

@ -1,6 +1,6 @@
let chimeversePlugin = {}
chimeversePlugin.register = () => {
chimeversePlugin.register = (login) => {
converse.plugins.add('chimeVerse', {
initialize: (event) => {
let _converse = event.properties._converse
@ -9,16 +9,23 @@ chimeversePlugin.register = () => {
_converse.api.waitUntil('chatBoxesFetched')
]).then(() => {
_converse.api.listen.on('logout', () => {
let event = new CustomEvent("conversejs-logout")
let event = new CustomEvent('conversejs-logout')
document.dispatchEvent(event)
})
_converse.api.listen.on('message', (data) => {
let event = new CustomEvent("conversejs-unread")
document.dispatchEvent(event)
//chimeverseService._notifyMessage(data)
let sender = data.stanza.attributes.from.nodeValue
let senderJid = sender
if (sender.indexOf('/') !== -1) {
senderJid = sender.substr(0, sender.lastIndexOf('/'))
}
if (senderJid != login) {
console.log(senderJid)
let event = new CustomEvent('conversejs-unread', {detail: senderJid})
document.dispatchEvent(event)
}
})
_converse.api.listen.on('chatBoxFocused', () => {
let event = new CustomEvent("conversejs-no-unread")
let event = new CustomEvent('conversejs-no-unread')
document.dispatchEvent(event)
//chimeverseService._hideNotifyMessage()
})
@ -27,7 +34,14 @@ chimeversePlugin.register = () => {
console.log('Logout form plugin')
_converse.api.user.logout();
//chimeverseService.logout()
});
})
window.document.addEventListener('conversejs-open-chat', function (e) {
let chatToOpen = e.detail
console.log('Get open-unread-chat event: '+chatToOpen)
if (chatToOpen !== null) {
_converse.api.chats.open(chatToOpen)
}
})
})
}
})

View File

@ -96,7 +96,6 @@ function createWindow () {
})
}
// Emitted when the window is closed.
mainWindow.on('closed', function () {
// Dereference the window object, usually you would store windows

View File

@ -19,7 +19,7 @@ menuService.createMenu = () => {
// let activeWindow = BrowserWindow.getFocusedWindow()
let activeWindow = BrowserWindow.getAllWindows()[0]
activeWindow.show()
activeWindow.webContents.send('about-page-event');
activeWindow.webContents.send('about-page-event')
}
},
{
@ -37,7 +37,7 @@ menuService.createMenu = () => {
click: () => {
let activeWindow = BrowserWindow.getAllWindows()[0]
activeWindow.show()
activeWindow.webContents.send('force-logout-event');
activeWindow.webContents.send('force-logout-event')
}
},
{
@ -49,7 +49,7 @@ menuService.createMenu = () => {
click: () => {
let activeWindow = BrowserWindow.getAllWindows()[0]
activeWindow.show()
activeWindow.webContents.send('preferences-event');
activeWindow.webContents.send('preferences-event')
}
},
{

View File

@ -2,7 +2,7 @@
* Module for Tray functions.
*/
const {Tray} = require('electron')
const { BrowserWindow, Tray } = require('electron')
let trayServiceWindow = null
let tray = null
@ -14,8 +14,10 @@ trayService.initTray = (window) => {
let iconPath = __dirname + '/../resources/images/icon.png'
tray = new Tray(iconPath)
tray.setToolTip('Chimeverse')
tray.on('click', function() {
// Sent open-related-chat event only on click
let activeWindow = BrowserWindow.getAllWindows()[0]
activeWindow.webContents.send('open-unread-chat')
trayService.hideEnvelope()
trayServiceWindow.show()
})

View File

@ -14,11 +14,9 @@ require('./app/controllers/login-controller')
require('./app/controllers/default-controller')
require('./app/controllers/about-controller')
const chimeversePlugin = require('./libs/converse.js/3rdparty/chimeverse-plugin')
chimeversePlugin.register()
angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService, CredentialsServise, SettingsService, AppStateService) {
//const { remote, ipcRenderer } = require('electron')
const { ipcRenderer } = require('electron')
// Menu force logout event
@ -26,17 +24,24 @@ angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService
ChimeVerseService.logout()
let event = new CustomEvent("converse-force-logout") // Dispatch to the plugin
document.dispatchEvent(event)
//remote.getCurrentWindow().reload()
})
// Menu settings event
ipcRenderer.on('preferences-event', () => {
AppStateService.set(AppStateService.APP_STATE_SETTINGS)
})
// Menu about event
ipcRenderer.on('about-page-event', () => {
AppStateService.set(AppStateService.APP_STATE_ABOUT)
})
// Menu about event
ipcRenderer.on('open-unread-chat', () => {
let event = new CustomEvent('conversejs-open-chat', {detail: ChimeVerseService.chatToOpen})
document.dispatchEvent(event)
})
$scope.state = AppStateService.APP_STATE_DEFAULT
$scope.$on('app:state:changed', (event, data) => {
@ -45,7 +50,7 @@ angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService
$scope.state = data
console.log('Switch to the "' + $scope.state +'" state')
}, 0)
});
})
SettingsService.initDefaults()
@ -53,6 +58,7 @@ angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService
let credentials = CredentialsServise.getCredentials()
credentials.then((result) => {
ChimeVerseService.initConverse(result.bosh, result.login, result.password)
chimeversePlugin.register(result.login)
}, (error) => {
AppStateService.set(AppStateService.APP_STATE_LOGIN)
})