$(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")); //}); } }; });