From 934720b85a1c177b03c46c3f5cfe37418e1964f8 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 11 Feb 2026 10:54:53 +0100 Subject: [PATCH] ajax request to activate/-/deactive user --- assets/controllers/user_controller.js | 68 +++++++++++++++++++++++++++ templates/user/show.html.twig | 12 +++-- 2 files changed, 75 insertions(+), 5 deletions(-) diff --git a/assets/controllers/user_controller.js b/assets/controllers/user_controller.js index 6ae7662..52fe83b 100644 --- a/assets/controllers/user_controller.js +++ b/assets/controllers/user_controller.js @@ -874,4 +874,72 @@ export default class extends Controller { columns }); }; + + async deactivateUser(event) { + event.preventDefault(); + const userId = this.idValue; + + if (!userId) { + console.error(`User ID not found!`); + return; + } + + if (confirm(`Voulez-vous vraiment désactiver cet utilisateur ?`)) { + try { + const formData = new FormData(); + formData.append('status', 'deactivate'); + + const response = await fetch(`/user/activeStatus/${userId}`, { + method: 'POST', + body: formData, + headers: {'X-Requested-With': 'XMLHttpRequest'} + }); + + if (response.ok) { + alert('Utilisateur désactivé avec succès'); + // If you need to refresh the UI, do it here + // e.g., window.location.reload(); + } else { + const text = await response.text(); + alert('Erreur: ' + text); + } + } catch (err) { + alert('Erreur lors de la communication avec le serveur'); + } + } + } + + async activateUser(event) { + event.preventDefault(); + const userId = this.idValue; + + if (!userId) { + console.error(`User ID not found!`); + return; + } + + if (confirm(`Voulez-vous vraiment activer cet utilisateur ?`)) { + try { + const formData = new FormData(); + formData.append('status', 'activate'); + + const response = await fetch(`/user/activeStatus/${userId}`, { + method: 'POST', + body: formData, + headers: {'X-Requested-With': 'XMLHttpRequest'} + }); + + if (response.ok) { + alert('Utilisateur activé avec succès'); + // If you need to refresh the UI, do it here + // e.g., window.location.reload(); + } else { + const text = await response.text(); + alert('Erreur: ' + text); + } + } catch (err) { + alert('Erreur lors de la communication avec le serveur'); + } + } + } } \ No newline at end of file diff --git a/templates/user/show.html.twig b/templates/user/show.html.twig index 1da52ac..935c6f7 100644 --- a/templates/user/show.html.twig +++ b/templates/user/show.html.twig @@ -3,7 +3,7 @@ {% block body %}
-
+
{% for type, messages in app.flashes %} {% for message in messages %}
@@ -18,11 +18,13 @@
{% if is_granted("ROLE_ADMIN") %} {% if user.active %} - Désactiver + +{# Désactiver#} {% else %} - Réactiver + +{# Réactiver#} {% endif %} Supprimer