918 lines
32 KiB
JavaScript
918 lines
32 KiB
JavaScript
$(function(){
|
|
|
|
ls.initIJkpuntenModel = function(){
|
|
var GrafiekInfo =null;
|
|
|
|
function fAddSWV(p){
|
|
var dit = this;
|
|
this.id = p.id;
|
|
this.soort = p.soort;
|
|
this.brin = p.brin;
|
|
this.naam = p.naamkort;
|
|
this.plaats = p.plaats;
|
|
this.geopend = ko.observable(false);
|
|
dit.kamers = ko.observableArray([]);
|
|
if (p.kamers ){
|
|
$.each(p.kamers, function(j,k){
|
|
dit.kamers.push(new fAddKamer(k));
|
|
})
|
|
}
|
|
}
|
|
|
|
function fAddKamer(p){
|
|
var dit = this;
|
|
this.id = p.id;
|
|
this.soort = p.soort;
|
|
this.brin = p.brin;
|
|
this.naam = p.naamkort;
|
|
this.plaats = p.plaats;
|
|
this.geopend = ko.observable(false);
|
|
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.brin = p.brin;
|
|
this.naam = p.naamkort;
|
|
this.plaats = p.plaats;
|
|
this.geopend = ko.observable(false);
|
|
this.scholen = ko.observableArray([]);
|
|
if (p.scholen){
|
|
$.each(p.scholen, function(a,b){
|
|
dit.scholen.push(new fAddSchool(b));
|
|
})
|
|
}
|
|
}
|
|
|
|
function fAddSchool(p){
|
|
var dit = this;
|
|
this.id = p.id;
|
|
this.soort = p.soort;
|
|
this.brin = p.brin;
|
|
this.naam = p.naamkort;
|
|
this.plaats = p.plaats;
|
|
}
|
|
|
|
function fAddSerie(s) {
|
|
var dit = this;
|
|
this.versieid = s.versieid;
|
|
this.scoretype = s.scoretype;
|
|
var scoreomschrijving = s.omschrijving;
|
|
if(s.omschrijving == 'included/involved/present/absent')
|
|
scoreomschrijving = 'inc/inv/pre/abs'
|
|
this.scoreomschrijving = scoreomschrijving;
|
|
this.naam = s.naam;
|
|
this.periodes = ko.observableArray([]);
|
|
this.vergelijk = ko.observable(false);
|
|
this.gekozen = ko.observable(false);
|
|
this.aangeklikt = ko.observable(0);
|
|
this.toonCheckbox = ko.pureComputed(function () {
|
|
var wattedoen = 'Verberg';
|
|
if(dit.vergelijk() === true && dit.gekozen() === true) {
|
|
wattedoen = 'Toon';
|
|
}
|
|
return wattedoen;
|
|
});
|
|
|
|
if (s.specificaties) {
|
|
|
|
$.each(s.specificaties, function (l, p) {
|
|
$.each(p, function (v, w) {
|
|
dit.periodes.push(new fAddPeriode(w));
|
|
})
|
|
});
|
|
dit.periodes().length >= 2 ? dit.vergelijk(true): dit.vergelijk(false);
|
|
}
|
|
}
|
|
|
|
function fAddPeriode(p){
|
|
var dit = this;
|
|
this.orgversieid = p.orgversieid;
|
|
this.periodenummer = p.periodenummer;
|
|
this.geldigvanaf = p.geldigvanaf;
|
|
this.geldigtm = p.geldigtotenmet;
|
|
this.invullentm = p.invullentm;
|
|
this.vorm = p.vorm;
|
|
this.wijik = "schoolversie";
|
|
if (p.vorm === '2') {
|
|
dit.wijik = "individuele versie"
|
|
}
|
|
this.geselecteerd = ko.observable(false);
|
|
}
|
|
|
|
function fAddLijst(i, l, nieuw){
|
|
var dit = this;
|
|
this.tooninfo = ko.observable(false);
|
|
if(nieuw === l.orgversie.id) {
|
|
dit.tooninfo(true);
|
|
}
|
|
this.orgversieid = l.orgversie.id;
|
|
this.scoretype = l.orgversie.scoretype;
|
|
this.orgnaam = l.orgnaam;
|
|
this.wijik = "schoolversie";
|
|
if (l.vorm === '2') {
|
|
dit.wijik = "individuele versie"
|
|
}
|
|
this.naamV = l.vNaam;
|
|
this.metingen = l.metingen;
|
|
this.metingenV = l.metingenV;
|
|
this.vantm = l.vantm;
|
|
this.periodenummer = l.orgversie.periodenummer
|
|
this.jaartal = l.jaartal;
|
|
|
|
this.label = l.label;
|
|
this.ambities = ko.observable(false);
|
|
if(l.ambities) {
|
|
if (l.ambities.gemscore && l.ambities.xijkpunten && l.ambities.zprocent) {
|
|
dit.ambities(true);
|
|
}
|
|
}
|
|
this.gemscore = 0;
|
|
if(l.ambities) {
|
|
dit.gemscore = l.ambities.gemscore;
|
|
}
|
|
this.ijkpunten = 0;
|
|
if(l.ambities) {
|
|
dit.ijkpunten = l.ambities.xijkpunten;
|
|
}
|
|
this.zprocent = 0;
|
|
if(l.ambities) {
|
|
dit.zprocent = l.ambities.zprocent;
|
|
}
|
|
|
|
this.scores = ko.observableArray([]);
|
|
this.erzijnscores = ko.observable(true);
|
|
if(l.scores){
|
|
var meegeven = 'scores';
|
|
$.each(l.scores, function (i, s){
|
|
dit.scores.push(new fAddScore(i,s, meegeven))
|
|
})
|
|
}
|
|
else if(l.vergelijkingen){
|
|
|
|
var meegeven = 'vergelijkingen';
|
|
$.each(l.vergelijkingen, function (x, v){
|
|
dit.scores.push(new fAddScore(x,v, meegeven))
|
|
})
|
|
}
|
|
else{
|
|
this.erzijnscores(false);
|
|
}
|
|
|
|
|
|
this.totgem = l.resultaten.totgem;
|
|
this.ijkpuntenok = l.resultaten.ijkpuntenok;
|
|
this.welkehoogste = l.resultaten.welkehoogste;
|
|
this.welkelaagste = l.resultaten.welkelaagste;
|
|
this.hoogstescore = l.resultaten.hoogstescore;
|
|
this.laagstescore = l.resultaten.laagstescore;
|
|
|
|
}
|
|
|
|
function fAddScore(i,s, meegeven){
|
|
|
|
var index = i;
|
|
var dit = this;
|
|
this.aantalScores = ko.observable(0);
|
|
if(index){
|
|
dit.aantalScores(index + 1);
|
|
}
|
|
this.nummer = s.nummer;
|
|
this.omschrijving = s.omschrijving;
|
|
this.toelichting = s.toelichting;
|
|
if (meegeven == 'vergelijkingen'){
|
|
this.gem = '';
|
|
this.gemV = s.gemV;
|
|
this.disabled = ko.observable(false);
|
|
this.disabledV = ko.observable(false);
|
|
if(s.disablenvtV =='T') dit.gemV ='nvt';
|
|
if(s.disabledV =='T') dit.gemV ='uitgezet';
|
|
if(s.disabledV =='T') dit.gem ='uitgezet';
|
|
if(s.disabledV == 'T') dit.disabledV(true)
|
|
this.disablenvt = ko.observable(false);
|
|
this.disablenvtV = ko.observable(false);
|
|
if(s.disablenvtV == 'T') dit.disablenvtV(true);
|
|
this.kleur = 'lightgray';
|
|
this.kleurV = ko.observable ='lightgray';
|
|
if(s.disabled == 'F' && s.disablenvt == 'F')this.kleurV =s.kleurV;
|
|
|
|
}
|
|
else {
|
|
this.gem = s.gem;
|
|
if(s.disablenvt =='T') dit.gem ='nvt';
|
|
if(s.disabled =='T') dit.gem ='uitgezet';
|
|
this.gemV = s.gemV;
|
|
if(s.disablenvtV =='T') dit.gemV ='nvt';
|
|
if(s.disabledV =='T') dit.gemV ='uitgezet';
|
|
this.disabled = ko.observable(false);
|
|
if(s.disabled == 'T') dit.disabled(true);
|
|
this.disabledV = ko.observable(false);
|
|
if(s.disabledV == 'T') dit.disabledV(true)
|
|
this.disablenvt = ko.observable(false);
|
|
if(s.disablenvt == 'T') dit.disablenvt(true);
|
|
this.disablenvtV = ko.observable(false);
|
|
if(s.disablenvtV == 'T') dit.disablenvtV(true);
|
|
this.kleur = 'lightgray';
|
|
if(s.disabled == 'F' && s.disablenvt == 'F')this.kleur = s.kleur;
|
|
this.kleurV = 'lightgray';
|
|
if(s.disabledV == 'F' && s.disablenvtV == 'F')this.kleurV =s.kleurV;
|
|
|
|
}
|
|
}
|
|
|
|
function fAddUser(p){
|
|
this.userid = p.id;
|
|
this.naam = p.fullname;
|
|
}
|
|
|
|
function fAddKleur(k){
|
|
this.grens1 = k.grens1;
|
|
this.grens2 = k.grens2;
|
|
this.grens3 = k.grens3;
|
|
this.grens4 = k.grens4;
|
|
this.kleur1 = k.kleur1;
|
|
this.kleur2 = k.kleur2;
|
|
this.kleur3 = k.kleur3;
|
|
this.kleur4 = k.kleur4;
|
|
}
|
|
|
|
function fAddIJkpunt(i){
|
|
this.ijkpuntid = i.id;
|
|
this.nummer = i.nummer;
|
|
this.omschrijving = i.omschrijving;
|
|
this.toelichting = i.toelichting;
|
|
}
|
|
|
|
if (ls.IJkpuntenModel !== undefined){
|
|
ls.IJkpuntenModel.initModel();
|
|
}
|
|
else {
|
|
ls.IJkpuntenModel = {
|
|
toporg : ko.observableArray([]),
|
|
selectedOrg : ko.observable(''),
|
|
orgsoort : ko.observable(1),
|
|
orgversions : ko.observableArray([]),
|
|
selectedOrgversion : ko.observable(''),
|
|
toonVergelijking : ko.observable(false),
|
|
//er kan een vergelijking worden getoond (scores van leerkracht, school of bestuur)
|
|
ijkpunten : ko.observableArray([]),
|
|
series : ko.observableArray([]),
|
|
selectedSerie : ko.observable(0),
|
|
aantal : ko.observable(0),
|
|
lijnAt : ko.observable(50),
|
|
targetnaam : ko.observable(''),
|
|
kleurlegenda : ko.observable(),
|
|
usernivo : ko.observable(), // het nivo van de ingelogde user; nodig om te bepalen of individuele gegevens moeten worden opgehaald
|
|
bezig : ko.observable(false),
|
|
inzage : ko.observable(),
|
|
nieuwste : ko.observable(0),
|
|
nietIngevuld : ko.observable(false),
|
|
erzijnlijsten : ko.observable(false),
|
|
selectie : ko.observableArray([]),
|
|
lijsten : ko.observableArray([]),
|
|
scorekleuren : ko.observable(null),
|
|
hoogte : ko.observable(0),
|
|
breedte : ko.observable(0),
|
|
isSWV : ko.observable(false),
|
|
nieuwsteVersie : ko.observable(0),
|
|
users : ko.observableArray([]),
|
|
selectedUser : ko.observable(),
|
|
label : ko.observable(),
|
|
medewerkerKiezen : ko.observable(false),
|
|
ijkgrafiek : ko.observable(''),
|
|
scoretype : ko.observable(''),
|
|
|
|
|
|
initBindings :function(){
|
|
var self = ls.IJkpuntenModel;
|
|
if (!ko.dataFor(document.getElementById('pagijkpunten')) ) {
|
|
ko.applyBindings(ls.IJkpuntenModel, document.getElementById("pagijkpunten"));
|
|
}
|
|
self.initModel();
|
|
},
|
|
initModel: function(){
|
|
var self =ls.IJkpuntenModel;
|
|
self.toporg('');
|
|
$.post("index.php/monpas/rapijkpunten/getorgs", function(data){
|
|
self.bezig(true);
|
|
if (data.organisatie){
|
|
|
|
self.orgsoort(data.soort);
|
|
switch (self.orgsoort()){
|
|
case 1: self.toporg(new fAddSWV(data.organisatie));
|
|
self.isSWV(true);
|
|
break;
|
|
case 2: self.toporg(new fAddKamer(data.organisatie));
|
|
break;
|
|
case 3: self.toporg(new fAddBG(data.organisatie));
|
|
break;
|
|
case 4: self.toporg(new fAddSchool(data.organisatie));
|
|
break;
|
|
} // switch
|
|
$.post('index.php/monpas/rapijkpunten/getusernivo', function(result){
|
|
self.usernivo(result);
|
|
self.selectedOrg(self.toporg());
|
|
$.post('index.php/monpas/rapmatrix/checkinzage', function(result){
|
|
self.inzage(result);
|
|
},'json');
|
|
|
|
},'json');
|
|
}
|
|
|
|
self.bezig(false);
|
|
|
|
},'json');
|
|
},
|
|
|
|
fToggleGeopend: function(){
|
|
this.geopend(!this.geopend());
|
|
},
|
|
|
|
fGetVergelijkbareVersies: function(){
|
|
var self = ls.IJkpuntenModel;
|
|
if (self.selectedOrg() === undefined) return;
|
|
$.post('index.php/monpas/rapijkpunten/getvergelijkbareversies/'+ self.selectedOrg().id, function(result) {
|
|
|
|
if (result && result.series. length > 0 ) {
|
|
|
|
|
|
self.series.removeAll();
|
|
$.each(result.series, function (i, s) {
|
|
self.series.push(new fAddSerie(s));
|
|
});
|
|
self.selectedSerie(self.series()[0]);
|
|
if(self.series().length > 0) {
|
|
$("#modIJkpuntenLijst").modal('show');
|
|
}
|
|
else{
|
|
apprise("De organisatie heeft (nog) geen lijsten bij dit instrument ingevuld");
|
|
}
|
|
}
|
|
|
|
else {
|
|
apprise("Er is nog geen lijst ingevuld bij dit instrument");
|
|
}
|
|
},'json');
|
|
},
|
|
|
|
fSelecteerSerie: function(){
|
|
var self = ls.IJkpuntenModel;
|
|
var dit = this;
|
|
self.selectedSerie(this);
|
|
if(self.series && self.selectedSerie()){
|
|
$.each(self.series(), function (i, s) {
|
|
if (s.versieid === self.selectedSerie().versieid) {
|
|
s.gekozen(true);
|
|
}
|
|
else{
|
|
s.gekozen(false);
|
|
}
|
|
});
|
|
}
|
|
|
|
this.eenPeriode = ko.computed(function(){
|
|
var eentje = false;
|
|
if(self.selectedSerie().periodes().length === 1) {
|
|
eentje = true;
|
|
}
|
|
return eentje;
|
|
});
|
|
|
|
$.each(self.selectedSerie().periodes(), function(j,p){
|
|
p.geselecteerd(false);
|
|
|
|
if(dit.eenPeriode()){
|
|
p.geselecteerd(true);
|
|
}
|
|
});
|
|
return true;
|
|
},
|
|
|
|
fSelecteerPeriode: function(){
|
|
var self = ls.IJkpuntenModel;
|
|
var dit = this;
|
|
this.geselecteerd(!this.geselecteerd());
|
|
var aantal = self.selectedSerie().aangeklikt();
|
|
self.selectedSerie().meerdan4 = ko.computed(function(){
|
|
var teveel = false;
|
|
if(dit.geselecteerd()){
|
|
aantal = aantal +1;
|
|
}
|
|
if(dit.geselecteerd()===false){
|
|
aantal = aantal -1;
|
|
}
|
|
if(aantal > 4){
|
|
teveel = true;
|
|
}
|
|
|
|
return teveel;
|
|
});
|
|
|
|
if(self.selectedSerie().meerdan4()){
|
|
this.geselecteerd(false);
|
|
apprise("u kunt maximaal 4 lijsten vergelijken");
|
|
}
|
|
self.selectedSerie().aangeklikt(aantal);
|
|
return true;
|
|
},
|
|
|
|
fHaalLijstenOp: function(herkomst){
|
|
var self = ls.IJkpuntenModel;
|
|
var dit = this;
|
|
self.erzijnlijsten(false);
|
|
self.nietIngevuld(false);
|
|
self.selectie.removeAll();
|
|
var selectie = [];
|
|
if(self.selectedSerie()) {
|
|
$.each(self.selectedSerie().periodes(), function (i, p) {
|
|
|
|
if (p.geselecteerd()=== true) {
|
|
var orgversie =
|
|
{'orgversieid': p.orgversieid,
|
|
'vorm' : p.vorm };
|
|
|
|
self.selectie.push(orgversie);
|
|
}
|
|
})
|
|
}
|
|
|
|
|
|
if(herkomst === 'popup') {
|
|
$("#modIJkpuntenLijst").modal('hide');
|
|
}
|
|
selectie = self.selectie();
|
|
|
|
var submitData = {
|
|
'selectie': selectie,
|
|
'orgid': self.selectedOrg().id
|
|
};
|
|
|
|
showAjaxLoader();
|
|
$.post('index.php/monpas/rapijkpunten/getingevuldelijsten/', submitData, function(result){
|
|
self.erzijnlijsten(false);
|
|
self.nietIngevuld(false);
|
|
self.medewerkerKiezen(false);
|
|
self.nieuwsteVersie(0);
|
|
self.lijsten.removeAll();
|
|
self.ijkpunten.removeAll();
|
|
self.aantal('');
|
|
var teller = 0;
|
|
if(result.lijsten[0].scores ) {
|
|
$.each(result.lijsten, function (i, p) {
|
|
if (p.scores || p.vergelijkingen) {
|
|
self.erzijnlijsten(true);
|
|
self.nietIngevuld(false)
|
|
}
|
|
if(self.erzijnlijsten === false){
|
|
self.nietIngevuld(true)
|
|
}
|
|
if(i === 0 && p.orgversie){
|
|
if(p.orgversie.scoretype){
|
|
self.scoretype(p.orgversie.scoretype);
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
else{
|
|
self.nietIngevuld(true);
|
|
}
|
|
|
|
if(self.erzijnlijsten()){
|
|
var nieuw = '';
|
|
if (result.nieuwsteversie) {
|
|
nieuw = result.nieuwsteversie;
|
|
self.nieuwsteVersie(nieuw);
|
|
}
|
|
$.each(result.lijsten, function(j,l){
|
|
if(j == 0){
|
|
self.label(l.label)
|
|
|
|
}
|
|
|
|
|
|
self.lijsten.push(new fAddLijst(j,l, nieuw))
|
|
|
|
});
|
|
|
|
if (result.aantal) {
|
|
self.aantal(result.aantal);
|
|
}
|
|
if(result.kleuren){
|
|
|
|
self.scorekleuren(new fAddKleur(result.kleuren));
|
|
|
|
}
|
|
|
|
if(result.ijkpunten){
|
|
$.each(result.ijkpunten, function(y, k){
|
|
self.ijkpunten.push(new fAddIJkpunt( k))
|
|
}
|
|
)
|
|
}
|
|
self.fOpenGrafiek();
|
|
|
|
if(result.users.length > 0 && self.orgsoort()===4){
|
|
self.medewerkerKiezen(true);
|
|
self.users.removeAll();
|
|
$.each(result.users, function(x, u){
|
|
self.users.push(new fAddUser(u));
|
|
})
|
|
self.selectedUser(self.users()[0]);
|
|
}
|
|
}
|
|
else{
|
|
|
|
self.fGetVergelijkbareVersies();
|
|
}
|
|
|
|
}, 'json').always(function(){
|
|
hideAjaxLoader() } );
|
|
|
|
return true;
|
|
},
|
|
|
|
fSwitchOrg: function(){
|
|
var self = ls.IJkpuntenModel;
|
|
self.isSWV(false);
|
|
if (self.selectedOrg() === undefined) return;
|
|
if (this.id === self.selectedOrg().id) return;
|
|
|
|
self.selectedOrg(this);
|
|
if(self.selectedOrg().soort === '1'){
|
|
self.isSWV(true);
|
|
}
|
|
|
|
if(self.selectedSerie() !== 0) {
|
|
var herkomst = 'switch';
|
|
self.fHaalLijstenOp(herkomst);
|
|
}
|
|
|
|
},
|
|
|
|
|
|
fGetUserScores: function(data, event){
|
|
var self = ls.IJkpuntenModel;
|
|
|
|
|
|
if ( self.selectedOrg() === undefined ||
|
|
self.users() === undefined ||
|
|
self.usernivo > 1 ) return;
|
|
|
|
if (self.selectedUser() === undefined) return;
|
|
|
|
if(! event.originalEvent || ! event.originalEvent.isTrusted) return;
|
|
if(self.selectedUser().userid === '0') self.fHaalLijstenOp();
|
|
|
|
var selectieInd = [];
|
|
var selectieOrgversies = [];
|
|
$.each(self.selectie(),function(i, s){
|
|
if(s.vorm === '2'){
|
|
selectieInd.push(s);
|
|
selectieOrgversies.push(s.orgversieid)
|
|
}
|
|
});
|
|
self.selectie(selectieInd);
|
|
|
|
var submitData = {
|
|
'orguserid': self.selectedUser().userid,
|
|
'selectie': selectieOrgversies,
|
|
'orgid': self.selectedOrg().id
|
|
};
|
|
|
|
|
|
// showAjaxLoader();
|
|
self.lijsten.removeAll();
|
|
self.erzijnlijsten(false);
|
|
self.nietIngevuld(false);
|
|
$.post('index.php/monpas/rapijkpunten/getuserlijsten/', submitData, function (result) {
|
|
self.lijsten.removeAll();
|
|
self.nieuwsteVersie(0);
|
|
self.aantal('');
|
|
var teller = 0;
|
|
if (result && result.lijsten) {
|
|
$.each(result.lijsten, function (i, p) {
|
|
if (p.scores) {
|
|
self.erzijnlijsten(true);
|
|
self.nietIngevuld(false);
|
|
}
|
|
else{self.nietIngevuld(true)}
|
|
})
|
|
}
|
|
else{
|
|
self.nietIngevuld(true)
|
|
}
|
|
if (self.erzijnlijsten()) {
|
|
var nieuw = '';
|
|
if (result.nieuwsteversie) {
|
|
nieuw = result.nieuwsteversie;
|
|
self.nieuwsteVersie(nieuw);
|
|
}
|
|
$.each(result.lijsten, function (j, l) {
|
|
|
|
self.lijsten.push(new fAddLijst(j, l, nieuw))
|
|
|
|
});
|
|
|
|
if (result.aantal) {
|
|
self.aantal(result.aantal);
|
|
}
|
|
if (result.kleuren) {
|
|
self.scorekleuren(new fAddKleur(result.kleuren));
|
|
}
|
|
self.fOpenGrafiek();
|
|
}
|
|
}, 'json').always(function () {
|
|
// hideAjaxLoader()
|
|
});
|
|
},
|
|
|
|
fOpenGrafiek: function(){
|
|
|
|
var self = ls.IJkpuntenModel;
|
|
|
|
var dit = this;
|
|
var lijsten = self.lijsten();
|
|
var lijsten2 = self.lijsten();
|
|
var xas = [];
|
|
var verkorteVersies = [];
|
|
var extraLijn = [];
|
|
var balkGegevens = [];
|
|
var lijnGegevens;
|
|
var ambitiewaarde = 0;
|
|
var xastitel;
|
|
|
|
$.each(lijsten, function(i, l) {
|
|
var labels = [];
|
|
var scores = [];
|
|
var ambities = [];
|
|
|
|
if(l.label){
|
|
xastitel = l.label;
|
|
}
|
|
var zwart = '#0000';
|
|
if(l.gemscore && Number(l.gemscore) > 0){
|
|
ambitiewaarde = Number(l.gemscore);
|
|
}
|
|
|
|
lijsten[i].scores = l.scores();
|
|
$.each(lijsten[i].scores, function (j, g) {
|
|
var omschrijving = '';
|
|
if(g.omschrijving){
|
|
omschrijving = g.omschrijving;
|
|
}
|
|
|
|
labels.push(g.nummer);
|
|
scores.push({ y : Number(g.gem) == 0 ? null: Number(g.gem) ,
|
|
color : g.kleur,
|
|
name : g.nummer });
|
|
|
|
verkorteVersies.push(l.periodenummer);
|
|
|
|
|
|
ambities.push(
|
|
{
|
|
y: ambitiewaarde,
|
|
color: '#000000',
|
|
name: '',
|
|
}
|
|
);
|
|
});
|
|
labels.unshift(' ');
|
|
var legescore ={
|
|
y : null,
|
|
color : 'transparent',
|
|
name : '0',
|
|
|
|
};
|
|
|
|
scores.unshift(legescore);
|
|
verkorteVersies.unshift(l.periodenummer);
|
|
|
|
labels.push(' ');
|
|
scores.push(legescore);
|
|
verkorteVersies.push(l.periodenummer);
|
|
|
|
balkGegevens[i] =({
|
|
dataLabels: {
|
|
format: '{point.versie}'
|
|
},
|
|
type : 'column',
|
|
name : verkorteVersies,
|
|
data : scores
|
|
});
|
|
|
|
var extralijn = {
|
|
y: ambitiewaarde,
|
|
name: '',
|
|
};
|
|
ambities.unshift(extralijn);
|
|
ambities.push(extralijn);
|
|
|
|
lijnGegevens = ({
|
|
dataLabels: {
|
|
format: ''
|
|
},
|
|
type: 'spline',
|
|
name: verkorteVersies,
|
|
data: ambities
|
|
});
|
|
|
|
balkGegevens.push(lijnGegevens);
|
|
xas = labels;
|
|
});
|
|
|
|
|
|
self.ijkgrafiek = Highcharts.chart('hc-chart1', {
|
|
chart: {
|
|
type: 'column',
|
|
options3d: {
|
|
enabled: true,
|
|
alpha: 20,
|
|
beta: 20,
|
|
viewDistance: 40,
|
|
depth: 75,
|
|
frame: {
|
|
left: {
|
|
color:'#f8f8f8'
|
|
},
|
|
bottom: {
|
|
color:'#d9d9d9',
|
|
visible: 'auto'
|
|
},
|
|
back: {
|
|
color:'#f8f8f8'
|
|
},
|
|
}
|
|
}
|
|
},
|
|
|
|
title: {
|
|
text: ''
|
|
},
|
|
credits: {
|
|
enabled: false,
|
|
},
|
|
tooltip:{
|
|
useHTML: true,
|
|
outside: true,
|
|
formatter: function() {
|
|
var txt = null;
|
|
if(!this.point.omschrijving){
|
|
this.point.omschrijving = '';
|
|
}
|
|
if(this.point.soort === 'score' || this.point.soort === 'ambitie' ) {
|
|
txt = '<div class="ijktooltip"><p>' + this.point.vantm + '</p>' + '<br/>' + '<p>' + this.x + '. '
|
|
+ this.point.omschrijving + ' ' + this.point.soort + ': ' + this.y + '</p></div>';
|
|
return txt;
|
|
}
|
|
}
|
|
},
|
|
xAxis: {
|
|
type: 'category',
|
|
categories: xas,
|
|
skew3d: true,
|
|
title:{
|
|
text: xastitel
|
|
}
|
|
},
|
|
yAxis: {
|
|
min:0,
|
|
max: 100,
|
|
skew3d: true,
|
|
title: {
|
|
text: 'Scores'
|
|
}
|
|
},
|
|
legend: {
|
|
enabled: false
|
|
},
|
|
plotOptions: {
|
|
column:{
|
|
pointPadding: 0.05,
|
|
borderWidth:0
|
|
},
|
|
series:{
|
|
groupPadding: 0.05,
|
|
dataLabels: {
|
|
enabled: true,
|
|
inside: true,
|
|
align: 'center',
|
|
verticalAlign: 'bottom',
|
|
color: '#404040',
|
|
style: {
|
|
textOutline: false
|
|
}
|
|
}
|
|
|
|
},
|
|
spline: {
|
|
color: '#404040',
|
|
pointStart: 0,
|
|
marker: {
|
|
enabled: false
|
|
}
|
|
}
|
|
},
|
|
series:
|
|
balkGegevens,
|
|
showInLegend: false
|
|
});
|
|
|
|
},
|
|
|
|
fToonToelichting: function(){
|
|
var self = ls.IJkpuntenModel;
|
|
var dit = this;
|
|
var puntje = '. ';
|
|
if(dit.nummer === 'gem'){
|
|
dit.nummer = '';
|
|
puntje = '';
|
|
dit.toelichting ='gemiddelde score';
|
|
}
|
|
apprise('Toelichting: ' + puntje + dit.toelichting);
|
|
},
|
|
|
|
fPrintIJkpuntenBar : function () {
|
|
var self = ls.IJkpuntenModel;
|
|
self.inlineCSStoSVG("hc-chart1")
|
|
var svgElem = document.querySelector("#hc-chart1 svg");
|
|
var svgData = new XMLSerializer().serializeToString(svgElem);
|
|
|
|
var canvas = document.getElementById('ijkpuntencanvas');
|
|
var ctx = canvas.getContext('2d');
|
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
ctx.canvas.height = svgElem.clientHeight;
|
|
ctx.canvas.width = svgElem.clientWidth;
|
|
|
|
var img = document.createElement('img');
|
|
img.setAttribute("src", "data:image/svg+xml;base64," + btoa(svgData));
|
|
img.onload = function () {
|
|
ctx.drawImage(img, 0, 0);
|
|
GrafiekInfo = canvas.toDataURL("image/png")
|
|
canvas.style.display = "none";
|
|
self.fPrint();
|
|
};
|
|
|
|
},
|
|
|
|
inlineCSStoSVG: function ( id ) {
|
|
var self = ls.IJkpuntenModel;
|
|
var nodes = document.querySelectorAll( "#" + id + " *" );
|
|
|
|
for ( var i = 0; i < nodes.length; ++i ) {
|
|
var elemCSS = window.getComputedStyle( nodes[i], null );
|
|
nodes[i].removeAttribute( 'xmlns' );
|
|
nodes[i].style.fill = elemCSS.fill;
|
|
nodes[i].style.fillOpacity = elemCSS.fillOpacity;
|
|
nodes[i].style.stroke = elemCSS.stroke;
|
|
nodes[i].style.strokeLinecap = elemCSS.strokeLinecap;
|
|
nodes[i].style.strokeDasharray = elemCSS.strokeDasharray;
|
|
nodes[i].style.strokeWidth = elemCSS.strokeWidth;
|
|
nodes[i].style.fontSize = elemCSS.fontSize;
|
|
nodes[i].style.fontFamily = elemCSS.fontFamily;
|
|
//Finally, solution to embbed HTML in foreignObject https://stackoverflow.com/a/37124551
|
|
if ( nodes[i].nodeName === "SPAN" || nodes[i].nodeName === "span" ) {
|
|
nodes[i].setAttribute( "xmlns", "http://www.w3.org/1999/xhtml" );
|
|
}
|
|
}
|
|
},
|
|
|
|
|
|
|
|
fPrint: function(){
|
|
var self = ls.IJkpuntenModel;
|
|
// var element = document.querySelector('#hc-chart1')
|
|
// var svgAsXML = (new XMLSerializer).serializeToString(element);
|
|
var orgid = self.selectedOrg().id;
|
|
var lijsten = self.lijsten();
|
|
var nieuwsteversie = self.nieuwsteVersie();
|
|
var scorekleuren = self.scorekleuren();
|
|
var versie = 'Versie: ' + self.selectedSerie().naam + ', scoretype: ' +
|
|
self.selectedSerie().scoreomschrijving;
|
|
var data = {
|
|
'image' : GrafiekInfo,
|
|
'orgid' : orgid,
|
|
'lijsten' : lijsten,
|
|
'versie' : versie,
|
|
'docentnaam' : self.selectedUser() ? self.selectedUser().naam : '',
|
|
'nieuwsteversie': nieuwsteversie,
|
|
'scorekleuren' : scorekleuren
|
|
};
|
|
data=JSON.stringify(data);
|
|
var $form = $("<form method='post' action='index.php/monpas/rapijkpunten/maakijkpuntenpdf' target='_blank'>").append($('<input type = "hidden" name="data" id ="data">').val(data) );
|
|
$form.appendTo("body").submit();
|
|
}
|
|
} ; // definition van model
|
|
ls.IJkpuntenModel.initBindings();
|
|
} // else
|
|
}// function initIJkpuntenModel
|
|
}); |