Files

109 lines
4.6 KiB
JavaScript

$(function(){
ls.initTwoFactorService = function(hoe, callback){
if (ls.TwoFactorService !== undefined){
ls.TwoFactorService.initModel(hoe, callback);
}
else {
ls.TwoFactorService = {
hoe : ko.observable(),
tempHoe : ko.observable(),
callback : ko.observable(),
deCode : ko.observable(''),
infoTeksten : ['Open de Google authenticator op uw telefoon en voer de code in.',
'Kijk in uw e-mail voor de code.',],
infoTekst : ko.observable(),
optieTekst : ko.observable(''),
optieBG : ko.observable('#30ACF0'),
kanKlik : ko.observable(false),
codeNogmaals: ko.observable(),
initBindings :function(hoe, callback){
var self = ls.TwoFactorService;
// if (!ko.dataFor(document.getElementById('pagNaam')) ) {
ko.applyBindings(ls.TwoFactorService, document.getElementById("twoFactorDialog"));
// }
self.initModel(hoe, callback);
},
initModel: function(hoe, callback){
let vm = ls.TwoFactorService
vm.deCode('')
vm.optieBG('#30ACF0')
vm.hoe(hoe)
vm.tempHoe(hoe)
vm.callback(callback)
vm.codeNogmaals('')
if (hoe =="GOOGLE") {
vm.infoTekst(vm.infoTeksten[0])
vm.optieTekst('Wilt u eenmalig een code per mail ontvangen? Klik dan hier.');
vm.kanKlik(true)
}
else {
vm.infoTekst(vm.infoTeksten[1])
vm.optieTekst('');
vm.kanKlik(false)
}
let dialog = document.getElementById( "twoFactorDialog" )
dialog.showModal()
},
fCheckCode: function(){
let vm = ls.TwoFactorService
if (vm.deCode().length ==6) {
vm.kanKlik(false)
let optieOud = vm.optieTekst()
vm.optieTekst('Even geduld, de code wordt gecontroleerd.')
let sd ={code: vm.deCode(),
hoe : vm.tempHoe() }
$.post('index.php/Login/checkTwoFactor', sd, function(result){
if (result) {
vm.infoTekst('');
vm.optieTekst(result)
vm.optieBG('#FF2D55');
vm.deCode('')
vm.codeNogmaals("Stuur nogmaals een code per e-mail? Klik hier.");
}
else {
vm.fClose()
}
},'json')
}
},
fSendPerEmail: function(){
let vm = ls.TwoFactorService
vm.optieTekst("Een moment geduld aub");
vm.codeNogmaals('')
vm.kanKlik(false)
$.post( 'index.php/Login/mailCodeOnce', function (error) {
if (error) {
let dialog = document.getElementById( "twoFactorDialog" )
dialog.close()
apprise(error)
}
else {
vm.infoTekst("Er is een e-mail met inlogcode verstuurd. <br> Het kan tot een minuut duren voor u deze ontvangt.")
vm.optieTekst("Verstuur nogmaals een inlogcode? Klik hier.")
vm.kanKlik(true)
vm.tempHoe("EMAIL")
}
} ,'json');
},
fClose: function(){
let vm = ls.TwoFactorService
if (typeof vm.callback() == 'function') {
vm.callback()()
}
let dialog = document.getElementById( "twoFactorDialog" )
dialog.close()
}
} ; // definition van model
ls.TwoFactorService.initBindings(hoe, callback);
}; // else
}// function initTwoFactorService
});