193 lines
6.5 KiB
JavaScript
193 lines
6.5 KiB
JavaScript
const $ = (element) => document.getElementById(element);
|
|
const { Schedule } = calendarjs;
|
|
|
|
let dateAUtiliser = new Date().toISOString().split('T')[0];
|
|
let currentReservationId = null;
|
|
|
|
const calendrier = Schedule(document.getElementById('planning-reservation'), {
|
|
type: 'weekdays',
|
|
value: dateAUtiliser,
|
|
validRange: ['08:00', '18:00'],
|
|
ondblclick: function(self, event) {
|
|
const modal = new bootstrap.Modal($("modalDetailReservation"));
|
|
modal.show();
|
|
fetch (`/gestion-salle/revervation/details/${event.guid}`)
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
currentReservationId = data.id_reservation;
|
|
$("id_reservation_detail").value = data.id_reservation;
|
|
$("id_reservation_refus").value = data.id_reservation;
|
|
$("id_reservation_zoom").value = data.id_reservation;
|
|
$("employe").value=data.employe;
|
|
$("salle").value=data.salle;
|
|
$("statut-reservation").innerHTML=data.statut;
|
|
$("date_evenement").value=data.date_evenement;
|
|
$("heure_debut").value=data.heure_debut;
|
|
$("heure_fin").value=data.heure_fin;
|
|
$("motif_reservation").value=data.motif_reservation;
|
|
$("besoin_zoom").checked=data.besoin_zoom;
|
|
$("besoin_ordinateur").checked=data.besoin_ordinateur;
|
|
$("lien_zoom").value=data.lien_zoom;
|
|
|
|
if (data.besoin_zoom === false){
|
|
$("lien_zoom_container").className = "d-none";
|
|
}
|
|
|
|
if(data.statut !== "annulee"){
|
|
$("motif_refus_container").className = "d-none";
|
|
}else{
|
|
$("motif_refus").value=data.motif_refus;
|
|
}
|
|
})
|
|
}
|
|
});
|
|
|
|
$("modalReservation").addEventListener('shown.bs.modal', (e) => {
|
|
$("id_salle").value = $("liste-salle").value;
|
|
})
|
|
|
|
$('semaineDate').addEventListener('change', () => {
|
|
calendrier.value = $('semaineDate').value;
|
|
calendrier.render();
|
|
})
|
|
|
|
evenement_defini = null
|
|
|
|
$("liste-salle").addEventListener("change", (e) => {
|
|
if(evenement_defini === null){
|
|
evenement_defini = calendrier.getData();
|
|
}
|
|
evenements = evenement_defini;
|
|
evenement_filtrer = evenements.filter((evenement) => {
|
|
if(evenement.title == $("liste-salle").value){
|
|
return evenement
|
|
}
|
|
})
|
|
calendrier.setData(evenement_filtrer);
|
|
})
|
|
|
|
function chargement_evenement(){
|
|
const url = $("planning-reservation").dataset.url;
|
|
fetch (url)
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
calendrier.setData(data);
|
|
})
|
|
}
|
|
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
chargement_evenement()
|
|
})
|
|
|
|
$("bouton-annuler").addEventListener("click", (e) => {
|
|
const csrf = document.querySelector("[name=csrfmiddlewaretoken]").value;
|
|
const url_annuler = $("formulaire-details").dataset.urlannuler;
|
|
|
|
fetch(
|
|
url_annuler,
|
|
{
|
|
method: "POST",
|
|
headers: {
|
|
"X-Requested-With": "XMTHttpRequest",
|
|
"X-CSRFToken": csrf
|
|
},
|
|
body: new FormData($("formulaire-details"))
|
|
}
|
|
)
|
|
.then(response => response.json())
|
|
.then(data => console.log(data))
|
|
})
|
|
|
|
if($("bouton-valider")){
|
|
$("bouton-valider").addEventListener("click", (e) => {
|
|
const csrf = document.querySelector("[name=csrfmiddlewaretoken]").value;
|
|
const urlvalider = $("formulaire-details").dataset.urlvalider;
|
|
|
|
fetch(
|
|
urlvalider,
|
|
{
|
|
method: "POST",
|
|
headers: {
|
|
"X-Requested-With": "XMTHttpRequest",
|
|
"X-CSRFToken": csrf
|
|
},
|
|
body: new FormData($("formulaire-details"))
|
|
}
|
|
)
|
|
.then(response => response.json())
|
|
.then(data => console.log(data))
|
|
})
|
|
}
|
|
|
|
if($("ajoutZoom")){
|
|
$("ajoutZoom").addEventListener("click", (e) => {
|
|
e.preventDefault();
|
|
bootstrap.Modal.getOrCreateInstance($("modalDetailReservation")).hide();
|
|
new bootstrap.Modal($("modalZoom")).show();
|
|
})
|
|
}
|
|
|
|
if($("refuserReservation")){
|
|
$("refuserReservation").addEventListener("click", (e) => {
|
|
const csrf = document.querySelector("[name=csrfmiddlewaretoken]").value;
|
|
const url = e.currentTarget.dataset.lienrefus;
|
|
const idRes = $("id_reservation_detail").value;
|
|
|
|
fetch(url, {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
"X-Requested-With": "XMLHttpRequest",
|
|
"X-CSRFToken": csrf
|
|
},
|
|
body: JSON.stringify({ "id_reservation": idRes })
|
|
})
|
|
.then(response => response.json())
|
|
.then(data => alert(data.message))
|
|
.catch(error => console.error("Erreur:", error));
|
|
});
|
|
}
|
|
|
|
const tableau_reservation_attente = new Tabulator("#tableau-reservation-attente", {
|
|
columns: [
|
|
{title: "Employé", field: "employe"},
|
|
{title: "Salle", field: "salle"},
|
|
{title: "Date de l'evenement", field: "date_debut"},
|
|
{title: "Heure de début", field: "heure_debut"},
|
|
{title: "Heure de fin", field: "heure_fin"},
|
|
{title: "Motif de reservation", field: "motif_reservation"},
|
|
],
|
|
placeholder: "Aucune reservation en attente.",
|
|
ajaxURL : $("tableau-reservation-attente").dataset.reservationattentes
|
|
})
|
|
|
|
tableau_reservation_attente.on("rowClick", (row, rowData) => {
|
|
const data = rowData.getData();
|
|
|
|
console.log(data);
|
|
|
|
if(data.besoin_zoom === false){
|
|
$("lien_zoom_container").className = 'd-none';
|
|
}
|
|
|
|
$("id_reservation_detail").value = data.id;
|
|
$("id_reservation_refus").value = data.id;
|
|
$("id_reservation_zoom").value = data.id;
|
|
|
|
$("employe").value=data.employe;
|
|
$("salle").value=data.salle;
|
|
$("statut-reservation").innerHTML=data.statut;
|
|
$("date_debut").value = data.date_debut;
|
|
$("date_fin").value = data.date_fin;
|
|
|
|
$("heure_debut").value=data.heure_debut;
|
|
$("heure_fin").value=data.heure_fin;
|
|
$("motif_reservation").value=data.motif_reservation;
|
|
$("besoin_zoom").checked=data.besoin_zoom;
|
|
$("besoin_ordinateur").checked=data.besoin_ordi;
|
|
$("lien_zoom").value=data.lien_zoom;
|
|
|
|
const modal = new bootstrap.Modal($("modalDetailReservation"));
|
|
bootstrap.Modal.getOrCreateInstance($("modalReservationAttente")).hide();
|
|
modal.show();
|
|
}) |