1/** 2 * Gestion des messages d'erreur du panier 3 * Module Cyclable V5 - Override du comportement Prestatill 4 * 5 * Ce script intercepte les changements de mode de livraison et masque/affiche 6 * les messages d'erreur en conséquence, SANS modifier le module Prestatill. 7 */ 8 9(function() { 10 'use strict'; 11 12 // Attendre que le DOM soit prêt 13 if (document.readyState === 'loading') { 14 document.addEventListener('DOMContentLoaded', init); 15 } else { 16 init(); 17 } 18 19 function init() { 20 // Ãcouter les changements de mode de livraison depuis notre module cyclablev5 21 window.addEventListener('ppw:shipping-mode-changed', handleModeChange); 22 23 // Ãcouter aussi les clics directs sur les boutons (fallback) 24 document.addEventListener('click', handleButtonClick, true); 25 } 26 27 /** 28 * Gérer le changement de mode via l'événement personnalisé 29 */ 30 function handleModeChange(event) { 31 var detail = event.detail || {}; 32 var mode = detail.mode || 'D'; 33 34 if (mode === 'D') { 35 // Mode Livraison : masquer les messages d'erreur 36 clearCartErrors(); 37 } else if (mode === 'P') { 38 // Mode Retrait : recharger les messages 39 reloadCartErrors(); 40 } 41 } 42 43 /** 44 * Gérer les clics sur les boutons (fallback si événement non déclenché) 45 */ 46 function handleButtonClick(event) { 47 var target = event.target; 48 49 // Vérifier si c'est un bouton de changement de mode 50 var deliveryBtn = target.closest('#sbs_delivery, .sidebar #delivery'); 51 var pickupBtn = target.closest('#sbs_pickup, .sidebar #pickup'); 52 53 if (deliveryBtn) { 54 // Petit délai pour laisser le temps au changement de mode 55 setTimeout(clearCartErrors, 100); 56 } else if (pickupBtn) { 57 // Petit délai pour laisser le temps au changement de mode 58 setTimeout(reloadCartErrors, 100); 59 } 60 } 61 62 /** 63 * Masquer/supprimer les messages d'erreur du panier 64 */ 65 function clearCartErrors() { 66 var notificationsDiv = document.getElementById('sbs_notifications'); 67 if (notificationsDiv) { 68 notificationsDiv.innerHTML = ''; 69 notificationsDiv.style.display = 'none'; 70 } 71 } 72 73 /** 74 * Recharger les messages d'erreur du panier 75 */ 76 function reloadCartErrors() { 77 // Vérifier si la fonction _checkAjaxCartQty existe (du module Prestatill) 78 if (typeof window._checkAjaxCartQty === 'function') { 79 window._checkAjaxCartQty(); 80 } 81 } 82 83})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.