Unify login process

This commit is contained in:
Nick Denry 2020-05-13 23:00:36 +03:00
parent 7a675ce06b
commit d10cb58268
4 changed files with 43 additions and 37 deletions

View File

@ -7,9 +7,9 @@ angApp.controller('LoginController', function($scope, ChimeVerseService, Credent
$scope.credentials.login, $scope.credentials.login,
$scope.credentials.password $scope.credentials.password
) )
ChimeVerseService.initConverse($scope.credentials.bosh, $scope.credentials.login, $scope.credentials.password) ChimeVerseService.getCredentialsAndLogin()
$scope.accountForm.$setPristine() $scope.accountForm.$setPristine()
$scope.accountForm.$setUntouched() $scope.accountForm.$setUntouched()
$scope.credentials = {} $scope.credentials = {}
} }
}); })

View File

@ -1,6 +1,8 @@
let angApp = require(__dirname + '/../init') 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 = {} let chimeverseService = {}
@ -26,38 +28,51 @@ angApp.factory('ChimeVerseService', ($window, CredentialsServise, SystemService,
chimeverseService.initConverse = (bosh, login, password) => { chimeverseService.initConverse = (bosh, login, password) => {
AppStateService.set(AppStateService.APP_STATE_DEFAULT) // Always set to default state before init AppStateService.set(AppStateService.APP_STATE_DEFAULT) // Always set to default state before init
chimeversePlugin.register(login)
let lang = navigator.language let lang = navigator.language
let allowBookmarks = SettingsService.get('allowBookmarks') let allowBookmarks = SettingsService.get('allowBookmarks')
converse.initialize({ $timeout(() => {
allow_bookmarks: allowBookmarks, converse.initialize({
bosh_service_url: bosh, allow_bookmarks: allowBookmarks,
view_mode: 'embedded', bosh_service_url: bosh,
jid: login + '/chimeverse', view_mode: 'embedded',
password: password, jid: login + '/chimeverse',
auto_login: true, password: password,
whitelisted_plugins: ['chimeVerse'], auto_login: true,
i18n: lang, whitelisted_plugins: ['chimeVerse'],
priority: 50, i18n: lang,
// debug: true, priority: 50,
auto_reconnect: true // 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 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 let sender = e.detail
chimeverseService.chatToOpen = sender chimeverseService.chatToOpen = sender
chimeverseService._notifyMessage() chimeverseService._notifyMessage()
}); })
$window.document.addEventListener('conversejs-no-unread', function (e) { $window.document.addEventListener('conversejs-no-unread', function (e) {
chimeverseService._hideNotifyMessage() chimeverseService._hideNotifyMessage()
}); })
return chimeverseService return chimeverseService

View File

@ -17,7 +17,7 @@
<div class="main-background"></div> <div class="main-background"></div>
<div class="main-window" ng-controller="AppController" ng-cloak> <div class="main-window" ng-controller="AppController" ng-cloak>
<div ng-show="state == 'default'"> <div ng-show="state == 'default'">
<ng-include src="'./app/views/default/page.html'" onload="getCredentialsAndLogin()"></ng-include> <ng-include src="'./app/views/default/page.html'"></ng-include>
</div> </div>
<div ng-show="state == 'login'"> <div ng-show="state == 'login'">
<ng-include src="'./app/views/login/page.html'"></ng-include> <ng-include src="'./app/views/login/page.html'"></ng-include>
@ -52,14 +52,14 @@
</script> </script>
<script> <script>
function loadJs(url) { function loadJs(url) {
var script = document.createElement('script'); var script = document.createElement('script')
script.src = url; script.src = url
script.setAttribute('async', 'true'); script.setAttribute('async', 'true')
document.documentElement.firstChild.appendChild(script); document.documentElement.firstChild.appendChild(script)
} }
setTimeout(function () { setTimeout(function () {
loadJs("./node_modules/github-buttons/dist/buttons.min.js"); loadJs("./node_modules/github-buttons/dist/buttons.min.js")
}, 500); }, 500)
</script> </script>
</body> </body>
</html> </html>

View File

@ -13,9 +13,8 @@ require('./app/controllers/settings-controller')
require('./app/controllers/login-controller') 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')
angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService, CredentialsServise, SettingsService, AppStateService) { angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService, SettingsService, AppStateService) {
const { ipcRenderer } = require('electron') const { ipcRenderer } = require('electron')
@ -42,7 +41,7 @@ angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService
document.dispatchEvent(event) document.dispatchEvent(event)
}) })
$scope.state = AppStateService.APP_STATE_DEFAULT AppStateService.set(AppStateService.APP_STATE_DEFAULT)
$scope.$on('app:state:changed', (event, data) => { $scope.$on('app:state:changed', (event, data) => {
// @see https://docs.angularjs.org/error/$rootScope/inprog // @see https://docs.angularjs.org/error/$rootScope/inprog
@ -54,14 +53,6 @@ angApp.controller('AppController', function ($scope, $timeout, ChimeVerseService
SettingsService.initDefaults() SettingsService.initDefaults()
$scope.getCredentialsAndLogin = () => { ChimeVerseService.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)
})
}
}) })