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

782 lines
26 KiB
JavaScript

$(function(){
tw.initReports = function(callback){
Report = function(data){
this.id = data.id;
this.name = data.name;
this.reportURL = ko.observable();
this.functie = data.functie;
}
fBeeld = function (data){
this.id = data.id;
this.checked = ko.observable(true);
this.naam = data.omschrijving;
}
fOrga = function (data){
this.id = data.id;
this.naamkort = data.naamkort;
this.plaats = data.plaats;
this.toon = ko.observable(data.toon);
}
fBG = function(data){
this.id = data.id;
this.naamkort =data.naamkort;
this.plaats = data.plaats;
this.toon = ko.observable(true);
}
fAddUser = function(data){
this.id = data.id;
this.fullname = data.fullname;
}
if(tw.reportsModel!==undefined){
tw.reportsModel.reportsInit();
}else{
// $.getJSON('index.php/ijkpartituur/reports', function(data){
tw.reportsModel = {
reports : ko.observableArray([]),
selectedReport : ko.observable(),
partituren : ko.observableArray([]),
partituur : ko.observable(), // de actieve partituur maar dan ook met id etc
selectedPartituur : ko.observable(),
organisatiesIn : ko.observableArray([]),
organisatiesUit : ko.observableArray([]),
orgsIn : ko.observableArray([]),
orgsUit : ko.observableArray([]),
BGsIn : ko.observableArray([]),
BGsUit : ko.observableArray([]),
PijlersIn : ko.observableArray([]),
PijlersUit : ko.observableArray([]),
planningPijlers : ko.observableArray([]),
planningSelPijler : ko.observable(),
selectedPijlersID : ko.observableArray([]),
selectedPijler : ko.observable(),
PaIn : ko.observableArray([]),
PaUit : ko.observableArray([]),
actievePartituur : ko.observable(),
partituurvan : ko.observable(),
partituurtot : ko.observable(),
vandatum : ko.observable(),
tmdatum : ko.observable(),
ExtraCriteria : ko.observable(),
PrintAgenda : ko.observable(false),
beeld : ko.observableArray([]),
layout : ko.observable("portrait"),
welkrapport : ko.observable(1),
periode : ko.observable(2),
filtervalue : ko.observable(),
filtervalue2 : ko.observable(),
PijlerNul : ko.observable(false),
schermlabel : ko.observable(),
checkTekst : ko.observable(),
checkTekst2 : ko.observable("Toon details"),
ToonDetails : ko.observable(true),
lsmousedown : ko.observable(false),
maUsersIn : ko.observableArray([]),
maUsersUit : ko.observableArray([]),
reportsInit : function(){
var self = tw.reportsModel;
$.post("index.php/ijkpartituur/reports/getBeelden",function(data){
self.beeld.removeAll();
$.each(data.beelden, function(i,p){
self.beeld.push(new fBeeld(p));
});
},'json');
$.post("index.php/ijkpartituur/reports", function(results){
self.reports.removeAll();
$.each(results.reports, function(i, p){
self.reports.push(new Report(p));
});
self.actievePartituur('');
$.post("index.php/ijkpartituur/reports/getPartituren",function(data){
self.partituren.removeAll();
$.each(data, function(i,p){
self.partituren.push(p);
if (p.actief) {self.selectedPartituur(p.id)}
})
},'json');
self.selectedReport(self.reports()[0].functie);
$("#" + self.reports()[0].functie).addClass("selected");
self.fToonOpties();
},'json');
} ,
fToonOptiesStart : function(){
var self=tw.reportsModel;
self.selectedReport(this.functie);
self.fToonOpties();
},
fToonOpties : function(){
var self=tw.reportsModel;
self.layout("portrait");
$(".ReportAlg").removeClass("selected");
$("#"+ self.selectedReport() ).addClass("selected");
if(self.selectedReport() =='mensactief' || self.selectedReport() =='mensen'){
$.post('index.php/ijkpartituur/reports/getUsers',function(data){
self.maUsersIn.removeAll();
self.maUsersUit.removeAll();
$.each(data, function(i,p){
self.maUsersIn.push(p);
});
},'json');
self.partituur('');
$.post("index.php/ijkpartituur/reports/getActievePartituur", function(data){
self.partituur(data);
if (self.partituurvan()== undefined){
self.partituurvan(data.partituur_start);
self.partituurtot(data.partituur_eind);
}
if(self.periode() == undefined){self.periode(2);}
},'json');
}
if (self.selectedReport()=='activiteiten'){
$.post("index.php/ijkpartituur/reports/getPartituren",function(data){
self.partituren.removeAll();
$.each(data, function(i,p){
self.partituren.push(p);
if (p.actief) {self.selectedPartituur(p.id)}
}) ;
self.fGetPijlers();
},'json');
};
if (self.selectedReport()== "schoolmeterscores"){
$.post("index.php/ijkpartituur/reports/getOrgs",function(data){
self.organisatiesIn.removeAll();
self.organisatiesUit.removeAll();
$.each(data, function(i,p){
self.organisatiesIn.push(p)
}) ;
var vandatum = new Date();
var tmdatum = new Date();
vandatum.setYear(tmdatum.getFullYear() -1);
self.vandatum(DateNaarNedDat(vandatum) );
self.tmdatum(DateNaarNedDat(tmdatum) ) ;
//TODO bij orgs zouden eigenlijk alleen de IDs van de orgs moeten worden meegegeven
},'json')
}; // if self.selectedReport()= schoolmeterscores
if (self.selectedReport()=="schoolbeelden" ||
self.selectedReport()=="organisaties"){
self.layout("landscape");
};
if (self.selectedReport()=="planning"){
$.post("index.php/ijkpartituur/reports/getPartPijlers", function(data){
self.planningPijlers.removeAll();
self.actievePartituur('');
self.planningSelPijler(0);
self.partituurvan('');
self.partituurtot('');
self.selectedPijler('');
if (data) {
self.actievePartituur(data.partituur.partituur_naam);
self.selectedPartituur(data.partituur.id)
self.partituurvan(data.partituur.partituur_start);
self.partituurtot(data.partituur.partituur_eind);
$.each(data.pijlers, function(i,p){
self.planningPijlers.push(p);
});
}
},'json');
};
if(self.selectedReport() == "gebruikers"){
$.post('index.php/ijkpartituur/reports/getOrganisaties', function(data){
self.orgsIn.removeAll();
self.orgsUit.removeAll();
$.each(data, function(i,p){
self.orgsIn.push(new fOrga(p));
})
},'json');
};
if (self.selectedReport()=="organisaties"){
$.post('index.php/ijkpartituur/reports/getBGs', function(data){
self.BGsIn.removeAll();
self.BGsUit.removeAll();
$.each(data,function(i,p){
self.BGsIn.push(new fBG(p));
})
},'json');
};
if (self.selectedReport() == "sactiviteiten" ||
self.selectedReport() =="inhouden"){
$("#schatkist" ).addClass("selected");
$.post('index.php/ijkpartituur/reports/getStandaardPijlers', function(data){
self.PaIn.removeAll();
self.PaUit.removeAll();
$.each(data,function(i,p){
self.PaIn.push(p);
})
},'json');
if (self.selectedReport() == "sactiviteiten") {
self.schermlabel("Totaaloverzicht activiteiten");
self.checkTekst("inclusief activiteiten ingevoerd door gebruikers")
}
else { self.schermlabel("Kennisbank inhouden")
self.checkTekst("inclusief inhouden ingevoerd door gebruikers") };
}
},
fPrintReport : function(){
var self = tw.reportsModel;
if (!self.selectedReport()) {return};
if (self.selectedReport() == "planning" && self.actievePartituur() == "" ){
apprise("Er is geen actieve partituur",{"textOK":"ok"}, function(){
return;
})
return;
}
self.fSetCriteria(self.selectedReport());
var submitData=JSON.stringify(self.ExtraCriteria() );
var submitURL = "index.php/ijkpartituur/reports/PDF" +self.selectedReport() + "/1/1?data=" +submitData;
window.open(submitURL);
},
fSetCriteria : function(ReportType){
var self =tw.reportsModel;
self.ExtraCriteria({});
if (ReportType == "mensen"){
users = [];
if (self.maUsersIn()){
$.each(self.maUsersIn(), function(i,p){
users[i]={id: p.id, fullname:p.fullname.replace(/'/g, "")} ;
})
}
self.ExtraCriteria({
partituur: self.partituur(),
van : self.partituurvan(),
tot : self.partituurtot(),
periode: self.periode(),
orgusers: users
});
return;
};
if (ReportType =='mensactief'){
users = [];
if (self.maUsersIn()){
$.each(self.maUsersIn(), function(i,p){
users[i]={id: p.id, fullname:p.fullname.replace(/'/g, "")} ;
})
}
self.ExtraCriteria( {
partituur: self.partituur(),
orgusers : users
});
return;
};
if (ReportType == "activiteiten"){
self.ExtraCriteria( { pijlers : self.selectedPijlersID(),
Neepijlers : self.notselectedPijlers(),
partituur : self.selectedPartituur(),
agenda : self.PrintAgenda()});
return;
};
if (ReportType =="schoolmeterscores"){
var orgs = new Array();
$.each(self.organisatiesIn(), function(i,p){
orgs[i] = p.id;
});
self.ExtraCriteria( { vandatum : self.vandatum(),
tmdatum : self.tmdatum(),
orgs : orgs,
NeeOrgs : self.notselectedOrgs() } );
return;
};
if (ReportType=='eigenschoolbeeld'){
self.ExtraCriteria({partituurID : self.selectedPartituur() });
};
if (ReportType=="schoolbeelden"){
self.ExtraCriteria({beelden: self.beeldIDs()});
}
if (ReportType=='planning'){
var pijler;
if(self.welkrapport() == 2) {pijler=self.planningSelPijler()}
else {pijler=0};
self.ExtraCriteria({
partituur : self.selectedPartituur(),
vandatum : self.partituurvan(),
totdatum : self.partituurtot(),
periode : self.periode(),
overzicht : self.welkrapport(),
selectedPijler : pijler
});
};
if (ReportType == "gebruikers"){
var Inorgs = new Array();
$.each(self.orgsIn(), function(i,p){
if (p.toon()) {Inorgs.push(p.id)};
});
self.ExtraCriteria({orgs: Inorgs});
};
if (ReportType == "organisaties"){
var Inorgs = new Array();
$.each(self.BGsIn(), function(i,p){
if (p.toon()) {Inorgs.push(p.id)};
});
self.ExtraCriteria({BGs: Inorgs});
};
if(ReportType=="sactiviteiten" ||
ReportType =="inhouden"){
var Inpijlers= new Array();
$.each(self.PaIn(), function(i,p){
Inpijlers.push(p.id);
});
self.ExtraCriteria({pijlers: Inpijlers,
pijlerNul: self.PijlerNul(),
details: self.ToonDetails()});
};
},
fToonOpScherm : function(){
var self = tw.reportsModel;
if (!self.selectedReport()){return};
if ((self.selectedReport() == "planning" && self.actievePartituur() == "") ||
(self.selectedReport()=="mensactief" && self.partituur() == undefined) ||
(self.selectedReport()=="mensen" && self.partituur()==undefined) ){
apprise("Er is geen actieve partituur",{"textOK":"ok"}, function(){
return;
})
return;
}
self.fSetCriteria(self.selectedReport());
var submitData=JSON.stringify(self.ExtraCriteria() );
var submitURL= "index.php/ijkpartituur/reports/PDF"+self.selectedReport()+"/0/0?data=" +submitData ;
$.get( submitURL, function(html){
$(".PDFcontent").html(html)
if ($('#lsOverlay').css('display') == 'none') {
$("#lsOverlay").fadeIn(); }
setDrag("#popPDF");
$('#popPDF').fadeIn();
}, 'html');
},
fSetSelectedIn : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
var fullID = "#OrgIn" + this.id;
if ($(fullID).hasClass("selected")){$(fullID).removeClass("selected")}
else {$(fullID).addClass('selected')}
},
fSetSelectedUit : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
var fullID = "#OrgUit" + this.id;
if ($(fullID).hasClass("selected")){$(fullID).removeClass("selected")}
else {$(fullID).addClass('selected')}
},
fNaarInclude : function(){
var self = tw.reportsModel;
var el;
$(".cOrgUit.selected").each(function(i){
var targetID = this.id.substring(6);
el = ko.utils.arrayFirst(self.organisatiesUit(), function (item){
if (item.id == targetID ) {return item}
});
self.organisatiesIn.push(el);
self.organisatiesUit.remove(el);
});
},
fUitInclude : function(){
var self = tw.reportsModel;
var el;
$(".cOrgIn.selected").each(function(i){
var targetID = this.id.substring(5);
el = ko.utils.arrayFirst(self.organisatiesIn(), function (item){
if (item.id == targetID ) {return item}
});
self.organisatiesUit.push(el);
self.organisatiesIn.remove(el);
});
},
fSetPijlSelectedIn : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
var fullID = "#PijlIn" + this.id;
if ($(fullID).hasClass("selected")){$(fullID).removeClass("selected")}
else {$(fullID).addClass('selected')}
},
fSetPijlSelectedUit : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
var fullID = "#PijlUit" + this.id;
if ($(fullID).hasClass("selected")){$(fullID).removeClass("selected")}
else {$(fullID).addClass('selected')}
},
fPijlNaarInclude : function(){
var self = tw.reportsModel;
var el;
$(".cPijlerUit.selected").each(function(i){
var targetID = this.id.substring(7);
el = ko.utils.arrayFirst(self.PijlersUit(), function (item){
if (item.id == targetID ) {
return item}
});
self.PijlersIn.push(el);
self.PijlersUit.remove(el);
});
},
fPijlUitInclude : function(){
var self = tw.reportsModel;
var el;
$(".cPijlerIn.selected").each(function(i){
var targetID = this.id.substring(6);
el = ko.utils.arrayFirst(self.PijlersIn(), function (item){
if (item.id == targetID ) {return item}
});
self.PijlersUit.push(el);
self.PijlersIn.remove(el);
});
},
fGetPijlers : function(){
var self=tw.reportsModel;
var partID = self.selectedPartituur();
if (partID == 'undefined' || partID == null || partID == 0) return;
$.post("index.php/ijkpartituur/reports/getPijlers/" + partID, function(data){
self.PijlersIn.removeAll();
self.PijlersUit.removeAll();
$.each(data, function(i,p){
self.PijlersIn.push(p);
});
},'json')
},
fSetOrgSelectedIn : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
var fullID = "#OrgIn" + this.id;
if ($(fullID).hasClass("selected")){$(fullID).removeClass("selected")}
else {$(fullID).addClass('selected')}
},
fSetOrgSelectedUit : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
var fullID = "#OrgUit" + this.id;
if ($(fullID).hasClass("selected")){$(fullID).removeClass("selected")}
else {$(fullID).addClass('selected')}
},
fSelectAllOrg : function(){
var self = tw.reportsModel;
$(".cOrgaIn").each(function () {$(this).addClass("selected") });
},
fDeselectAllOrg : function(){
var self = tw.reportsModel;
$(".cOrgaIn").each(function () {$(this).removeClass("selected") });
},
fSelectAllOrgUit : function(){
var self = tw.reportsModel;
$(".cOrgaUit").each(function () {$(this).addClass("selected") });
},
fDeselectAllOrgUit : function(){
var self = tw.reportsModel;
$(".cOrgaUit").each(function () {$(this).removeClass("selected") });
},
fOrgNaarInclude : function(){
var self = tw.reportsModel;
var el;
$(".cOrgaUit.selected").each(function(i){
var targetID = this.id.substring(6);
el = ko.utils.arrayFirst(self.orgsUit(), function (item){
if (item.id == targetID ) {
return item}
});
self.orgsIn.push(el);
self.orgsUit.remove(el);
});
},
fOrgUitInclude : function(){
var self = tw.reportsModel;
var el;
$(".cOrgaIn.selected").each(function(i){
var targetID = this.id.substring(5);
$(this).removeClass("selected");
el = ko.utils.arrayFirst(self.orgsIn(), function (item){
if (item.id == targetID ) {return item}
});
self.orgsUit.push(el);
self.orgsIn.remove(el);
});
},
fSetfilter : function() {
var self = tw.reportsModel;
var test = -1;
$.each( self.orgsIn(), function(i,p){
string1= p.naamkort.toUpperCase()
test=string1.indexOf(self.filtervalue().toUpperCase());
if (self.filtervalue() == "") {test = 0};
if (test > -1){p.toon(true)}
else {p.toon(false)}
});
},
fSetfilterUit : function() {
var self = tw.reportsModel;
var test = -1;
$.each( self.orgsUit(), function(i,p){
string1= p.naamkort.toUpperCase()
test=string1.indexOf(self.filtervalue2().toUpperCase());
if (self.filtervalue2() == "") {test = 0};
if (test > -1){p.toon(true)}
else {p.toon(false)}
});
},
fSetfilterInBG : function() {
var self = tw.reportsModel;
var test = -1;
$.each( self.BGsIn(), function(i,p){
string1= p.naamkort.toUpperCase()
test=string1.indexOf(self.filtervalue().toUpperCase());
if (self.filtervalue() == "") {test = 0};
if (test > -1){p.toon(true)}
else {p.toon(false)}
});
},
fSetfilterUitBG : function() {
var self = tw.reportsModel;
var test = -1;
$.each( self.BGsUit(), function(i,p){
string1= p.naamkort.toUpperCase()
test=string1.indexOf(self.filtervalue2().toUpperCase());
if (self.filtervalue2() == "") {test = 0};
if (test > -1){p.toon(true)}
else {p.toon(false)}
});
},
fSetBGSelectedIn : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
var fullID = "#BGIn" + this.id;
if ($(fullID).hasClass("selected")){$(fullID).removeClass("selected")}
else {$(fullID).addClass('selected')}
},
fSetBGSelectedUit : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
var fullID = "#BGUit" + this.id;
if ($(fullID).hasClass("selected")){$(fullID).removeClass("selected")}
else {$(fullID).addClass('selected')}
},
fSelectAllBG : function(){
var self = tw.reportsModel;
$(".cBGIn").each(function () {$(this).addClass("selected") });
},
fDeselectAllBG : function(){
var self = tw.reportsModel;
$(".cBGIn").each(function () {$(this).removeClass("selected") });
},
fSelectAllBGUit : function(){
var self = tw.reportsModel;
$(".cBGUit").each(function () {$(this).addClass("selected") });
},
fDeselectAllBGUit : function(){
var self = tw.reportsModel;
$(".cBGUit").each(function () {$(this).removeClass("selected") });
},
fBGNaarInclude : function(){
var self = tw.reportsModel;
var el;
$(".cBGUit.selected").each(function(i){
var targetID = this.id.substring(5);
el = ko.utils.arrayFirst(self.BGsUit(), function (item){
if (item.id == targetID ) {
return item}
});
self.BGsIn.push(el);
self.BGsUit.remove(el);
});
},
fBGUitInclude : function(){
var self = tw.reportsModel;
var el;
$(".cBGIn.selected").each(function(i){
var targetID = this.id.substring(4);
$(this).removeClass("selected");
el = ko.utils.arrayFirst(self.BGsIn(), function (item){
if (item.id == targetID ) {return item}
});
self.BGsUit.push(el);
self.BGsIn.remove(el);
});
},
setMouseDown: function(){
var self= tw.reportsModel;
self.lsmousedown(true);
},
setMouseUp: function(){
var self=tw.reportsModel;
self.lsmousedown(false);
},
fSetPaSelectedIn : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
var fullID = "#PaIn" + this.id;
if ($(fullID).hasClass("selected")){$(fullID).removeClass("selected")}
else {$(fullID).addClass('selected')}
},
fSetPaSelectedUit : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
var fullID = "#PaUit" + this.id;
if ($(fullID).hasClass("selected")){$(fullID).removeClass("selected")}
else {$(fullID).addClass('selected')}
},
fPaNaarInclude : function(){
var self = tw.reportsModel;
var el;
$(".cPaUit.selected").each(function(i){
var targetID = this.id.substring(5);
el = ko.utils.arrayFirst(self.PaUit(), function (item){
if (item.id == targetID ) {
return item}
});
self.PaIn.push(el);
self.PaUit.remove(el);
});
},
fPaUitInclude : function(){
var self = tw.reportsModel;
var el;
$(".cPaIn.selected").each(function(i){
var targetID = this.id.substring(4);
$(this).removeClass("selected");
el = ko.utils.arrayFirst(self.PaIn(), function (item){
if (item.id == targetID ) {return item}
});
self.PaUit.push(el);
self.PaIn.remove(el);
});
},
fSetMASelect : function(data,fromevent){
var self = tw.reportsModel;
if (fromevent.type != "click" ) {
if (!self.lsmousedown()) {return};
}
if ($(fromevent.currentTarget).hasClass("selected")){$(fromevent.currentTarget).removeClass("selected")}
else {$(fromevent.currentTarget).addClass('selected')}
},
fMANaarInclude : function(){
var self = tw.reportsModel;
var el;
$(".cMAUit.selected").each(function(i){
var targetID = this.id.substring(3);
el = ko.utils.arrayFirst(self.maUsersUit(), function (item){
if (item.id == targetID ) {
return item}
});
self.maUsersIn.push(el);
self.maUsersUit.remove(el);
});
},
fMAUitInclude : function(){
var self = tw.reportsModel;
var el;
$(".cMAIn.selected").each(function(i){
var targetID = this.id.substring(3);
el = ko.utils.arrayFirst(self.maUsersIn(), function (item){
if (item.id == targetID ) {return item}
});
self.maUsersUit.push(el);
self.maUsersIn.remove(el);
});
},
fReturnTrue : function(){
return true;
}
};
tw.reportsModel.enablebuttons = ko.computed(function(){
var self = tw.reportsModel;
if (self.selectedReport() == "schoolmeterscores"){
if (self.organisatiesIn().length > 0) {return true}
else {return false};
}
else {return true};
});
tw.reportsModel.selectedPijlersID = ko.computed(function(){
var self = tw.reportsModel;
var eenArray = [];
$.each(self.PijlersIn(), function(){
eenArray.push(this.id)
})
return eenArray;
})
tw.reportsModel.notselectedPijlers = ko.computed(function(){
var self = tw.reportsModel;
var eenArray = [];
$.each(self.PijlersUit(), function(){
eenArray.push(this.pijlerNaam);
})
return eenArray;
})
tw.reportsModel.notselectedOrgs = ko.computed(function(){
var self = tw.reportsModel;
var eenArray = [];
$.each(self.organisatiesUit(), function(){
eenArray.push(this.naamkort);
})
return eenArray;
})
tw.reportsModel.beeldIDs = ko.computed(function(){
var self = tw.reportsModel;
var eenArray = [];
$.each(self.beeld(), function(i,p){
if (this.checked()){
eenArray.push(this.id);
}
})
return eenArray;
})
tw.reportsModel.reportsInit();
ko.applyBindings(tw.reportsModel, document.getElementById("page-overzichten"));
//});
}
};
});