1import{Controller}from"@hotwired/stimulus";export default class extends Controller{static targets=["row"];async toggle(e){e.preventDefault();const t=e.currentTarget,s=t.dataset.confirmMessage||this.element.dataset.confirmMessage||"Ãtes-vous sûr de vouloir marquer cet utilisateur en SPAM et supprimer ses messages ?";if(!confirm(s))return;const n=e.params.url;if(!n){console.error("Aucune URL de traitement trouvée pour l'action SPAM.");return}try{const s=await fetch(n,{method:"POST",headers:{"X-Requested-With":"XMLHttpRequest","Content-Type":"application/json"}});if(!s.ok)throw new Error("Erreur réseau");const e=await s.json();e.status==="ok"?(e.title&&t.setAttribute("title",e.title),e.flashes&&Array.isArray(e.flashes)&&e.flashes.forEach(e=>{const t=e.list||[];Array.isArray(t)&&t.forEach(e=>{const t=this.element.querySelector(`[data-back--spam-id="${e}"]`);t&&t.remove()}),this.dispatchFlash(e.message,e.type)})):e.flashes&&Array.isArray(e.flashes)&&e.flashes.forEach(e=>this.dispatchFlash(e.message,e.type))}catch(e){console.error(e),this.dispatchFlash("Impossible de joindre le serveur","error")}}dispatchFlash(e,t){this.dispatch("flash",{detail:{message:e,type:t,duration:5e3}})}}
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.