$(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 += "
"+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(); });