From d10cb58268726c3b85a2a7baaeb6fda290d7805e Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Wed, 13 May 2020 23:00:36 +0300 Subject: [PATCH] Unify login process --- app/controllers/login-controller.js | 4 +-- app/services/chimeverse-service.js | 47 +++++++++++++++++++---------- index.html | 14 ++++----- renderer.js | 15 ++------- 4 files changed, 43 insertions(+), 37 deletions(-) diff --git a/app/controllers/login-controller.js b/app/controllers/login-controller.js index 4c9e1a7..bda1c54 100644 --- a/app/controllers/login-controller.js +++ b/app/controllers/login-controller.js @@ -7,9 +7,9 @@ angApp.controller('LoginController', function($scope, ChimeVerseService, Credent $scope.credentials.login, $scope.credentials.password ) - ChimeVerseService.initConverse($scope.credentials.bosh, $scope.credentials.login, $scope.credentials.password) + ChimeVerseService.getCredentialsAndLogin() $scope.accountForm.$setPristine() $scope.accountForm.$setUntouched() $scope.credentials = {} } -}); \ No newline at end of file +}) \ No newline at end of file diff --git a/app/services/chimeverse-service.js b/app/services/chimeverse-service.js index d290e87..1f77ef9 100644 --- a/app/services/chimeverse-service.js +++ b/app/services/chimeverse-service.js @@ -1,6 +1,8 @@ let angApp = require(__dirname + '/../init') -angApp.factory('ChimeVerseService', ($window, CredentialsServise, SystemService, AppStateService, SettingsService) => { +const chimeversePlugin = require(__dirname +'/../../libs/converse.js/3rdparty/chimeverse-plugin') + +angApp.factory('ChimeVerseService', ($window, $timeout, CredentialsServise, SystemService, AppStateService, SettingsService) => { let chimeverseService = {} @@ -26,38 +28,51 @@ angApp.factory('ChimeVerseService', ($window, CredentialsServise, SystemService, chimeverseService.initConverse = (bosh, login, password) => { AppStateService.set(AppStateService.APP_STATE_DEFAULT) // Always set to default state before init + chimeversePlugin.register(login) let lang = navigator.language let allowBookmarks = SettingsService.get('allowBookmarks') - converse.initialize({ - allow_bookmarks: allowBookmarks, - bosh_service_url: bosh, - view_mode: 'embedded', - jid: login + '/chimeverse', - password: password, - auto_login: true, - whitelisted_plugins: ['chimeVerse'], - i18n: lang, - priority: 50, - // debug: true, - auto_reconnect: true + $timeout(() => { + converse.initialize({ + allow_bookmarks: allowBookmarks, + bosh_service_url: bosh, + view_mode: 'embedded', + jid: login + '/chimeverse', + password: password, + auto_login: true, + whitelisted_plugins: ['chimeVerse'], + i18n: lang, + priority: 50, + // debug: true, + auto_reconnect: true + }) + }, 50) + } + + chimeverseService.getCredentialsAndLogin = () => { + let credentials = CredentialsServise.getCredentials() + credentials.then((result) => { + chimeverseService.initConverse(result.bosh, result.login, result.password) + }, (error) => { + AppStateService.set(AppStateService.APP_STATE_LOGIN) }) } + 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() - }); + }) $window.document.addEventListener('conversejs-no-unread', function (e) { chimeverseService._hideNotifyMessage() - }); + }) return chimeverseService diff --git a/index.html b/index.html index 8e64b6a..e52d9af 100644 --- a/index.html +++ b/index.html @@ -17,7 +17,7 @@
- +
@@ -52,14 +52,14 @@ \ No newline at end of file diff --git a/renderer.js b/renderer.js index 6c5828f..3dd2b84 100644 --- a/renderer.js +++ b/renderer.js @@ -13,9 +13,8 @@ require('./app/controllers/settings-controller') require('./app/controllers/login-controller') require('./app/controllers/default-controller') require('./app/controllers/about-controller') -const chimeversePlugin = require('./libs/converse.js/3rdparty/chimeverse-plugin') -angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService, CredentialsServise, SettingsService, AppStateService) { +angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService, SettingsService, AppStateService) { const { ipcRenderer } = require('electron') @@ -42,7 +41,7 @@ angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService document.dispatchEvent(event) }) - $scope.state = AppStateService.APP_STATE_DEFAULT + AppStateService.set(AppStateService.APP_STATE_DEFAULT) $scope.$on('app:state:changed', (event, data) => { // @see https://docs.angularjs.org/error/$rootScope/inprog @@ -54,14 +53,6 @@ angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService SettingsService.initDefaults() - $scope.getCredentialsAndLogin = () => { - 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) - }) - } + ChimeVerseService.getCredentialsAndLogin() })