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

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