mc-core
Version:
Deployments made simple
64 lines (43 loc) • 1.33 kB
JavaScript
export default ['$rootScope', '$http', '$q', 'socket', function($rootScope, $http, $q, socket) {
$rootScope.showLoginError = false
$rootScope.loginForm = {
email: '',
password: ''
}
$rootScope.showLogin = function showLogin(originalResponse) {
jQuery('#login').fadeIn()
let deferred = $q.defer()
$rootScope.originalResponse = originalResponse
$rootScope.promise = deferred
return deferred.promise
}
$rootScope.attemptLogin = function attemptLogin() {
$http.post('/login', $rootScope.loginForm).then((response) => {
// If there was a request in progress, re-run it
if ($rootScope.originalResponse) {
$rootScope.promise.resolve($http($rootScope.originalResponse.config))
}
// Hide login form
jQuery('#login').hide()
// Reset login errors
$rootScope.showLoginError = false
// Load/reload user details
$rootScope.loadAuthenticatedUser()
// Reconnect to socket.io
socket.disconnect()
socket.connect()
// Reset the form
$rootScope.loginForm = {
email: '',
password: ''
}
}, () => {
$rootScope.showLoginError = true
})
}
$rootScope.logout = function logout() {
$http.post('/logout').then(() => {
$rootScope.showLogin()
})
}
}]