Files
dbois/public/js/lib/modules/login/loginModule.js
T
2018-07-29 10:11:02 +02:00

155 lines
4.2 KiB
JavaScript

/**
* Created by Pensare Software.
* User: Theo Weijmer
* Date: 05/12/2017
* Time: 11:17
*/
var dbo = {};
$( function () {
dbo.loginModel = {
username : ko.observable( '' ),
password : ko.observable( '' ),
email : ko.observable(),
showPasswordRequest: ko.observable( false ),
login: function () {
dbo.loginService.login();
},
requestPassword: function () {
dbo.loginService.requestPassword();
},
togglePasswordrequest: function () {
var vm = dbo.loginModel
vm.showPasswordRequest( !vm.showPasswordRequest() );
}
}
ko.applyBindings( dbo.loginModel, document.getElementById( "login-form" ) );
} );
dbo.loginService = {
login: function () {
var ds = dbo.loginDataservice;
var self = dbo.loginService;
var vm = dbo.loginModel;
self.validateInput( function ( submitDATA ) {
if ( ! submitDATA ) return self.notifyWrongPassword();
ds.login( submitDATA, function ( data ) {
if ( data ) return location.reload();
self.notifyWrongPassword();
} );
} );
},
requestPassword: function () {
var ds = dbo.loginDataservice;
var self = dbo.loginService;
var vm = dbo.loginModel;
self.validateRequestInput( function ( submitDATA ) {
if ( !submitDATA ) return self.notifyWrongRequest();
ds.requestPassword( submitDATA, function ( data ) {
return self.notifyWrongRequest( data.result );
if ( data.result == 'SEND-SUCCESS' ) vm.showPasswordRequest( false );
} );
} );
},
validateInput: function ( callback ) {
var vm = dbo.loginModel;
if ( vm.username().length < 2 ) return callback( false );
if ( vm.password().length < 6 ) return callback( false );
var submitDATA = {
username: vm.username(),
password: vm.password()
}
return callback( submitDATA );
},
validateRequestInput: function ( callback ) {
var vm = dbo.loginModel;
if ( vm.username().length < 2 ) return callback( false );
if ( !dbo.helpers.validateEmail( vm.email() ) ) return callback( false );
var submitDATA = {
username: vm.username(),
email : vm.email()
}
return callback( submitDATA );
},
notifyWrongPassword: function () {
tellMe( {
title : 'Login fout',
message: 'Gebruikersnaam / wachtwoord komen niet overeen'
} );
},
notifyWrongRequest: function ( type = false ) {
var message = '';
var title = '';
var modalClass = '';
console.log( type );
if ( !type || type == 'WRONG-CREDENTIAL' ) {
title = 'credentials fout';
message = 'Fout bij gebruikersnaam / emailadres invoer';
modalClass = 'modal-danger';
}
else if ( type == 'SEND-FAILLURE' ) {
title = 'Fout bij verzneden email';
message = 'email kon niet verzonden worden neem contact op met de helpdesk';
modalClass = 'modal-danger';
}
else if ( type == 'SEND-SUCCESS' ) {
title = 'mail succesvol verzonden';
message = ' er is een email verzonden, kijk in uw postvak, mocht u de mail daar niet aantreffen kijk dan in uw spanfolder';
modalClass = 'modal-succes';
}else{
title = 'Fout bij verzneden email';
message = ' er is een onbekende fout opgetreden neem contact op met de helpdesk';
modalClass = 'modal-danger';
}
tellMe( {
title : title,
message : message,
modalClass: modalClass
} );
}
};
dbo.loginDataservice = {
login: function ( submitDATA, callback ) {
$.post( 'index.php/login/', submitDATA, function ( data ) {
callback( data );
} );
},
requestPassword: function ( submitDATA, callback ) {
$.post( 'index.php/login/requestPassword', submitDATA, function ( data ) {
callback( data );
} );
}
};