472 lines
13 KiB
JavaScript
472 lines
13 KiB
JavaScript
$(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.brin = p.brin
|
|
this.plaats = p.plaats
|
|
}
|
|
|
|
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 fAddIndeling(p) {
|
|
var dit = this;
|
|
this.id = p.waardeid;
|
|
this.naam = p.naam
|
|
this.volgorde = p.volgorde;
|
|
this.organisaties = ko.observableArray([]);
|
|
if (p.users) {
|
|
$.each(p.users, function (j, k) {
|
|
|
|
dit.organisaties.push(new fAddOrgIndeling(k));
|
|
|
|
})
|
|
}
|
|
}
|
|
|
|
function fAddOrgIndeling(k) {
|
|
var dit = this;
|
|
this.subject = k.fullname;
|
|
this.naamkort = k.naamkort;
|
|
this.brin = '';
|
|
if (k.brin) this.brin = k.brin;
|
|
this.fvid = k.filledversionid;
|
|
|
|
this.results = ko.observableArray([]);
|
|
if (k.scores) {
|
|
$.each(k.scores, function (j, k) {
|
|
dit.results.push(new fAddResult(k));
|
|
})
|
|
}
|
|
}
|
|
|
|
function fAddIJkpunt(p) {
|
|
this.nummer = p.nummer;
|
|
this.omschrijving = p.omschrijving;
|
|
this.toelichting = p.toelichting;
|
|
}
|
|
|
|
function fAddResult(k) {
|
|
if (k.gem === '' || isNaN(k.gem) || k.gem === null) {
|
|
this.gem = 0;
|
|
}
|
|
else {
|
|
this.gem = Math.round(parseFloat(k.gem));
|
|
}
|
|
this.num = k.nummer;
|
|
// this.colorcode = '#e08885';
|
|
this.colorcode = k.kleur ? k.kleur : "#cccccc";
|
|
if (k.disabled == "T" || k.disablenvt == "T") {
|
|
this.gem='';
|
|
this.colorcode="#cccccc";
|
|
}
|
|
}
|
|
|
|
function fAddCriteria(c) {
|
|
var dit = this;
|
|
this.criteriumid = ko.observable(c.id);
|
|
this.naam = ko.observable(c.naam);
|
|
}
|
|
|
|
|
|
|
|
ls.initMatrixModel = function () {
|
|
if (ls.MatrixModel !== undefined) {
|
|
ls.MatrixModel.initModel();
|
|
}
|
|
else {
|
|
ls.MatrixModel = {
|
|
bgs : ko.observableArray([]),
|
|
erzijnscores : ko.observable(false),
|
|
ijkpunten : ko.observableArray([]),
|
|
toporg : ko.observableArray([]),
|
|
criteria : ko.observableArray([]),
|
|
indelingen : ko.observableArray([]),
|
|
selectedOrg : ko.observable(''),
|
|
orgsoort : ko.observable(1),
|
|
orgversions : ko.observableArray([]),
|
|
selectedOrgversion : ko.observable(''),
|
|
selectedCriterium : ko.observable(0),
|
|
versievorm : ko.observable(''),
|
|
kleurlegenda : ko.observable(''),
|
|
inzage : ko.observable(),
|
|
invulid : ko.observable(''),
|
|
aantalY : ko.observable(0),
|
|
bezig : ko.observable(false),
|
|
druk : ko.observable(false),
|
|
data : ko.observable(false),
|
|
ijknummer :ko.observable('ijkpuntnummer'),
|
|
kolombreedte : ko.pureComputed(function(){
|
|
var row = 708;
|
|
var orgbreedte = 250
|
|
var aantal = 16;
|
|
if(ls.MatrixModel.aantalY()){
|
|
aantal = ls.MatrixModel.aantalY()+1;
|
|
}
|
|
var breedte = Math.floor((row - orgbreedte)/aantal);
|
|
return breedte;
|
|
}),
|
|
|
|
orgbreedtehead : ko.pureComputed(function(){
|
|
var aantal = 16;
|
|
if(ls.MatrixModel.aantalY()){
|
|
aantal = ls.MatrixModel.aantalY()+1;
|
|
}
|
|
orgpassend = Math.floor(700 - (aantal * ls.MatrixModel.kolombreedte()))
|
|
|
|
return orgpassend;
|
|
}),
|
|
|
|
orgbreedtebody : ko.pureComputed(function(){
|
|
var aantal = 16;
|
|
if(ls.MatrixModel.aantalY()){
|
|
aantal = ls.MatrixModel.aantalY()+1;
|
|
}
|
|
var orgpassend = Math.floor(710- (aantal * ls.MatrixModel.kolombreedte()))
|
|
return orgpassend;
|
|
}),
|
|
|
|
initBindings: function () {
|
|
var self = ls.MatrixModel;
|
|
if (!ko.dataFor(document.getElementById('pagmatrix'))) {
|
|
ko.applyBindings(ls.MatrixModel, document.getElementById("pagmatrix"));
|
|
}
|
|
self.initModel();
|
|
},
|
|
|
|
initModel: function () {
|
|
var self = ls.MatrixModel;
|
|
self.toporg('');
|
|
|
|
self.fCheckInzageRecht();
|
|
$.post("index.php/monpas/rapijkpunten/getorgs", function (data) {
|
|
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;
|
|
}
|
|
self.selectedOrg(self.toporg());
|
|
self.fSwitchLevel();
|
|
}
|
|
}, 'json');
|
|
|
|
},
|
|
|
|
fCheckInzageRecht: function () {
|
|
var self = ls.MatrixModel;
|
|
$.post("index.php/monpas/rapmatrix/checkinzage/", function (data) {
|
|
if (data) {
|
|
self.inzage(data.rol);
|
|
self.ijknummer(data.label)
|
|
}
|
|
}, 'json');
|
|
},
|
|
|
|
fSwitchOrg: function () {
|
|
var self = ls.MatrixModel;
|
|
if (self.selectedOrg() == undefined) return;
|
|
if (this.id == self.selectedOrg().id) return;
|
|
self.selectedOrg(this);
|
|
self.orgversions.removeAll();
|
|
self.fSwitchLevel();
|
|
},
|
|
|
|
fSwitchLevel: function () {
|
|
var self = ls.MatrixModel;
|
|
if (self.selectedOrg() == undefined) return;
|
|
var versieid = null;
|
|
if(self.selectedOrgversion() != undefined ) {
|
|
versieid = self.selectedOrgversion().id;
|
|
}
|
|
$.post("index.php/monpas/rapijkpunten/getperiodes3/" + self.selectedOrg().id, function (data) {
|
|
// ls: hier self bezig toegevoegd en later weer op false gezet zodat de functie fChangeVersion2 niet
|
|
// wordt aangeroepen voor dat alle orgversions zijn ingelezen en selectedOrgversion is gezet.
|
|
self.bezig(true);
|
|
self.orgversions.removeAll();
|
|
|
|
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;
|
|
}
|
|
|
|
});
|
|
}
|
|
if(self.selectedOrg().soort == 4) {
|
|
self.bezig(false);
|
|
self.fChangeVersion2();
|
|
}
|
|
else {
|
|
self.fGetCriteria();
|
|
}
|
|
}
|
|
}, 'json')
|
|
.always(self.bezig(false) );
|
|
},
|
|
|
|
fToggleGeopend: function () {
|
|
this.geopend(!this.geopend());
|
|
},
|
|
|
|
fCheckOwner: function () {
|
|
var self = ls.MatrixModel;
|
|
var submitData = {
|
|
"orgversieid" : self.selectedOrgversion().id,
|
|
"orgid" : self.selectedOrg().id,
|
|
}
|
|
// hideAjaxLoader();
|
|
$.post("index.php/monpas/rapmatrix/checkowner/", submitData, function (data) {
|
|
if (data) {
|
|
self.invulid(parseInt(data));
|
|
}
|
|
}, 'json');
|
|
},
|
|
|
|
// fSwitchOrg: function () {
|
|
// var self = ls.MatrixModel;
|
|
//
|
|
// if (self.selectedOrg() == undefined) return;
|
|
// if (this.id == self.selectedOrg().id) return;
|
|
// self.selectedOrg(this);
|
|
// self.fSwitchLevel();
|
|
// },
|
|
|
|
fGetCriteria: function(){
|
|
var self = ls.MatrixModel;
|
|
var submitData ={
|
|
'orgid' : self.selectedOrg().id,
|
|
'orgsoort' : self.selectedOrg().soort
|
|
}
|
|
|
|
$.post("index.php/monpas/rapmatrix/getCriteriaSWV", submitData, function(results) {
|
|
self.druk(true);
|
|
self.criteria.removeAll();
|
|
|
|
if (results) {
|
|
$.each(results, function (i, c) {
|
|
self.criteria.push(new fAddCriteria(c));
|
|
if (c.id == 1000) {
|
|
self.selectedCriterium(c.id);
|
|
return false;
|
|
}
|
|
}); // each
|
|
}
|
|
|
|
self.druk(false);
|
|
self.fChangeCriterium();
|
|
},'json')
|
|
.always(self.druk(false), self.bezig(false));
|
|
},
|
|
|
|
fChangeCriterium: function(){
|
|
var self = ls.MatrixModel;
|
|
if (self.selectedOrgversion() == undefined) return;
|
|
if (self.druk() ) return;
|
|
self.fHaalScoresOp();
|
|
},
|
|
|
|
fChangeVersion2: function () {
|
|
var self = ls.MatrixModel;
|
|
if (self.selectedOrgversion() == undefined) return;
|
|
if (self.bezig() ) return;
|
|
self.fHaalScoresOp();
|
|
},
|
|
|
|
fHaalScoresOp: function(){
|
|
var self = ls.MatrixModel;
|
|
var dit = this;
|
|
if (self.druk() ) return;
|
|
|
|
var sorteerid = 0;
|
|
if(self.selectedCriterium())
|
|
{
|
|
sorteerid = self.selectedCriterium().criteriumid();
|
|
}
|
|
|
|
|
|
var submitData = {
|
|
'orgid' : self.selectedOrg().id,
|
|
'orgsoort' : self.selectedOrg().soort,
|
|
'toporg' : self.toporg().soort,
|
|
'criteriumid' : sorteerid,
|
|
'orgversieid' : self.selectedOrgversion().id,
|
|
}
|
|
// showAjaxLoader();
|
|
|
|
$.post("index.php/monpas/rapmatrix/haalScoresOp", submitData, function(results) {
|
|
self.data(false);
|
|
self.indelingen.removeAll();
|
|
self.ijkpunten.removeAll();
|
|
if (results) {
|
|
self.erzijnscores(results.erzijnscores);
|
|
|
|
if(!self.erzijnscores()){
|
|
apprise("Er is nog geen lijst ingevuld bij dit instrument");
|
|
return;
|
|
}
|
|
else {
|
|
|
|
self.data(true);
|
|
$.each(results.labels, function (i, p) {
|
|
self.indelingen.push(new fAddIndeling(p));
|
|
|
|
}); // each
|
|
self.fCheckOwner();
|
|
$.each(results.ijkpunten, function (i, p) {
|
|
self.ijkpunten.push(new fAddIJkpunt(p));
|
|
}); // each
|
|
|
|
self.aantalY(results.aantalY);
|
|
self.versievorm(results.vorm);
|
|
self.kleurlegenda(results.kleurtabel);
|
|
}
|
|
}
|
|
|
|
}, 'json').always(function(){
|
|
hideAjaxLoader() } );
|
|
},
|
|
|
|
fToonToelichting: function () {
|
|
var self = ls.MatrixModel;
|
|
var dit = this;
|
|
apprise("Toelichting bij ijkpunt " + dit.nummer + ":<br/><i>" + dit.omschrijving + "</i><br/><hr/> " + dit.toelichting);
|
|
},
|
|
|
|
fPrint:function(){
|
|
var self =ls.MatrixModel;
|
|
if (self.bezig()) return;
|
|
self.bezig(true);
|
|
var criterium= null;
|
|
if(self.selectedCriterium()){
|
|
criterium = self.selectedCriterium().naam();
|
|
}
|
|
var indelingen = ko.toJSON(self.indelingen());
|
|
|
|
|
|
var ijkpunten = ko.toJSON(self.ijkpunten);
|
|
var data ={
|
|
'orgversie' : self.selectedOrgversion(),
|
|
'criterium' : criterium,
|
|
'organisatie' : self.selectedOrg(),
|
|
'indelingen' : indelingen,
|
|
'ijkpunten' : ijkpunten,
|
|
'invulid' : self.invulid(),
|
|
'inzage' : self.inzage(),
|
|
'kopbreedte' : self.orgbreedtehead(),
|
|
'orgbreedte' : self.orgbreedtebody(),
|
|
'kolombreedte' : self.kolombreedte(),
|
|
}
|
|
|
|
data=JSON.stringify(data);
|
|
var $form = $("<form method='post' action='index.php/monpas/rapmatrix/printmatrix' target='_blank'>").append($('<input type = "hidden" name="data" id ="data">').val(data) );
|
|
$form.appendTo("body").submit();
|
|
self.bezig(false);
|
|
},
|
|
|
|
}; // definition van model
|
|
|
|
ls.MatrixModel.initBindings();
|
|
|
|
ls.MatrixModel.showMatrix= ko.pureComputed(function () {
|
|
var self = ls.MatrixModel;
|
|
if (self.versievorm() != 2) return 'AlleRijen';
|
|
if (self.selectedOrg().soort != 4) return 'AlleRijen';
|
|
if (self.inzage() == 256) return 'AlleRijen';
|
|
if (self.inzage() < 256) return 'GemiddeldeVanInd';
|
|
if (self.inzage() > 256) return 'EigenEnGemiddelde';
|
|
return '';
|
|
});
|
|
}
|
|
; // else
|
|
}// function initMatrixModel
|
|
}); |