335 lines
9.8 KiB
JavaScript
335 lines
9.8 KiB
JavaScript
$(function(){
|
|
|
|
ls.initMonitorModel = function(){
|
|
var timer;
|
|
|
|
function fAddOrgversion(p){
|
|
|
|
var dit = this;
|
|
this.id = p.id; //orgversion id
|
|
this.periodenummer = p.periodenummer;
|
|
this.versie_id = p.versie_id;
|
|
this.vorm = p.vorm;
|
|
this.scoretype = p.scoretype;
|
|
this.toonOmschrijving = ko.observable(false);
|
|
if(p.score_omschrijving == 'T') this.toonOmschrijving(true);
|
|
this.naam = p.naam;
|
|
// this.meetellen = ko.observable(false);
|
|
// if(p.meetellen == 1){
|
|
// dit.meetellen(true);
|
|
// }
|
|
|
|
this.geldigvanaf = p.geldigvanaf;
|
|
this.geldigtm = p.geldigtm;
|
|
this.invullentm = p.invullentm;
|
|
this.info = ko.computed(function(){
|
|
var infostr=this.naam + " - periode " + this.periodenummer ;
|
|
infostr += " van " + this.geldigvanaf + " t/m " + this.geldigtm;
|
|
return infostr;
|
|
},this);
|
|
}
|
|
|
|
function fAddListitem(p){
|
|
|
|
var dit = this;
|
|
this.id = p.id
|
|
this.nummer = p.nummer
|
|
this.omschrijving = p.omschrijving;
|
|
this.toelichting = p.toelichting;
|
|
this.disabled = ko.observable(false);
|
|
if(p.disabled == 'T')dit.disabled(true);
|
|
this.indicatorscores = ko.observableArray([]);
|
|
$.each(p.indicatorscores, function(j,k){
|
|
dit.indicatorscores.push(new fAddIndicatorscore(k));
|
|
});
|
|
|
|
|
|
}
|
|
|
|
function fAddIndicatorscore(k){
|
|
var dit = this;
|
|
this.id = k.id
|
|
this.nummer = k.nummer
|
|
this.omschrijving = k.omschrijving
|
|
this.inspectie = k.inspectie
|
|
this.score = ko.observable(k.score)
|
|
this.scoretype = k.scoretype;
|
|
|
|
// this.jatext = ko.computed(function(){
|
|
// switch (parseFloat(dit.scoretype)){
|
|
// case 3:
|
|
// case 4:
|
|
// case 5: return 'ja'; break;
|
|
// case 6: return "onvol."; break;
|
|
// case 7: return "included"; break;
|
|
// default: return 'ja';
|
|
// }
|
|
// })
|
|
// this.neetext = ko.computed(function(){
|
|
// switch (parseFloat(dit.scoretype)){
|
|
// case 3:
|
|
// case 4:
|
|
// case 5: return 'nee'; break;
|
|
// case 6: return "vol."; break;
|
|
// case 7: return "involved"; break;
|
|
// default: return 'nee';
|
|
// }
|
|
// })
|
|
// this.thirdoptiontext = ko.computed(function(){
|
|
// switch (parseFloat(dit.scoretype)){
|
|
// case 3: return "bezig"; break;
|
|
// case 4: return "nvt"; break;
|
|
// case 5: return "i.o."; break;
|
|
// case 6: return "goed"; break;
|
|
// case 7: return "present"; break;
|
|
// default: return "";
|
|
// }
|
|
// });
|
|
// this.fourthoptiontext = ko.computed(function(){
|
|
// return 'absent'
|
|
// });
|
|
}
|
|
|
|
function fAddScoreoptie(o){
|
|
this.scoreID = o.id;
|
|
this.type = o.type_nr;
|
|
this.optie = o.optie;
|
|
this.value = parseInt(o.score_value);
|
|
this.scoretekst = o.omschrijving;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (ls.MonitorModel !== undefined){
|
|
ls.MonitorModel.initModel();
|
|
}
|
|
else {
|
|
ls.MonitorModel = {
|
|
orgversions : ko.observableArray([]),
|
|
selectedOrgversion : ko.observable(''),
|
|
listitems : ko.observableArray([]),
|
|
scoreopties : ko.observableArray(),
|
|
editok : ko.observable(false),
|
|
soort : ko.observable(4),
|
|
erzijnperiodes : ko.observable(false),
|
|
notitie : ko.observable(''),
|
|
fvid : ko.observable(null),
|
|
bezig : ko.observable(false),
|
|
meetellen : ko.observable(false),
|
|
optieslengte : ko.observable(0),
|
|
module : ko.observable(''),
|
|
|
|
initBindings :function(){
|
|
var self = ls.MonitorModel;
|
|
if (!ko.dataFor(document.getElementById('pagmonitor')) ) {
|
|
ko.applyBindings(ls.MonitorModel, document.getElementById("pagmonitor"));
|
|
}
|
|
self.initModel();
|
|
},
|
|
initModel: function(){
|
|
var self=ls.MonitorModel;
|
|
|
|
self.orgversions.removeAll();
|
|
self.listitems.removeAll();
|
|
showAjaxLoader();
|
|
$.post("index.php/monpas/monitor/getperiodesperschool", function(data){
|
|
// get de reeds ingevulde versies of start een nieuwe versie voor de laatste periode
|
|
self.orgversions.removeAll();
|
|
|
|
if (data.versies){
|
|
$.each(data.versies, function(i,p){
|
|
self.orgversions.push(new fAddOrgversion(p));
|
|
});//each
|
|
self.selectedOrgversion(self.orgversions()[0]);
|
|
self.erzijnperiodes(true);
|
|
|
|
}; // if
|
|
self.soort(data.soort);
|
|
self.module(data.module);
|
|
hideAjaxLoader();
|
|
},'json');
|
|
},
|
|
|
|
fChangeVersion: function(){
|
|
var self = ls.MonitorModel;
|
|
self.listitems.removeAll();
|
|
self.scoreopties.removeAll();
|
|
self.editok(false)
|
|
if (self.selectedOrgversion() == undefined) return;
|
|
|
|
var tm = self.selectedOrgversion().invullentm;
|
|
var Dtm = new Date(tm.substring(6,10), parseInt(tm.substring(3,5)) -1, tm.substring(0,2),23,59,59,99);
|
|
var heden= new Date()
|
|
if (heden.getTime() <= Dtm.getTime() ) self.editok(true);
|
|
$.post("index.php/monpas/monitor/getlistitems/" + self.selectedOrgversion().id, function(data){
|
|
if (data.ijkpunten){
|
|
$.each(data.ijkpunten,function(i,p){
|
|
self.listitems.push(new fAddListitem(p));
|
|
});// each
|
|
}; //if
|
|
|
|
if(data.scoreopties){
|
|
$.each(data.scoreopties,function(x,o){
|
|
self.scoreopties.push(new fAddScoreoptie(o));
|
|
});// each
|
|
self.optieslengte(self.scoreopties().length);
|
|
}
|
|
|
|
self.notitie(data.notitie);
|
|
if(data.meetellen && data.meetellen == 1) {
|
|
self.meetellen(true);
|
|
}
|
|
else{
|
|
self.meetellen(false);
|
|
}
|
|
self.fvid(data.fvid);
|
|
|
|
// als de versie een schoolversie is, dan mag alleen het management invullen
|
|
// maar ook het management mag niet invullen voorbij de invuldatum
|
|
if (self.editok() && self.selectedOrgversion().vorm==1) {self.editok(data.writer)}
|
|
},'json');
|
|
},
|
|
|
|
fUpdateScoretype12: function(){
|
|
var self= ls.MonitorModel
|
|
|
|
|
|
if (this.scoretype == 1 && (parseFloat(this.score().replace(',','.') ) > 10 ||
|
|
parseFloat(this.score().replace(',','.')) < 0)){
|
|
ls.MsgAutoFade("U moet een rapportcijfer tussen 0 en 10 invullen.",1000);
|
|
this.score(0);
|
|
};
|
|
if (this.scoretype ==2 && (parseInt(this.score())> 100 || parseInt(this.score()) < 0)){
|
|
ls.MsgAutoFade("U moet hier een percentage tussen 0 en 100 invullen.",1000);
|
|
this.score(0);
|
|
}
|
|
var submitData = {indicatorscoreid : this.id,
|
|
score : this.score()}
|
|
$.post("index.php/monpas/monitor/updatescore", submitData);
|
|
return true ; // nodig voor de eventuele radioset
|
|
},
|
|
|
|
fUpdateScoretypeVanaf3: function(data){
|
|
var self= ls.MonitorModel
|
|
var indicatorscoreID = data;
|
|
|
|
var submitData = {
|
|
indicatorscoreid : indicatorscoreID,
|
|
score : this.value }
|
|
|
|
$.post("index.php/monpas/monitor/updatescore", submitData);
|
|
return true ; // nodig voor de eventuele radioset
|
|
},
|
|
|
|
fToonToelichting: function(){
|
|
var self = ls.MonitorModel;
|
|
var dit = this;
|
|
var toelichting = '';
|
|
if (dit.toelichting != undefined) toelichting = dit.toelichting;
|
|
apprise(dit.nummer + '. ' + dit.omschrijving + '<br/>Toelichting: ' + toelichting);
|
|
},
|
|
|
|
fUpdateNotitie: function(){
|
|
var self = ls.MonitorModel;
|
|
if (timer){
|
|
clearTimeout(timer);
|
|
timeout = null;
|
|
}
|
|
timer = setTimeout(function(){
|
|
var submitData= {notitie : self.notitie(),
|
|
fvID : self.fvid()}
|
|
$.post('index.php/monpas/monitor/savenotitie', submitData);
|
|
}, 600);
|
|
},
|
|
|
|
fTelMee: function(){
|
|
var self = ls.MonitorModel;
|
|
self.meetellen(!self.meetellen());
|
|
var dit = this;
|
|
var meetellen =1;
|
|
if(!dit.meetellen()){
|
|
meetellen = 0;
|
|
}
|
|
|
|
var submitData = {
|
|
meetellen: meetellen,
|
|
fvID: self.fvid(),
|
|
}
|
|
$.post("index.php/monpas/monitor/lijstmeetellen", submitData);
|
|
},
|
|
|
|
fPrint:function(){
|
|
var self =ls.MonitorModel;
|
|
// if (self.bezig()) return;
|
|
self.bezig(true);
|
|
var fvID = self.fvid();
|
|
$.post("index.php/monpas/monitor/getlistitems/" + self.selectedOrgversion().id, function(data){
|
|
self.listitems.removeAll();
|
|
self.scoreopties.removeAll();
|
|
if (data.ijkpunten){
|
|
$.each(data.ijkpunten,function(i,p){
|
|
self.listitems.push(new fAddListitem(p));
|
|
});// each
|
|
}; //if
|
|
|
|
if(data.scoreopties){
|
|
$.each(data.scoreopties,function(x,o){
|
|
self.scoreopties.push(new fAddScoreoptie(o));
|
|
});// each
|
|
self.optieslengte(self.scoreopties().length);
|
|
}
|
|
|
|
self.notitie(data.notitie);
|
|
if(data.meetellen && data.meetellen == 1) {
|
|
self.meetellen(true);
|
|
}
|
|
else{
|
|
self.meetellen(false);
|
|
}
|
|
self.fvid(fvID);
|
|
|
|
self.fMaakPDF();
|
|
|
|
|
|
},'json');
|
|
|
|
|
|
|
|
self.bezig(false);
|
|
|
|
},
|
|
|
|
fMaakPDF(){
|
|
var self = ls.MonitorModel;
|
|
var module = self.module();
|
|
var info = self.selectedOrgversion().info();
|
|
var tabel = document.getElementById("invulTabel").outerHTML;
|
|
var notitie = false;
|
|
var ingevuldenotitie = self.notitie();
|
|
if (ingevuldenotitie && ingevuldenotitie.length > 0)
|
|
notitie = document.getElementById("invulNotitie").outerHTML;
|
|
var zichtbaar = document.getElementById("invulZichtbaar").outerHTML;
|
|
|
|
|
|
var sd = {
|
|
'module' : module,
|
|
'info' : info,
|
|
'tabel' : tabel,
|
|
'notitie' : notitie,
|
|
'zichtbaar' : zichtbaar,
|
|
'filenaam' : 'formulier' + self.module()+ 'nr' + self.selectedOrgversion().periodenummer
|
|
}
|
|
|
|
data=JSON.stringify(sd);
|
|
|
|
|
|
var $form = $("<form method='post' action='index.php/monpas/monitor/printlijst' target='_blank'>").append($('<input type = "hidden" name="data" id ="data">').val(data) );
|
|
$form.appendTo("body").submit();
|
|
|
|
}
|
|
} ; // definition van model
|
|
ls.MonitorModel.initBindings();
|
|
}; // else
|
|
}// function initMonitorModel
|
|
}); |