393 lines
16 KiB
JavaScript
393 lines
16 KiB
JavaScript
$(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
|