ajax request to activate/-/deactive user

This commit is contained in:
Charles 2026-02-11 10:54:53 +01:00
parent d434fecaa5
commit 934720b85a
2 changed files with 75 additions and 5 deletions

View File

@ -874,4 +874,72 @@ export default class extends Controller {
columns 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');
}
}
}
} }

View File

@ -3,7 +3,7 @@
{% block body %} {% block body %}
<div class="w-100 h-100 p-5 m-auto"> <div class="w-100 h-100 p-5 m-auto">
<div class="card p-3 m-3 border-0 no-header-bg"> <div class="card p-3 m-3 border-0 no-header-bg" data-controller="user" data-user-id-value="{{ user.id }}">
{% for type, messages in app.flashes %} {% for type, messages in app.flashes %}
{% for message in messages %} {% for message in messages %}
<div class="alert alert-{{ type }}"> <div class="alert alert-{{ type }}">
@ -18,11 +18,13 @@
<div class="d-flex gap-2"> <div class="d-flex gap-2">
{% if is_granted("ROLE_ADMIN") %} {% if is_granted("ROLE_ADMIN") %}
{% if user.active %} {% if user.active %}
<a href="{{ path('user_active_status', {'id': user.id, 'status':'deactivate'}) }}" <button class="btn btn-secondary" data-action="click->user#deactivateUser">Désactiver</button>
class="btn btn-secondary">Désactiver</a> {# <a href="{{ path('user_active_status', {'id': user.id, 'status':'deactivate'}) }}"#}
{# class="btn btn-secondary">Désactiver</a>#}
{% else %} {% else %}
<a href="{{ path('user_active_status', {'id': user.id, 'status':'activate'}) }}" <button class="btn btn-success" data-action="click->user#activateUser">Réactiver</button>
class="btn btn-success">Réactiver</a> {# <a href="{{ path('user_active_status', {'id': user.id, 'status':'activate'}) }}"#}
{# class="btn btn-success">Réactiver</a>#}
{% endif %} {% endif %}
<a href="{{ path('user_delete', {'id': user.id}) }}" <a href="{{ path('user_delete', {'id': user.id}) }}"
class="btn btn-warning">Supprimer</a> class="btn btn-warning">Supprimer</a>