Open related chat on tray icon click
This commit is contained in:
parent
49a66a895c
commit
21683ccbca
|
@ -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()
|
||||
});
|
||||
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
|
1
main.js
1
main.js
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -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()
|
||||
})
|
||||
|
|
14
renderer.js
14
renderer.js
|
@ -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)
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue