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) {
|
$window.document.addEventListener('conversejs-logout', function (e) {
|
||||||
chimeverseService.logout()
|
chimeverseService.logout()
|
||||||
});
|
});
|
||||||
|
|
||||||
$window.document.addEventListener('conversejs-unread', function (e) {
|
$window.document.addEventListener('conversejs-unread', function (e) {
|
||||||
|
let sender = e.detail
|
||||||
|
chimeverseService.chatToOpen = sender
|
||||||
chimeverseService._notifyMessage()
|
chimeverseService._notifyMessage()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
let chimeversePlugin = {}
|
let chimeversePlugin = {}
|
||||||
|
|
||||||
chimeversePlugin.register = () => {
|
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
|
||||||
|
@ -9,16 +9,23 @@ chimeversePlugin.register = () => {
|
||||||
_converse.api.waitUntil('chatBoxesFetched')
|
_converse.api.waitUntil('chatBoxesFetched')
|
||||||
]).then(() => {
|
]).then(() => {
|
||||||
_converse.api.listen.on('logout', () => {
|
_converse.api.listen.on('logout', () => {
|
||||||
let event = new CustomEvent("conversejs-logout")
|
let event = new CustomEvent('conversejs-logout')
|
||||||
document.dispatchEvent(event)
|
document.dispatchEvent(event)
|
||||||
})
|
})
|
||||||
_converse.api.listen.on('message', (data) => {
|
_converse.api.listen.on('message', (data) => {
|
||||||
let event = new CustomEvent("conversejs-unread")
|
let sender = data.stanza.attributes.from.nodeValue
|
||||||
document.dispatchEvent(event)
|
let senderJid = sender
|
||||||
//chimeverseService._notifyMessage(data)
|
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', () => {
|
_converse.api.listen.on('chatBoxFocused', () => {
|
||||||
let event = new CustomEvent("conversejs-no-unread")
|
let event = new CustomEvent('conversejs-no-unread')
|
||||||
document.dispatchEvent(event)
|
document.dispatchEvent(event)
|
||||||
//chimeverseService._hideNotifyMessage()
|
//chimeverseService._hideNotifyMessage()
|
||||||
})
|
})
|
||||||
|
@ -27,7 +34,14 @@ chimeversePlugin.register = () => {
|
||||||
console.log('Logout form plugin')
|
console.log('Logout form plugin')
|
||||||
_converse.api.user.logout();
|
_converse.api.user.logout();
|
||||||
//chimeverseService.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.
|
// Emitted when the window is closed.
|
||||||
mainWindow.on('closed', function () {
|
mainWindow.on('closed', function () {
|
||||||
// Dereference the window object, usually you would store windows
|
// Dereference the window object, usually you would store windows
|
||||||
|
|
|
@ -19,7 +19,7 @@ menuService.createMenu = () => {
|
||||||
// let activeWindow = BrowserWindow.getFocusedWindow()
|
// let activeWindow = BrowserWindow.getFocusedWindow()
|
||||||
let activeWindow = BrowserWindow.getAllWindows()[0]
|
let activeWindow = BrowserWindow.getAllWindows()[0]
|
||||||
activeWindow.show()
|
activeWindow.show()
|
||||||
activeWindow.webContents.send('about-page-event');
|
activeWindow.webContents.send('about-page-event')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -37,7 +37,7 @@ menuService.createMenu = () => {
|
||||||
click: () => {
|
click: () => {
|
||||||
let activeWindow = BrowserWindow.getAllWindows()[0]
|
let activeWindow = BrowserWindow.getAllWindows()[0]
|
||||||
activeWindow.show()
|
activeWindow.show()
|
||||||
activeWindow.webContents.send('force-logout-event');
|
activeWindow.webContents.send('force-logout-event')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -49,7 +49,7 @@ menuService.createMenu = () => {
|
||||||
click: () => {
|
click: () => {
|
||||||
let activeWindow = BrowserWindow.getAllWindows()[0]
|
let activeWindow = BrowserWindow.getAllWindows()[0]
|
||||||
activeWindow.show()
|
activeWindow.show()
|
||||||
activeWindow.webContents.send('preferences-event');
|
activeWindow.webContents.send('preferences-event')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Module for Tray functions.
|
* Module for Tray functions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const {Tray} = require('electron')
|
const { BrowserWindow, Tray } = require('electron')
|
||||||
|
|
||||||
let trayServiceWindow = null
|
let trayServiceWindow = null
|
||||||
let tray = null
|
let tray = null
|
||||||
|
@ -14,8 +14,10 @@ trayService.initTray = (window) => {
|
||||||
let iconPath = __dirname + '/../resources/images/icon.png'
|
let iconPath = __dirname + '/../resources/images/icon.png'
|
||||||
tray = new Tray(iconPath)
|
tray = new Tray(iconPath)
|
||||||
tray.setToolTip('Chimeverse')
|
tray.setToolTip('Chimeverse')
|
||||||
|
|
||||||
tray.on('click', function() {
|
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()
|
trayService.hideEnvelope()
|
||||||
trayServiceWindow.show()
|
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/default-controller')
|
||||||
require('./app/controllers/about-controller')
|
require('./app/controllers/about-controller')
|
||||||
const chimeversePlugin = require('./libs/converse.js/3rdparty/chimeverse-plugin')
|
const chimeversePlugin = require('./libs/converse.js/3rdparty/chimeverse-plugin')
|
||||||
chimeversePlugin.register()
|
|
||||||
|
|
||||||
angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService, CredentialsServise, SettingsService, AppStateService) {
|
angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService, CredentialsServise, SettingsService, AppStateService) {
|
||||||
|
|
||||||
//const { remote, ipcRenderer } = require('electron')
|
|
||||||
const { ipcRenderer } = require('electron')
|
const { ipcRenderer } = require('electron')
|
||||||
|
|
||||||
// Menu force logout event
|
// Menu force logout event
|
||||||
|
@ -26,17 +24,24 @@ angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService
|
||||||
ChimeVerseService.logout()
|
ChimeVerseService.logout()
|
||||||
let event = new CustomEvent("converse-force-logout") // Dispatch to the plugin
|
let event = new CustomEvent("converse-force-logout") // Dispatch to the plugin
|
||||||
document.dispatchEvent(event)
|
document.dispatchEvent(event)
|
||||||
//remote.getCurrentWindow().reload()
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// Menu settings event
|
// Menu settings event
|
||||||
ipcRenderer.on('preferences-event', () => {
|
ipcRenderer.on('preferences-event', () => {
|
||||||
AppStateService.set(AppStateService.APP_STATE_SETTINGS)
|
AppStateService.set(AppStateService.APP_STATE_SETTINGS)
|
||||||
})
|
})
|
||||||
|
|
||||||
// Menu about event
|
// Menu about event
|
||||||
ipcRenderer.on('about-page-event', () => {
|
ipcRenderer.on('about-page-event', () => {
|
||||||
AppStateService.set(AppStateService.APP_STATE_ABOUT)
|
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.state = AppStateService.APP_STATE_DEFAULT
|
||||||
|
|
||||||
$scope.$on('app:state:changed', (event, data) => {
|
$scope.$on('app:state:changed', (event, data) => {
|
||||||
|
@ -45,7 +50,7 @@ angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService
|
||||||
$scope.state = data
|
$scope.state = data
|
||||||
console.log('Switch to the "' + $scope.state +'" state')
|
console.log('Switch to the "' + $scope.state +'" state')
|
||||||
}, 0)
|
}, 0)
|
||||||
});
|
})
|
||||||
|
|
||||||
SettingsService.initDefaults()
|
SettingsService.initDefaults()
|
||||||
|
|
||||||
|
@ -53,6 +58,7 @@ angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService
|
||||||
let credentials = CredentialsServise.getCredentials()
|
let credentials = CredentialsServise.getCredentials()
|
||||||
credentials.then((result) => {
|
credentials.then((result) => {
|
||||||
ChimeVerseService.initConverse(result.bosh, result.login, result.password)
|
ChimeVerseService.initConverse(result.bosh, result.login, result.password)
|
||||||
|
chimeversePlugin.register(result.login)
|
||||||
}, (error) => {
|
}, (error) => {
|
||||||
AppStateService.set(AppStateService.APP_STATE_LOGIN)
|
AppStateService.set(AppStateService.APP_STATE_LOGIN)
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue