Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
proc
/
212
/
root
/
srv
/
data
/
web
/
vhosts
/
www.impressionrapide.fr
/
htdocs
/
public
/
js
/
//proc/212/root/srv/data/web/vhosts/www.impressionrapide.fr/htdocs/public/js/product-edit.js
let deleteImages = document.getElementsByClassName("delete-image"); for (let i = 0; i < deleteImages.length; i++) { deleteImages[i].addEventListener("click", () => { request = new XMLHttpRequest(); let id = deleteImages[i].getAttribute("data-id"); request.open("POST", `/admin/product/image/${id}/delete`); request.onload = () => { document.getElementById(`container-${id}`).style.display = "none"; } request.send(); }) } /** * Deletes element in DB & in HTML * @param {String} url to request * @param {HTMLElement} that Element to remove after completion */ function deleteElem(url, that) { let request = new XMLHttpRequest(); request.open("POST", url); request.onload = () => { let response = JSON.parse(request.response); if (response == "success") { that.parentNode.remove(); sendAlert("success", "Élement supprimé"); } else { that.parentNode.remove(); sendAlert("warning", response); } } request.send(); } /** * Async request to add a Size */ function addSize() { let name = document.getElementById("newSizeName"); if (name.value.length > 0) { let id = PRODUCTID; let request = new XMLHttpRequest(); request.open("POST", `/admin/product/${id}/size/create/${encodeURI(name.value)}`); request.onload = () => { let size = document.createElement("div"); size.classList.add("choice"); size.innerHTML = `${name.value} <a onclick="deleteElem('/admin/product/size/${request.response}/delete', this)" title="Supprimer la taille" style="text-decoration: none; cursor: pointer"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash3" viewBox="0 0 16 16"> <path d="M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"/> </svg></a>`; document.getElementById("size-box").append(size); name.value = ""; redirectToCompletion(); } request.send(); hideBlock(); } else { alert("Veuillez remplir une valeur."); } } /** * Async request to add a Quantity */ function addQuantity() { let quantity = document.getElementById("newQuantity"); if (quantity.value.length > 0) { let request = new XMLHttpRequest(); request.open("POST", `/admin/product/${PRODUCTID}/quantity/create/${encodeURI(quantity.value)}`); request.onload = () => { let quantityElem = document.createElement("div"); quantityElem.classList.add("choice"); quantityElem.innerHTML = `${quantity.value} <a onclick="deleteElem('/admin/product/quantity/${request.response}/delete', this)" title="Supprimer la quantité" style="text-decoration: none; cursor: pointer"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash3" viewBox="0 0 16 16"> <path d="M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"/> </svg></a>`; document.getElementById("quantity-box").append(quantityElem); quantity.value = ""; redirectToCompletion(); } request.send(); hideBlock(); } else { alert("Veuillez remplir une valeur."); } } /** * Async request to add a Grammage */ function addGrammage() { let grammage = document.getElementById("newGrammage"); if (grammage.value.length > 0) { let request = new XMLHttpRequest(); request.open("POST", `/admin/product/${PRODUCTID}/grammage/add/${encodeURI(grammage.value)}`); request.onload = () => { let grammageElem = document.createElement("div"); grammageElem.classList.add("choice"); grammageElem.innerHTML = `${request.response.replace(/\"/g, "")} <a onclick="deleteElem('/admin/product/${PRODUCTID}/grammage/${request.response}/delete', this)" title="Supprimer la quantité" style="text-decoration: none; cursor: pointer"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash3" viewBox="0 0 16 16"> <path d="M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"/> </svg></a>`; document.getElementById("grammage-box").append(grammageElem); grammage.querySelector("option[value='" + grammage.value + "']").remove(); redirectToCompletion(); } request.send(); hideBlock(); } else { alert("Veuillez remplir une valeur."); } } /** * Async request to add a Fold */ function addFold() { let name = document.getElementById("newFoldName"); if (name.value.length > 0) { let request = new XMLHttpRequest(); request.open("POST", `/admin/product/${PRODUCTID}/fold/add/${encodeURI(name.value)}`); request.onload = () => { let foldElem = document.createElement("div"); foldElem.classList.add("choice"); foldElem.innerHTML = `${name.value} <a onclick="deleteElem('/admin/product/${PRODUCTID}/fold/${request.response}/delete', this)" title="Supprimer la quantité" style="text-decoration: none; cursor: pointer"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash3" viewBox="0 0 16 16"> <path d="M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"/> </svg></a>`; document.getElementById("fold-box").append(foldElem); name.value = ""; redirectToCompletion(); } request.send(); hideBlock(); } else { alert("Veuillez remplir une valeur."); } } /** * Async request to add a Page */ function addPage() { let name = document.getElementById("newPage"); if (name.value.length > 0) { let request = new XMLHttpRequest(); request.open("POST", `/admin/product/${PRODUCTID}/pages/add/${encodeURI(name.value)}`); request.onload = () => { let pageElem = document.createElement("div"); pageElem.classList.add("choice"); pageElem.innerHTML = `${name.value} <a onclick="deleteElem('/admin/product/pages/${request.response}/delete', this)" title="Supprimer la page" style="text-decoration: none; cursor: pointer"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash3" viewBox="0 0 16 16"> <path d="M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"/> </svg></a>`; document.getElementById("page-box").append(pageElem); name.value = ""; redirectToCompletion(); } request.send(); hideBlock(); } else { alert("Veuillez remplir une valeur."); } } /** * Async request to add a Page */ function addColor() { let name = document.getElementById("newColor"); if (name.value.length > 0) { let request = new XMLHttpRequest(); request.open("POST", `/admin/product/${PRODUCTID}/color/add/${encodeURI(name.value)}`); request.onload = () => { let pageElem = document.createElement("div"); pageElem.classList.add("choice"); pageElem.innerHTML = `${name.value} <a onclick="deleteElem('/admin/product/color/${request.response}/delete', this)" title="Supprimer la couleur" style="text-decoration: none; cursor: pointer"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash3" viewBox="0 0 16 16"> <path d="M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"/> </svg></a>`; document.getElementById("color-box").append(pageElem); name.value = ""; redirectToCompletion(); } request.send(); hideBlock(); } else { alert("Veuillez remplir une valeur."); } } /** * Async request to add a Finishing */ function addFinishing() { let name = document.getElementById("newFinishing"); if (name.value.length > 0) { let request = new XMLHttpRequest(); request.open("POST", `/admin/product/${PRODUCTID}/finishing/add/${encodeURI(name.value)}`); request.onload = () => { let pageElem = document.createElement("div"); pageElem.classList.add("choice"); pageElem.innerHTML = `${name.value} <a onclick="deleteElem('/admin/product/finishing/${request.response}/delete', this)" title="Supprimer la finition" style="text-decoration: none; cursor: pointer"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash3" viewBox="0 0 16 16"> <path d="M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"/> </svg></a>`; document.getElementById("finishing-box").append(pageElem); name.value = ""; redirectToCompletion(); } request.send(); hideBlock(); } else { alert("Veuillez remplir une valeur."); } } const toggles = document.getElementsByClassName("add-elem-toggle"); const blocks = document.getElementsByClassName("add-elem"); for (let i = 0; i < toggles.length; i++) { toggles[i].addEventListener("click", () => { blocks[i].classList.add("show"); }) } function hideBlock() { for (let i = 0; i < toggles.length; i++) { blocks[i].classList.remove("show"); } } function redirectToCompletion(){ location.href="prix/remplir"; }