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.password
)
ChimeVerseService.initConverse($scope.credentials.bosh, $scope.credentials.login, $scope.credentials.password)
ChimeVerseService.getCredentialsAndLogin()
$scope.accountForm.$setPristine()
$scope.accountForm.$setUntouched()
$scope.credentials = {}
}
});
})

View File

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

View File

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

View File

@ -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()
})