Files
monpas/public/js/monpas/models/ontwikkelmodel.js
T
2023-10-10 15:01:59 +02:00

496 lines
14 KiB
JavaScript

$(function(){
ls.initOntwikkelModel = function(){
function fAddSWV(p){
var dit = this;
this.id = p.id;
this.soort = p.soort
this.naam = p.naam
this.plaats = p.plaats
this.geopend = ko.observable(false);
dit.kamers = ko.observableArray([]);
if (p.kamers ){
$.each(p.kamers, function(j,k){
dit.kamers.push(new fAddKamer(k));
})
}
}
function fAddKamer(p){
var dit = this;
this.id = p.id;
this.soort = p.soort
this.naam = p.naam
this.plaats = p.plaats
this.geopend = ko.observable(false);
this.bgs = ko.observableArray([]);
if (p.bgs){
$.each(p.bgs, function(x,z){
dit.bgs.push(new fAddBG(z));
})
}
}
function fAddBG(p){
var dit = this;
this.id = p.id;
this.soort = p.soort
this.naam = p.naam
this.plaats = p.plaats
this.geopend = ko.observable(false);
this.scholen = ko.observableArray([]);
if (p.scholen){
$.each(p.scholen, function(a,b){
dit.scholen.push(new fAddSchool(b));
})
}
}
function fAddSchool(p){
var dit = this;
this.id = p.id;
this.soort = p.soort
this.naam = p.naam
this.plaats = p.plaats
}
function fAddUser(p){
this.orguserid = p.id;
this.usernaam = p.fullname;
}
function fAddOrgversion(p){
this.id = p.id; //orgversion id
this.periodenummer = p.periodenummer
this.versie_id = p.versie_id
this.vorm = p.vorm
var wijik = "schoolversie";
if(p.vorm == 2){
wijik = "individuele versie"
}
this.scoretype = p.scoretype
var scoreomschrijving = p.scoreomschrijving;
if(p.scoreomschrijving === 'included/involved/present/absent')
scoreomschrijving = 'inc/inv/pre/abs'
this.scoreomschrijving = scoreomschrijving;
this.naam = p.naam
this.geldigvanaf = p.geldigvanaf;
this.geldigtm = p.geldigtm;
this.invullentm = p.invullentm;
this.info = ko.computed(function(){
var versieInfostr=this.naam;
versieInfostr += "- periode " + this.periodenummer +
", scoretype: " + this.scoreomschrijving + ", "+ wijik +
", " + this.geldigvanaf + " t/m " + this.geldigtm;
return versieInfostr;
}
,this)
}
function fAddResult(p){
var dit = this;
this.ijkpuntid = p.ijkpunt_id;
this.wensid = 0;
if (p.gewenstid) { this.wensid = p.gewenstid; }
this.scoretype = p.scoretype;
this.disabled = p.disabled;
this.disablentv = p.disablenvt;
this.huidig = ko.observable( p.huidig);
if(p.disabled == 'T' || p.disablenvt == 'T') this.huidig(5)
// observable is niet nodig maar dit was eerst een computed
this.gewenst = ko.observable(3);
if (p.gewenst) {this.gewenst(p.gewenst)};
if(p.disabled == 'T' || p.disablenvt == 'T') this.gewenst(5)
this.nummer = p.nummer;
this.omschrijving = p.omschrijving;
this.toelichting = p.toelichting;
this.aantalscholen = p.aantalscholen;
}
if (ls.OntwikkelModel !== undefined){
ls.OntwikkelModel.initModel();
}
else {
ls.OntwikkelModel = {
toporg : ko.observableArray([]),
users : ko.observableArray([]),
selectedOrg : ko.observable(''),
usernivo : ko.observable(),
orgsoort : ko.observable(1),
orgversions : ko.observableArray([]),
selectedOrgversion : ko.observable(''),
selectedUser : ko.observable(''),
// ijkpunten : ko.observableArray([]),
versieid : ko.observable(), // moet waarschijnlijk orgversie id worden!!
results : ko.observableArray([]),
writeOK : ko.observable(false),
level123 : ko.observable(false),
wijzigRecht : ko.observable(false),
eigenLijst : ko.observable(false),
ingevuld : ko.observable(false),
bezig : ko.observable(false),
verberg : ko.observable(false),
initBindings :function(){
var self = ls.OntwikkelModel;
if (!ko.dataFor(document.getElementById('pagontwikkel')) ) {
ko.applyBindings(ls.OntwikkelModel, document.getElementById("pagontwikkel"));
}
self.initModel();
},
initModel: function() {
var self = ls.OntwikkelModel;
console.log('nu hier')
$.post("index.php/monpas/rapijkpunten/checkLevel", function(data){
if(data){
if(data === 1)
self.level123(true);
}
self.fGetOrganisaties();
},'json')
},
fGetOrganisaties: function(){
var self = ls.OntwikkelModel;
self.toporg('');
$.post("index.php/monpas/rapijkpunten/getorgs", function(data){
self.bezig(true);
if (data.organisatie){
self.orgsoort(data.soort);
switch (self.orgsoort()){
case 1: self.toporg(new fAddSWV(data.organisatie));
break;
case 2: self.toporg(new fAddKamer(data.organisatie));
break;
case 3: self.toporg(new fAddBG(data.organisatie));
break;
case 4: self.toporg(new fAddSchool(data.organisatie));
break;
}; // switch
$.post('index.php/monpas/rapijkpunten/getusernivo', function(result){
self.usernivo(result);
self.selectedOrg(self.toporg());
self.fGetWriteAutorisatie(self.fSwitchLevel());
},'json');
} // if
self.bezig(false);
},'json');
},
fGetWriteAutorisatie: function(callback){
var self = ls.OntwikkelModel;
var user = 0;
if(self.selectedUser()){
user = self.selectedUser().id;
}
var submitData = {'orgsoort' : self.selectedOrg().soort,
'orgid' : self.selectedOrg().id,
'user' : user }
$.post("index.php/monpas/rapontwikkel/checkSchrijfrechtenOrg/", submitData, function(result){
self.writeOK(result);
if(typeof callback ==='function' && callback()){
callback();
}
},'json');
},
fToggleGeopend: function(){
this.geopend(!this.geopend());
},
fUpdateGewenst: function(num){
var self=ls.OntwikkelModel;
if(this.huidig() != 5 ) this.gewenst(num);
},
fSwitchOrg: function(){
var self = ls.OntwikkelModel;
if (self.selectedOrg() == undefined) return;
if (this.id == self.selectedOrg().id) return;
self.selectedOrg(this);
self.results.removeAll();
self.ingevuld(false);
self.fGetWriteAutorisatie();
self.fSwitchLevel();
},
fSwitchLevel: function(){
var self = ls.OntwikkelModel;
if (self.selectedOrg() == undefined) return;
if (this.id == self.selectedOrg().id) return;
var versieid = null;
if(self.selectedOrgversion() != undefined ) {
versieid = self.selectedOrgversion().id;
}
$.post("index.php/monpas/rapijkpunten/getperiodes3/" + self.selectedOrg().id, function(data){
self.orgversions.removeAll();
self.results.removeAll();
self.wijzigRecht(false);
self.bezig(true);
if (data){
$.each(data,function(i,p){
self.orgversions.push(new fAddOrgversion(p));
})
}
if(versieid != null ){
$.each(self.orgversions(), function (i, q) {
if (q.id == versieid) {
self.selectedOrgversion(q);
return false;
}
});
}
else if(self.orgversions()) {
self.selectedOrgversion(self.orgversions[0]);
}
else{
self.selectedOrgversion("")
}
if(self.selectedOrgversion().soort == '4' && self.selectedOrgversion().vorm == '2' && self. usernivo() <= 1){
self.verberg(false);
}
else{
self.verberg(true);
}
if (self.selectedOrgversion().vorm === '1' && self.writeOK()) self.wijzigRecht(true);
if (self.selectedOrgversion().vorm === '2' && self.eigenLijst()) self.wijzigRecht(true);
if (self.selectedOrgversion().vorm === '2' && self.writeOK() &&
self.selectedUser() === undefined) self.wijzigRecht(true);
if(self.level123() && self.writeOK()) self.wijzigRecht(true);
self.fChangeUser(function(){
var zelf = ls.OntwikkelModel;
zelf.bezig(false);
zelf.fChangeVersion2()});
},'json');
},
fChangeUser: function(callback){
var self = ls.OntwikkelModel;
if (self.selectedOrgversion() == undefined) return;
if (self.selectedOrg() == undefined) return;
var submitData = {orgversie : self.selectedOrgversion().id,
orgid : self.selectedOrg().id}
$.post("index.php/monpas/rapijkpunten/getusers", submitData, function(results){
self.users.removeAll();
self.results.removeAll();
if (results){
$.each(results, function(i,p){
self.users.push(new fAddUser(p));
}); // each
}
if(results && results.length == 1) {
self.selectedUser(self.users()[0]);
} else {
self.selectedUser() == undefined;
}
if (typeof callback == "function") callback();
//
},'json'); // post
},
fChangeVersion2: function(){
var self = ls.OntwikkelModel;
if (self.selectedOrgversion() == undefined) return;
if (self.bezig()) return;
if(self.level123()){
self.verberg(true);
self.fHaalOrgScoresOp()}
else {
if (self.selectedOrg().soort == 4 && self.selectedOrgversion().vorm == 2 && self.usernivo() <= 1) {
self.verberg(false);
if (self.selectedUser() == undefined) {
self.fHaalOrgScoresOp();
}
else {
self.fCheckEigenLijst();
self.fGetUserScores();
}
}
else {
self.verberg(true);
self.selectedUser("");
self.fHaalOrgScoresOp();
}
}
},
fHaalOrgScoresOp: function(){
var self = ls.OntwikkelModel;
self.ingevuld(false);
if (self.selectedOrgversion() == undefined) return;
var submitData = {orgversieid : self.selectedOrgversion().id,
orgid : self.selectedOrg().id
}
$.post("index.php/monpas/rapontwikkel/getscores", submitData, function(data){
self.results.removeAll();
if (data){
$.each(data.scores, function(i,p){
self.results.push(new fAddResult(p));
self.ingevuld(true);
})
self.fGetWriteAutorisatie();
}
},'json');
},
fGetUserScores: function(){
var self = ls.OntwikkelModel;
self.results.removeAll();
self.ingevuld(false);
self.eigenLijst(false);
var submitData ='';
if ( self.selectedOrg() == undefined ||
self.selectedOrgversion() == undefined ||
self.users() == undefined ||
self.usernivo > 1 ) return;
if (self.selectedUser() != undefined){
submitData = { orguserid : self.selectedUser().orguserid,
orgid : self.selectedOrg().id,
orgversie : self.selectedOrgversion().id}
$.post("index.php/monpas/rapontwikkel/scoresindividueel" , submitData, function(data){
if (data){
$.each(data.scores, function(i,p){
self.results.push(new fAddResult(p));
self.ingevuld(true);
})
}
self.fCheckEigenLijst();
},'json');
}
else {
self.results.removeAll();
self.fHaalOrgScoresOp();
}
},
fCheckEigenLijst: function(){
var self = ls.OntwikkelModel;
self.wijzigRecht(false);
$.post("index.php/monpas/rapontwikkel/checkindividueelschrijfrecht/" +self.selectedUser().orguserid, function(result){
if (result){
self.eigenLijst(result);
}
else{
self.eigenLijst(false);
}
if (self.eigenLijst()) self.wijzigRecht(true);
if (self.writeOK() &&
self.selectedUser() === undefined) self.wijzigRecht(true);
},'json');
},
fToonToelichting: function(){
var self = ls.OntwikkelModel;
var dit = this;
var toelichting = '';
if (dit.toelichting != undefined) toelichting = dit.toelichting;
apprise(dit.nummer + '. ' + dit.omschrijving + '<br/>Toelichting: ' + toelichting);
},
fSaveGewenst: function(){
var self=ls.OntwikkelModel;
var orguserid = 0;
if(self.eigenLijst()){
orguserid = self.selectedUser().orguserid;
}
var wensarray = [];
$.each(self.results() , function(i,p){
wensarray[i]={ 'ijkpuntid' : p.ijkpuntid,
'wensid' : p.wensid,
'gewenst' : p.gewenst() };
});
var submitData= { 'wensarray' : wensarray,
'orgid' : self.selectedOrg().id,
'orgversionid' : self.selectedOrgversion().id,
'orguserid' : orguserid}
$.post("index.php/monpas/rapontwikkel/savegewenst", submitData, function(wensids){
if (wensids){
$.each(self.results(), function(i,p){
if (p.wensid == 0){ p.wensid = wensids[i]; }
}); // each
ls.MsgAutoFade("Gegevens zijn opgeslagen", 600);
};// If wensids
},'json') ;
},
fPrintOntwikkelmatrix: function(){
var self = ls.OntwikkelModel;
var orgid = self.selectedOrg().id;
var orgversieid = self.selectedOrgversion().id;
var resultaten= [];
if (self.results()){
$.each(self.results(), function(i,p){
resultaten.push({'nummer' : p.nummer, 'ijkpuntid': p.ijkpuntid, 'huidig': p.huidig(), 'wens' : p.gewenst()});
})
}
var data={ 'orgid' : orgid,
"orgversieid" : orgversieid,
"resultaten" : resultaten,
"orgversie" : self.selectedOrgversion(),
"user" : self.selectedUser() ? self.selectedUser().usernaam : ''}
var submitUrl = "index.php/monpas/rapontwikkel/printontwikkelmatrix/?json=" + JSON.stringify(data);
window.open(submitUrl);
}
} ; // definition van model
ls.OntwikkelModel.initBindings();
// ls.OntwikkelModel.wijzigRecht = ko.pureComputed(function () {
// var self = ls.OntwikkelModel;
// if(!self.ingevuld()) return 'Verberg';
// if(self.selectedOrgversion().vorm == 1 && self.writeOK()) return 'Toon';
// if(self.selectedOrgversion().vorm == 2 && self.eigenLijst()) return 'Toon';
// if(self.selectedOrgversion().vorm == 2 && self.writeOK() && self.selectedUser() == undefined) return 'Toon';
// return 'Verberg';
//
// });
}; // else
}// function initOntwikkelModel
});