964 lines
38 KiB
JavaScript
964 lines
38 KiB
JavaScript
$(function(){
|
|
var timeout;
|
|
|
|
mh.initCompactSopModel = function(){
|
|
|
|
function fAddSchooljaar(s){
|
|
this.id = s.schooljaarnr;
|
|
this.naam = s.naam;
|
|
}
|
|
|
|
function fAddSchool(s){
|
|
this.schoolid = s.id;
|
|
this.naam = s.naam;
|
|
this.straat = ko.observable(s && s.straat ? s.straat: '');
|
|
this.brin = s.brin;
|
|
this.plaats = ko.observable(s && s.plaats? s.plaats :'');
|
|
this.foon = ko.observable(s && s.telefoon ? s.telefoon : '');
|
|
this.email = ko.observable(s && s.email1 ? s.email1: '');
|
|
this.site = ko.observable(s && s.web ? s.web: '')
|
|
this.logo = ko.observable(s.logo)
|
|
}
|
|
|
|
function fAddOnderdeel(i, o) {
|
|
var dit = this;
|
|
this.sopid = o.id;
|
|
this.modulenr = o.modulenr;
|
|
this.toonnummer = i+1;
|
|
this.type = o.type;
|
|
this.naam = o.naam;
|
|
this.naamkort = o.naamkort;
|
|
this.groepen = ko.observable(o && o.groepen && o.groepen > 8 ? o.groepen : 0);
|
|
this.schooltype = o.schooltype;
|
|
this.versie = o.versie;
|
|
this.schooljaar = o.schooljaar;
|
|
this.aantallln = ko.observable(o && o.aantallln ? o.aantallln : 0);
|
|
this.erZijnOrgVersies = o.erZijnOrgVersies === 'T';
|
|
this.gekozenVersie = ko.observable('');
|
|
this.selected = ko.observable(false); // selected om geplaatst te worden
|
|
this.opA4 = ko.observable(false); // op een pagina gezet
|
|
this.gekozenVergelijking = ko.observable();
|
|
this.orgversies = ko.observableArray([]);
|
|
this.budgetversies = ko.observableArray([]);
|
|
this.omvangschooljaren = ko.observableArray([]);
|
|
this.selectedLijstId = ko.observable(0);
|
|
|
|
if(o.filledversies){
|
|
$.each(o.filledversies, function(z,v){
|
|
dit.orgversies.push(new fAddOrgversie(z, v))
|
|
});
|
|
}
|
|
|
|
if(o.budgetversies){
|
|
$.each(o.budgetversies, function(n,b){
|
|
dit.budgetversies.push(new fAddBudgetversie(n, b))
|
|
});
|
|
}
|
|
|
|
if(o.gevuldeschooljaren){
|
|
$.each(o.gevuldeschooljaren, function(v, g){
|
|
dit.omvangschooljaren.push(new fAddOmvangSchooljaar(v,g))
|
|
});
|
|
}
|
|
this.geenGegevens = ko.pureComputed(function(){
|
|
if (o.gegevens == "F") return true
|
|
else return false
|
|
},this)
|
|
|
|
|
|
this.versies = ko.observable(false);
|
|
this.isBreedBlok = ko.pureComputed(function(){
|
|
if (this.groepen() >=9 ) return true
|
|
if (this.type == "FIN" || this.type=="LIJSTBREED") return true
|
|
return false
|
|
}, this)
|
|
this.infotekst = ko.pureComputed(function(){
|
|
var schooljaar = mh.CompactSopModel.selectedSchooljaar() ? mh.CompactSopModel.selectedSchooljaar().naam : '' ;
|
|
var tekst = ''
|
|
var diversiteit = o.erIsDiversiteit === 'T' ? true : false
|
|
|
|
if(this.type=="DIV") {
|
|
if (diversiteit) return this.versie
|
|
if (!diversiteit && (Number(this.modulenr) == 660 && Number(mh.CompactSopModel.selectedSchooljaar().id) > 8)
|
|
||!diversiteit && (Number(mh.CompactSopModel.selectedOrganisatie().soort) < 4))
|
|
return "De diversiteitsmeter " + schooljaar + " is niet ingevuld."
|
|
else
|
|
return "Vul eerst de diversiteitsmeter " + schooljaar + " in.";
|
|
}
|
|
|
|
if (this.type== "FIN"){
|
|
|
|
var jaar1 = mh.CompactSopModel.selectedSchooljaar() ? mh.CompactSopModel.selectedSchooljaar().naam.substr(0, 4) : "" ;
|
|
var jaar2 = mh.CompactSopModel.selectedSchooljaar() ? mh.CompactSopModel.selectedSchooljaar().naam.substr(5, 4) : "" ;
|
|
var jaren = jaar1 + ' en ' + jaar2;
|
|
|
|
if (!this.budgetversies() || this.budgetversies().length === 0) return "De monitoren financiën " + jaren + " zijn niet ingevuld."
|
|
if (this.budgetversies().length == 1) return "Kalenderjaar: " + this.budgetversies()[0].kalenderjaar()
|
|
if (this.budgetversies().length > 1) return "Meerdere versies beschikbaar."
|
|
return 'fout'
|
|
}
|
|
if (this.type=="OMVANG"){
|
|
if(this.omvangschooljaren().length > 1) return "Meerdere schooljaren beschikbaar."
|
|
if(this.omvangschooljaren().length == 1){
|
|
var tlvs = "geen tlvs, ";
|
|
var arr = "geen arrangementen";
|
|
if(this.omvangschooljaren()[0].erZijnTLVs == true){
|
|
tlvs = "tlvs, ";
|
|
}
|
|
if(this.omvangschooljaren()[0].erZijnArrangementen == true){
|
|
arr = "arrangementen ";
|
|
}
|
|
|
|
return "Schooljaar " + this.omvangschooljaren()[0].schooljaarnaam + ', '+ tlvs + arr
|
|
}
|
|
if(this.omvangschooljaren().length == 0){
|
|
if(Number(mh.CompactSopModel.selectedOrganisatie().soort) < 4) return "Er zijn geen gegevens ingevuld."
|
|
else
|
|
return "Vul eerst gegevens bij dit instrument in."
|
|
}
|
|
}
|
|
|
|
if(this.type=="LIJST" || this.type =="LIJSTBREED" ) {
|
|
|
|
if (this.orgversies().length > 1) return "Meerdere versies beschikbaar."
|
|
if (this.orgversies().length == 1) return this.naam;
|
|
if (this.orgversies().length == 0 && this.erZijnOrgVersies) {
|
|
if (Number(mh.CompactSopModel.selectedOrganisatie().soort) < 4) return "Er zijn geen lijsten ingevuld."
|
|
else return "Vul eerst een lijst bij dit instrument in."
|
|
}
|
|
if (!this.erZijnOrgVersies) return "Voor dit instrument is (nog) geen lijst beschikbaar."
|
|
return ''
|
|
}
|
|
},this)
|
|
}
|
|
|
|
|
|
|
|
function fAddTLVs(x,t){
|
|
var dit = this;
|
|
this.index = x;
|
|
this.tlvid = t.id;
|
|
this.schooljaarnr = t.schooljaarnr;
|
|
this.schooljaar = t.naam;
|
|
this.sbo = ko.observable(t && t.sbo ? t.sbo: 0 );
|
|
this.so = ko.observable(t && t.so ? t.so: 0 );
|
|
this.bewaarSbo = ko.observable(t && t.sbo ? t.sbo: 0 );
|
|
this.bewaarSo = ko.observable(t && t.so ? t.so: 0 );
|
|
this.totaal = ko.observable(parseInt(dit.sbo()) + parseInt(dit.so()));
|
|
this.selected = ko.observable(false);
|
|
}
|
|
|
|
function fAddArrangementen( a){
|
|
var dit = this;
|
|
this.arrangementid = a.id;
|
|
this.naam = ko.observable(a.naam);
|
|
this.schooljaarnr = a.schooljaarnr;
|
|
this.schooljaar = a.schooljaar;
|
|
this.looptijd = ko.observable(a && a.lengte ==='L' ?'≥ 6 wkn': '< 6 wkn' );
|
|
this.leeftijd = ko.observable(a.leeftijd);
|
|
this.aantal = ko.observable(a && a.aantal ? a.aantal : 0);
|
|
this.bewaarAantal = ko.observable(a && a.aantal ? a.aantal : 0);
|
|
this.bewaarAantalV = ko.observable(a && a.aantalV ? a.aantalV : 0);
|
|
this.aantalV = ko.observable(a && a.aantalV ? a.aantalV : 0);
|
|
this.selected = ko.observable(false);
|
|
this.archief = ko.observable(false);
|
|
if(a.archief === 'T'){
|
|
dit.archief(true);
|
|
}
|
|
this.archiefV = ko.observable(false);
|
|
if(a.archiefV === 'T'){
|
|
dit.archiefV(true);
|
|
}
|
|
}
|
|
|
|
function fAddBudgetversie(n, b){
|
|
this.budgetid = ko.observable(n + 1);
|
|
this.kalenderjaar = ko.observable(b);
|
|
}
|
|
|
|
function fAddOmvangSchooljaar(v,g){
|
|
this.schooljaarnaam = g.naam;
|
|
this.schooljaarnr = g.schooljaarnr;
|
|
this.erZijnTLVs = g.erZijnTLVs;
|
|
this.erZijnArrangementen = g.erZijnArrangementen;
|
|
this.orgsmetlln = g.orgsmetlln;
|
|
this.orgsmettlvs = g.orgsmettlvs;
|
|
this.orgsmetarrs = g.orgsmetarrs;
|
|
}
|
|
|
|
function fAddOrgversie(z, v) {
|
|
this.orgversieid = ko.observable(v.id);
|
|
this.naam = v.naam;
|
|
this.naamkort = v.naamkort;
|
|
this.aantalorgs = v.aantalorgs;
|
|
this.scoretype = v.scoretype;
|
|
this.periodenummer = v.periodenummer;
|
|
this.versieid = v.versie_id;
|
|
this.vorm = v.vorm;
|
|
this.referentieVersies = ko.observableArray([]);
|
|
}
|
|
|
|
function fAddReferentieVersie(r) {
|
|
this.orgversieid = ko.observable(r.orgversieid());
|
|
this.naam = r.naam;
|
|
this.naamkort = r.naamkort;
|
|
this.scoretype = r.scoretype;
|
|
this.periodenummer = r.periodenummer;
|
|
this.versieid = r.versieid;
|
|
this.insop = r.insop;
|
|
this.vorm = r.vorm;
|
|
this.geselecteerd = ko.observable(false);
|
|
}
|
|
|
|
function fAddPagina(index,p){
|
|
var dit = this;
|
|
|
|
this.paginanummer = index + 1;
|
|
|
|
this.blokjes = ko.observableArray();
|
|
this.selectedBlokje = ko.observable();
|
|
|
|
if(p.blokjes){
|
|
$.each(p.blokjes(), function(i,b){
|
|
dit.blokjes.push(new fAddBlokje( i, b, dit.paginanummer))
|
|
})
|
|
}
|
|
else {
|
|
var n = 0;
|
|
for (var x = 0; x < 4; x++) {
|
|
dit.blokjes.push(new fAddBlokje(x, n, dit.paginanummer))
|
|
}
|
|
}
|
|
}
|
|
|
|
function fAddBlokje(teller, bestaandBlokje, paginanummer){
|
|
this.bloknummer = ko.observable(bestaandBlokje ? bestaandblokje.bloknummer : (teller + 1));
|
|
this.paginanummer = paginanummer;
|
|
this.bovenmarge = ko.observable('5px');
|
|
if(this.bloknummer() === 1 || this.bloknummer() === 2) { this.bovenmarge('30px'); }
|
|
|
|
this.linkermarge = ko.observable('5px');
|
|
if(this.bloknummer() === 1 || this.bloknummer() === 3){this.linkermarge('20px'); }
|
|
|
|
this.breedte = ko.observable('col-xs-5');
|
|
this.naam = ko.observable(bestaandBlokje ? bestaandBlokje.naam : '');
|
|
this.toonnummer = ko.observable(bestaandBlokje.toonnummer);
|
|
this.naamkort = ko.observable(bestaandBlokje.naamkort);
|
|
this.type = ko.observable(bestaandBlokje.type) ;
|
|
|
|
this.kleur = ko.observable(bestaandBlokje ? bestaandBlokje.kleur : 'transparent');
|
|
this.groepen = ko.observable(bestaandBlokje ? bestaandBlokje.groepen : 0);
|
|
this.gevuld = ko.observable(false);
|
|
this.verborgen = ko.observable(false);
|
|
|
|
this.modulenr = ko.observable(0);
|
|
this.kalenderjaar = ko.observable(0);
|
|
this.gekozenVersie = ko.observable('');
|
|
this.gekozenVergelijking = ko.observable();
|
|
this.isBreedBlok = ko.observable(false)
|
|
}
|
|
|
|
if (mh.CompactSopModel !== undefined){
|
|
mh.CompactSopModel.initModel();
|
|
}
|
|
else {
|
|
mh.CompactSopModel = {
|
|
schooljaren : ko.observableArray([]),
|
|
organisaties : ko.observableArray([]),
|
|
onderdelen : ko.observableArray([]),
|
|
school : ko.observableArray([]),
|
|
selectedOmvangJaren : ko.observableArray([]),
|
|
label : ko.observable(''),
|
|
toporgnr : ko.observable(),
|
|
orgsoort : ko.observable(),
|
|
schoolasobject : ko.observable(),
|
|
selectedSchooljaar : ko.observable(''),
|
|
selectedOrganisatie : ko.observable(''),
|
|
selectedSopID : ko.observable(''),
|
|
selectedOnderdeel : ko.observable(''),
|
|
tobemovedOnderdeel : ko.observable(),
|
|
selectedOrgVersie : ko.observable(''),
|
|
selectedBudgetVersie : ko.observable(''),
|
|
selectedBlokje : ko.observable(''),
|
|
ls_selectedLijstId : ko.observable(),
|
|
naamNieuw : ko.observable(""),
|
|
leeftijdNieuw : ko.observable(""),
|
|
looptijdNieuw : ko.observable('L'),
|
|
aantalNieuw : ko.observable(0),
|
|
naamNieuwV : ko.observable(""),
|
|
leeftijdNieuwV : ko.observable(""),
|
|
looptijdNieuwV : ko.observable('L'),
|
|
aantalNieuwV : ko.observable(0),
|
|
schooljanee : ko.observable(false),
|
|
// editok : ko.observable(false),
|
|
erIsEenSop : ko.observable(false),
|
|
druk : ko.observable(false),
|
|
toonOnderdelen : ko.observable(true),
|
|
pdfKnop : ko.pureComputed(function(){
|
|
var model = mh.CompactSopModel;
|
|
var erzijnonderdelen = false
|
|
if (! model) return false
|
|
if (model.onderdelen()){
|
|
|
|
$.each(model.onderdelen(), function(j,k){
|
|
if (k.opA4()) {
|
|
erzijnonderdelen = true
|
|
return
|
|
}
|
|
})
|
|
}
|
|
return erzijnonderdelen
|
|
}),
|
|
nieuwArrangement : ko.observable(false),
|
|
nieuwArrangementV : ko.observable(false),
|
|
|
|
selectedOnderdelen : ko.observableArray([]),
|
|
paginas : ko.observableArray([]),
|
|
|
|
uploadLogoNaam : ko.observable(),
|
|
showLogoNaam : ko.pureComputed(function(){
|
|
return mh.CompactSopModel.uploadLogoNaam().replace('C:\\fakepath\\', '')
|
|
}),
|
|
|
|
|
|
|
|
|
|
initBindings :function(){
|
|
var self = mh.CompactSopModel;
|
|
if (!ko.dataFor(document.getElementById('pagcompactsop')) ) {
|
|
ko.applyBindings(mh.CompactSopModel, document.getElementById("pagcompactsop"));
|
|
}
|
|
$.post("index.php/monpas/compactsop/getorgsoort", function (result){
|
|
if(result){
|
|
self.toporgnr(result);
|
|
}
|
|
self.druk(true);
|
|
self.initModel();
|
|
|
|
},'json');
|
|
},
|
|
|
|
initModel: function(){
|
|
var self =mh.CompactSopModel;
|
|
self.fGetSchooljarenEnOrgs(function(){self.fGetCompactSop()})
|
|
|
|
},
|
|
|
|
fGetSchooljarenEnOrgs: function(callback){
|
|
var self =mh.CompactSopModel;
|
|
|
|
$.post("index.php/monpas/compactsop/getSchooljarenEnOrgs", function(data){
|
|
self.selectedSchooljaar(null)
|
|
self.schooljaren.removeAll();
|
|
self.toonOnderdelen(true)
|
|
self.selectedOnderdelen.removeAll()
|
|
self.paginas.removeAll();
|
|
|
|
if(data) {
|
|
self.druk(true);
|
|
$.each(data.schooljaren, function (i, s) {
|
|
self.schooljaren.push(new fAddSchooljaar(s));
|
|
});//each
|
|
if (self.schooljaren() ) self.selectedSchooljaar(self.schooljaren()[0]);
|
|
self.organisaties(data.organisaties);
|
|
if(self.organisaties().length === 1)self.selectedOrganisatie(self.organisaties()[0])
|
|
else{
|
|
$.each(self.organisaties(), function(i,o){
|
|
if(o.soort === self.toporgnr())
|
|
self.selectedOrganisatie(self.organisaties()[i])
|
|
})
|
|
}
|
|
} // if
|
|
self.druk(false);
|
|
if (typeof callback == "function") callback()
|
|
},'json')
|
|
},
|
|
|
|
fGetCompactSop: function(){
|
|
var self =mh.CompactSopModel;
|
|
if (self.druk()) return;
|
|
if(self.selectedSchooljaar() === undefined || self.selectedOrganisatie === undefined){
|
|
return;
|
|
}
|
|
|
|
switch(self.selectedOrganisatie().soort){
|
|
|
|
case '1':
|
|
self.orgsoort("SWV")
|
|
self.label('SWOP');
|
|
break;
|
|
case '2':
|
|
self.orgsoort("regio")
|
|
self.label('ROP');
|
|
break;
|
|
case '3':
|
|
self.orgsoort("bestuur")
|
|
self.label('BOP');
|
|
break;
|
|
case '4':
|
|
self.orgsoort("school")
|
|
self.label('SOP');
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
let sd = {
|
|
'schooljaarID' : self.selectedSchooljaar().id,
|
|
'orgID' : self.selectedOrganisatie().id
|
|
}
|
|
|
|
$.post("index.php/monpas/compactsop/getCompactsop", sd, function(result){
|
|
self.onderdelen.removeAll();
|
|
self.selectedOnderdelen.removeAll()
|
|
self.paginas.removeAll();
|
|
self.toonOnderdelen(true);
|
|
self.erIsEenSop(false);
|
|
if(result){
|
|
self.selectedSopID(result);
|
|
self.erIsEenSop(true);
|
|
}
|
|
},'json');
|
|
},
|
|
|
|
fOpenPDF: function(){
|
|
var self =mh.CompactSopModel;
|
|
window.open( "index.php/monpas/compactsop/download_pdf/" + self.selectedSopID() );
|
|
},
|
|
|
|
fGetOnderdelenEnVersies: function(){
|
|
var self =mh.CompactSopModel;
|
|
|
|
|
|
|
|
self.toonOnderdelen(true);
|
|
self.selectedOnderdelen.removeAll();
|
|
self.paginas.removeAll();
|
|
|
|
let sd = {
|
|
schooljaarID : self.selectedSchooljaar().id,
|
|
orgID : self.selectedOrganisatie().id,
|
|
orgsoort : self.selectedOrganisatie().soort,
|
|
}
|
|
|
|
if(self.erIsEenSop()){
|
|
apprise("Het nieuwe Compact " + self.label() + " overschrijft het bestaande Compact " + self.label() + " bij dit schooljaar. Wilt u doorgaan?",
|
|
{verify: true, textYes: ' ja ', textNo: "nee"}, function (ans) {
|
|
if (ans) {
|
|
$.post("index.php/monpas/compactsop/getOnderdelenEnVersies", sd, function(result){
|
|
self.onderdelen.removeAll();
|
|
if(result){
|
|
$.each(result, function(i, o){
|
|
self.onderdelen.push(new fAddOnderdeel(i,o))
|
|
self.selectedOnderdeel(self.onderdelen()[0]);
|
|
self.toonOnderdelen(true);
|
|
});
|
|
}
|
|
},'json');
|
|
} // if ans
|
|
});//apprise
|
|
} else {
|
|
$.post("index.php/monpas/compactsop/getOnderdelenEnVersies", sd, function(result){
|
|
self.onderdelen.removeAll();
|
|
if(result){
|
|
$.each(result, function(i, o){
|
|
self.onderdelen.push(new fAddOnderdeel(i, o))
|
|
self.toonOnderdelen(true);
|
|
});
|
|
}
|
|
else{
|
|
apprise("geen instrumenten voor het compact sop gevonden.")
|
|
}
|
|
|
|
},'json');
|
|
} // else
|
|
},
|
|
|
|
fGetOrganisatiegegevens: function(){
|
|
var self = mh.CompactSopModel;
|
|
$.post("index.php/monpas/compactsop/getOrganisatiegegevens/" + self.selectedOrganisatie().id, function (result) {
|
|
if(result){
|
|
self.school.removeAll();
|
|
// hier kun je ook
|
|
//self.school(new fAddSchool(result)) doen.
|
|
// dan wordt het geen array maar een object
|
|
self.schoolasobject(new fAddSchool(result))
|
|
self.school.push(new fAddSchool(result));
|
|
$("#modSchool").modal('show');
|
|
}
|
|
}, 'json');
|
|
},
|
|
|
|
fSaveOrg: function(){
|
|
var self = mh.CompactSopModel;
|
|
|
|
if (timeout) {
|
|
clearTimeout(timeout);
|
|
timeout = null;
|
|
}
|
|
var dit = this;
|
|
timeout = setTimeout(function () {
|
|
|
|
var submitData = {
|
|
'straat' : dit.straat(),
|
|
'plaats' : dit.plaats(),
|
|
'telefoon' : dit.foon(),
|
|
'email1' : dit.email(),
|
|
'web' : dit.site(),
|
|
'id' : self.selectedOrganisatie().id
|
|
};
|
|
// je mag ook een post doen zonder dat je resultaat terug verwacht van de server
|
|
// dan laat je result en de afsluitenden json weg
|
|
$.post("index.php/monpas/compactsop/saveSchool", submitData, function (result) {
|
|
if(result){
|
|
|
|
}
|
|
}, 'json');
|
|
}, 600);
|
|
},
|
|
|
|
|
|
fSelecteerOnderdeel: function() {
|
|
var self = mh.CompactSopModel;
|
|
var dit = this;
|
|
|
|
if (dit.geenGegevens()) return;
|
|
self.selectedOnderdeel(this);
|
|
if( (dit.orgversies() && dit.orgversies().length > 1) || dit.budgetversies().length > 1 || dit.omvangschooljaren().length > 1) {
|
|
$.each(self.onderdelen(), function (i, o) {
|
|
if (o.id !== self.selectedOnderdeel().id) {
|
|
o.versies(false);
|
|
}
|
|
});
|
|
|
|
if (dit.orgversies().length > 0) {
|
|
self.selectedOrgVersie(this.orgversies()[0]);
|
|
self.ls_selectedLijstId(this.orgversies()[0].orgversieid());
|
|
self.fGetVergelijkbareVersies();
|
|
}
|
|
|
|
if (dit.budgetversies().length > 0) {
|
|
self.selectedBudgetVersie(this.budgetversies()[0]);
|
|
self.ls_selectedLijstId(this.budgetversies()[0].budgetid());
|
|
}
|
|
|
|
|
|
dit.versies(true);
|
|
return true;
|
|
} // if meer versies
|
|
|
|
|
|
|
|
|
|
this.selected(true);
|
|
|
|
if(self.selectedOnderdeel().type === 'DIV' ){
|
|
self.selectedOnderdeel().gekozenVersie("");
|
|
}
|
|
else if(self.selectedOnderdeel().type === 'OMVANG'){
|
|
self.selectedOmvangJaren.removeAll();
|
|
if(self.selectedOnderdeel().omvangschooljaren().length == 1) {
|
|
self.selectedOmvangJaren.push(self.selectedOnderdeel().omvangschooljaren()[0].schooljaarnr);
|
|
|
|
}
|
|
}
|
|
|
|
else if(self.selectedOnderdeel().type === 'FIN') {
|
|
self.selectedOnderdeel().gekozenVersie(this.budgetversies()[0].kalenderjaar())
|
|
}
|
|
else {
|
|
self.selectedOnderdeel().gekozenVersie(this.orgversies()[0].orgversieid())
|
|
}
|
|
|
|
self.selectedOnderdelen.push(self.selectedOnderdeel());
|
|
},
|
|
|
|
fAnnuleerOnderdeel: function(){
|
|
var self = mh.CompactSopModel;
|
|
var dit = this;
|
|
this.selected(false)
|
|
this.versies(false);
|
|
var indexO;
|
|
return true;
|
|
},
|
|
|
|
fStartUploading: function(){
|
|
var self = mh.CompactSopModel;
|
|
self.fUploadLogo(function(){self.fToonLogo()})
|
|
|
|
},
|
|
|
|
fUploadLogo: function(callback){
|
|
var self = mh.CompactSopModel;
|
|
var schoolID = self.selectedOrganisatie().id;
|
|
|
|
var vFD = new FormData(document.getElementById('upload_form'));
|
|
var oXHR = new XMLHttpRequest();
|
|
oXHR.open('POST', 'index.php/monpas/compactsop/uploadLogo/' + schoolID);
|
|
oXHR.send(vFD);
|
|
|
|
|
|
if (typeof callback == "function") callback();
|
|
},
|
|
|
|
fToonLogo: function(){
|
|
var self = mh.CompactSopModel;
|
|
self.schoolasobject().logo(null)
|
|
setTimeout(function() {
|
|
|
|
$.post("index.php/monpas/compactsop/getOrganisatiegegevens/" + self.selectedOrganisatie().id, function (result) {
|
|
if(result){
|
|
self.school.removeAll();
|
|
self.schoolasobject(new fAddSchool(result))
|
|
self.school.push(new fAddSchool(result));
|
|
// $("#modSchool").modal('show');
|
|
self.uploadLogoNaam(null);
|
|
}
|
|
}, 'json');
|
|
|
|
}, 600)
|
|
|
|
|
|
},
|
|
|
|
fSelecteerBudgetVersie: function(data, parent){
|
|
var self = mh.CompactSopModel;
|
|
var onderdeel = data;
|
|
var dit = this;
|
|
|
|
|
|
if (dit.kalenderjaar()) {
|
|
self.selectedBudgetVersie(dit.kalenderjaar());
|
|
}
|
|
return true;
|
|
},
|
|
|
|
fSelecteerOrgversie: function(data, parent){
|
|
var self = mh.CompactSopModel;
|
|
var onderdeel = data;
|
|
var dit = this;
|
|
|
|
self.selectedOnderdeel(onderdeel);
|
|
|
|
if(dit.naam) {
|
|
self.selectedOrgVersie(this);
|
|
self.fGetVergelijkbareVersies();
|
|
}
|
|
return true;
|
|
},
|
|
|
|
fGetVergelijkbareVersies: function() {
|
|
var self = mh.CompactSopModel;
|
|
var dit = this;
|
|
|
|
if(self.selectedOnderdeel().orgversies()) {
|
|
|
|
$.each(self.selectedOnderdeel().orgversies(), function (x, o) {
|
|
o.referentieVersies.removeAll()
|
|
$.each(self.selectedOnderdeel().orgversies(), function(a,ref){
|
|
if (ref.versieid == o.versieid &&
|
|
ref.scoretype == o.scoretype &&
|
|
|
|
ref.orgversieid() != o.orgversieid() &&
|
|
ref.periodenummer < o.periodenummer) {
|
|
o.referentieVersies.push(new fAddReferentieVersie(ref));
|
|
}
|
|
}) // ref zoeken
|
|
});
|
|
}
|
|
},
|
|
|
|
fSelecteerVergelijking: function(parent){
|
|
var self = mh.CompactSopModel;
|
|
parent.gekozenVergelijking(this.orgversieid());
|
|
return true;
|
|
},
|
|
|
|
fSelecteerVersieOnderdeel: function(){
|
|
var self = mh.CompactSopModel;
|
|
|
|
var dit = this;
|
|
if(dit.geenGegevens()) return;
|
|
|
|
self.selectedOnderdeel(this);
|
|
|
|
if(self.selectedOmvangJaren().length > 2){
|
|
apprise("Selecteer maximaal 2 schooljaren");
|
|
return;
|
|
}
|
|
if(self.selectedOnderdeel().type == "OMVANG" && self.selectedOmvangJaren().length == 0){
|
|
apprise("Selecteer één of twee schooljaren");
|
|
return;
|
|
}
|
|
|
|
if(self.selectedOrgVersie()){
|
|
self.selectedOnderdeel().gekozenVersie(self.selectedOrgVersie().orgversieid());
|
|
}
|
|
|
|
if(self.selectedBudgetVersie()){
|
|
self.selectedOnderdeel().gekozenVersie(self.selectedBudgetVersie());
|
|
}
|
|
|
|
self.fOnderdelenInArray();
|
|
return true;
|
|
},
|
|
|
|
fSluitVersieOnderdeel(){
|
|
var self = mh.CompactSopModel;
|
|
this.versies(false);
|
|
},
|
|
|
|
fOnderdelenInArray: function() {
|
|
var self = mh.CompactSopModel;
|
|
var dit = this;
|
|
self.selectedOnderdelen.push(self.selectedOnderdeel());
|
|
self.selectedOnderdeel().selected(true);
|
|
},
|
|
|
|
fTerugNaarOnderdelen: function(){
|
|
var self = mh.CompactSopModel;
|
|
self.toonOnderdelen(true)
|
|
},
|
|
|
|
fMaakLayout: function(){
|
|
var self = mh.CompactSopModel;
|
|
self.toonOnderdelen(false);
|
|
|
|
//reset alle paginas
|
|
$.each(self.onderdelen() , function(i,onderdeel){
|
|
onderdeel.opA4(false);
|
|
})
|
|
|
|
self.paginas.removeAll();
|
|
var aantalOnderdelen =0
|
|
$.each(self.onderdelen(), function(x,onderdeel){
|
|
if (onderdeel.selected()){
|
|
if(onderdeel.type === 'FIN' || onderdeel.type === 'LIJSTBREED'||parseInt(onderdeel.groepen()) > 8 ){
|
|
aantalOnderdelen = parseInt(aantalOnderdelen) + parseInt(2);
|
|
} else {
|
|
aantalOnderdelen += 1
|
|
}
|
|
}
|
|
});
|
|
|
|
var vellen = Math.ceil(aantalOnderdelen/4);
|
|
var p = 0;
|
|
if(vellen > 6){
|
|
apprise("U kunt maximaal 6 pagina's vullen.");
|
|
vellen = 6;
|
|
}
|
|
|
|
for(var i = 0; i < vellen; i++){
|
|
self.paginas.push( new fAddPagina(i, p));
|
|
}
|
|
},
|
|
|
|
|
|
fSelectVoorPlaatsing: function(){
|
|
var self = mh.CompactSopModel;
|
|
if (this == self.tobemovedOnderdeel() ){
|
|
self.tobemovedOnderdeel(null);
|
|
} else {
|
|
self.tobemovedOnderdeel(this)
|
|
}
|
|
|
|
},
|
|
|
|
fHiernaartoe: function(){
|
|
var self = mh.CompactSopModel;
|
|
if (! self.tobemovedOnderdeel() && this.gevuld()){
|
|
self.fAnnuleerPlaatsing(this);
|
|
return
|
|
}
|
|
|
|
if (this.gevuld() ) {
|
|
apprise("Deze positie is al gevuld.");
|
|
return;
|
|
}
|
|
|
|
self.fSetBlokje(this)
|
|
},
|
|
|
|
fSetBlokje:function(selectedBlokje){
|
|
var self = mh.CompactSopModel;
|
|
|
|
if (selectedBlokje.gevuld()) return;
|
|
if (! self.tobemovedOnderdeel() ) return;
|
|
if (self.tobemovedOnderdeel().opA4()) return;
|
|
if (self.tobemovedOnderdeel().isBreedBlok() && ! self.fCheckGrootBlokPast(selectedBlokje)) return;
|
|
var paginanummer = selectedBlokje.paginanummer - 1
|
|
// als het een breed blok is, ga dan uit van het eerste blok in de
|
|
//rij om alle waardes te zetten
|
|
//of dat kan is in fCheckGrootBlokPast gecontroleerd
|
|
if ((selectedBlokje.bloknummer() ==2 || selectedBlokje.bloknummer() ==4) &&
|
|
self.tobemovedOnderdeel().isBreedBlok()){
|
|
selectedBlokje = self.paginas()[paginanummer].blokjes()[selectedBlokje.bloknummer() - 2]
|
|
} ;
|
|
|
|
selectedBlokje.naamkort(self.tobemovedOnderdeel().naamkort);
|
|
selectedBlokje.groepen(self.tobemovedOnderdeel().groepen());
|
|
selectedBlokje.isBreedBlok(self.tobemovedOnderdeel().isBreedBlok());
|
|
|
|
if (selectedBlokje.isBreedBlok()) {
|
|
self.fVoegGrootBlokToe(selectedBlokje);
|
|
}
|
|
|
|
self.tobemovedOnderdeel().opA4(true);
|
|
selectedBlokje.modulenr(self.tobemovedOnderdeel().modulenr ? self.tobemovedOnderdeel().modulenr : null)
|
|
selectedBlokje.gekozenVersie(self.tobemovedOnderdeel().gekozenVersie() ? self.tobemovedOnderdeel().gekozenVersie() : null)
|
|
selectedBlokje.gekozenVergelijking(self.tobemovedOnderdeel().gekozenVergelijking() ? self.tobemovedOnderdeel().gekozenVergelijking() : null)
|
|
selectedBlokje.gevuld(true);
|
|
selectedBlokje.kleur('#930f50');
|
|
selectedBlokje.type(self.tobemovedOnderdeel().type)
|
|
selectedBlokje.naam(self.tobemovedOnderdeel().naam);
|
|
selectedBlokje.toonnummer(self.tobemovedOnderdeel().toonnummer);
|
|
self.tobemovedOnderdeel(null)
|
|
},
|
|
|
|
fCheckGrootBlokPast :function(blokje){
|
|
var self = mh.CompactSopModel;
|
|
var paginanr = parseInt(blokje.paginanummer) -1
|
|
var targetblokje= parseInt( blokje.bloknummer())
|
|
var testblokje
|
|
|
|
if (targetblokje == 1 || targetblokje == 3) {
|
|
// check of het volgende blokje leeg is
|
|
testblokje = self.paginas()[paginanr].blokjes()[targetblokje];
|
|
}
|
|
if (targetblokje == 2 || targetblokje == 4) {
|
|
// check of het vorige blokje leeg is
|
|
testblokje = self.paginas()[paginanr].blokjes()[(targetblokje - 2)];
|
|
}
|
|
|
|
if (testblokje.gevuld() || blokje.gevuld()){
|
|
apprise("Voor dit onderdeel is de volle breedte van de pagina nodig. " +
|
|
"Kies een ander plek of verwijder <i>" +
|
|
testblokje.naam() + "</i>" )
|
|
return false
|
|
}
|
|
return true
|
|
},
|
|
|
|
fVoegGrootBlokToe: function (blokje){
|
|
var self = mh.CompactSopModel;
|
|
// een groot blokje heeft altijd de bloknummer 1 of 3 want
|
|
//dat is hiervoor al getest en anders gezet op bloknummer 1 of 2
|
|
var paginanr = parseInt(blokje.paginanummer) -1
|
|
var targetblokje= parseInt( blokje.bloknummer())
|
|
var testblokje
|
|
|
|
testblokje = self.paginas()[paginanr].blokjes()[targetblokje];
|
|
testblokje.verborgen(true);
|
|
},
|
|
|
|
fAnnuleerPlaatsing: function(blokje){
|
|
var self = mh.CompactSopModel;
|
|
var geplaatst = 0;
|
|
|
|
$.each(self.onderdelen(), function(i,p){
|
|
if (p.modulenr == blokje.modulenr()) {
|
|
p.opA4(false)
|
|
}
|
|
})
|
|
|
|
blokje.gevuld(false);
|
|
blokje.verborgen(false);
|
|
blokje.modulenr('');
|
|
blokje.kalenderjaar('');
|
|
blokje.gekozenVersie('');
|
|
blokje.gekozenVergelijking('');
|
|
blokje.kleur('transparent');
|
|
blokje.naam('');
|
|
blokje.naamkort('');
|
|
|
|
|
|
if (blokje.isBreedBlok()){
|
|
blokje.isBreedBlok(false)
|
|
|
|
var paginanr = parseInt(blokje.paginanummer) -1
|
|
var targetblokje= parseInt( blokje.bloknummer()) ;
|
|
|
|
// bij een breedblokje is het bloknummer altijd 1 of 3
|
|
self.paginas()[paginanr].blokjes()[targetblokje].verborgen(false);
|
|
}
|
|
},
|
|
|
|
fMaakPDF: function(){
|
|
var self = mh.CompactSopModel;
|
|
if (! self.selectedSchooljaar()){
|
|
apprise("Geen schooljaar geselecteerd.")
|
|
return
|
|
}
|
|
var sops = [];
|
|
var sop;
|
|
$.each(self.paginas(), function(x, p){
|
|
$.each(p.blokjes(), function(i, s){
|
|
if(!s.verborgen()) {
|
|
sop = {
|
|
'paginanr' : s.paginanummer,
|
|
'bloknr' : s.bloknummer(),
|
|
'modulenr' : s.modulenr() ? s.modulenr() : '',
|
|
'breed' : s.isBreedBlok() ? 'T': 'F',
|
|
'type' : s.type() ? s.type(): '',
|
|
'naam' : s.naam() ? s.naam() : '',
|
|
'kalenderjaar': s.kalenderjaar() ? s.kalenderjaar() : '',
|
|
'orgversieid' : s.gekozenVersie() ? s.gekozenVersie() : '',
|
|
'vergelijkid' : s.gekozenVergelijking() ? s.gekozenVergelijking() : null
|
|
};
|
|
sops.push(sop);
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
if(self.selectedOmvangJaren().length > 1){
|
|
self.selectedOmvangJaren.sort(function(a,b){return a-b}) ;
|
|
}
|
|
var submitData = {
|
|
'schooljaarnr' : self.selectedSchooljaar().id,
|
|
'orgID' : self.selectedOrganisatie().id,
|
|
'onderdelen' : sops,
|
|
'jaren' : self.selectedOmvangJaren(),
|
|
'paginas': self.paginas().length
|
|
|
|
};
|
|
|
|
|
|
|
|
$.post("index.php/monpas/compactsop/maakPDF/", submitData, function(result){
|
|
|
|
window.open('tmp/temp' + result + '.html');
|
|
if(result){
|
|
self.erIsEenSop(true);
|
|
}
|
|
},'json');
|
|
},
|
|
|
|
filterSelected: function(onderdelen){
|
|
if (! onderdelen()) return false;
|
|
return onderdelen().filter(function(onderdeel){
|
|
return ( onderdeel.selected() );
|
|
});
|
|
},
|
|
filterSelected_NotPlaced: function(onderdelen){
|
|
if (! onderdelen()) return false;
|
|
return onderdelen().filter(function(onderdeel){
|
|
return ( onderdeel.selected() && ! onderdeel.opA4() );
|
|
});
|
|
},
|
|
fToonUsage: function(wat){
|
|
switch (wat){
|
|
case "plaatsen" : apprise("Klik op een onderdeel om het te selecteren. <br>" +
|
|
"Klik vervolgens onder <i>Plaats onderdelen</i> op het vak waar u het onderdeel wilt plaatsen.");
|
|
break;
|
|
case "terugplaatsen" : apprise("Klik op een geplaatst onderdeel om de plaatsing ongedaan te maken.");
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
} ; // definition van model
|
|
mh.CompactSopModel.initBindings();
|
|
} // else
|
|
}// function init mh.SoptestModel
|
|
}); |