Files
2021-07-10 16:25:16 +02:00

793 lines
28 KiB
JavaScript

$(function () {
fPPijler = function (p) {
this.id = p.id;
this.pijlerID = p.pijlerID;
this.volgorde = p.volgorde;
this.naam = p.naam;
this.omschrijving = p.omschrijving;
this.huidig = ko.observable(p.huidig);
this.huidigOri = ko.observable(p.huidig);
this.gewenst = ko.observable(p.gewenst);
this.gewenstOri = ko.observable(p.gewenst);
};
meterPijler = function (p) {
this.id = p.id;
this.naam = p.naam;
this.score = ko.observable(0);
};
function fAddVersie(p){
var dit = this;
this.ovid = p.id
this.versieid = p.versie_id;
this.periodenummer = ko.observable(p.periodenummer);
this.naamsolo = ko.observable(p.naam);
this.naam = ko.computed(function(){
return "Periode-"+dit.periodenummer()+ ' ' +dit.naamsolo();
});
};
var appliedBindings = false;
ls.initPartituur = function () {
var newPart = true;
if (ls.ModelPplan !== undefined) {
var self = ls.ModelPplan;
if (ls.ModelPplan.partituurID() === undefined || ls.ModelPplan.partituurID() <= 0) {
SetMenus(0); // in main js
self.MaakNieuwePartituur();
} // if partituurID undefined
else {
$.post("index.php/ijkpartituur/partituur/resetVars/" + ls.ModelPplan.partituurID(), function (data) {
ls.ModelPplan.allowDelete(data.allowDelete);
ls.ModelPplan.allowChange(data.allowChange);
ls.ModelPplan.gemgereed(data.gereed);
ls.ModelPplan.totkost(data.kosten);
SetMenus(ls.ModelPplan.partituurID());
}, "json");
}
} else {
ls.ModelPplan = {
pijlers : ko.observableArray([]),
profielnamen : ko.observableArray(),
gekozenProfiel : ko.observable(''),
partituren : ko.observableArray([]),
partituurID : ko.observable(),
selectedPartituurID : ko.observable(),
selectedpijlers : ko.observableArray([]),
vandatum : ko.observable(''),
tmdatum : ko.observable(''),
pleiderID : ko.observable(),
email : ko.observable(''),
gemgereed : ko.observable(''),
totkost : ko.observable(''),
medewerkers : ko.observableArray([]),
newPnaam : ko.observable(""),
newPartituurNaam : ko.observable(),
schoolmeterpijlers : ko.observableArray([]),
newvandatum : ko.observable(),
newtotdatum : ko.observable(),
hasWrite : ko.observable(false),
magNieuw : ko.observable(true),
allowChange : ko.observable(false),
allowDelete : ko.observable(false),
isActievePart : ko.observable(true),
somHuidig : ko.observable(0),
profielHuidig : ko.observable(0),
minSomGewenst : ko.observable(0),
maxSomGewenst : ko.observable(0),
profielGewenst : ko.observable(0),
profielGewenstMax : ko.observable(0),
GemSomGewenst : ko.observable(0),
gewenstgewijzigd : ko.observable(false),
mes3 : '',
mes4 : '',
mes5 : '',
mes6 :'',
mes7 :'',
mes8: '', mes9: "",mes10:'',mes11: '', mes12:'',mes13:'',mes14:'',
mes15:'', mes16: '',
lbl1: '', lbl2: '', lbl3: '', lbl4 : '',lblja:'', lblnee:'',
versies : ko.observableArray(),
selectedVersie : ko.observable(),
kleurcodes : ko.observable(),
InitValues: function () {
var self = this;
$.getJSON('index.php/ijkpartituur/partituur', function (data) {
$.each(data.schoolmeterpijlers, function (i, p) {
self.schoolmeterpijlers.push(new meterPijler(p));
});
self.allowDelete(data.allowDelete);
self.hasWrite(data.write);
self.magNieuw(data.magNieuw);
self.allowChange(data.allowDelete);
self.isActievePart(data.isactievepart);
self.profielnamen(data.profielen);
self.medewerkers(data.medewerkers);
self.mes3=data.mes3;
self.mes4=data.mes4;
self.mes5=data.mes5;
self.mes6=data.mes6;
self.mes7=data.mes7;
self.mes8=data.mes8;
self.mes9=data.mes9;
self.mes10=data.mes10;
self.mes11=data.mes11;
self.mes12=data.mes12;
self.mes13=data.mes13;
self.mes14=data.mes14;
self.mes15=data.mes15;
self.mes16=data.mes16;
self.lbl1=data.lbl1;
self.lbl2=data.lbl2;
self.lbl3=data.lbl3;
self.lbl4=data.lbl4;
self.lblja=data.lblja;
self.lblnee=data.lblnee;
self.kleurcodes(data.kleuren);
if (!data.status) {
SetMenus(0);
} else {
SetMenus(data.partituurID);
};
if (!data.status) {
msg = data.mes1;
if (!data.write) {
msg += " <br />"+data.mes2;
}
apprise(msg, {animate: true}, function () {
if (!data.write) {
$.get('index.php/login/logout', function () {
$('body').html('');
});
} else {
self.MaakNieuwePartituur();
}
});
} else {
self.partituurID(data.partituurID);
self.refreshPijlers(data.partituurID);
}
}); //getjson
},
refreshPijlers: function (partID) {
var self = ls.ModelPplan;
$.getJSON('index.php/ijkpartituur/partituur/get_partituur/' + partID, function (data2) {
SetMenus(partID);
if (!data2.status) {
apprise(self.mes10, {
animate: true
});
return;
}
self.partituren(data2.partituren);
self.allowChange(data2.allowchange);
self.isActievePart(data2.isactievepart);
self.partituurID(data2.partituur.id);
self.selectedPartituurID(data2.partituur.id);
self.gekozenProfiel(data2.partituur.profielid);
self.vandatum(data2.partituur.startdatum);
self.tmdatum(data2.partituur.einddatum);
self.email(data2.partituur.email);
self.gemgereed(data2.partituur.gereed);
self.totkost(data2.partituur.kosten);
self.hasWrite(data2.write);
if (data2.partituur.projectleider) {
self.pleiderID(data2.partituur.projectleider.id);
}
self.pijlers.removeAll();
if (data2.pijlers) {
$.each(data2.pijlers, function (i, k) {
self.pijlers.push(new fPPijler(k));
});
};
self.somHuidig(0);
if (data2.ruwescores) {
$.each(data2.ruwescores, function (i, p) {
self.somHuidig(self.somHuidig() + parseInt(p.score, 10));
});
};
self.profielHuidig(ScoreNaarProfiel(self.somHuidig()));
self.SetSelectedPijlers();
});
self.gewenstgewijzigd(false);
},
checkInteger: function () {
var self = this;
if (self.score() === '') return;
if (!appliedBindings) return;
var testwaarde = self.score();
var intRegex = /^\d+$/;
if (!intRegex.test(testwaarde)) {
apprise(self.mes11, {
'textOK': "ok"
}, function (response) {
self.score(0);
id = "#score" + self.id;
$(id).focus();
}); //function(response)
} // if ! int
},
ResetAll: function () {
var self = ls.ModelPplan;
var pID = self.partituurID();
//SetMenus(0); // function in Main.js ga er vanuit dat er geen actieve partituur is
if (self.partituren) {
self.partituren.removeAll();
}
// get de nieuwe lijst van partituren
$.post('index.php/ijkpartituur/partituur/get_partituren', function (data) {
self.partituren(data.partituren);
}, 'json');
if (self.selectedpijlers) {
self.selectedpijlers.removeAll();
}
self.vandatum('');
self.tmdatum('');
self.pleiderID();
self.email('');
self.gemgereed("");
self.totkost("");
self.newPnaam("");
self.pijlers.removeAll();
self.gekozenProfiel('');
self.gewenstgewijzigd(false);
},
reInit: function () {
var self = ls.ModelPplan;
if (self.selectedPartituurID() < 1 || self.selectedPartituurID() === undefined) {
return;
} else {
self.partituurID(self.selectedPartituurID());
}
self.ResetAll();
self.refreshPijlers(self.partituurID());
self.gewenstgewijzigd(false);
},
resetPijlerprofiel: function () {
var self = this;
$.each(self.pijlers(), function (i, p) {
p.huidig(p.huidigOri());
p.gewenst(p.gewenstOri());
});
self.SetSelectedPijlers();
self.gekozenProfiel("");
self.gewenstgewijzigd(false);
},
fWijzigNaam: function () {
var self = ls.ModelPplan;
var partID = self.selectedPartituurID();
var vNaam = '';
$.each(self.partituren(), function (i, p) {
if (p.id == partID) {
vNaam = p.naam;
}
});
apprise(self.mes12, {
'input': vNaam
}, function (r) {
if (r > "" && (r != vNaam)) {
var submitData = {
id: partID,
naam: r
};
$.post("index.php/ijkpartituur/partituur/setNaam", submitData);
ko.utils.arrayForEach(self.partituren(), function (p) {
if (p.id == partID) {
p.naam = r;
$("#partituurnaamTest option:selected").text(r);
}
});
} // if
}); // apprise
},
profielOpslaan: function () {
var self = ls.ModelPplan;
var submitData = {
partituurID: self.selectedPartituurID(),
profiel: this.pijlers()
};
var submitURL = "index.php/ijkpartituur/partituur/save_profiel";
$.post(submitURL, submitData, function (data) {
// helpprofiel moet nu weer de waarde van profiel krijgen
ko.utils.arrayForEach(self.pijlers(), function (p) {
p.huidigOri(p.huidig());
p.gewenstOri(p.gewenst());
});
self.gewenstgewijzigd(false);
}, 'json');
},
changeProfiel: function () {
var self = this;
var that = ls.ModelPplan;
$.getJSON('index.php/ijkpartituur/partituur/get_standaard/' + self.id + '/' + that.partituurID(), function (data) {
$.each(data.standaards, function (i, p) {
ls.ModelPplan.pijlers()[i].gewenst(p.waarde);
});
ls.ModelPplan.SetSelectedPijlers();
}); // einde getJSON
},
SetGewenst: function(wat){
var self = ls.ModelPplan;
this.gewenst(wat);
self.SetSelectedPijlers();
},
SetSelectedPijlers: function () {
if (!appliedBindings) {
return;
}
var self = ls.ModelPplan;
self.selectedpijlers.removeAll();
ko.utils.arrayForEach(self.pijlers(), function (p) {
if (p.huidig() < p.gewenst()) {
self.selectedpijlers.push({
'id': p.id,
'naam': p.naam
});
}
});
$.each(self.pijlers(), function (i, p) {
if (p.gewenst() != p.gewenstOri()) {
self.gewenstgewijzigd(true);
}
})
return true;
},
Nieuw: function () {
var self = this;
apprise(self.mes13, {
'confirm': true,
'textOk': self.lblja,
'textCancel': self.lblnee,
'animate': true
}, function (response) {
if (response) {
self.MaakNieuwePartituur();
} // einde if
} // einde function response
); // einde apprise
},
MaakNieuwePartituur: function () {
var self = this;
if (self.schoolmeterpijlers()){
$.each(self.schoolmeterpijlers(), function (i,p) {
p.score(0);
});
}
$.post("index.php/monpas/monitor/getperiodesperschoolvanuitpartituur/1" ,function(data){
self.versies.removeAll();
if (data.versies){
$.each(data.versies, function(i,p){
self.versies.push(new fAddVersie(p));
});
self.selectedVersie(self.versies()[0]);
}
if ($('#lsOverlay').css('display') == 'none') {
$("#lsOverlay").fadeIn();
}
setDrag("#popNewPartituur");
$('#popNewPartituur').fadeIn();
},'json');
},
fGetScores: function(){
var self = ls.ModelPplan;
if (!self.selectedVersie()) return;
var submitData= {ovid : self.selectedVersie().ovid};
$.post("index.php/ijkpartituur/partituur/getscores", submitData, function(results){
$.each(results, function(i,p){
$.each(self.schoolmeterpijlers(), function(j,k){
if (k.id == p.nummer) {
k.score(Math.round((parseFloat(p.somscore) / parseFloat(p.num)) * 10) / 10);
return false;
}
});// each self schoolmeterpijlers
}); // each results
},'json');
},
opslaanPleider: function () {
var self = this;
if (self.pleiderID() === undefined) return;
var submitDATA = {
partituurID: self.partituurID(),
pleiderID: self.pleiderID()
};
var submitURL = "index.php/ijkpartituur/partituur/opslaan_pleider";
$.post(submitURL, submitDATA, function (data) {
if (!data.status) {
apprise(self.mes14, {
animate: true
});
} else {
if (data.email !== self.email() || self.email() === "") {
screennaam = $("#DropPleider :selected").text();
apprise(self.mes15+ ' ' + screennaam + '?', {
'confirm': true,
'textOk': self.lblja,
'textCancel': self.lblnee,
'animate': true
}, function (response) {
if (response) {
self.email(data.email);
self.opslaanEmail();
}
}); // einde if response en einde function response// einde apprise
} // einde if dbEmail <> self.email
}
}, 'json'); // einde function succes en einde post
},
opslaanEmail: function () {
var self = this;
var submitData = {
partituurID: self.partituurID(),
email: self.email()
};
var submitURL = "index.php/ijkpartituur/partituur/opslaan_email";
$.post(submitURL,
submitData, function (succes) {});
},
saveDates: function () {
var self = this;
var vanDate = NedDatNaarDateObj(self.vandatum());
var tmDate = NedDatNaarDateObj(self.tmdatum());
if (vanDate == undefined) {
vandate = new Date();
}
if (isNaN(vanDate.getTime())) {
vanDate = new Date();
apprise(self.mes8, {
"textOK": 'OK'
});
self.vandatum(DateNaarNedDat(vanDate));
}
if (isNaN(tmDate.getTime())) {
tmDate.setTime(vanDate.getTime());
tmDate.setFullYear(vanDate.getFullYear() + 1);
apprise(self.mes9, {
"textOK": 'OK'
});
self.tmdatum(DateNaarNedDat(tmDate));
}
if (vanDate.getTime() > tmDate.getTime()) {
apprise(self.mes5, {
verify: true,
textYes: self.mes6,
textNo: self.mes7,
}, function (ans) {
if (ans) {
vanDate = new Date((tmDate.getFullYear() - 1), tmDate.getMonth(), tmDate.getDate());
} else {
tmDate = new Date(vanDate.getFullYear() + 1, vanDate.getMonth(), vanDate.getDate());
}
self.vandatum(DateNaarNedDat(vanDate));
self.tmdatum(DateNaarNedDat(tmDate));
self.fGoSaveData();
}); // Apprise
} // if
else {
self.fGoSaveData();
}
},
fGoSaveData: function () {
var self = ls.ModelPplan;
var submitDATA = {
partituurID: self.partituurID(),
vandatum: self.vandatum(),
tmdatum: self.tmdatum()
};
var submitURL = "index.php/ijkpartituur/partituur/opslaan_dates";
$.post(submitURL, submitDATA, function (succes) {
if (!succes) {
return
} else {
if (succes.errorstr) {
apprise(succes.errorstr, {
'textOK': 'OK'
}, function () {
self.vandatum(succes.start);
self.tmdatum(succes.eind);
}); // apprise
};
};
}, 'json');
},
// getNewPijler: function () {
// // //functie getnew opent de popup om een nieuwe pijler te maken of een bestaande, eigen pijler
// // // aan de set van pijlers in de partituur toe te voegen.
// ls.ModelPplan.unpijlers.removeAll();
// $.getJSON('index.php/ijkpartituur/partituur/get_unused_pijlers/' + this.partituurID(), function (upijlers) {
// $.each(upijlers.unusedpijlers, function (i, p) {
// ls.ModelPplan.unpijlers.push(p);
// });
// $("#lsOverlay").fadeIn(200, function () {
// setDrag("#popNewPijler");
// $('#popNewPijler').fadeIn();
// });
// }); // einde getJson
// },
// VerwijderPijler: function () {
// //delete wordt op twee manieren aangeroepen: vanuit hoofdpagina of vanuit de popup
// //dit is de delete vanuit de popup. deze delete verwijderd dus de hele eigenpijler
// // maar dat mag alleen als de pijler niet gebruikt wordt in een partituur
// var self = this;
// var delIDs = [];
// $.each(self.unpselected(), function (i, p) {
// delIDs[i] = p.id;
// });
// var submitDATA = {
// eigenPijlerIds: delIDs,
// partituurID: self.partituurID()
// };
// var submitURL = "index.php/ijkpartituur/partituur/del_eigen_pijlers";
// $.post(submitURL,
// submitDATA, function (data) {
// if (data) {
// self.unpijlers.removeAll();
// self.unpijlers(data);
// self.unpselected([]);
// }
// }, 'json');
// },
delPijler: function () {
// //delete wordt op twee manieren aangeroepen: vanuit hoofdpagina of vanuit de popup
// //dit is de delete vanuit de hoofdpagina
var self = this;
var delIDs = [];
$.each(self.eigenselected(), function (i, p) {
delIDs[i] = p.id;
});
var submitDATA = {
eigenPijlerIds: delIDs
};
var submitURL = "index.php/ijkpartituur/partituur/del_pijlers";
$.post(submitURL,
submitDATA, function (succes) {
self.eigenpijlers.removeAll(self.eigenselected());
self.eigenselected([]);
}, 'json');
},
DeletePartituur: function () {
var self = ls.ModelPplan;
apprise(self.mes16, {
'confirm': true,
'textOk': self.lblja,
'textCancel': self.lblnee,
'animate': true
}, function (response) {
if (response) {
var submitURL = 'index.php/ijkpartituur/partituur/del_partituur/' + self.partituurID();
$.post(submitURL, function (result) {
self.ResetAll();
self.partituurID(result);
self.selectedPartituurID('');
if (result === false || result === undefined || result < 0 || result == "false" || result == null) {
// if ($('#lsOverlay').css('display') == 'none') {
// $("#lsOverlay").fadeIn();
// }
// setDrag("#popNewPartituur");
// $('#popNewPartituur').fadeIn();
self.MaakNieuwePartituur();
} else {
self.selectedPartituurID(result);
self.refreshPijlers();
}
}); // einde post
} // einde if
} // einde function response
); // einde apprise
},
// addPijler: function () {
// var self = this;
// if ((self.newPnaam() !== "") && (self.unpijlers.indexOf(self.newPnaam()) < 0) &&
// (self.eigenpijlers.indexOf(self.newPnaam()) < 0)) {
// var submitDATA = {
// pijlernaam: self.newPnaam(),
// partituurid: this.partituurID()
// };
// $.post('index.php/ijkpartituur/partituur/save_new_eigenpijler', submitDATA, function (data) {
// if (!data.status) {
// apprise('U kunt geen wijzigingen aanbrengen', {
// animate: true
// });
// } else {
// if (data.eigenpijlers) {
// self.unpijlers(data.eigenpijlers);
// }
// self.newPnaam('');
// }
// }, 'json'); //einde getJson
// }
// },
// InvoegenPijler: function () {
// var self = this;
// var eigen = [];
// $.each(self.unpselected(), function (i, p) {
// eigen[i] = p.id;
// }); // each
// //now stuur de array met id naar de db om op te worden geslagen
// var submitDATA = {
// insertpijlerIDs: eigen,
// partituurID: self.partituurID()
// };
// var submitURL = "index.php/ijkpartituur/partituur/insert_eigen_pijlers";
// $.post(submitURL,
// submitDATA, function (succes) {
// if (succes) {
// $.each(self.unpselected(), function (i, p) {
// self.eigenpijlers.push(p);
// }); // each
// } // einde if succes
// } //einde function succes
// ); // einde post
// self.ClosePopUp();
// }, // einde functie invoegen
ClosePopUp: function (welke) {
var self = ls.ModelPplan
$("#lsOverlay").fadeOut();
if (ls.ModelPplan.partituurID() === undefined || ls.ModelPplan.partituurID() == 'false') {
apprise(self.mes3, {}, function () {
$.post("index.php/shared/portal/naarmodule/0" , function(){
location.reload();
});
}); // apprise
} // if undefined
$("#popNewPartituur").hide();
},
OpslaanNew: function () {
if (!newPart) return;
newPart = false;
var self = this;
wtekst = '';
if (self.newPartituurNaam() <= "" || self.newPartituurNaam() === undefined) {
wtekst = self.lbl1 + "; ";
}
if (self.newvandatum() === undefined) {
wtekst +=self.lbl2 + "; ";
}
if (self.newtotdatum() === undefined) {
wtekst += self.lbl3 + "; ";
}
if (wtekst > "") {
apprise(self.mes4 + wtekst, {
'textOk': 'OK'
}, function (response) {
newPart = true;
return;
} // einde function response
); // einde apprise
} // einde if wtekst
else {
//else 1
var vanDate = NedDatNaarDateObj(self.newvandatum());
var tmDate = NedDatNaarDateObj(self.newtotdatum());
if (vanDate.getTime() > tmDate.getTime()) {
apprise(self.mes5, {
verify: true,
textYes: self.mes6,
textNo: self.mes7,
}, function (ans) {
if (ans) {
vanDate = new Date((tmDate.getFullYear() - 1), tmDate.getMonth(), tmDate.getDate());
} else {
tmDate = new Date(vanDate.getFullYear() + 1, vanDate.getMonth(), vanDate.getDate());
}
self.newvandatum(DateNaarNedDat(vanDate));
self.newtotdatum(DateNaarNedDat(tmDate));
self.fMaakNewPartituur();
});
}
// dan nu opslaan van de gegevens naar de server
else {
// else 2
self.fMaakNewPartituur();
} // else 2
} // einde else1
newPart = true;
},
fMaakNewPartituur: function () {
var self = ls.ModelPplan;
var scoreArray = ko.toJS(self.schoolmeterpijlers);
var oldID=null ;
if (ls.ModelPplan.partituurID()){oldID = ls.ModelPplan.partituurID() };
var submitData = {
oldpartituur: oldID,
naam: self.newPartituurNaam(),
vandatum: self.newvandatum(),
tmdatum: self.newtotdatum(),
versieid : self.selectedVersie().versieid,
ovid : self.selectedVersie().ovid
};
var submitURL = "index.php/ijkpartituur/partituur/nieuwe_partituur";
$.post(submitURL, submitData, function (succes) {
self.partituurID(succes.id);
ls.ModelPplan.ResetAll();
ls.ModelPplan.refreshPijlers(succes.id);
// reset te velden van pop up
self.newPartituurNaam('');
self.newvandatum('');
self.newtotdatum('');
self.ClosePopUp('partituur');
}, 'json'); // einde post
}
};
ls.ModelPplan.minSomGewenst = ko.computed(function () {
var self = ls.ModelPplan;
var max = 0;
var min = 0;
var gem = 0;
$.each(self.pijlers(), function (i, p) {
min = min + CodeNaarMinScore(p.gewenst());
max = max + CodeNaarMaxScore(p.gewenst());
});
gem = (min + max) / 2;
self.maxSomGewenst(max);
self.profielGewenst(ScoreNaarProfiel(gem));
self.profielGewenstMax(ScoreNaarProfiel(max));
self.GemSomGewenst(gem);
return min;
});
ls.ModelPplan.WijzigStatus = ko.computed(function () {
return this.gewenstgewijzigd() ? "gewijzigd" : "ongewijzigd";
}, ls.ModelPplan);
ls.ModelPplan.InitValues();
ko.applyBindings(ls.ModelPplan, document.getElementById("pijler-pagina"));
appliedBindings = true;
}
function getRuwescores(){
return;
var self = ls.ModelPplan;
$.getJSON('index.php/ijkpartituur/partituur/get_ruwe_sopscore', function (data) {
$.each(data, function(i,p){
if(p.id!='Status'){
var curPijler = ko.utils.arrayFirst(self.schoolmeterpijlers(), function(item) {
return item.id==p.id;
});
if(curPijler) curPijler.score(p.value);
}
});
});
}
};
$('#DragTable').draggable();
});