Files
monpas/public/js/monpas/models/monitormodel.js
T

336 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
});