$(document).ready(function() { showDate('showDate'); getEvements(); }); // Show QRCode function printTuile(data){ if(data === null){ return '
Aucun évènement n\'est associé à votre profil à ce jour
'; } else { var explication = null; var meta = null; var classCard = null; var txtFooter = null; var classFadeIn = getClassTuile(data["nb"]); if(data["type_emargement"] == 1){ explication = '

[ QRCode à présenter à votre arrivée ]

'; meta = 'data-toggle="modal" data-target="#QRCodeModal" onclick="showQRCode(this)" data-qrr-qrcode-regexp="^https?:\/\/" data-sel="' + data["url_qrcode"] + '" data-titre="' + data["titre"] + '"'; classCard = "showQRCode"; txtFooter = "Cliquez ici pour afficher votre QRCode"; } else { explication = '

[ QRCode à flasher vous même ]

'; meta = 'data-event="' + data["md5"] + '" data-qrr-target="#QRCodeRead" '; classCard = "qrcodeReader"; txtFooter = "Cliquez ici pour scanner le QRCode"; } if(data["present"]){ meta = ""; explication = '

Votre émargement a bien été pris en compte

'; classCardText = "text-success"; classCard = ""; txtFooter = "Emargement réalisé le " + data["present"]; } else { classCardText = "text-dark"; } return '
Du ' + data["startDate"] + ' au ' + data["endDate"] + '
' + data["titre"] + '
' + explication + '
'; } } function getClassTuile(nb){ switch (nb) { case 0: return "first"; break; case 1: return "second"; break; case 2: return "third"; break; case 3: return "fourth"; break; default: return "fifth"; break; } } function getEvements(){ var formData = { jsonData: "list-events" } if (checkconnection()) { $.ajax({ type: "GET", url: "json.php", data: formData, dataType: "json", encode: true, }).done(function (json) { $("#listEvent").html(""); if(json[0] === null){ $("#listEvent").append(printTuile(null)); } else { $.each(json, function () { $("#listEvent").append(printTuile(this)); }); $(".qrcodeReader").qrCodeReader(); } }); } else { $("#divOffline").empty(); $("#divOffline").append(''); $("#divOffline").show(); } } function showQRCode(element){ var sel = $(element).data("sel"); var titre = $(element).data("titre"); $("#showQRCode").empty(); $("#showQRCode").replaceWith(''); $("#showTitreEvent").empty(); $("#showTitreEvent").replaceWith('
' + titre + '
'); } // Reade QRCode $(".qrcodeReader").on("click", function () { var idEvent = $(this).data("event"); $("#form-event").val(idEvent); }); $("#qrr-close").on("click", function () { $("#form-event").val(""); }); function checkEmagementSalarie(){ if (checkconnection()) { const currentUrl = window.location; const targetUrl = new URL($("#QRCodeRead").val()); // Vérifiez si les deux URLs sont du même domaine if (currentUrl.protocol === targetUrl.protocol && currentUrl.hostname === targetUrl.hostname && currentUrl.port === targetUrl.port) { // Redirigez vers l'URL cible window.location.replace(targetUrl.href); } else { retour = Array; retour["result"] = false; retour["description"] = "Le QR-Code n'est pas valide"; retour["salarie"] = null; retour["evenement"] = null; $('#ResultQRCode').remove(); $("#confirmationModal").append(getConfirmModal(retour)); $('#ResultQRCode').modal("show"); } } else { $("#divOffline").empty(); $("#divOffline").append(''); $("#divOffline").show(); } } $(document).ready(function () { // Sélectionnez le nœud à observer const targetNode = document.getElementById("QRCodeRead"); // Vérifiez si l'élément existe avant de continuer if (!targetNode) { console.error("L'élément #QRCodeRead n'existe pas."); return; } // Options pour l'observateur (quelles mutations observer) const config = { attributes: true, attributeFilter: ['value'] }; // Fonction de rappel à exécuter lorsque des mutations sont observées const callback = (mutationList, observer) => { mutationList.forEach(mutation => { if (mutation.type === "attributes" && mutation.attributeName === "value") { const value = $("#QRCodeRead").val(); console.log("Modification détectée : ", value); if (value !== null && value !== '') { checkEmagementSalarie(); } } }); }; // Créez une instance d'observateur liée à la fonction de rappel const observer = new MutationObserver(callback); // Commencez à observer le nœud cible pour les mutations configurées observer.observe(targetNode, config); console.log("Observation des changements sur #QRCodeRead activée."); });