Relecture du code v1

This commit is contained in:
2026-01-21 11:03:11 +00:00
parent f11d1e62b4
commit 1f523e61b5
392 changed files with 255 additions and 246 deletions

View File

@@ -17,7 +17,6 @@ document.addEventListener('DOMContentLoaded', function () {
$('detailDateDemande').value = data.detailDeMiseADispo;
$('detailARendre').checked = data.detailARendre ? true : false;
// Sauvegarde de lID pour les boutons daction
if(data.chef_departement){
$('confirmerBtn').dataset.id = produitId;
$('refuserBtn').dataset.id = produitId;
@@ -29,18 +28,20 @@ document.addEventListener('DOMContentLoaded', function () {
});
function updateStatut(demandeId, action) {
const csrf = document.querySelector("[name=csrfmiddlewaretoken]").value;
fetch('/gestion-produit/update-demande', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-CSRFToken': csrf
},
body: `id=${demandeId}&action=${action}&emetteur=chef`
})
.then(response => response.json())
.then(data => {
if (data.success) {
alert(`Demande ${action} avec succès !`);
location.reload(); // recharge la page pour voir le nouveau statut
alert(data.message);
location.reload();
} else {
alert(data.message);
}
@@ -49,22 +50,22 @@ document.addEventListener('DOMContentLoaded', function () {
}
try{
$('confirmerBtn').addEventListener('click', function () {
updateStatut(this.dataset.id, '1'); // '1' pour confirmer
$('confirmerBtn').addEventListener('click', function (e) {
e.preventDefault();
updateStatut(this.dataset.id, '1');
});
$('refuserBtn').addEventListener('click', function () {
updateStatut(this.dataset.id, '0'); // '0' pour refuser
$('refuserBtn').addEventListener('click', function (e) {
e.preventDefault();
updateStatut(this.dataset.id, '0');
});
}catch{
}catch (error) {
}
const tabulator = new Tabulator("#listeDemandeTable", {
columns: [
{ title: "Nom Produit", field: "produit", sorter: "string" },
// { title: "Catégorie", field: "categorie", sorter: "string" },
{ title: "Motif", field: "motifs", sorter: "string" },
{ title: "Date de mise à disposition souhaitée", field: "dateDeMiseADispoSouhaite", sorter: "date" },
{ title: "À Rendre", field: "a_rendre", sorter: "boolean", formatter: "tickCross" },
@@ -80,7 +81,7 @@ document.addEventListener('DOMContentLoaded', function () {
ajaxURL: `${$("listeDemandeTable").dataset.url}`,
})
// ----------------------------------------------------------- FILTRE
// --------------------------- FILTRE PAR NOM DU PRODUIT -------------------------
$('searchInput').addEventListener('keyup', function() {
const filter = this.value.toLowerCase();
const cards = document.querySelectorAll('.card');
@@ -104,7 +105,6 @@ document.addEventListener('DOMContentLoaded', function () {
const champs_produit = $("id_produit");
const champs_fournisseur = $("id_fournisseur");
champs_produit.value = idProduit;
// champs_produit.disabled = true;
fetch(`/gestion-produit/recuperer-fournisseur-categorie/${idProduit}`)
.then(response => response.json())
@@ -122,6 +122,7 @@ document.addEventListener('DOMContentLoaded', function () {
})
});
// Fenetre modal pour emettre une demande de nouveau produit
const listeDemandeButton = document.querySelectorAll(".listeDemandeButton");
const demanderModal = new bootstrap.Modal($("demanderModal"));
@@ -129,14 +130,13 @@ document.addEventListener('DOMContentLoaded', function () {
demanderButton.addEventListener("click", function() {
const produitCommanderId = this.dataset.id;
const champs_produit = document.querySelector("#demanderModal #id_produit");
// champs_produit.disabled = true;
champs_produit.value = produitCommanderId;
demanderModal.show();
})
});
// Filtre des produits par categorie
$("filterCategorie").addEventListener("change", function(){
const card = document.querySelectorAll(".card");
const filtre = this.value;
@@ -156,17 +156,19 @@ document.addEventListener('DOMContentLoaded', function () {
}
})
// Enregistrement de nouveau produit
$("enregistrement-produit-form").addEventListener("submit", function (e) {
e.preventDefault();
const form = this;
const url = this.dataset.url;
// const csrf =
const csrf = document.querySelector('[name=csrfmiddlewaretoken]').value;
fetch(
url,
{
method: "POST",
headers: {
"X-Requested-With": "XMLHttpRequest"
"X-Requested-With": "XMLHttpRequest",
"X-CSRFToken": csrf
},
body: new FormData(form)
}
@@ -181,6 +183,12 @@ document.addEventListener('DOMContentLoaded', function () {
</div>
`;
form.reset();
}else{
messageZone.innerHTML = `
<div class="alert alert-danger">
${data.message}
</div>
`;
}
})
})
@@ -188,44 +196,45 @@ document.addEventListener('DOMContentLoaded', function () {
$('enregistrerProduit').addEventListener("hidden.bs.modal", function () {
location.reload()
})
});
// --------------------------------- Tableau categorie
const url_liste_categorie = $("listecategorie").dataset.url;
const tableau_categorie = new Tabulator("#listecategorie", {
columns: [
{title: "Nom de la catégorie", field: "categorie"}
],
ajaxURL: url_liste_categorie
})
$("enregistrer-categorie").addEventListener("submit", function (e) {
e.preventDefault();
const form = this;
const url = this.dataset.url;
fetch(url, {
method: "POST",
headers:{
"X-Requested-With": "XMLHttpResponse"
},
body: new FormData(form)
// --------------------------- Gestion des categories -------------------------
const url_liste_categorie = $("listecategorie").dataset.url;
const tableau_categorie = new Tabulator("#listecategorie", {
columns: [
{title: "Nom de la catégorie", field: "categorie"}
],
ajaxURL: url_liste_categorie
})
.then(response => response.json())
.then(data => {
if(data.success){
const messageBox = $("message-creation-categorie");
messageBox.innerHTML = `
<div class="alert alert-success">
Categorie crée avec succès
</div>
`;
tableau_categorie.setData(url_liste_categorie);
}
})
})
$("enregistrerCategorie").addEventListener("hidden.bs.modal", function () {
location.reload();
})
$("enregistrer-categorie").addEventListener("submit", function (e) {
e.preventDefault();
const form = this;
const url = this.dataset.url;
const csrf = document.querySelector('[name=csrfmiddlewaretoken]').value;
fetch(url, {
method: "POST",
headers:{
"X-Requested-With": "XMLHttpResponse",
"X-CSRFToken": csrf
},
body: new FormData(form)
})
.then(response => response.json())
.then(data => {
if(data.success){
const messageBox = $("message-creation-categorie");
messageBox.innerHTML = `
<div class="alert alert-success">
Categorie crée avec succès
</div>
`;
tableau_categorie.setData(url_liste_categorie);
}
})
})
$("enregistrerCategorie").addEventListener("hidden.bs.modal", function () {
location.reload();
})
});