444 lines
11 KiB
JavaScript
444 lines
11 KiB
JavaScript
$(function(){
|
|
|
|
mh.initSorteringModel = function(){
|
|
|
|
function fAddSWV(p) {
|
|
this.id = p.id;
|
|
this.soort = p.soort
|
|
this.naam = p.naam
|
|
}
|
|
|
|
function fAddSWVIndeling(p) {
|
|
var dit = this;
|
|
this.kamers = ko.observableArray([]),
|
|
this.id = p.id;
|
|
this.soort = p.soort
|
|
this.naam = p.naam
|
|
if (p.kamers) {
|
|
$.each(p.kamers, function (x, z) {
|
|
dit.kamers.push(new fAddKamer(z));
|
|
})
|
|
}
|
|
}
|
|
|
|
function fAddKamer(p) {
|
|
var dit = this;
|
|
this.id = p.id;
|
|
this.soort = p.soort
|
|
this.naam = p.naam
|
|
this.plaats = p.plaats
|
|
this.bgs = ko.observableArray([]);
|
|
if (p.bgs) {
|
|
$.each(p.bgs, function (x, z) {
|
|
dit.bgs.push(new fAddBG(z));
|
|
})
|
|
}
|
|
}
|
|
|
|
function fAddBG(p) {
|
|
var dit = this;
|
|
this.id = p.id;
|
|
this.soort = p.soort
|
|
this.naam = p.naam
|
|
this.plaats = p.plaats
|
|
this.indelingen = ko.observableArray([]);
|
|
if (p.scholen) {
|
|
$.each(p.scholen, function (a, b) {
|
|
dit.indelingen.push(new fAddSchoolIndeling(b));
|
|
})
|
|
}
|
|
}
|
|
|
|
function fAddSchoolIndeling(s ) {
|
|
var dit = this;
|
|
this.schoolid = s.id;
|
|
this.soort = s.soort;
|
|
this.naam = s.naam;
|
|
this.naamkort = s.naamkort;
|
|
this.brin = s.brin;
|
|
this.plaats = s.plaats;
|
|
this.criteriumid = s.criteriumid;
|
|
this.selectedOptie = ko.observable(null);
|
|
this.opties = ko.observableArray('');
|
|
var school = s.id;
|
|
var gekozenid = s.indeling.waardeid;
|
|
if(s.opties){
|
|
var lengte = s.opties.length;
|
|
if(s.indeling.waardeid == s.opties){
|
|
|
|
}
|
|
|
|
}
|
|
if (s.opties) {
|
|
$.each(s.opties, function (i, o) {
|
|
dit.opties.push(new fAddOptie(o, i, lengte, school, gekozenid));
|
|
if(o.waardeid == s.indeling.waardeid){
|
|
dit.selectedOptie(o.waardeid)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
function fAddOptie(o, i, lengte, school, gekozenid){
|
|
var dit = this;
|
|
this.optie = o.naam;
|
|
this.waardeid = o.waardeid;
|
|
var school = school;
|
|
var gekozenid = gekozenid;
|
|
this.selectedSchool = ko.observable(school);
|
|
|
|
this.gekozenid = ko.observable(gekozenid);
|
|
this.kolombreedte2 = ko.pureComputed(function(){
|
|
var breedte = 0;
|
|
var kolom1= 210;
|
|
var tabel = 1000;
|
|
var min = (tabel - kolom1)/lengte;
|
|
var max = 210;
|
|
min > max ? breedte = max : breedte = min;
|
|
breedte = breedte + 'px';
|
|
|
|
return breedte;
|
|
})
|
|
}
|
|
|
|
function fAddCriteria(c){
|
|
var dit = this;
|
|
var lengte = c.labels.length;
|
|
this.criteriumid = c.id;
|
|
this.swvid = c.swv_id;
|
|
this.criterium = ko.observable(c.naam);
|
|
this.criteriumoud = ko.observable(c.naam);
|
|
this.labels = ko.observableArray([]);
|
|
if (c.labels) {
|
|
$.each(c.labels, function (j, l) {
|
|
dit.labels.push(new fAddLabels( l, j, lengte));
|
|
})
|
|
}
|
|
}
|
|
|
|
function fAddLabels(l, j, lengte){
|
|
var dit = this;
|
|
this.index = j;
|
|
this.waardeid = l.waardeid;
|
|
this.sorteringid = l.sorteringid;
|
|
this.label = ko.observable(l.naam);
|
|
this.volgorde = l.volgorde;
|
|
|
|
this.kolombreedte = ko.pureComputed(function(){
|
|
var breedte = 0;
|
|
var kolom1 = 210;
|
|
var tabel = 1000;
|
|
var min = (tabel - kolom1)/lengte;
|
|
var max = 210;
|
|
min > max ? breedte = max : breedte = min;
|
|
breedte = breedte + 'px';
|
|
|
|
return breedte;
|
|
})
|
|
}
|
|
|
|
|
|
|
|
if (mh.SorteringModel !== undefined){
|
|
mh.SorteringModel.initModel();
|
|
}
|
|
else {
|
|
mh.SorteringModel = {
|
|
swvs : ko.observableArray([]),
|
|
criteria : ko.observableArray([]),
|
|
nieuweLabels : ko.observableArray([]),
|
|
swvindeling : ko.observable(''),
|
|
selectedSWV : ko.observable(''),
|
|
selectedCriterium : ko.observable(''),
|
|
selectedLabel : ko.observable(''),
|
|
nieuwCriterium : ko.observable(''),
|
|
nieuwLabel1 : ko.observable(''),
|
|
nieuwLabel2 : ko.observable(''),
|
|
toonIndeling : ko.observable(false),
|
|
legelabels : ko.observable(false),
|
|
kolom1 : ko.pureComputed(function(){
|
|
var aantal = 0
|
|
var kolom1 = 210
|
|
if(mh.SorteringModel.selectedCriterium().labels> 0){
|
|
aantal = mh.SorteringModel.selectedCriterium().labels.length;
|
|
|
|
var tabel = 1000;
|
|
var breedte = (tabel - kolom1)% aantal + kolom1;
|
|
kolom1 = breedte;
|
|
|
|
}
|
|
kolom1 = kolom1 + 'px';
|
|
|
|
return kolom1;
|
|
}),
|
|
|
|
initBindings :function(){
|
|
var self = mh.SorteringModel;
|
|
if (!ko.dataFor(document.getElementById('pagSortering')) ) {
|
|
ko.applyBindings(mh.SorteringModel, document.getElementById("pagSortering"));
|
|
}
|
|
self.initModel();
|
|
},
|
|
initModel: function(){
|
|
var self =mh.SorteringModel;
|
|
self.swvs.removeAll();
|
|
$.post("index.php/shared/organisaties/getorgsperlevel/1", function(data){
|
|
if (data){
|
|
$.each(data, function(i,p){
|
|
self.swvs.push(new fAddSWV(p));
|
|
});
|
|
}
|
|
self.fToonSortering();
|
|
},'json');
|
|
},
|
|
|
|
fChangeSWV : function(){
|
|
var self = mh.SorteringModel;
|
|
self.fSluitIndeling();
|
|
self.fToonSortering();
|
|
},
|
|
|
|
fToonSortering: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
var swvid = dit.selectedSWV().id
|
|
dit.criteria.removeAll();
|
|
|
|
$.post("index.php/monpas/sortering/getsortering/" + swvid, function(data){
|
|
dit.criteria.removeAll();
|
|
if (data){
|
|
$.each(data, function(i,c){
|
|
self.criteria.push(new fAddCriteria(c));
|
|
|
|
});
|
|
}
|
|
},'json');
|
|
},
|
|
|
|
fMaakSortering: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
},
|
|
|
|
fNieuwCriterium: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
$("#nieuwCriterium").modal('show');
|
|
},
|
|
|
|
fNieuwLabel: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
self.nieuweLabels.push({nieuwLabel:ko.observable('')});
|
|
},
|
|
|
|
fSaveCriterium: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
|
|
if(!self.nieuwCriterium()){
|
|
apprise("Vul eerst een criterium in.");
|
|
return;
|
|
}
|
|
if(!self.nieuwLabel1() || !self.nieuwLabel2() ){
|
|
apprise("Vul eerst twee waarden in.");
|
|
return;
|
|
}
|
|
|
|
if(self.nieuweLabels()){
|
|
for(var i = 0; i < self.nieuweLabels().length; i++ ){
|
|
if(self.nieuweLabels()[i].nieuwLabel()==''){
|
|
self.nieuweLabels.splice(i,1)
|
|
}
|
|
}
|
|
}
|
|
|
|
var submitData = {
|
|
'swvID' : self.selectedSWV().id,
|
|
'criterium' : self.nieuwCriterium(),
|
|
'label1' : self.nieuwLabel1(),
|
|
'label2' : self.nieuwLabel2(),
|
|
'labelArray' : self.nieuweLabels(),
|
|
}
|
|
|
|
$.post("index.php/monpas/sortering/saveCriterium/", submitData, function (data) {
|
|
if (data) {
|
|
self.fToonSortering();
|
|
self.nieuwCriterium('');
|
|
self.nieuwLabel1('');
|
|
self.nieuwLabel2('');
|
|
self.nieuweLabels([]);
|
|
}
|
|
}, 'json');
|
|
$("#nieuwCriterium").modal('hide');
|
|
},
|
|
|
|
fSaveEdit: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
|
|
if(!self.selectedCriterium().criterium()){
|
|
apprise("Vul eerst een criterium in.");
|
|
self.selectedCriterium().criterium(self.selectedCriterium().criteriumoud());
|
|
return;
|
|
}
|
|
if(self.selectedCriterium().labels().length < 2){
|
|
apprise("Vul de eerste twee waarden in.");
|
|
return;
|
|
}
|
|
|
|
if(self.nieuweLabels()){
|
|
for(var i = 0; i < self.nieuweLabels().length; i++ ){
|
|
if(self.nieuweLabels()[i].nieuwLabel()==''){
|
|
self.nieuweLabels.splice(i,1)
|
|
}
|
|
}
|
|
}
|
|
|
|
var submitData = {
|
|
'swvID' : self.selectedSWV().id,
|
|
'criteriumid': self.selectedCriterium().criteriumid,
|
|
'criterium' : self.selectedCriterium().criterium(),
|
|
'labels' : self.selectedCriterium().labels(),
|
|
'labelArray' : self.nieuweLabels(),
|
|
}
|
|
$.post("index.php/monpas/sortering/editCriterium/", submitData, function (data) {
|
|
|
|
if (data) {
|
|
self.selectedCriterium().labels.removeAll();
|
|
self.nieuweLabels.removeAll;
|
|
self.fToonSortering();
|
|
}
|
|
}, 'json');
|
|
$("#editCriterium").modal('hide');
|
|
},
|
|
|
|
|
|
fAnnuleerCriterium: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
self.nieuwCriterium('');
|
|
self.nieuwLabel1('');
|
|
self.nieuwLabel2('');
|
|
self.nieuweLabels([]);
|
|
$("#nieuwCriterium").modal('hide');
|
|
},
|
|
|
|
fEditCriterium: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
self.selectedCriterium(this);
|
|
$("#editCriterium").modal('show');
|
|
},
|
|
|
|
fDeleteCriterium: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
var criteriumid = dit.criteriumid;
|
|
|
|
apprise("Weet u zeker dat u <i> " + dit.criterium() + " </i> wilt verwijderen? " +
|
|
"Ook de waarden worden verwijderd. " +
|
|
"Dit kan niet ongedaan gemaakt worden.", {
|
|
'verify': true,
|
|
textYes: 'ja',
|
|
textNo: 'nee'
|
|
}, function (ans) {
|
|
if (ans) {
|
|
$.post("index.php/monpas/sortering/deleteCriterium/" + criteriumid, function (data) {
|
|
if (data) {
|
|
self.fToonSortering();
|
|
}
|
|
}, 'json');
|
|
} // if
|
|
else {
|
|
return false;
|
|
} //else
|
|
}); //apprise
|
|
|
|
},
|
|
|
|
fDeleteLabel: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
var labelid = dit.waardeid;
|
|
self.selectedLabel(this);
|
|
|
|
apprise("Weet u zeker dat u <i> " + dit.label() + " </i> wilt verwijderen? ", {
|
|
'verify': true,
|
|
textYes: 'ja',
|
|
textNo: 'nee'
|
|
}, function (ans) {
|
|
if (ans) {
|
|
$.post("index.php/monpas/sortering/deleteLabel/" + labelid, function (data) {
|
|
if (data) {
|
|
self.selectedCriterium().labels.remove(self.selectedLabel());
|
|
}
|
|
}, 'json');
|
|
} // if
|
|
else {
|
|
return false;
|
|
} //else
|
|
}); //apprise
|
|
},
|
|
|
|
fAnnuleerLabel: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
self.nieuweLabels.remove(this);
|
|
},
|
|
|
|
fKoppelScholen: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
self.toonIndeling(true);
|
|
self.selectedCriterium(dit);
|
|
self.fGetIndeling();
|
|
},
|
|
|
|
fSluitIndeling: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
self.toonIndeling(false);
|
|
},
|
|
|
|
fGetIndeling: function(){
|
|
var self = mh.SorteringModel;
|
|
var dit = this;
|
|
var submitData ={
|
|
'swvid' : self.selectedSWV().id,
|
|
'criteriumid' : self.selectedCriterium().criteriumid
|
|
}
|
|
|
|
$.post("index.php/monpas/sortering/getSchoolIndelingen", submitData, function (data) {
|
|
self.swvindeling('');
|
|
if (data) {
|
|
self.swvindeling(new fAddSWVIndeling(data));
|
|
|
|
}
|
|
}, 'json');
|
|
},
|
|
|
|
fUpdateIndeling: function(parent){
|
|
var self = mh.SorteringModel;
|
|
parent.selectedOptie(this.waardeid);
|
|
|
|
var submitData ={
|
|
'orgid' : this.selectedSchool(),
|
|
'keuzeid' : this.waardeid,
|
|
'criteriumid' : self.selectedCriterium().criteriumid
|
|
}
|
|
|
|
$.post("index.php/monpas/sortering/updateSortering", submitData, function (data){
|
|
if(data){
|
|
|
|
}
|
|
})
|
|
}
|
|
} ; // definition van model
|
|
|
|
ko.applyBindings(mh.SorteringModel, document.getElementById("pagSortering"));
|
|
mh.SorteringModel.initModel();
|
|
|
|
}; // else
|
|
}// function initSorteringModel
|
|
}); |