1191 lines
41 KiB
JavaScript
1191 lines
41 KiB
JavaScript
$(function () {
|
|
var appliedBindings = false;
|
|
|
|
fNewPijlerlijst = function(p){
|
|
this.id = p.id;
|
|
this.pijlerID = p.pijlerID; //id van de pijler in tbPijlers
|
|
this.naam = p.pijlerNaam;
|
|
this.omschrijving = p.omschrijving;
|
|
this.status = ko.observable('o'); // status o= open c= close
|
|
this.code = p.code; // schoolniveau of bg niveau
|
|
this.start = ko.observable(p.start);
|
|
this.eind = ko.observable(p.eind);
|
|
this.perc = ko.observable(p.perc);
|
|
this.duur =ko.observable(p.duur);
|
|
this.taakLijst = ko.observableArray([]);
|
|
var self = this;
|
|
$.each(p.taakLijst, function(j,q){
|
|
self.taakLijst.push(new fTaaklijst(q) );
|
|
})
|
|
};
|
|
|
|
fTaaklijst = function(q){
|
|
this.id = q.id;
|
|
this.pijlerID = q.pijlerID;
|
|
this.sequence = ko.observable(q.sequence);
|
|
this.perc = ko.observable(q.perc);
|
|
this.naam = ko.observable(q.naam);
|
|
this.start = ko.observable(q.start);
|
|
this.eind = ko.observable(q.eind);
|
|
this.duur = ko.observable(q.duur);
|
|
};
|
|
|
|
Test = function (data) {
|
|
this.pijlernaam = data.pijlernaam;
|
|
this.pijlerID = data.pijlerID;
|
|
this.taakID = data.ID;
|
|
|
|
this.taaknaam = data.taaknaam;
|
|
this.omschrijving = ko.observable(data.omschrijving);
|
|
this.opmerkingen = ko.observable(data.opmerkingen);
|
|
this.start = ko.observable(data.start);
|
|
this.eind = ko.observable(data.eind);
|
|
this.duur = ko.observable(data.duur);
|
|
this.selectedFase = ko.observable(data.fase)
|
|
this.verantwoordelijke = ko.observable(data.verantwoordelijke);
|
|
this.orgusers = ko.observable(data.orgusers);
|
|
this.gereed = ko.observable(data.gereed);
|
|
this.soortTaak = data.soortTaak;
|
|
this.bronOmschrijving = data.bronOmschrijving;
|
|
this.resultaatOmschrijving = data.resOmschrijving;
|
|
this.resultaat = ko.observable(data.resultaat);
|
|
this.eSpanne = ko.observable(data.eSpanne);
|
|
if (data.mailPleider==1) {
|
|
this.mailPleider = ko.observable( true);
|
|
}
|
|
else this.mailPleider = ko.observable( false);
|
|
if (data.mailVerantwoordelijke ==1){
|
|
this.mailVerantwoordelijke = ko.observable(true);
|
|
}
|
|
else {this.mailVerantwoordelijke = ko.observable(false)};
|
|
this.mailNaarMail = ko.observable(data.mailNaarMail);
|
|
this.afhankelijkNaam = ''; // hier een lijst van taken;
|
|
this.afhankelijkID = ko.observable(data.afhankelijkvanID);
|
|
this.takenLijst = ko.observableArray([]);
|
|
if (data.takenlijst) {
|
|
this.takenLijst = ko.observableArray(data.takenlijst);
|
|
};
|
|
this.hulpmiddelen = ko.observableArray([]);
|
|
|
|
if (data.hulpmiddelen.length > 0){
|
|
this.hulpmiddelen = ko.observableArray(
|
|
$.each(data.hulpmiddelen, function(i,h){
|
|
this.hID = h.hID;
|
|
this.hulpID = h.hulpID;
|
|
this.omschrijving = h.omschrijving;
|
|
}) // each
|
|
);
|
|
}; //if
|
|
this.selectedhulpmiddel = ko.observable('');
|
|
this.uitvoerenden =ko.observableArray([]);
|
|
if (data.uitvoerenden.length > 0) {
|
|
this.uitvoerenden = ko.observableArray(data.uitvoerenden);
|
|
};
|
|
this.selecteduitvoerende= ko.observable();
|
|
this.overigeusers = ko.observableArray([]);
|
|
if (data.overigeusers.length > 0) {
|
|
this.overigeusers = ko.observableArray(data.overigeusers);
|
|
};
|
|
this.selectedoverige = ko.observable();
|
|
this.doelgroepen = ko.observableArray([]);
|
|
if (data.doelgroepen.length > 0){
|
|
this.doelgroepen = ko.observableArray(
|
|
$.each(data.doelgroepen, function(i,d){
|
|
this.id = d.id;
|
|
this.padID = d.padID;
|
|
this.omschrijving = d.omschrijving;
|
|
}) // each
|
|
);
|
|
};
|
|
this.kosten = ko.observableArray([]);
|
|
if (data.kosten.length > 0 && !(data.kosten == false)){
|
|
var self= this;
|
|
$.each(data.kosten, function(i,kost){
|
|
self.kosten.push(new fKostregel(kost));
|
|
});// each
|
|
}; // if
|
|
this.totaalkosten = ko.computed(function(){
|
|
var sum=0;
|
|
$.each(this.kosten(), function(i,kostplaats){
|
|
sum = sum + MaakEnglishFormat(kostplaats.kosten());
|
|
});
|
|
if (sum == undefined) {sum = 0.00};
|
|
sum = MaakNedFormat(sum,2);
|
|
return sum
|
|
}, this);
|
|
}
|
|
|
|
function fKostregel(p){
|
|
this.omschrijving = ko.observable(p.omschrijving) ;
|
|
this.kosten = ko.observable(p.kosten) ;
|
|
this.id = p.id ;
|
|
};
|
|
function fAddNote(n){
|
|
this.id = n.id;
|
|
this.toonnaam = ko.observable(n.toonnaam);
|
|
this.partactID = n.partactid;
|
|
}
|
|
ls.initPlanning = function(){
|
|
|
|
if (ls.ModelPlanning !==undefined) {
|
|
ls.ModelPlanning.InitValues();
|
|
}
|
|
else { ls.ModelPlanning = {
|
|
partituurID : ko.observable(),
|
|
tijdspan : ko.observable('months'),
|
|
zoomlevel : ko.observable(2),
|
|
targetDate : ko.observable(),
|
|
fasen : ko.observableArray([]),
|
|
centerDatum : ko.observable(),
|
|
medewerkers : ko.observableArray([]),
|
|
GanttTaken : ko.observableArray([]),
|
|
TaakRow : ko.observable(),
|
|
afhankelijkID : ko.observable(),
|
|
taak : ko.observable(),
|
|
doelgroepenkeus : ko.observableArray([]),
|
|
|
|
TakenbijPijler : ko.observableArray([]),
|
|
selectedTaakbijPijler : ko.observable(),
|
|
|
|
voorna : ko.observable(), // of insert voor of na opgegeven sequentie moet
|
|
selectedPijler : ko.observable(),
|
|
hasWrite : ko.observable(true),
|
|
notes : ko.observableArray([]),
|
|
selectedNote : ko.observable({id: 0, toonnaam: ko.observable(''), partactID: 0}),
|
|
LSselectedNfile : ko.observable(),
|
|
actionURL : ko.observable(),
|
|
bezig : ko.observable(false),
|
|
|
|
InitValues : function(){
|
|
var self = this;
|
|
self.GanttTaken.removeAll();
|
|
|
|
$.getJSON('index.php/ijkpartituur/planning/getPlanning', function(planningData){
|
|
var hulpstr = planningData.partituur.partituur_start;
|
|
hulpstr=hulpstr.replace(/-/g,'/');
|
|
projStart=new Date(hulpstr);
|
|
projStart.setHours(0,0,0);
|
|
if (planningData.canWrite > 0) {self.hasWrite(true);}
|
|
else {self.hasWrite(false)};
|
|
hulpstr = planningData.partituur.partituur_eind;
|
|
hulpstr=hulpstr.replace(/-/g,'/');
|
|
projEind=new Date(hulpstr);
|
|
projEind.setHours(0,0,0);
|
|
self.partituurID(planningData.partituur.id);
|
|
self.medewerkers(planningData.medewerkers);
|
|
self.fasen(planningData.fasen);
|
|
$.each(planningData.taken, function(i, p) {
|
|
self.GanttTaken.push(new fNewPijlerlijst(p))
|
|
});
|
|
MaakGanttTabel(self.zoomlevel());
|
|
MaakTaken(self.GanttTaken(), self.zoomlevel() );
|
|
|
|
var vandaag = new Date();
|
|
var dag = vandaag.getDate();
|
|
if (dag < 10) {dag ='0' + dag}
|
|
var maand = vandaag.getMonth() + 1;
|
|
if (maand < 10){maand = '0' + maand;};
|
|
var jaar = vandaag.getFullYear();
|
|
var inDag =dag + '-' + maand + '-' + jaar;
|
|
self.targetDate(inDag);
|
|
self.gottoDate();
|
|
self.fVulTakenlijstAan();
|
|
}); //get
|
|
} , // einde init values
|
|
fCheckPijlerStart : function() {
|
|
var self = ls.ModelPlanning;
|
|
var startdate =NedDatNaarDateObj(self.selectedPijler().start());
|
|
var einddate = NedDatNaarDateObj(self.selectedPijler().eind());
|
|
if (startdate.getTime() < projStart.getTime() ){
|
|
apprise('De startdatum moet op of na de startdatum van de partituur vallen.' , {}, function(){
|
|
startdate.setTime(projStart.getTime())
|
|
self.selectedPijler().start(DateNaarNedDat(startdate));
|
|
})
|
|
}
|
|
else{
|
|
if (startdate.getTime() > einddate.getTime()) {
|
|
apprise('De startdatum moet voor de einddatum vallen.' , {}, function(){
|
|
startdate.setTime(projStart.getTime());
|
|
self.selectedPijler().start(DateNaarNedDat(startdate));
|
|
})
|
|
}
|
|
}; // else
|
|
// controleer de agenda
|
|
$.post('index.php/ijkpartituur/agenda/getMinDag/' +self.selectedPijler().id,function(data){
|
|
var aangepast = false;
|
|
var mindag = data[0].mindag;
|
|
if (mindag !== null) {
|
|
var maxStart= new Date(mindag.substr(0,4), (mindag.substr(5,2) - 1),mindag.substr(8,2));
|
|
// max start is de vroegste datum waarop in de agenda iets gepland is voor deze pijler
|
|
// de startdatum mag dus niet na deze datum vallen, maar moet in de range van
|
|
// projStartdatum tot maxstart vallen
|
|
if (startdate.getTime() > maxStart.getTime() ) {
|
|
startdate.setTime(maxStart.getTime() );
|
|
aangepast = true;
|
|
}
|
|
};
|
|
var taakStart;
|
|
$.each(self.GanttTaken(), function(i, Kpijler){
|
|
if (Kpijler.id == self.selectedPijler().id){
|
|
$.each(Kpijler.taakLijst(), function(j,Ktaak) {
|
|
taakStart=NedDatNaarDateObj(Ktaak.start());
|
|
if(startdate.getTime() > taakStart.getTime()) {
|
|
aangepast = true;
|
|
startdate.setTime(taakStart.getTime());
|
|
} //if
|
|
}); // each
|
|
return false;
|
|
} // if
|
|
});// each
|
|
|
|
if (aangepast) {
|
|
self.selectedPijler().start(DateNaarNedDat(startdate));
|
|
apprise('Startdatum wordt aangepast vanwege de agenda en/of de startdatum van een of meer activiteiten.')
|
|
}
|
|
},'json');
|
|
},
|
|
fCheckPijlerEind :function(){
|
|
var self = ls.ModelPlanning;
|
|
var startdate =NedDatNaarDateObj(self.selectedPijler().start());
|
|
var einddate = NedDatNaarDateObj(self.selectedPijler().eind());
|
|
if (einddate.getTime() > projEind.getTime()) {
|
|
apprise("De einddatum moet op of voor de einddatum van de partituur vallen.", {} , function(){
|
|
einddate.setTime(projEind.getTime());
|
|
self.selectedPijler().eind(DateNaarNedDat(einddate));
|
|
})
|
|
}
|
|
else{
|
|
if (einddate.getTime() < startdate.getTime()){
|
|
apprise("De einddatum moet na de startdatum vallen.", {} , function(){
|
|
einddate.setTime(projEind.getTime());
|
|
self.selectedPijler().eind(DateNaarNedDat(einddate));
|
|
})
|
|
}
|
|
} // else
|
|
// controleer de agenda
|
|
$.post('index.php/ijkpartituur/agenda/getMaxDag/' +self.selectedPijler().id,function(data){
|
|
var aangepast = false;
|
|
var maxdag=data[0].maxdag;
|
|
if (maxdag) {
|
|
var minEind= new Date(maxdag.substr(0,4), (maxdag.substr(5,2) - 1),maxdag.substr(8,2));
|
|
// minEind is de laatste datum waarop in de agenda iets gepland is voor deze pijler
|
|
// de einddatum mag dus niet voor deze datum vallen, maar moet in de range van
|
|
// minEind tot projEinddatum vallen
|
|
// hier check de taken
|
|
|
|
if (einddate.getTime() < minEind.getTime() ) {
|
|
einddate.setTime(minEind.getTime() );
|
|
aangepast = true;
|
|
}
|
|
}
|
|
// controleer de data van de activiteiten.
|
|
var taakEind;
|
|
$.each(self.GanttTaken(), function(i, pijler){
|
|
if (pijler.id == self.selectedPijler().id){
|
|
$.each(pijler.taakLijst(), function(j,taak) {
|
|
taakEind=NedDatNaarDateObj(taak.eind());
|
|
if(einddate.getTime() < taakEind.getTime()) {
|
|
aangepast = true;
|
|
einddate.setTime(taakEind.getTime());
|
|
} //if
|
|
}); // each
|
|
|
|
return false;
|
|
} // if
|
|
});// each
|
|
if (aangepast){
|
|
self.selectedPijler().eind(DateNaarNedDat(einddate));
|
|
apprise("Einddatum wordt aangepast vanwege de agenda en/of de einddatum van een of meer activiteiten.")}
|
|
},'json');
|
|
|
|
},
|
|
fSetPijlerData : function(){
|
|
var self = ls.ModelPlanning;
|
|
var submitData = { id : self.selectedPijler().id,
|
|
start: self.selectedPijler().start(),
|
|
eind: self.selectedPijler().eind()};
|
|
$.post("index.php/ijkpartituur/planning/SavePijlerData", submitData);
|
|
// GanttTaken aanpassen. Hoeft niet gebeurt vanzelf doordat selectedPijler naar dezelfde onderliggend
|
|
// array verwijs als de desbetreffende "GanttTaak"
|
|
|
|
// gantt aanpassen
|
|
MaakTaken(self.GanttTaken(), self.zoomlevel() );
|
|
$(".popclose").click();
|
|
},
|
|
fCheckStartNieuw : function(){
|
|
if (!appliedBindings) {return};
|
|
var self = ls.ModelPlanning;
|
|
var pijlerID = self.taak().pijlerID;
|
|
var actID = self.taak().taakID;
|
|
var duur = parseInt(self.taak().duur());
|
|
var StartAsObject = NedDatNaarDateObj(self.taak().start());
|
|
var EindAsObject = NedDatNaarDateObj(self.taak().eind());
|
|
|
|
var BeginPijlerAsObject = '';
|
|
$.each(self.GanttTaken(), function(i,p){
|
|
if (p.id== pijlerID){
|
|
BeginPijlerAsObject = NedDatNaarDateObj( p.start() );
|
|
return false;
|
|
}
|
|
}); // each
|
|
|
|
var MinAgenda ='';
|
|
|
|
$.post("index.php/ijkpartituur/agenda/getMinMaxDagActiviteit/" + pijlerID + '/' + actID, function(data){
|
|
var mindag = data[0].mindag;
|
|
|
|
if (mindag){ MinAgenda =new Date(mindag.substr(0,4), (mindag.substr(5,2) - 1),mindag.substr(8,2));
|
|
};
|
|
var testDate = new Date(EindAsObject);
|
|
testDate.setDate(testDate.getDate() - duur );
|
|
if (MinAgenda) {
|
|
if (testDate.getTime() < MinAgenda.getTime() ) {
|
|
MinAgenda.setTime(testDate.getTime());
|
|
}
|
|
}
|
|
else {MinAgenda.setDate(testDate.getDate())};
|
|
|
|
self.fCompareStart(StartAsObject, BeginPijlerAsObject, MinAgenda, self.taak());
|
|
},'json');
|
|
|
|
},
|
|
fCompareStart : function(StartAsObject, BeginPijlerAsObject, MinAgenda, taakObj){
|
|
if ( StartAsObject.getTime() < BeginPijlerAsObject.getTime() ){
|
|
apprise('De startdatum moet in het interval van ' + DateNaarNedDat(BeginPijlerAsObject) + " tot " +
|
|
DateNaarNedDat(MinAgenda) + " vallen." ,{},
|
|
function(){
|
|
taakObj.start(DateNaarNedDat(BeginPijlerAsObject)) ;
|
|
});
|
|
};
|
|
if (StartAsObject.getTime() > MinAgenda.getTime()){
|
|
apprise('De startdatum moet in het interval van ' + DateNaarNedDat(BeginPijlerAsObject) + " tot " +
|
|
DateNaarNedDat(MinAgenda) + " vallen." ,{},
|
|
function(){
|
|
taakObj.start(DateNaarNedDat(MinAgenda)) ;
|
|
});
|
|
};
|
|
|
|
},
|
|
fCheckEindNieuw : function(){
|
|
if (!appliedBindings) {return};
|
|
var self = ls.ModelPlanning;
|
|
var pijlerID = self.taak().pijlerID;
|
|
var actID = self.taak().taakID;
|
|
var duur = parseInt(self.taak().duur());
|
|
|
|
var StartAsObject = NedDatNaarDateObj(self.taak().start());
|
|
var EindAsObject = NedDatNaarDateObj(self.taak().eind());
|
|
|
|
var EindPijlerAsObject = '';
|
|
$.each(self.GanttTaken(), function(i,p){
|
|
if (p.id== pijlerID){
|
|
EindPijlerAsObject = NedDatNaarDateObj( p.eind() );
|
|
return false;
|
|
}
|
|
}); // each
|
|
|
|
var MaxAgenda ='';
|
|
|
|
$.post("index.php/ijkpartituur/agenda/getMinMaxDagActiviteit/" + pijlerID + '/' + actID, function(data){
|
|
var maxdag = data[0].maxdag;
|
|
var MaxAgenda = new Date();
|
|
if (maxdag){
|
|
MaxAgenda = Date(maxdag.substr(0,4), (maxdag.substr(5,2) - 1),maxdag.substr(8,2));
|
|
};
|
|
var testDate = new Date(StartAsObject);
|
|
testDate.setDate(testDate.getDate() + duur );
|
|
if (maxdag) {
|
|
if (testDate.getTime() > MaxAgenda.getTime() ) {
|
|
MaxAgenda.setTime(testDate.getTime());
|
|
};
|
|
}
|
|
else {
|
|
MaxAgenda.setTime(testDate.getTime())};
|
|
|
|
self.fCompareEind(EindAsObject, EindPijlerAsObject, MaxAgenda, self.taak());
|
|
},'json');
|
|
},
|
|
fCompareEind : function(EindAsObject, EindPijlerAsObject, MaxAgenda, taakObj){
|
|
if ( EindAsObject.getTime() > EindPijlerAsObject.getTime() ){
|
|
apprise('De einddatum moet in het interval van ' + DateNaarNedDat(MaxAgenda) + " tot " +
|
|
DateNaarNedDat(EindPijlerAsObject) + " vallen." ,{},
|
|
function(){
|
|
taakObj.eind(DateNaarNedDat(EindPijlerAsObject)) ;
|
|
});
|
|
};
|
|
if (EindAsObject.getTime() < MaxAgenda.getTime()){
|
|
apprise('De einddatum moet in het interval van ' + DateNaarNedDat(MaxAgenda) + " tot " +
|
|
DateNaarNedDat(EindPijlerAsObject)+ " vallen." ,{},
|
|
function(){
|
|
taakObj.eind(DateNaarNedDat(MaxAgenda)) ;
|
|
});
|
|
};
|
|
},
|
|
|
|
fCheckDuur : function(){
|
|
var self = ls.ModelPlanning;
|
|
var varDuur = this.duur();
|
|
var DagInMs = 24 * 60 * 60 * 1000 ;
|
|
if (varDuur < 1){
|
|
apprise("Een activiteit moet ten minste 1 dag beslaan.",{},function(){
|
|
ls.ModelPlanning.taak().duur(1);
|
|
});
|
|
};
|
|
var StartAsObject = NedDatNaarDateObj(self.taak().start());
|
|
var EindAsObject = NedDatNaarDateObj(self.taak().eind() );
|
|
|
|
var ms = StartAsObject.getTime() + (86400000 * varDuur);
|
|
var test = new Date(ms);
|
|
|
|
if (test > EindAsObject){
|
|
var DaysInMs = Math.abs(EindAsObject.getTime() - StartAsObject.getTime());
|
|
var Days= Math.round(DaysInMs / DagInMs);
|
|
apprise("Gegeven de start- en einddatum kan deze activiteit niet meer dan " + Days + " dagen duren.",{},function(){
|
|
self.taak().duur(Days);
|
|
})
|
|
}; // if
|
|
},
|
|
|
|
fToonPijler : function(){
|
|
var self = ls.ModelPlanning;
|
|
self.selectedPijler(this);
|
|
|
|
if ( $('#lsOverlay').css('display') == 'none' ) { $("#lsOverlay").fadeIn() };
|
|
setDrag("#popWijzigPijler")
|
|
$('#popWijzigPijler').fadeIn();
|
|
},
|
|
GetClickedTaak : function(taakID){
|
|
var self= this;
|
|
var target ;
|
|
$.each(self.GanttTaken(), function(i,p){
|
|
if (p.id() == taakID) {
|
|
target =p;
|
|
return false;
|
|
};
|
|
}); // einde for each taken
|
|
return target;
|
|
} ,
|
|
|
|
fToonTaakEditor : function(){
|
|
var taakID = this.id;
|
|
var self = ls.ModelPlanning;
|
|
$.getJSON('index.php/ijkpartituur/planning/getTaakInfo/' +taakID, function(result){
|
|
self.notes.removeAll();
|
|
if (result.taak){
|
|
if (result.notes){
|
|
$.each(result.notes , function(i,n){
|
|
self.notes.push(new fAddNote(n));
|
|
});
|
|
}
|
|
self.taak(new Test(result.taak));
|
|
if ( $('#lsOverlay').css('display') == 'none' ) { $("#lsOverlay").fadeIn() };
|
|
setDrag("#popTaakEditor");
|
|
$('#popTaakEditor').fadeIn();
|
|
}; // einde if result
|
|
|
|
}); // einde getJSON
|
|
},
|
|
|
|
fOpslaanTaakDetails: function(){
|
|
// taak details hebben geen effect op de gantt representatie en kunnen dus zo worden opgeslagen
|
|
var self = ls.ModelPlanning;
|
|
var naarPL = 0;
|
|
if (self.taak().mailPleider() ){naarPL = 1};
|
|
var naarVW = 0;
|
|
if (self.taak().mailVerantwoordelijke() ){naarVW = 1};
|
|
var submitData={
|
|
taakID : self.taak().taakID,
|
|
omschrijving : self.taak().omschrijving(),
|
|
opmerkingen : self.taak().opmerkingen(),
|
|
gereed : self.taak().gereed(),
|
|
verantwoordelijke: self.taak().verantwoordelijke(),
|
|
email_dagen : self.taak().eSpanne(),
|
|
email_naar_pl : naarPL,
|
|
email_naar_vw : naarVW,
|
|
email_adres : self.taak().mailNaarMail()
|
|
};
|
|
$.post("index.php/ijkpartituur/planning/SaveTaakDetails", submitData);
|
|
return true; // nodig voor IE om de checkboxvalue te tonen
|
|
},
|
|
fCheckInput : function(){
|
|
var self=ls.ModelPlanning;
|
|
var target = this;
|
|
if (target.gereed() > 100 || target.gereed() < 0){
|
|
apprise("Percentage gereed moet tussen 0 en 100 vallen.",{}, function(){
|
|
target.gereed(0);
|
|
})
|
|
}
|
|
},
|
|
fCheckMail : function(item, event){
|
|
var self=ls.ModelPlanning;
|
|
var target = this;
|
|
if (checkEmail(this.mailNaarMail()) ){
|
|
self.fOpslaanTaakDetails();
|
|
}
|
|
else {
|
|
apprise("Ongeldig e-mailadres",{"textOK" : "OK"},function(){
|
|
target.mailNaarMail('');
|
|
$(event.target).focus();
|
|
})
|
|
}
|
|
},
|
|
fSavePercent : function(item,event){
|
|
var self=ls.ModelPlanning;
|
|
var target = this;
|
|
if (this.perc() > 100 || this.perc() < 0){
|
|
apprise("Percentage gereed moet tussen 0 en 100 vallen.",{}, function(){
|
|
target.perc(0);
|
|
$(event.target).focus();
|
|
})
|
|
}
|
|
else {
|
|
var submitData={ taakID : this.id,
|
|
gereed: this.perc()};
|
|
$.post("index.php/ijkpartituur/planning/SavePerc", submitData);
|
|
}
|
|
},
|
|
OpslaanTaak : function(){
|
|
var self = ls.ModelPlanning;
|
|
var naarPL = 0;
|
|
if (self.taak().mailPleider() ){naarPL = 1};
|
|
var naarVW = 0;
|
|
if (self.taak().mailVerantwoordelijke() ){naarVW = 1};
|
|
var submitData={
|
|
taakID : self.taak().taakID,
|
|
startdatum : self.taak().start(),
|
|
einddatum : self.taak().eind(),
|
|
duur : self.taak().duur(),
|
|
afhankelijkvan : self.taak().afhankelijkID(),
|
|
gereed : self.taak().gereed(),
|
|
|
|
};
|
|
//doelgroepen, uitvoerenden, kosten, hulpmiddelen en resultaten worden apart opgeslagen
|
|
$.post("index.php/ijkpartituur/planning/SaveTaak", submitData);
|
|
|
|
var pijlID = $('table.gTable').find("tr.ganttselected").attr("pijlid");
|
|
|
|
$.each(self.GanttTaken(), function(i,g){
|
|
if (g.id==pijlID){
|
|
$.each(g.taakLijst(), function(j,lijst){
|
|
if (lijst.id == self.taak().taakID )
|
|
{ lijst.perc(self.taak().gereed() )}
|
|
})
|
|
return false;
|
|
}
|
|
});
|
|
var year = self.taak().start().substr(6);
|
|
var month = parseInt(self.taak().start().substr(3,2)) -1;
|
|
var dag =self.taak().start().substring(0,2);
|
|
var NewStart = new Date(year, month,dag);
|
|
year = self.taak().eind().substr(6);
|
|
month = parseInt(self.taak().eind().substr(3,2)) - 1;
|
|
dag = self.taak().eind().substring(0,2);
|
|
var NewEind = new Date(year, month,dag);
|
|
$.each(Alles, function(i,a){
|
|
if (a.id == self.taak().taakID && !a.isPijler){
|
|
if (! (a.start.getTime() == NewStart.getTime() )||
|
|
! (a.eind.getTime() == NewEind.getTime() ) ){
|
|
a.start.setTime(NewStart.getTime());
|
|
a.eind.setTime(NewEind.getTime());
|
|
a.getNewSize();
|
|
}
|
|
a.duur=self.taak().duur();
|
|
return false;
|
|
}; //if
|
|
});
|
|
//hier moet nog bepaald worden of depends on veranderd is en dat moet dan ook getekend worden
|
|
},
|
|
zoomMinus : function(){
|
|
var self=this;
|
|
if (self.zoomlevel()==3) return;
|
|
self.zoomlevel( self.zoomlevel() + 1);
|
|
MaakGanttTabel(self.zoomlevel());
|
|
MaakTaken(self.GanttTaken(), self.zoomlevel() );
|
|
self.gottoDate();
|
|
},
|
|
zoomPlus : function(){
|
|
var self=this;
|
|
if (self.zoomlevel()==1) return;
|
|
self.zoomlevel( self.zoomlevel() - 1);
|
|
MaakGanttTabel(self.zoomlevel());
|
|
MaakTaken(self.GanttTaken(), self.zoomlevel() );
|
|
self.gottoDate();
|
|
},
|
|
gottoDate : function(){
|
|
var datum = ls.ModelPlanning.targetDate();
|
|
goToDay(datum, this.zoomlevel());
|
|
},
|
|
undoGantt : function(){
|
|
var self = this;
|
|
$.getJSON('index.php/ijkpartituur/planning/get_planning', function(planningData){
|
|
self.GanttTaken.removeAll();
|
|
ko.mapping.fromJS(planningData.tasks, self.GanttTaken);
|
|
MaakGanttTabel(self.zoomlevel());
|
|
MaakTaken(self.GanttTaken(), self.zoomlevel() );
|
|
$('table.gTable').find("tr.ganttselected").removeClass('ganttselected');
|
|
}); // einde getJSON
|
|
},
|
|
|
|
InvoegenTaak : function(){
|
|
$(".popclose").click();
|
|
// get en set de nieuwe ids
|
|
var self = ls.ModelPlanning;
|
|
var newID= self.selectedTaakbijPijler().id;
|
|
var currentSeq = $('table.gTable').find("tr.ganttselected").attr('seq');
|
|
if (currentSeq === undefined) {currentSeq= 0;}
|
|
var pijlerIDs = self.fFindPijlerIDs();
|
|
var submitData={ partituurID : self.partituurID(),
|
|
pijlerID : pijlerIDs[0],
|
|
newTaakID : newID,
|
|
positie : self.voorna(),
|
|
selSeq : currentSeq} ;
|
|
$.post("index.php/ijkpartituur/planning/addTaak",submitData, function(data){
|
|
self.GanttTaken.removeAll();
|
|
self.InitValues();
|
|
});
|
|
self.fVulTakenlijstAan();
|
|
},
|
|
fFindPijlerIDs : function(){
|
|
var self= ls.ModelPlanning;
|
|
var currentID = $('table.gTable').find("tr.ganttselected").attr('id');
|
|
var IDarray=[-1,-1] ; // partpijlerID, truepijlerID
|
|
if (currentID == undefined){
|
|
return IDarray;
|
|
} //einde if
|
|
else {
|
|
var ID1=currentID.substr(0,4)
|
|
if (ID1 =="pijl") {
|
|
IDarray[0]= currentID.substring(4, currentID.length)
|
|
}
|
|
else{
|
|
IDarray[0] = $('table.gTable').find("tr.ganttselected").attr('pijlid');
|
|
}
|
|
|
|
$.each(self.GanttTaken(), function(i,p){
|
|
if (p.id == IDarray[0]) { IDarray[1]=p.pijlerID}
|
|
});
|
|
return IDarray;
|
|
};
|
|
},
|
|
addAboveCurrentTask : function(){
|
|
var self = this;
|
|
var currentID = $('table.gTable').find("tr.ganttselected").attr('id');
|
|
if (currentID.substr(0,4) == "pijl"){
|
|
apprise("U kunt geen activiteiten boven een pijler invoegen.",{},function(){
|
|
return;
|
|
})
|
|
}
|
|
else
|
|
{
|
|
var pijlerIDs= self.fFindPijlerIDs();
|
|
if (pijlerIDs[0] == -1){
|
|
apprise("U moet eerst een regel selecteren waarboven de nieuwe taak moet worden toegevoegd.", function(){
|
|
return;
|
|
}); // einde apprise
|
|
} //einde if
|
|
else {
|
|
$.getJSON('index.php/ijkpartituur/planning/getActiviteitenPerPijler/'+self.partituurID() +'/'+pijlerIDs[1], function(taken){
|
|
self.TakenbijPijler(taken);
|
|
self.selectedTaakbijPijler(taken[0]);
|
|
self.voorna('voor');
|
|
if ( $('#lsOverlay').css('display') == 'none' ) { $("#lsOverlay").fadeIn() };
|
|
setDrag("#popTaakSelector");
|
|
$('#popTaakSelector').fadeIn();
|
|
}); // einde getjson
|
|
}; // einde else bij er is wel een pijler
|
|
}; // else
|
|
},
|
|
|
|
addBelowCurrentTask : function(){
|
|
var self = this;
|
|
var currentID = $('table.gTable').find("tr.ganttselected").attr('id');
|
|
var pijlerIDs= self.fFindPijlerIDs();
|
|
if (pijlerIDs[0] == -1){
|
|
apprise("U moet eerst een regel selecteren waaronder de nieuwe taak moet worden toegevoegd.", function(){
|
|
return;
|
|
}); // einde apprise
|
|
} //einde if
|
|
else {
|
|
// get de taken bij de current Pijler
|
|
$.getJSON('index.php/ijkpartituur/planning/getActiviteitenPerPijler/' +self.partituurID() +'/' +pijlerIDs[1], function(taken){
|
|
self.TakenbijPijler(taken);
|
|
self.selectedTaakbijPijler(taken[0]);
|
|
self.voorna('na');
|
|
if ( $('#lsOverlay').css('display') == 'none' ) { $("#lsOverlay").fadeIn() };
|
|
setDrag("#popTaakSelector");
|
|
$('#popTaakSelector').fadeIn();
|
|
}); // einde getjson
|
|
}; // einde else
|
|
},
|
|
moveDown : function(){
|
|
var self = ls.ModelPlanning;
|
|
|
|
var currentSeq = $('table.gTable').find("tr.ganttselected").attr('seq');
|
|
var taakID = $('table.gTable').find("tr.ganttselected").attr('id');
|
|
if (taakID) {
|
|
taakID = taakID.substr(3, taakID.length);}
|
|
var pijlerID = $('table.gTable').find("tr.ganttselected").attr('pijlid');
|
|
var pijlerIndex = 0;
|
|
var taakIndex = 0;
|
|
var isPijler = false;
|
|
if (pijlerID == undefined) { isPijler= true;}
|
|
if (taakID == undefined){
|
|
apprise('U moet eerst een activiteti selecteren.', function()
|
|
{return false;});
|
|
};
|
|
if (isPijler){
|
|
apprise("U kunt een pijler niet verplaatsen.", function()
|
|
{return false;});
|
|
}
|
|
else {
|
|
$.each(this.GanttTaken(), function(i,gTaak){
|
|
if (gTaak.id == pijlerID) {
|
|
pijlerIndex = i;
|
|
$.each(gTaak.taakLijst(), function(j,lijst) {
|
|
if( lijst.id == taakID){
|
|
taakIndex = j;
|
|
return false
|
|
}
|
|
});
|
|
return false;
|
|
}
|
|
}); // each gantttaken
|
|
if (taakIndex >= (self.GanttTaken()[pijlerIndex].taakLijst().length -1))
|
|
{ apprise("U kunt deze activiteit niet naar onderen verplaatsen.", function(){
|
|
return;
|
|
}); // apprise
|
|
} // if
|
|
else {
|
|
var nextSeq = self.GanttTaken()[pijlerIndex].taakLijst()[(taakIndex + 1)].sequence() ;
|
|
var nextID =self.GanttTaken()[pijlerIndex].taakLijst()[(taakIndex + 1)].id;
|
|
$('#act'+nextID).attr('seq' , currentSeq);
|
|
$('#act'+taakID).attr('seq' , nextSeq);
|
|
self.GanttTaken()[pijlerIndex].taakLijst()[taakIndex].sequence(nextSeq);
|
|
self.GanttTaken()[pijlerIndex].taakLijst()[taakIndex + 1].sequence(currentSeq);
|
|
var temTaak= self.GanttTaken()[pijlerIndex].taakLijst.splice((taakIndex),1);
|
|
self.GanttTaken()[pijlerIndex].taakLijst.splice(taakIndex +1 ,0,temTaak[0]);
|
|
|
|
// nu de tabellen opnieuw opbouwen
|
|
MaakTaken(self.GanttTaken(), self.zoomlevel() );
|
|
// save de nieuwe sequentie
|
|
var SeqLijst=[];
|
|
$.each(self.GanttTaken()[pijlerIndex].taakLijst(), function(i,p){
|
|
SeqLijst.push({id: p.id,
|
|
seq: p.sequence()})
|
|
});
|
|
var submitData={'seqlijst' : SeqLijst};
|
|
$.post('index.php/ijkpartituur/planning/saveSequentie', submitData);
|
|
} // else
|
|
} //else
|
|
},
|
|
moveUp : function(){
|
|
var self = ls.ModelPlanning;
|
|
|
|
var currentSeq = $('table.gTable').find("tr.ganttselected").attr('seq');
|
|
var taakID = $('table.gTable').find("tr.ganttselected").attr('id');
|
|
if (taakID) {taakID = taakID.substr(3, taakID.length);}
|
|
var pijlerID = $('table.gTable').find("tr.ganttselected").attr('pijlid');
|
|
var pijlerIndex = 0;
|
|
var taakIndex = 0;
|
|
var isPijler = false;
|
|
if (pijlerID == undefined) { isPijler= true;}
|
|
if (taakID == undefined){
|
|
apprise('U moet eerst een activiteit selecteren.', function()
|
|
{return false;});
|
|
};
|
|
if (isPijler){
|
|
apprise("U kunt een pijler niet verplaatsen.", function()
|
|
{return false;});
|
|
}
|
|
else {
|
|
$.each(this.GanttTaken(), function(i,gTaak){
|
|
if (gTaak.id == pijlerID) {
|
|
pijlerIndex = i;
|
|
$.each(gTaak.taakLijst(), function(j,lijst) {
|
|
if( lijst.id == taakID){
|
|
taakIndex = j;
|
|
return false
|
|
}
|
|
});
|
|
return false;
|
|
}
|
|
}); // each gantttaken
|
|
|
|
if (taakIndex == 0) {return } ;
|
|
var prevSeq = self.GanttTaken()[pijlerIndex].taakLijst()[(taakIndex - 1)].sequence() ;
|
|
var prevID =self.GanttTaken()[pijlerIndex].taakLijst()[(taakIndex - 1)].id;
|
|
self.GanttTaken()[pijlerIndex].taakLijst()[taakIndex].sequence(prevSeq);
|
|
self.GanttTaken()[pijlerIndex].taakLijst()[taakIndex - 1].sequence(currentSeq);
|
|
|
|
$('#act'+prevID).attr('seq' , currentSeq);
|
|
$('#act'+taakID).attr('seq' , prevSeq);
|
|
var temTaak= self.GanttTaken()[pijlerIndex].taakLijst.splice((taakIndex -1),1);
|
|
self.GanttTaken()[pijlerIndex].taakLijst.splice(taakIndex ,0,temTaak[0]);
|
|
|
|
// nu de tabellen opnieuw opbouwen
|
|
MaakTaken(self.GanttTaken(), self.zoomlevel() );
|
|
|
|
// save de nieuwe sequentie
|
|
var SeqLijst=[];
|
|
$.each(self.GanttTaken()[pijlerIndex].taakLijst(), function(i,p){
|
|
SeqLijst.push({id: p.id,
|
|
seq: p.sequence()})
|
|
});
|
|
var submitData={'seqlijst' : SeqLijst};
|
|
$.post('index.php/ijkpartituur/planning/saveSequentie', submitData);
|
|
} // else
|
|
},
|
|
fToonHulpmiddel : function(){
|
|
ls.ModelPopToonHulp.InitValues(this.hulpID, 1, '');
|
|
setDrag("#popToonHulp");
|
|
$("#popToonHulp").css('z-index', 350);
|
|
$('#popToonHulp').fadeIn();
|
|
},
|
|
fToonEnSelectHulpmiddel : function(){
|
|
|
|
ls.ModelPopToonHulp.InitValues(0, 4, "ls.ModelPlanning");
|
|
setDrag("#popToonHulp");
|
|
$("#popToonHulp").css('z-index', 350);
|
|
$('#popToonHulp').fadeIn();
|
|
},
|
|
fAddUitvoerende : function(){
|
|
var self=ls.ModelPlanning
|
|
var overigID= self.taak().selectedoverige();
|
|
$.each(self.taak().overigeusers(), function(i,p){
|
|
if (p.id==overigID){
|
|
var temUser = p;
|
|
self.taak().overigeusers.remove(p);
|
|
self.taak().uitvoerenden.push(temUser);
|
|
$.post('index.php/ijkpartituur/planning/addUitvoerende/' + self.taak().taakID + '/' +overigID);
|
|
return false;
|
|
}
|
|
}); // each
|
|
},
|
|
fDeleteUitvoerende : function(){
|
|
var self=ls.ModelPlanning
|
|
var overigID= self.taak().selecteduitvoerende();
|
|
$.each(self.taak().uitvoerenden(), function(i,p){
|
|
if (p.id==overigID){
|
|
var temUser = p;
|
|
self.taak().uitvoerenden.remove(p);
|
|
self.taak().overigeusers.push(temUser);
|
|
$.post('index.php/ijkpartituur/planning/removeUitvoerende/' + self.taak().taakID + '/' +overigID);
|
|
return false;
|
|
}
|
|
}); // each
|
|
},
|
|
deleteCurrent : function(){
|
|
var self = ls.ModelPlanning;
|
|
var currentID = $('table.gTable').find("tr.ganttselected").attr('id');
|
|
var msg = '';
|
|
if (currentID == undefined){ msg ='Selecteer eerst de activiteit die u wilt verwijderen.'
|
|
}
|
|
else {
|
|
if (currentID.substr(0,4) == 'pijl' ){msg +='Pijlers kunnen niet verwijderd worden.' };
|
|
};
|
|
|
|
if (msg > '' ){
|
|
apprise(msg, function(){return false }) ;
|
|
}
|
|
else {
|
|
// kijk of er agenda-items gekoppeld zijn aan deze activiteit
|
|
$.post("index.php/ijkpartituur/agenda/findEntries/" + parseInt(currentID.substr(3, currentID.length)) , function(data){
|
|
if (data) {msg="Weet u zeker dat u deze activiteit wilt verwijderen? Er zijn agenda-items. Die worden dan ook verwijderd."}
|
|
else {msg="Weet u zeker dat u deze activiteit wilt verwijderen?"}
|
|
|
|
apprise(msg, {'verify' : true, 'textYes': 'ja', 'textNo': 'nee'}, function(ans){
|
|
if (!ans) { return false;}
|
|
else{
|
|
var submitData= {"partActID" : currentID.substr(3, currentID.length)}
|
|
$.post('index.php/ijkpartituur/planning/RemoveTaak' , submitData);
|
|
|
|
var pijlerID = $('table.gTable').find("tr.ganttselected").attr('pijlid');
|
|
$.each(self.GanttTaken(), function(i,gTaak){
|
|
if (gTaak.id ==pijlerID) {
|
|
$.each(gTaak.taakLijst(), function(j,lijst) {
|
|
if (lijst.id == currentID.substr(3, currentID.length)) {
|
|
self.GanttTaken()[i].taakLijst.remove(lijst);
|
|
MaakGanttTabel(self.zoomlevel());
|
|
MaakTaken(self.GanttTaken(), self.zoomlevel() );
|
|
return false;
|
|
};
|
|
}); // each taaklijst
|
|
return false;
|
|
};// if
|
|
}); // each
|
|
}; // else bij if ans
|
|
}); // apprise
|
|
},'json');
|
|
}; // else bij als msg = ''
|
|
},
|
|
saveGantt : function(){
|
|
var SaveVersion = ko.toJSON(this.GanttTaken);
|
|
var submitData={SaveVersion : SaveVersion};
|
|
$.post('index.php/ijkpartituur/planning/saveGantt', SaveVersion, function(){},'json');
|
|
},
|
|
fHulpmiddelSelected : function(hID){
|
|
var self=ls.ModelPlanning;
|
|
var actID =self.taak().taakID ;
|
|
if (hID > 0){
|
|
$.post('index.php/ijkpartituur/planning/AddHulpmiddel/' + actID + '/' + hID, function(data){
|
|
self.taak().hulpmiddelen.push(data[0]);
|
|
},'json'); //post
|
|
}; // if
|
|
},
|
|
fRemoveHulpmiddel : function(){
|
|
var self = ls.ModelPlanning;
|
|
var hID = this.hID;
|
|
var omschrijving = this.omschrijving;
|
|
apprise("Weet u zeker dat u " + omschrijving + " wilt verwijderen?",{verify:true, textYes:'ja', textNo:'nee'},function(ans){
|
|
if (ans){
|
|
$.post("index.php/ijkpartituur/planning/removeHulpmiddel/" + hID, function(){
|
|
$.each(self.taak().hulpmiddelen(), function(i,h){
|
|
if (h.hID ==hID) {self.taak().hulpmiddelen.remove(h);};
|
|
});//each
|
|
}); // post
|
|
} ; // if
|
|
});//apprise
|
|
},
|
|
fToevoegenDoelgroep : function(){
|
|
var self=ls.ModelPlanning;
|
|
self.doelgroepenkeus.removeAll();
|
|
$.post("index.php/ijkpartituur/planning/getDoelgroepen/" + self.taak().taakID, function(data){
|
|
if (data.length > 0 ){
|
|
$.each(data, function(i,d){
|
|
self.doelgroepenkeus.push(d);
|
|
}); //each
|
|
if ( $('#lsOverlay').css('display') == 'none' ) { $("#lsOverlay").fadeIn() };
|
|
setDrag("#popToevoegenDoelgroep");
|
|
$('#popToevoegenDoelgroep').fadeIn();
|
|
} // if
|
|
else {
|
|
apprise("Er zijn geen doelgroepen die u zou kunnen toevoegen.");
|
|
}
|
|
},'json'); // post
|
|
},
|
|
fAddDoelgroep : function(){
|
|
var dID = this.id
|
|
var self=ls.ModelPlanning;
|
|
$("#popToevoegenDoelgroep").fadeOut();
|
|
$.post("index.php/ijkpartituur/planning/AddDoelgroep/" + dID + '/' + self.taak().taakID, function(data){
|
|
self.taak().doelgroepen.push(data);
|
|
},'json'); // post
|
|
},
|
|
fVerwijderDoelgroep : function(){
|
|
var self=ls.ModelPlanning;
|
|
var dID=this.padID;
|
|
apprise('Weet u zeker dat u ' + this.omschrijving + ' wilt verwijderen?',
|
|
{verify:true, textYes:'ja', textNo:'nee'}, function(ans){
|
|
if (ans) {
|
|
$.post("index.php/ijkpartituur/planning/RemoveDoelgroep/" + dID, function(){
|
|
$.each(self.taak().doelgroepen(), function(i,d){
|
|
if (d.padID == dID){
|
|
self.taak().doelgroepen.remove(d);
|
|
return false;
|
|
}
|
|
});//each
|
|
}); // post
|
|
}; // if
|
|
} ); // apprise
|
|
},
|
|
fNewKosten : function(){
|
|
var self=ls.ModelPlanning;
|
|
$.post('index.php/ijkpartituur/planning/newKostenregel/' + self.taak().taakID, function(data){
|
|
self.taak().kosten.push(new fKostregel(data));
|
|
},'json');
|
|
},
|
|
fSaveKosten : function(){
|
|
var self = ls.ModelPlanning;
|
|
var kID = this.id
|
|
kosten = MaakEnglishFormat(this.kosten() );
|
|
var submitData={id : kID,
|
|
omschrijving : this.omschrijving(),
|
|
kosten : kosten};
|
|
$.post("index.php/ijkpartituur/planning/SaveKosten", submitData );
|
|
},
|
|
fDeleteKostregel : function(){
|
|
var kID = this.id;
|
|
var self = ls.ModelPlanning
|
|
apprise("Weet u zeker dat u " + this.omschrijving() + " wilt verwijderen?",
|
|
{verify:true, textYes:'ja', textNo:'nee'}, function(ans){
|
|
if (ans){
|
|
$.post("index.php/ijkpartituur/planning/DeleteKost/" +kID, function(){
|
|
$.each(self.taak().kosten(), function(i,k){
|
|
if (k.id == kID){
|
|
self.taak().kosten.remove(k);
|
|
return false;
|
|
}
|
|
}); // each
|
|
}); // post
|
|
}; // if ans
|
|
}); // apprise
|
|
},
|
|
fSaveResultaten : function(){
|
|
var self=ls.ModelPlanning
|
|
var actID=self.taak().taakID;
|
|
var submitData = { "id" : actID,
|
|
"resultaat" : this.resultaat()};
|
|
if (appliedBindings) {
|
|
$.post('index.php/ijkpartituur/planning/SaveResultaten', submitData);
|
|
}
|
|
},
|
|
showUploads: function(){
|
|
tw.documentsModel.selectedHulpID(this.id);
|
|
tw.initDocuments();
|
|
},
|
|
fOpenClose : function(){
|
|
var self = ls.ModelPlanning
|
|
var pijlerID = this.id;
|
|
var ref = "#OC" + pijlerID;
|
|
Alles.length=0;
|
|
if ($(ref).hasClass("PijlerClose")) {
|
|
$(ref).removeClass("PijlerClose");
|
|
$(ref).addClass("PijlerOpen");
|
|
$.each(self.GanttTaken(), function(i,p){
|
|
if (p.id == pijlerID) {
|
|
p.status ("o");
|
|
return false;
|
|
}// if
|
|
}); // each
|
|
}
|
|
else{
|
|
$(ref).removeClass("PijlerOpen");
|
|
$(ref).addClass("PijlerClose");
|
|
|
|
$.each(self.GanttTaken(), function(i,p){
|
|
if (p.id == pijlerID) {
|
|
p.status ("c");
|
|
return false;
|
|
}// if
|
|
}); // each
|
|
}// else
|
|
MaakTaken(self.GanttTaken(), self.zoomlevel());
|
|
self.fVulTakenlijstAan();
|
|
}, // function open/close
|
|
fVulTakenlijstAan : function() {
|
|
// hier voor het aantal lege rijen vul de tabel aan
|
|
rows = -1;
|
|
$.each(ls.ModelPlanning.GanttTaken(), function(i,p){
|
|
if (p.status() == 'o') {rows+= 1;}
|
|
} ); //each
|
|
|
|
var rows = $('#bgTable tr').length - ($("#TabelTakenLijst tr:visible").length - rows);
|
|
if (rows > 0) {
|
|
var rijen= '';
|
|
for (i=0; i<rows;i++){
|
|
rijen +="<tr><td colspan=4 class='gCell'> </td> </tr>";
|
|
}
|
|
$('#TabelTakenLijst').append(rijen);
|
|
}
|
|
else {
|
|
rows = rows * -1;
|
|
for (i=0; i < rows; i ++){
|
|
$('#TabelTakenLijst tr:last').remove();
|
|
}
|
|
}
|
|
}, // function vultakenlijstaan
|
|
fGetAgenda : function() {
|
|
setDrag("#popAgenda");
|
|
$('#popAgenda').fadeIn();
|
|
},
|
|
fSetSelectedNote : function(){
|
|
var self = ls.ModelPlanning;
|
|
if ( $("#note"+this.id).hasClass("SelectedNote") ) {
|
|
$("#note"+this.id).removeClass("SelectedNote");
|
|
self.selectedNote("");
|
|
}
|
|
else {
|
|
$(".liNote").removeClass("SelectedNote");
|
|
$("#note"+this.id).addClass("SelectedNote");
|
|
self.selectedNote(this);
|
|
};
|
|
},
|
|
fDeleteNote : function(){
|
|
if (this.id == undefined || this.id == 0){return}
|
|
|
|
var self=ls.ModelPlanning;
|
|
if (self.bezig()) return;
|
|
self.bezig(true);
|
|
var note = this;
|
|
|
|
apprise("Weet u zeker dat u " +this.toonnaam() + " wilt verwijderen?", {'verify' : true, 'textYes': 'ja', 'textNo': 'nee'}, function(ans){
|
|
if (!ans){self.bezig(false);
|
|
return}
|
|
else{
|
|
$.post("index.php/ijkpartituur/planning/DeleteNote/" + note.id);
|
|
self.notes.remove(note);
|
|
self.bezig(false);
|
|
};
|
|
});
|
|
},
|
|
fDownloadNote : function(){
|
|
if (this.id == undefined || this.id == 0){return}
|
|
var win=window.open('index.php/ijkpartituur/planning/DownloadNote/' + this.id, '_blank');
|
|
win.focus();
|
|
},
|
|
fUpload : function(){
|
|
var self = ls.ModelPlanning;
|
|
if (self.selectedNote() === undefined || self.selectedNote().id == 0 || !self.selectedNote())
|
|
{ self.selectedNote({id:0, toonnaam:ko.observable(), partactID: self.taak().taakID});}
|
|
if (self.selectedNote().id > 0){
|
|
apprise("Weet u zeker dat u het bestand bij " + self.selectedNote().toonnaam() + " wilt overschrijven?", {'verify' : true, 'textYes': 'ja', 'textNo': 'nee'}, function(ans){
|
|
if (!ans){return}
|
|
else{
|
|
if ( $('#lsOverlay').css('display') == 'none' ) { $("#lsOverlay").fadeIn() };
|
|
setDrag("#popUploadANote")
|
|
$('#popUploadANote').fadeIn();
|
|
};
|
|
});
|
|
}
|
|
else{
|
|
if ( $('#lsOverlay').css('display') == 'none' ) { $("#lsOverlay").fadeIn() };
|
|
setDrag("#popUploadANote")
|
|
$('#popUploadANote').fadeIn();
|
|
}
|
|
},
|
|
fSetNaam : function(){
|
|
var self = ls.ModelPlanning;
|
|
if (self.LSselectedNfile() ==''){return;}
|
|
if (self.selectedNote().toonnaam() == '' || self.selectedNote().toonnaam() =='undefined' ||
|
|
self.selectedNote().toonnaam() == null) {
|
|
self.selectedNote().toonnaam(self.LSselectedNfile().replace("C:\\fakepath\\", '') )
|
|
}
|
|
},
|
|
fUploadToServer : function(){
|
|
var self=ls.ModelPlanning;
|
|
var url = 'index.php/ijkpartituur/planning/LSUploadNote/' + self.selectedNote().id + '/' + self.taak().taakID ;
|
|
self.actionURL(url);
|
|
$("#LSuploadform2").submit();
|
|
},
|
|
fSetNieuweNote :function(id){
|
|
var self = ls.ModelPlanning;
|
|
var p={id : id, toonnaam: self.selectedNote().toonnaam(), partactID: self.selectedNote().partactID }
|
|
|
|
if (id != self.selectedNote().id)
|
|
{ self.notes.push(new fAddNote(p)); };
|
|
}
|
|
}; // einde model definitie
|
|
|
|
ls.ModelPlanning.InitValues();
|
|
ko.applyBindings(ls.ModelPlanning, document.getElementById("planning-pagina"));
|
|
appliedBindings=true;
|
|
|
|
// }); // einde getJson
|
|
};// einde else
|
|
|
|
};
|
|
|
|
$(document).on('click','.gSelectable',function(){
|
|
$('.gTable').find('tr').removeClass('ganttselected');
|
|
$(this).addClass("ganttselected");
|
|
});
|
|
$(".takenlijst").scroll(function() {
|
|
$('.dagenlijst').scrollTop($( ".takenlijst") .scrollTop()) ;
|
|
});
|
|
$(".dagenlijst").scroll(function() {
|
|
$('.takenlijst').scrollTop($( ".dagenlijst") .scrollTop()) ;
|
|
})
|
|
|
|
|
|
}); // einde main function
|