Files
monpas/public/js/monpas/models/menumodel.js
T
2022-01-31 15:55:14 +01:00

468 lines
15 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(),
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.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};
$.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");
}
} ; // definition van model
ls.MenuModel.initModel();
ko.applyBindings(ls.MenuModel, document.getElementById("menubalk"));
} // else
}// function initMenuModel
});