12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import { Controller } from '@hotwired/stimulus';
- /*
- * Contrôleur Stimulus pour bouton de suppression avec confirmation.
- * Sur le premier clic, le bouton devient "Confirmer" et son href est mis à jour.
- */
- export default class extends Controller {
- static values = {
- baseUrl: String // Par exemple : "/items/delete/"
- }
- connect() {
- console.log("Stimulus: bouton de suppression avec confirmation");
- this.originalText = this.element.textContent;
- this.confirmed = false;
- this.element.addEventListener('click', this.handleClick.bind(this));
- }
- handleClick(event) {
- if (!this.confirmed) {
- event.preventDefault();
- // Récupère l'ID depuis data-id
- const id = this.element.dataset.id;
- if (!id) {
- console.error("Aucun data-id trouvé sur l'élément.");
- return;
- }
- // Remplace le texte et modifie le lien
- this.element.textContent = "Confirmer ?";
- this.element.href = id;
- this.confirmed = true;
- // Optionnel : annule la confirmation après X secondes
- setTimeout(() => {
- this.element.textContent = this.originalText;
- this.element.href = "#";
- this.confirmed = false;
- }, 5000);
- }
- // Sinon, clic confirmé => laisse le lien agir normalement
- }
- }
|