diff --git a/Js/fonctions.js b/Js/fonctions.js index 632f9d4..44c2cad 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -570,98 +570,91 @@ function texte_cp() /** - * Ouvre le modal d'impression de quittance et charge son contenu via AJAX - * de manière compatible Bootstrap 5 (sans casser le backdrop). + * Ouvre le modal d'impression de quittance et charge son contenu via AJAX. + * Utilise le déplacement DOM (Solution 3) pour éviter les conflits de z-index. * * @param {number|string} idQuittance - Identifiant de la quittance à imprimer */ function imprimer_quittance_client(idQuittance) { - /* ================================ + /* =================================================== * 1. Validation de l’identifiant - * ================================ */ + * =================================================== */ if (!idQuittance || parseInt(idQuittance) <= 0) { const v_msg = "Rien à imprimer !"; const v_msgEng = "Nothing to print!"; - - // Utilisation de l’alerte métier si disponible if (typeof alert_ebene === "function") { alert_ebene(v_msg, v_msgEng); } else { alert(v_msg); } - return; // Arrêt immédiat + return; } - /* ================================ - * 2. Initialisation des références - * ================================ */ - const racine = $("#racineWeb").val() || "/"; - - // Élément DOM du modal Bootstrap + /* =================================================== + * 2. Initialisation et EXTRACTION du Modal (Solution 3) + * =================================================== */ const modalEl = document.getElementById('pop_export_quittance'); + + if (!modalEl) { + console.error("Erreur : Le modal #pop_export_quittance est introuvable dans le DOM."); + return; + } - // Conteneur qui recevra le contenu AJAX + // On déplace le modal directement sous
s'il n'y est pas déjà. + // Cela permet de passer outre les z-index des conteneurs parents (Sidebar, Header). + if (modalEl.parentElement !== document.body) { + document.body.appendChild(modalEl); + } + + const racine = $("#racineWeb").val() || "/"; const divExport = document.getElementById('div_export_quittance'); /* =================================================== - * 3. Préparation du contenu AVANT ouverture du modal - * (évite les reflow destructeurs après show()) + * 3. Préparation visuelle (Spinner) * =================================================== */ divExport.innerHTML = `- Génération du document client en cours... -
+Génération du document client en cours...