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 @@