$(function () { var appliedBindings = false; var dontask = false; fNiveau = function (p) { this.actief = ko.observable(p.actief); this.id = ko.observable(p.id); this.nummer = ko.observable(p.nummer); this.omschrijving = ko.observable(p.omschrijving); }; fPijlers = function (p) { this.fw_versie = p.fw_versie; this.id = p.id; this.volgorde = ko.observable(p.volgorde); this.pijlernaam = ko.observable(p.naam); this.waarde = ko.observable(); this.profielID = ko.observable(); }; fVersies = function (p) { this.datum = p.datum; this.omschrijving = p.omschrijving; this.id = p.id; this.vastgelegd = p.vastgelegd; }; ls.initProfielen = function(){ if (ls.ModelProfielen !== undefined) { } else { ls.ModelProfielen = { versies : ko.observableArray([]), selectedVersieID: ko.observable(), selectedVersie : ko.observable(), newOmschrijving : ko.observable(), newDatum : ko.observable(), copyPrevious : ko.observable('true'), niveaus : ko.observableArray([]), selectedProfiel : ko.observableArray([]), selectedNiveauID: ko.observable(), pijlers : ko.observableArray([]), newProfiel : ko.observable(true), test : ko.observable(), omschrijving : ko.observable(), selectedRow : ko.observable(), newNiveaunaam : ko.observable(), newNiveaunummer : ko.observable(), newPijlernaam : ko.observable(''), kleurcodes : ko.observable(), InitValues: function () { var self = ls.ModelProfielen; self.versies.removeAll(); self.niveaus.removeAll(); self.pijlers.removeAll(); $.post('index.php/ijkpartituur/nivoprofielen/GetAll/0', function (data) { $.each(data.versies, function (i, p) { self.versies.push(new fVersies(p)); }); // each versies $.each(data.niveaus, function (i, p) { self.niveaus.push(new fNiveau(p)); }); $.each(data.pijlers, function (i, p) { self.pijlers.push(new fPijlers(p)); }); if (!$.isEmptyObject(self.niveaus())) { self.selectedNiveauID(self.niveaus()[0].id()); self.selectedRow(self.niveaus()[0].id()); self.fGetPijlerprofiel(self.selectedNiveauID()); } self.kleurcodes(data.kleurcodes); }, 'json'); }, setVersie: function () { var self = ls.ModelProfielen; $.each(self.versies(), function (i, versie) { if (versie.id == self.selectedVersieID()) { self.selectedVersie(versie); } // if }); // each $.post('index.php/ijkpartituur/nivoprofielen/GetAll/' + self.selectedVersieID(), function (data) { self.niveaus.removeAll(); $.each(data.niveaus, function (i, p) { self.niveaus.push(new fNiveau(p)); }); self.pijlers.removeAll(); $.each(data.pijlers, function (i, p) { self.pijlers.push(new fPijlers(p)); }); if (!$.isEmptyObject(self.niveaus())) { self.selectedNiveauID(self.niveaus()[0].id()); self.selectedRow(self.niveaus()[0].id()); self.fGetPijlerprofiel(self.selectedNiveauID()); } }, 'json'); }, fNieuweVersie: function () { var self = ls.ModelProfielen; var naam = ''; // een nieuwe versie is alleen toegestaan als er geen nog niet vastgelegde versies zijn $.each(self.versies(), function (i, v) { if (v.vastgelegd === 0) { naam = v.omschrijving; } }); if (naam.length > 0) { apprise(naam + " is nog niet vastgelegd. U kunt geen nieuwe versie aanmaken."); return; } else { self.newOmschrijving(""); self.newDatum(""); if ($('#lsOverlay').css('display') == 'none') { $("#lsOverlay").fadeIn(); } setDrag("#popNewVersie"); $('#popNewVersie').fadeIn(); } }, fAskVast: function () { var self = ls.ModelProfielen; if (self.selectedVersie().vastgelegd === 0) { apprise("Weet u zeker dat u " + self.selectedVersie().omschrijving + " wilt vastleggen?", { 'verify': true, textYes: 'ja', textNo: 'nee' }, function (ans) { if (!ans) { $("#cbVastgelegd").attr('checked', false); } else { ls.ModelProfielen.fVersieOpslaan(); return true; } }); //apprise } }, fGetPijlerprofiel: function (Nivo) { var self = ls.ModelProfielen; self.selectedProfiel(); $.post('index.php/ijkpartituur/nivoprofielen/getPijlerprofiel/' + Nivo, function (data) { self.selectedProfiel(data.pijlerprofiel); // reset de waarde $.each(self.pijlers(), function (j, k) { k.waarde(0); k.profielID(0); self.newProfiel(true); }); // each $.each(data.pijlerprofiel, function (i, p) { self.newProfiel(false); $.each(self.pijlers(), function (j, k) { if (k.id == p.pijlerID) { k.waarde(p.waarde); k.profielID(p.profielID); } }); // each pijlers }); }, 'json'); }, fMaakVersie: function () { var self = ls.ModelProfielen; var copyJN = self.copyPrevious(); var submitData = { omschrijving: self.newOmschrijving(), datum: self.newDatum() }; $.post("index.php/ijkpartituur/nivoprofielen/saveNewVersion/" + copyJN, submitData, function (newVersie) { // select opnieuw vullen self.versies.unshift(new fVersies(newVersie.newVersie)); self.selectedVersieID(newVersie.newVersie.id); self.setVersie(); }, 'json'); self.ClosePopUp(); }, fVersieOpslaan: function () { var vast; var self = ls.ModelProfielen; if ($("#cbVastgelegd").attr('checked')) self.selectedVersie().vastgelegd = 1; else self.selectedVersie().vastgelegd = 0; var submitData = { omschrijving: self.selectedVersie().omschrijving, datum: self.selectedVersie().datum, vastgelegd: self.selectedVersie().vastgelegd, id: self.selectedVersie().id }; $.post("index.php/ijkpartituur/nivoprofielen/saveVersion", submitData, function () { //nu de selectboxwaarden nog aanpassen $.each(self.versies(), function (i, versie) { if (versie.id == self.selectedVersie().id) { versie.omschrijving = self.selectedVersie().omschrijving; versie.datum = self.selectedVersie().datum; versie.vastgelegd = self.selectedVersie().vastgelegd; } }); // each }); }, fDeleteVersie: function () { var vID = this.id; var self = ls.ModelProfielen; apprise("Weet u zeker dat u " + self.selectedVersie().omschrijving + " wilt verwijderen?", { verify: true, textYes: 'ja', textNo: 'nee' }, function (ans) { if (ans) { $.post('index.php/ijkpartituur/nivoprofielen/deleteVersion/' + vID, function () { self.versies.remove(function (item) { return item.id == vID; }); }); // post } }); }, ClosePopUp: function () { $("#lsOverlay").fadeOut(); $('.popup').fadeOut(); }, fProfielOpslaan: function () { var self = ls.ModelProfielen; var pijlerArray = []; $.each(self.pijlers(), function (i, p) { if (p.waarde() === 0) { apprise("Pijler " + p.pijlernaam() + " is nog niet ingevuld"); pijlerArray = []; return false; } else { pijlerArray.push({ profielID: p.profielID(), pijlerID: p.id, waarde: p.waarde() }); } }); if (pijlerArray.length <= 0) return; var submitData = { niveauID: self.selectedNiveauID(), pijlerwaarden: pijlerArray }; $.post("index.php/ijkpartituur/nivoprofielen/savePijlerProfiel", submitData); }, fNieuwNiveau: function () { var self = ls.ModelProfielen; self.newNiveaunaam(""); self.newNiveaunummer(""); if ($('#lsOverlay').css('display') == 'none') { $("#lsOverlay").fadeIn(); } setDrag("#popNewNiveau"); $('#popNewNiveau').fadeIn(); }, fMaakNiveau: function () { var self = ls.ModelProfielen; submitData = { omschrijving: self.newNiveaunaam(), nummer: self.newNiveaunummer(), versie: self.selectedVersieID }; $.post('index.php/ijkpartituur/nivoprofielen/AddNiveau', submitData, function (data) { self.niveaus.push(new fNiveau(data)); var newID = data.id; $("#tdNS" + newID).click(); }, 'json'); self.ClosePopUp(); }, fSaveNiveau: function () { var self = ls.ModelProfielen; var submitData = { id: this.id(), omschrijving: this.omschrijving(), nummer: this.nummer() }; $.post("index.php/ijkpartituur/nivoprofielen/SaveNiveau", submitData); }, fNieuwPijler: function () { var self = ls.ModelProfielen; self.newPijlernaam(""); if ($('#lsOverlay').css('display') == 'none') { $("#lsOverlay").fadeIn(); } setDrag("#popMaakNewPijler"); $('#popMaakNewPijler').fadeIn(); }, fAddPijler: function () { var self = ls.ModelProfielen; var newVolgorde = parseInt(self.pijlers()[self.pijlers().length - 1].volgorde(),10) + 1; var nID = self.selectedNiveauID(); if (self.newProfiel()) { nID = 0; } var submitData = { pijlernaam: self.newPijlernaam(), volgorde: newVolgorde, versie: self.selectedVersieID(), niveauID: nID }; $.post('index.php/ijkpartituur/nivoprofielen/AddPijler', submitData, function (data) { self.pijlers.push(new fPijlers(data)); if (!self.newProfiel()) { self.pijlers()[self.pijlers().length - 1].waarde(1); self.pijlers()[self.pijlers().length - 1].profielID(data.profielID); } // if }, 'json'); self.ClosePopUp(); }, fSavePijler: function () { var self = ls.ModelProfielen; var pID = this.id; var submitData = { id: pID, volgorde: this.volgorde(), naam: this.pijlernaam() }; $.post("index.php/ijkpartituur/nivoprofielen/SavePijler", submitData); }, fSaveProfiel: function () { var self = ls.ModelProfielen; var pID = this.id; if (this.profielID() > 0) { var submitData = { id: this.profielID(), waarde: this.waarde() }; $.post('index.php/ijkpartituur/nivoprofielen/SaveProfiel', submitData); } }, fDeletePijler: function () { var self = ls.ModelProfielen; var pID = this.id; apprise("Weet u zeker dat u pijler " + this.pijlernaam() + " wilt verwijderen? ", { verify: true, textYes: 'ja', textNo: 'nee' }, function (ans) { if (ans) { $.post("index.php/ijkpartituur/nivoprofielen/deletePijler/" + pID + '/' + self.selectedNiveauID()); $.each(self.pijlers(), function (i, p) { if (p.id == pID) { self.pijlers.remove(p); return false; } }); // each } // if ans }); // apprise }, fNiveauVerwijderen: function () { var self = ls.ModelProfielen; var niveauID = this.id(); apprise("Weet u zeker dat u niveau " + this.omschrijving() + " wilt verwijderen?", { 'verify': true, textYes: 'ja', textNo: 'nee' }, function (ans) { if (ans) { $.post('index.php/ijkpartituur/nivoprofielen/DeleteNiveaus/' + niveauID, function () { self.niveaus.remove(function (item) { return item.id() == niveauID; }); //remove self.selectedRow(''); self.selectedNiveauID(''); }, 'json'); } // if ans }); // apprise }, fSelectNiveau: function () { var self = ls.ModelProfielen; self.selectedRow(this.id()); self.selectedNiveauID(this.id()); self.fGetPijlerprofiel(this.id()); // dit id moet verwijzen naar niveauID }, fReturnTrue : function(){ return true; } }; // einde model definitie ls.ModelProfielen.InitValues(); ko.applyBindings(ls.ModelProfielen, document.getElementById("profiel-pagina")); appliedBindings = true; } // else }; }) // function