399 lines
12 KiB
JavaScript
399 lines
12 KiB
JavaScript
$(function(){
|
|
|
|
ls.initGebruikersModel = function(){
|
|
var timer;
|
|
|
|
function fAddOrgs(p){
|
|
var dit =this;
|
|
this.id = p.id;
|
|
this.naam = p.naam
|
|
this.geopend = ko.observable(false);
|
|
this.orgs1 = ko.observableArray([]);
|
|
if (p.orgs){
|
|
$.each(p.orgs, function(j,k){
|
|
dit.orgs1.push(new fAddOrgs1(k));
|
|
})
|
|
}
|
|
}
|
|
function fAddOrgs1(p){
|
|
var dit =this;
|
|
this.id = p.id;
|
|
this.naam = p.naam
|
|
this.geopend = ko.observable(false);
|
|
this.orgs2 = ko.observableArray([]);
|
|
if (p.orgs){
|
|
$.each(p.orgs, function(j,k){
|
|
dit.orgs2.push(new fAddOrgs2(k));
|
|
})
|
|
}
|
|
}
|
|
function fAddOrgs2(p){
|
|
var dit =this;
|
|
this.id = p.id;
|
|
this.naam = p.naam
|
|
this.geopend = ko.observable(false);
|
|
this.orgs3 = ko.observableArray([]);
|
|
if (p.orgs){
|
|
$.each(p.orgs, function(j,k){
|
|
dit.orgs3.push(new fAddOrgs3(k));
|
|
})
|
|
}
|
|
}
|
|
function fAddOrgs3(p){
|
|
var dit =this;
|
|
this.id = p.id;
|
|
this.naam = p.naam
|
|
this.brin = p.brin
|
|
}
|
|
|
|
function fAddGebruiker(p){
|
|
this.userid = p ? p.userid : null;
|
|
this.actief = ko.observable(p.OUactief );
|
|
this.voornaam = ko.observable(p.voornaam );
|
|
this.tussenvoegsel = ko.observable(p.tussenvoegsel);
|
|
this.achternaam = ko.observable(p.achternaam );
|
|
this.email = ko.observable(p.email ) ;
|
|
if (p.gnaam){
|
|
this.gnaam = ko.observable(p.gnaam);
|
|
}
|
|
else{
|
|
this.gnaam = ko.observable('');
|
|
}
|
|
this.autorisatienivoid = ko.observable(p.nivo_id );
|
|
this.autorisatienaam = ko.observable(p.autorisatienaam );
|
|
this.deleteOK = ko.observable(true); // wordt nu nog niets meegedaan
|
|
|
|
};
|
|
|
|
function fMaakEmptyUser(){
|
|
this.userid = 0;
|
|
this.actief = ko.observable(1);
|
|
this.voornaam = ko.observable('');
|
|
this.tussenvoegsel = ko.observable('');
|
|
this.achternaam = ko.observable('');
|
|
this.email = ko.observable('') ;
|
|
this.gnaam = ko.observable('');
|
|
this.autorisatienivoid = ko.observable(0);
|
|
this.autorisatienaam = ko.observable('');
|
|
this.deleteOK = ko.observable(true);
|
|
|
|
}
|
|
function fAddFunctieNewUser(p){
|
|
var dit = this;
|
|
this.id = p.id//functieid
|
|
this.functienaam = p.functienaam;
|
|
this.gekoppeld = 'F';
|
|
this.isFunctie = ko.observable(false);
|
|
}
|
|
|
|
function fAddAutorisatie(p){
|
|
this.id = p.id; // is autorisatienivo id
|
|
this.naam = p.naam
|
|
|
|
}
|
|
function fAddOtherUser(p){
|
|
this.id = p.id ; //userid
|
|
this.fullname = p.fullname;
|
|
this.autorisatienivoid = ko.observable(10);
|
|
}
|
|
|
|
|
|
if (ls.GebruikersModel !== undefined){
|
|
ls.GebruikersModel.initModel();
|
|
}
|
|
else {
|
|
ls.GebruikersModel = {
|
|
orgs : ko.observable(''),
|
|
selectedOrg : ko.observable(),
|
|
gebruikers : ko.observableArray([]),
|
|
toonactief : ko.observable('1'),
|
|
selectedUser : ko.observable(),
|
|
selectedUserOld : ko.observable(), // een kopie van de geselecteerde user
|
|
copyUser : ko.observable(),
|
|
otherUsers : ko.observableArray([]),
|
|
functies :ko.observableArray([]),
|
|
zoekstring : ko.observable(''),
|
|
titel : ko.observable({title: ko.observable(), status: ko.observable()} ),
|
|
autorisatieopties : ko.observableArray([]),
|
|
focusop : ko.observable(1), //werkt weer eens niet
|
|
bezig : ko.observable(false),
|
|
|
|
initBindings :function(){
|
|
var self = ls.GebruikersModel;
|
|
|
|
if (!ko.dataFor(document.getElementById('pagGebruikersxx')) ) {
|
|
ko.applyBindings(ls.GebruikersModel, document.getElementById("pagGebruikersxx"));
|
|
}
|
|
self.initModel();
|
|
},
|
|
|
|
initModel: function(){
|
|
var self=ls.GebruikersModel;
|
|
self.gebruikers.removeAll();
|
|
|
|
$.post("index.php/shared/users/getorgs", function(orgs){
|
|
|
|
self.orgs('');
|
|
if (orgs){
|
|
self.orgs(new fAddOrgs(orgs));
|
|
self.selectedOrg(self.orgs());
|
|
self.fGetGebruikers();
|
|
}
|
|
|
|
self.autorisatieopties.removeAll()
|
|
$.post("index.php/shared/autorisatienivos/getautorisaties", function(data){
|
|
if (data){
|
|
$.each(data, function(i,p){
|
|
self.autorisatieopties.push(new fAddAutorisatie(p));
|
|
});
|
|
}
|
|
},'json');
|
|
},'json'); // getorgs
|
|
},
|
|
filteruser: function(others, filternaam){
|
|
return others().filter(function(user){
|
|
return ( filternaam() == ''||
|
|
(user.fullname).toUpperCase() == (filternaam()).toUpperCase() ||
|
|
(user.fullname).toUpperCase().indexOf((filternaam()).toUpperCase() ) > -1
|
|
);
|
|
});
|
|
},
|
|
|
|
fGetGebruikers: function(){
|
|
var self = ls.GebruikersModel;
|
|
self.gebruikers.removeAll();
|
|
if (self.selectedOrg() != undefined){
|
|
$.post("index.php/shared/users/getorggebruikers/" + self.selectedOrg().id, function(data){
|
|
if (data){
|
|
$.each(data, function(i,p){
|
|
self.gebruikers.push(new fAddGebruiker(p));
|
|
});
|
|
}
|
|
},'json'); //getorggebruikers
|
|
};
|
|
},
|
|
fPopNew: function(){
|
|
var self=ls.GebruikersModel;
|
|
self.selectedUser(new fMaakEmptyUser());
|
|
// hier ipv 0 het laagst mogelijke recht?
|
|
self.selectedUser().autorisatienivoid(self.autorisatieopties()[0].id);
|
|
self.titel().title("Nieuwe gebruiker");
|
|
self.titel().status(1);
|
|
self.focusop(1);
|
|
$("#modEditUser").modal("show");
|
|
},
|
|
fPopEdit: function(){
|
|
var self=ls.GebruikersModel;
|
|
self.selectedUser(new fMaakEmptyUser())
|
|
self.selectedUserOld(this);
|
|
self.selectedUser().userid=this.userid;
|
|
self.selectedUser().gnaam(this.gnaam());
|
|
self.selectedUser().voornaam(this.voornaam());
|
|
self.selectedUser().tussenvoegsel(this.tussenvoegsel());
|
|
self.selectedUser().achternaam(this.achternaam());
|
|
self.selectedUser().email(this.email());
|
|
self.selectedUser().autorisatienivoid(this.autorisatienivoid());
|
|
self.titel().title("Wijzig gebruikergegevens");
|
|
|
|
self.titel().status(2);
|
|
if (self.selectedUser().gnaam() == "" ) self.titel().status(3);
|
|
self.focusop(1);
|
|
$("#modEditUser").modal("show");
|
|
},
|
|
fDelete: function(){
|
|
var self=ls.GebruikersModel;
|
|
var that = this;
|
|
apprise("Weet u zeker dat u deze gebruiker wilt verwijderen? " , {verify:true, textYes:'ja', textNo:'nee'},function(ans){
|
|
if (ans) {
|
|
$.post("index.php/shared/users/deleteuser/" + that.userid+ '/'+self.selectedOrg().id, function(result){
|
|
if (result){
|
|
if (result.ok) {
|
|
if (!result.user){
|
|
self.gebruikers.remove(that);
|
|
}
|
|
else{
|
|
that.actief(result.user.OUactief);
|
|
that.autorisatienaam(result.user.autorisatienaam);
|
|
that.autorisatienivoid(result.user.nivo_id);
|
|
}
|
|
}
|
|
if (result.errortekst){
|
|
apprise(result.errortekst);
|
|
}
|
|
}
|
|
},'json');
|
|
}; // if ans
|
|
});
|
|
},
|
|
|
|
fSaveActiefStatus: function(){
|
|
var self=ls.GebruikersModel;
|
|
var that = this;
|
|
var status = 1;
|
|
if (this.actief() == 1){status = 0 }
|
|
var submitData ={userid : this.userid,
|
|
status : status}
|
|
$.post('index.php/shared/users/savestatus', submitData,function(){
|
|
that.actief(status);
|
|
});
|
|
return true;
|
|
},
|
|
fSaveUser: function(){
|
|
var self =ls.GebruikersModel;
|
|
var errortekst = '';
|
|
if (self.bezig() ) return;
|
|
self.bezig(true);
|
|
var submitData = {orgid : self.selectedOrg().id,
|
|
id : self.selectedUser().userid,
|
|
voornaam : self.selectedUser().voornaam(),
|
|
tussenvoegsel : self.selectedUser().tussenvoegsel(),
|
|
achternaam : self.selectedUser().achternaam(),
|
|
email : self.selectedUser().email(),
|
|
gnaam : self.selectedUser().gnaam(),
|
|
autorisatienivoid : self.selectedUser().autorisatienivoid(),
|
|
status : self.titel().status()} ;
|
|
// controleer e-mail
|
|
if (!checkEmail(self.selectedUser().email()) ){
|
|
apprise("Het e-mailadres is niet correct.");
|
|
self.focusop(1);
|
|
self.bezig(false);
|
|
return;
|
|
}
|
|
else {
|
|
if (self.titel().status()==1){
|
|
$.post("index.php/shared/users/adduser", submitData,function(result){
|
|
if (result && result.ok){
|
|
self.gebruikers.push(new fAddGebruiker(result.user));
|
|
self.gebruikers.sort(function(left,right){
|
|
lft = left.achternaam().toUpperCase();
|
|
rght = right.achternaam().toUpperCase();
|
|
return lft == rght ? 0 : (lft < rght ? -1 : 1)
|
|
});
|
|
self.bezig(false);
|
|
$("#modEditUser").modal("hide");
|
|
}
|
|
else {
|
|
apprise(result.errortekst);
|
|
self.bezig(false);
|
|
self.focusop(1);
|
|
}
|
|
self.bezig(false);
|
|
},'json');
|
|
}
|
|
else { // status = 2 dus update
|
|
$.post("index.php/shared/users/updateuser2",submitData,function(result){
|
|
|
|
if (result) {
|
|
// hier nog alle waarden (terug)zetten.
|
|
self.selectedUserOld().actief(result.user.OUactief);
|
|
self.selectedUserOld().voornaam(result.user.voornaam);
|
|
self.selectedUserOld().tussenvoegsel(result.user.tussenvoegsel);
|
|
self.selectedUserOld().achternaam(result.user.achternaam);
|
|
self.selectedUserOld().email(result.user.email);
|
|
self.selectedUserOld().gnaam(result.user.gnaam);
|
|
self.selectedUserOld().autorisatienivoid(result.user.nivo_id);
|
|
self.selectedUserOld().autorisatienaam(result.user.autorisatienaam);
|
|
self.focusop(1);
|
|
|
|
self.gebruikers.sort(function(left,right){
|
|
lft = left.achternaam().toUpperCase();
|
|
rght = right.achternaam().toUpperCase();
|
|
return lft == rght ? 0 : (lft < rght ? -1 : 1)
|
|
});
|
|
if (!result.ok){ apprise(result.errortekst);}
|
|
else{
|
|
ls.MsgAutoFade(1000,"Gebruikergegevens zijn opgeslagen");
|
|
self.selectedUserOld().autorisatienaam(result.user.autorisatienaam);
|
|
// ALS DE GEWIJZIGDE GEGEVENS VAN DE HUIDIGE GEBRUIKER ZIJN MOET DE FULLNAME ONDER HET MENU
|
|
// WORDEN AANGEPAST
|
|
if (result.fullname.length > 0){
|
|
ls.MenuModel.user(result.fullname);
|
|
}
|
|
self.bezig(false);
|
|
$("#modEditUser").modal("hide");
|
|
}
|
|
}
|
|
self.bezig(false);
|
|
},'json');
|
|
}
|
|
}
|
|
},
|
|
|
|
fSendNewWW: function(){
|
|
var self = ls.GebruikersModel;
|
|
|
|
if (self.bezig()) return
|
|
let sd = {userid: self.selectedUser().userid,
|
|
orgid : self.selectedOrg().id}
|
|
self.bezig(true)
|
|
$.post("index.php/shared/users/SendNewWW" ,sd, function(result){
|
|
if (result) {
|
|
apprise("Er is een e-mail verstuurd naar " +self.selectedUser().email() + " met daarin het nieuwe wachtwoord.");
|
|
}
|
|
self.bezig(false)
|
|
},'json');
|
|
},
|
|
|
|
fToggleGeopend : function(){
|
|
this.geopend(!this.geopend());
|
|
},
|
|
fSetSelected : function(){
|
|
var self = ls.GebruikersModel;
|
|
if (self.selectedOrg() && self.selectedOrg().id == this.id) return;
|
|
self.selectedOrg(this);
|
|
self.fGetGebruikers();
|
|
},
|
|
|
|
|
|
fPopCopy : function(){
|
|
var self= ls.GebruikersModel;
|
|
showAjaxLoader();
|
|
self.fGetOtherUsers(function(){self.fOpenPopUp()})
|
|
|
|
},
|
|
|
|
|
|
fGetOtherUsers: function(callback){
|
|
var self= ls.GebruikersModel;
|
|
|
|
$.post("index.php/shared/users/getotherusers/" + self.selectedOrg().id, function (data) {
|
|
self.otherUsers.removeAll();
|
|
if (data) {
|
|
$.each(data, function (i, p) {
|
|
self.otherUsers.push(new fAddOtherUser(p));
|
|
}); // each
|
|
}
|
|
|
|
if (typeof callback == "function") callback()
|
|
hideAjaxLoader();
|
|
}, 'json');
|
|
|
|
|
|
|
|
},
|
|
|
|
fOpenPopUp: function(){
|
|
var self= ls.GebruikersModel;
|
|
$("#modCopyUser").modal('show');
|
|
|
|
},
|
|
|
|
fSaveCopyUser :function(){
|
|
var self= ls.GebruikersModel;
|
|
var submitData={ userid : self.copyUser().id,
|
|
orgid : self.selectedOrg().id,
|
|
autorisatie : self.copyUser().autorisatienivoid()}
|
|
$.post("index.php/shared/users/savecopyuser", submitData,function(result){
|
|
if (result){
|
|
self.gebruikers.push(new fAddGebruiker(result));
|
|
}
|
|
$("#modCopyUser").modal("hide");
|
|
},'json');
|
|
}
|
|
} ; // definition van model
|
|
|
|
ls.GebruikersModel.initBindings();
|
|
|
|
}; // else
|
|
}// function initGebruikersModel
|
|
}); |