ajout possibilité de modifier la plage horaire d'un événement sur le calendrier
This commit is contained in:
@@ -122,7 +122,7 @@ class EventController extends AbstractController
|
||||
if($am&&$ap) {
|
||||
$datestart->SetTime(0,0,0);
|
||||
$dateend->add(new \DateInterval('P1D'));
|
||||
$dateend->SetTime(0,0,0);
|
||||
$dateend->SetTime(0,0,-1);
|
||||
$duration=$dateend->diff($datestart)->d;
|
||||
$allday=true;
|
||||
}
|
||||
@@ -271,6 +271,8 @@ class EventController extends AbstractController
|
||||
$idevent = str_replace("A","",$request->request->get('idevent'));
|
||||
$iduser = $request->request->get('iduser');
|
||||
$idtask = $request->request->get('idtask');
|
||||
$am = ($request->request->get('am')=="true");
|
||||
$ap = ($request->request->get('ap')=="true");
|
||||
$fgastreinte = ($request->request->get('fgastreinte')=="true");
|
||||
$description = $request->request->get('description');
|
||||
|
||||
@@ -327,17 +329,77 @@ class EventController extends AbstractController
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
$datestart=$event->getStart();
|
||||
$dateend =$event->getEnd();
|
||||
if($am&&$ap) {
|
||||
$datestart->SetTime(0,0,0);
|
||||
$dateend->add(new \DateInterval('P1D'));
|
||||
$dateend->SetTime(0,0,-1);
|
||||
$duration=$dateend->diff($datestart)->d;
|
||||
$allday=true;
|
||||
}
|
||||
else {
|
||||
$duration=0.5;
|
||||
$allday=false;
|
||||
if($am) {
|
||||
$datestart->SetTime(9,0,0);
|
||||
$dateend->SetTime(12,0,0);
|
||||
}
|
||||
else {
|
||||
$datestart->SetTime(13,0,0);
|
||||
$dateend->SetTime(17,0,0);
|
||||
}
|
||||
}
|
||||
// On regarde si une tache ne commence pas pendant une autre intervention ou qui se termine pendant une autre intervention ou qui a une intervention compris dans ses dates
|
||||
$events = $em->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user AND event.start<=:start AND event.end >:start')
|
||||
->orWhere('event.user=:user AND event.start<:end AND event.end >=:end')
|
||||
->orWhere('event.user=:user AND event.start>:start AND event.end <:end')
|
||||
->setParameter('user',$iduser)
|
||||
->setParameter('start',$datestart)
|
||||
->setParameter('end',$dateend)
|
||||
->getQuery()->getResult();
|
||||
dump($event->getId());
|
||||
if($events) {
|
||||
$tbevent=[];
|
||||
foreach($events as $ev) {
|
||||
|
||||
|
||||
if ($event->getId() != $ev->getId()) {
|
||||
$tmp=[
|
||||
"id" => $ev->getId(),
|
||||
"task" => $ev->getTask()->getName(),
|
||||
"start" => $ev->getStart(),
|
||||
"end" => $ev->getEnd(),
|
||||
];
|
||||
array_push($tbevent,$tmp);
|
||||
}
|
||||
}
|
||||
if (sizeof($tbevent)>0) {
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a déjà une tache à cette date","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Modification de l'évenement
|
||||
$event->setStart($datestart);
|
||||
$event->setEnd($dateend);
|
||||
$event->setDescription($description);
|
||||
$event->setDuration($duration);
|
||||
$event->setAllday($allday);
|
||||
$event->setUser($user);
|
||||
$event->setTask($task);
|
||||
|
||||
|
||||
$em->persist($event);
|
||||
$em->flush();
|
||||
|
||||
$output=$this->formatEvent($event);
|
||||
dump($event);
|
||||
}
|
||||
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
|
@@ -96,24 +96,24 @@ class Event
|
||||
|
||||
public function getStart(): ?\DateTimeInterface
|
||||
{
|
||||
return $this->start;
|
||||
return clone $this->start;
|
||||
}
|
||||
|
||||
public function setStart(\DateTimeInterface $start): self
|
||||
{
|
||||
$this->start = $start;
|
||||
$this->start = clone $start;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getEnd(): ?\DateTimeInterface
|
||||
{
|
||||
return $this->end;
|
||||
return clone $this->end;
|
||||
}
|
||||
|
||||
public function setEnd(\DateTimeInterface $end): self
|
||||
{
|
||||
$this->end = $end;
|
||||
$this->end = clone $end;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
@@ -157,7 +157,6 @@
|
||||
{% endif %}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label required" for="taskupdate">
|
||||
Project<span class="mandatory">*</span>
|
||||
@@ -169,7 +168,19 @@
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-switch">
|
||||
<input type="checkbox" class="custom-control-input" id="amupdate">
|
||||
<label class="custom-control-label" for="amupdate">Evènement sur la matinée</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-switch">
|
||||
<input type="checkbox" class="custom-control-input" id="apupdate">
|
||||
<label class="custom-control-label" for="apupdate">Evènement sur l'après-midi</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="description" class="control-label">
|
||||
Description
|
||||
@@ -301,22 +312,43 @@ function eventSelect(selectionInfo) {
|
||||
// Formulaire Modification d'un évelement
|
||||
function eventClick(info) {
|
||||
if(info.event.extendedProps.editable) {
|
||||
console.log(info.event.id);
|
||||
console.log(info.event);
|
||||
|
||||
var id=info.event.id;
|
||||
var description=info.event.extendedProps.description;
|
||||
var userid=info.event.extendedProps.userid;
|
||||
var taskid=info.event.extendedProps.taskid;
|
||||
var fgastreinte=info.event.extendedProps.astreinte;
|
||||
|
||||
var eventallday = info.event.allDay;
|
||||
var eventstart = info.event.start;
|
||||
//var eventend = info.event.end;
|
||||
|
||||
$('#userupdate').val(userid).trigger("change");
|
||||
$('#taskupdate').val(taskid).trigger("change");
|
||||
$('#modalupdate #idevent').val(id);
|
||||
|
||||
$('#modalupdate #fgastreinte').val(fgastreinte);
|
||||
$('#modalupdate #description').val(description);
|
||||
|
||||
$("#modalupdate .alert").remove();
|
||||
|
||||
|
||||
{# $('#modalupdate #amupdate').attr("disabled",eventallday);
|
||||
$('#modalupdate #apupdate').attr("disabled",eventallday); #}
|
||||
if (!eventallday){
|
||||
eStart = eventstart.toString().split(" ")[4].split(":")[0]
|
||||
//eEnd = eventend.toString().split(" ")[4].split(":")[0]
|
||||
if (eStart == 09){
|
||||
$('#modalupdate #amupdate').prop("checked",true);
|
||||
$('#modalupdate #apupdate').prop("checked",false);
|
||||
}
|
||||
if (eStart == 13){
|
||||
$('#modalupdate #amupdate').prop("checked",false);
|
||||
$('#modalupdate #apupdate').prop("checked",true);
|
||||
}
|
||||
}else{
|
||||
$('#modalupdate #amupdate').prop("checked",true);
|
||||
$('#modalupdate #apupdate').prop("checked",true);
|
||||
}
|
||||
// Formulaire de création d'un évènement
|
||||
$('#modalupdate').modal();
|
||||
}
|
||||
@@ -378,6 +410,8 @@ function eventUpdate() {
|
||||
idevent: $("#modalupdate #idevent").val(),
|
||||
iduser: $("#userupdate").val(),
|
||||
idtask: $("#taskupdate").val(),
|
||||
am: $("#modalupdate #amupdate").prop("checked"),
|
||||
ap: $("#modalupdate #apupdate").prop("checked"),
|
||||
fgastreinte: $("#modalupdate #fgastreinte").val(),
|
||||
description: $("#modalupdate #description").val()
|
||||
},
|
||||
|
Reference in New Issue
Block a user