484 lines
16 KiB
JavaScript
484 lines
16 KiB
JavaScript
$(function(){
|
|
|
|
ls.initMenuModel = function(){
|
|
|
|
function fAddMenuitem(p){
|
|
var dit = this;
|
|
this.id = p.id;
|
|
this.naam = p.naam;
|
|
this.paginanaam = p.paginanaam;
|
|
this.holdernaam = p.holdernaam;
|
|
this.gekozen = ko.observable(false);
|
|
this.subpaginas = ko.observableArray([]);
|
|
if(p.holdernaam === "sophoofd"){
|
|
$.each(p.subpaginas, function(i,s){
|
|
dit.subpaginas.push(new fAddSubpagina(s));
|
|
})
|
|
}
|
|
}
|
|
function fAddSubpagina(s){
|
|
this.id = s.id;
|
|
this.naam = s.naam;
|
|
this.paginanaam = s.paginanaam;
|
|
this.holdernaam = s.holdernaam;
|
|
this.volgorde = s.volgorde;
|
|
this.subgekozen = ko.observable(false);
|
|
}
|
|
|
|
|
|
function fAddOrg(p){
|
|
this.id = p.id;
|
|
this.brin = p.brin;
|
|
this.naamkort = p.naamkort;
|
|
this.naam = p.naam;
|
|
|
|
this.valtonderid = p.valtonder_id;
|
|
}
|
|
function fAddHandleiding(p){
|
|
this.id = p.id;
|
|
this.schermnaam = p.schermnaam;
|
|
this.documentnaam = p.documentnaam;
|
|
this.nummer = p.nummer;
|
|
}
|
|
|
|
var module = 0;
|
|
var vandaag = new Date();
|
|
|
|
function fAddSchool(p){
|
|
this.id = p.id;
|
|
this.brin = p.brin;
|
|
this.naamkort = p.naamkort;
|
|
this.naam = p.naam;
|
|
this.shownaam = p.brin + ' - ' + p.naamkort;
|
|
}
|
|
function fAddSchooljaar(p){
|
|
this.schooljaarnr = p.schooljaarnr;
|
|
this.naam = p.naam;
|
|
this.start = p.start;
|
|
this.eind = p.eind;
|
|
}
|
|
|
|
|
|
if (ls.MenuModel !== undefined){
|
|
ls.MenuModel.initModel();
|
|
}
|
|
else {
|
|
ls.MenuModel = {
|
|
menuitems : ko.observableArray([]),
|
|
user : ko.observable(),
|
|
organisatie : ko.observable(),
|
|
selectedOrganisatie : ko.observable(),
|
|
newvoornaam : ko.observable(),
|
|
newtussenvoegsel : ko.observable(),
|
|
newachternaam : ko.observable(),
|
|
newemail : ko.observable(),
|
|
newwachtwoord1 : ko.observable(''),
|
|
newwachtwoord2 : ko.observable(''),
|
|
zout : ko.observable(),
|
|
twofactor : ko.observable("EMAIL"),
|
|
googleAuthenticatorUrl: ko.observable(),
|
|
zoekstring : ko.observable(''),
|
|
alleorganisaties : ko.observableArray([]),
|
|
handleidingen : ko.observableArray([]),
|
|
module : ko.observable(0),
|
|
modulenaam : ko.observable('Instrumenten'),
|
|
boolSchool : ko.observable(false),
|
|
scholen : ko.observableArray([]),
|
|
selectedSchool : ko.observable(),
|
|
filternaam : ko.observable(''),
|
|
schooljaren : ko.observableArray([]),
|
|
selectedSchooljaar : ko.observable(),
|
|
toonScholen : ko.observable(true),
|
|
logo : ko.observable("monpas.png"),
|
|
|
|
|
|
initModel : function(){
|
|
var self = ls.MenuModel;
|
|
self.menuitems.removeAll();
|
|
$.post("index.php/shared/menu/get_menu",function(data){
|
|
self.organisatie(data.organisatie);
|
|
self.menuitems.removeAll();
|
|
if (data.menu){
|
|
$.each(data.menu, function(i,p){
|
|
|
|
self.menuitems.push(new fAddMenuitem(p));
|
|
}); // foreach
|
|
if (self.menuitems()[0]){
|
|
self.menuitems()[0].gekozen(true);
|
|
}
|
|
self.user(data.user);
|
|
|
|
self.module(data.module);
|
|
if(self.module() == 90 || self.module() == 610 ) self.logo("logokokoklein.png")
|
|
};
|
|
self.modulenaam(data.modulenaam);
|
|
|
|
$.post("index.php/shared/organisaties/getscholenvoormenu/" + self.module(), function(result){
|
|
if (result){
|
|
self.boolSchool(result.school);
|
|
self.scholen.removeAll();
|
|
self.selectedSchool(null);
|
|
$.each(result.scholen,function(i,p){
|
|
self.scholen.push(new fAddSchool(p));
|
|
}); // each
|
|
self.scholen.sort(function(left,right){
|
|
return left.naamkort == right.naamkort ? 0 : (left.naamkort < right.naamkort ? -1 : 1)
|
|
});
|
|
self.selectedSchool(self.scholen()[0]);
|
|
}; // if result
|
|
|
|
$.post("index.php/shared/schooljaren/getschooljaren", function(result){
|
|
self.schooljaren.removeAll();
|
|
if (result){
|
|
$.each(result, function(i,p){
|
|
self.schooljaren.push(new fAddSchooljaar(p));
|
|
}); // each
|
|
$.each(self.schooljaren(), function(j,k){
|
|
if (vandaag >= new Date(k.start+"T00:00:00") &&
|
|
vandaag <= new Date(k.eind+"T00:00:00") ){
|
|
self.selectedSchooljaar(k);
|
|
return false;
|
|
}; //if
|
|
}); // each
|
|
}
|
|
|
|
// self.fChangeSchooljaar();
|
|
self.toonScholen(true);
|
|
self.fGetPagina(self.menuitems()[0].holdernaam);
|
|
if (self.module() === 0) ls.initPortalModel();
|
|
},'json');
|
|
},'json');
|
|
},'json');
|
|
},
|
|
filter: function(scholen, filternaam){
|
|
return scholen().filter(function(school){
|
|
return ( filternaam() === '' ||
|
|
(school.naamkort).toUpperCase() === (filternaam()).toUpperCase() ||
|
|
(school.naamkort).toUpperCase().indexOf((filternaam()).toUpperCase() ) > -1 ||
|
|
(school.naam).toUpperCase().indexOf((filternaam()).toUpperCase() ) > -1
|
|
);
|
|
});
|
|
},
|
|
filterorg: function(alleorganisaties, zoekstring){
|
|
return alleorganisaties().filter(function(organisatie){
|
|
return ( zoekstring() === '' ||
|
|
(organisatie.naamkort).toUpperCase() === (zoekstring()).toUpperCase() ||
|
|
(organisatie.naamkort).toUpperCase().indexOf((zoekstring()).toUpperCase() ) > -1 ||
|
|
|
|
(organisatie.brin).toUpperCase().indexOf((zoekstring()).toUpperCase() ) > -1
|
|
);
|
|
});
|
|
},
|
|
fChangeSchool : function(){
|
|
var self = ls.MenuModel;
|
|
var id = null;
|
|
var module = self.module();
|
|
|
|
if (self.selectedSchool()) {
|
|
id = self.selectedSchool().id;
|
|
}
|
|
|
|
$.post("index.php/monpas/modulebalk/setselectedschool/" + id, function(result){
|
|
if(result){
|
|
if (ls.ColofonModel !== undefined) {ls.ColofonModel.initModel();}
|
|
if (ls.GroepenModel !== undefined) {ls.GroepenModel.initModel(module);}
|
|
if (ls.DiversiteitModel !== undefined) {ls.DiversiteitModel.initModel(module);}
|
|
if (mh.DiversiteitSOModel !== undefined) {mh.DiversiteitSOModel.initModel();}
|
|
if(ls.OndersteuningModel !== undefined) {ls.OndersteuningModel.initModel(module);}
|
|
// self.selectedSchool('');
|
|
}
|
|
}, 'json');
|
|
},
|
|
fChangeSchooljaar: function(){
|
|
var self = ls.MenuModel;
|
|
var nr = null;
|
|
var module = self.module();
|
|
if (self.selectedSchooljaar()) {nr = self.selectedSchooljaar().schooljaarnr};
|
|
$.post("index.php/monpas/modulebalk/setselectedschooljaar/" + nr, function(result){
|
|
if(result) {
|
|
if (ls.GroepenModel !== undefined) {
|
|
ls.GroepenModel.initModel(module);
|
|
}
|
|
if (ls.DiversiteitModel !== undefined) {
|
|
|
|
ls.DiversiteitModel.initModel(module);
|
|
}
|
|
if (ls.OndersteuningModel !== undefined) {
|
|
ls.OndersteuningModel.initModel(module);
|
|
}
|
|
if (ls.MonDivModel !== undefined) {
|
|
if (ls.MonDivModel.selectedCriterium() !== undefined) {
|
|
ls.MonDivModel.fHaalOverzichtenOp(nr, module);
|
|
}
|
|
else {
|
|
ls.MonDivModel.initModel(module);
|
|
}
|
|
}
|
|
if (mh.DiversiteitSOModel !== undefined) {
|
|
mh.DiversiteitSOModel.initModel();
|
|
}
|
|
if (mh.GroepensoModel !== undefined) {
|
|
mh.GroepensoModel.initModel();
|
|
}
|
|
if (mh.OndersteuningSOModel !== undefined) {
|
|
mh.OndersteuningSOModel.initModel();
|
|
}
|
|
if (mh.MonDivSOModel !== undefined) {
|
|
mh.MonDivSOModel.initModel();
|
|
}
|
|
}
|
|
}, 'json');
|
|
},
|
|
|
|
fSetMenu: function(){
|
|
var self=ls.MenuModel;
|
|
var that = this;
|
|
self.toonScholen(true);
|
|
if (this.gekozen() ) return;
|
|
$.each(self.menuitems(), function(i,p){
|
|
p.gekozen(false);
|
|
});
|
|
that.gekozen(true);
|
|
if(that.holdernaam === "monitordiversiteit" || that.holdernaam === "monitordiversiteitso" ){
|
|
self.toonScholen(false);
|
|
}
|
|
self.fGetPagina(that.holdernaam);
|
|
},
|
|
|
|
|
|
fSetSubmenu: function(){
|
|
var self=ls.MenuModel;
|
|
var that = this;
|
|
|
|
self.toonScholen(true);
|
|
$.each(self.menuitems(), function (i, m){
|
|
m.gekozen(false);
|
|
$.each(m.subpaginas(), function (x, s){
|
|
s.subgekozen(false);
|
|
if(that.id === s.id ){
|
|
s.subgekozen(true);
|
|
m.gekozen(true);
|
|
|
|
}
|
|
});
|
|
});
|
|
|
|
this.subgekozen(true);
|
|
self.fGetPagina(that.holdernaam);
|
|
},
|
|
|
|
fUitloggen: function(){
|
|
$.post("index.php/login/logout",function(){
|
|
location.reload();
|
|
});
|
|
},
|
|
fGetPagina: function(menunaam){
|
|
var self = ls.MenuModel;
|
|
var dit = this;
|
|
var module = self.module();
|
|
$('.mainpagina').fadeOut();
|
|
|
|
switch (menunaam){
|
|
|
|
case "portal" : if (self.module() != 0)
|
|
{
|
|
$.post("index.php/shared/portal/naarmodule/0" , function(){
|
|
location.reload();
|
|
});
|
|
}
|
|
else{
|
|
$('#pag'+ menunaam).fadeIn(500);
|
|
}
|
|
return;
|
|
break;
|
|
case "home" : ls.initHomeModel();
|
|
break;
|
|
case "ijkpunten" : ls.initIJkpuntenModel();
|
|
break;
|
|
case "overzichtscores" : ls.initOverzichtScoresModel();
|
|
break;
|
|
case "ontwikkel" : ls.initOntwikkelModel();
|
|
break;
|
|
case "ontwikkel2" : ls.initOntwikkelModel2();
|
|
break;
|
|
case "monitor" : ls.initMonitorModel();
|
|
break;
|
|
case "beheer" : ls.initBeheerModel();
|
|
break;
|
|
case "berichtbeheer" : mh.initBerichtBeheerModel();
|
|
break;
|
|
case "functies" : ls.initFunctiesModel();
|
|
break;
|
|
case "invullenextra" : mh.initInvulModel()
|
|
break;
|
|
case "omvangextra" : mh.initOmvangModel();
|
|
break;
|
|
case "streefcijfers" : ls.initStreefcijfersModel();
|
|
break;
|
|
case "accounts" : ls.initAccountsModel();
|
|
break;
|
|
case "sortering" : mh.initSorteringModel();
|
|
break;
|
|
case "matrix" : ls.initMatrixModel();
|
|
break;
|
|
case "schoolgegevens" : ls.initColofonModel();
|
|
break;
|
|
case "groepen" : ls.initGroepenModel(module);
|
|
break;
|
|
case "groepenso" : mh.initGroepensoModel();
|
|
break;
|
|
case "ondersteuning" : ls.initOndersteuningModel(module);
|
|
break;
|
|
case "ondersteuningso" : mh.initOndersteuningSOModel();
|
|
break;
|
|
case "diversiteit" : ls.initDiversiteitModel(module);
|
|
break;
|
|
case "diversiteitso" : mh.initDiversiteitSOModel();
|
|
break;
|
|
case "monitordiversiteit": ls.initMonDivModel(module);
|
|
break;
|
|
case "monitordiversiteitso": mh.initMonDivSOModel(module);
|
|
break;
|
|
case "sophome" : mh.initSopHomeModel();
|
|
break;
|
|
case "sophoofd" : mh.initSopModel();
|
|
break;
|
|
case "compactsop" : mh.initCompactSopModel();
|
|
break;
|
|
case "standaardsop" : ls.initStandaardSopModel();
|
|
break;
|
|
case "flexibelsop" : ls.initFlexibelSopModel();
|
|
break;
|
|
case "sopoverzicht" : mh.initSopOverzichtModel();
|
|
break;
|
|
case "lijsten" : ls.initLijstenModel();
|
|
break;
|
|
case "berichten" : mh.initBerichtenModel(0);
|
|
break;
|
|
case "monfinbeheer" : ls.initMonfinBeheerModel();
|
|
break;
|
|
case "monfinoverzicht" : ls.initMonfinOverzichtModel();
|
|
break;
|
|
case "monfinbestedingen": ls.initBestedingenModel();
|
|
break;
|
|
case "monfinbestemmingen2": ls.initBestemmingenModel();
|
|
break;
|
|
case "monfinoverzicht2" : ls.initMonfinOverzicht2Model();
|
|
break;
|
|
case "monfinbeheer2" : ls.initMonfinBeheer2Model();//oude beheer model kan wordengebruikt
|
|
break;
|
|
case "inspectiematrix" : ls.initInspectiematrixModel();
|
|
break;
|
|
case "filefolders" : ls.initFileFoldersModel(self.module());
|
|
break;
|
|
}
|
|
|
|
$('#pag'+ menunaam).fadeIn(500);
|
|
|
|
},
|
|
|
|
fChangeUserDetails: function(){
|
|
var self =ls.MenuModel;
|
|
|
|
$.post("index.php/shared/users/getuserdetail", function(data){
|
|
if (data){
|
|
self.newvoornaam(data.voornaam);
|
|
self.newtussenvoegsel(data.tussenvoegsel);
|
|
self.newachternaam(data.achternaam);
|
|
self.newemail(data.email);
|
|
self.twofactor(data.twofactor)
|
|
self.zout(data.zout);
|
|
$("#modUserdetails").modal("show");
|
|
}
|
|
},'json');
|
|
},
|
|
fSaveUserDetails: function(){
|
|
self=ls.MenuModel;
|
|
if (self.newwachtwoord1() !== self.newwachtwoord2()){
|
|
apprise("Wachtwoorden zijn niet identiek.");
|
|
return;
|
|
}
|
|
else if (self.newwachtwoord1() !== undefined && self.newwachtwoord1().length > 0 && self.newwachtwoord1().length < 4){
|
|
apprise("Wachtwoord moet minimaal 4 tekens lang zijn.")
|
|
return;
|
|
}
|
|
else if (self.newachternaam().length < 2){
|
|
apprise("Achternaam moet minimaal 2 tekens lang zijn.");
|
|
}
|
|
else{
|
|
if (self.newwachtwoord1().length >= 4){
|
|
var saltedChallenge =hex_md5(self.zout() + self.newwachtwoord1());
|
|
}
|
|
else var saltedChallenge = '';
|
|
var submitData={ voornaam: self.newvoornaam(),
|
|
tussenvoegsel: self.newtussenvoegsel(),
|
|
achternaam: self.newachternaam(),
|
|
email : self.newemail,
|
|
wachtwoord: saltedChallenge,
|
|
twofactor : self.twofactor()};
|
|
$.post("index.php/shared/users/updateuser", submitData,function(result){
|
|
if (result){
|
|
self.user(result);
|
|
$("#modUserdetails").modal("hide");
|
|
ls.MsgAutoFade(1000,"Gegevens zijn aangepast");
|
|
}
|
|
},'json');
|
|
}
|
|
},
|
|
fChangeOrganisatie:function(){
|
|
var self=ls.MenuModel;
|
|
self.alleorganisaties.removeAll();
|
|
$.post('index.php/shared/organisaties/getallowedorgs', function(result){
|
|
if (result){
|
|
$.each(result, function(i,p) {
|
|
self.alleorganisaties.push(new fAddOrg(p));
|
|
});
|
|
$("#modSelectGlobOrg").modal("show");
|
|
}
|
|
},'json');
|
|
},
|
|
|
|
fSetGlobOrg: function(){
|
|
var self=ls.MenuModel;
|
|
$.post("index.php/shared/organisaties/setgloborg/" + self.selectedOrganisatie().id,function(result){
|
|
$("#modSelectGlobOrg").modal("hide");
|
|
location.reload();
|
|
},'json');
|
|
},
|
|
|
|
fToonHandleiding: function(){
|
|
var self = ls.MenuModel;
|
|
$.post("index.php/shared/menu/gethandleidingen" , function(results){
|
|
self.handleidingen.removeAll();
|
|
if (results){
|
|
$.each(results, function(i,p){
|
|
self.handleidingen.push(new fAddHandleiding(p));
|
|
});
|
|
$("#modDocumenten").modal("show");
|
|
}
|
|
},'json');
|
|
},
|
|
fDownloadDocument: function(){
|
|
var self = ls.MenuModel;
|
|
submitURL = "index.php/shared/menu/downloadhandleiding/" + this.id;
|
|
window.open(submitURL);
|
|
$("#modDocumenten").modal("hide");
|
|
},
|
|
|
|
fInitializeGoogle: function(){
|
|
let vm = ls.MenuModel
|
|
if (vm.twofactor == "GOOGLE") return
|
|
$.getJSON( 'index.php/Login/maakGoogleSecret', function ( data ) {
|
|
vm.googleAuthenticatorUrl( data.url );
|
|
$( "#authenticatorQR" ).modal( 'show' );
|
|
return true;
|
|
} )
|
|
return true
|
|
}
|
|
|
|
} ; // definition van model
|
|
ls.MenuModel.initModel();
|
|
ko.applyBindings(ls.MenuModel, document.getElementById("menubalk"));
|
|
} // else
|
|
}// function initMenuModel
|
|
}); |