diff --git a/Js/fonctions.js b/Js/fonctions.js
index a8005121..d906132b 100755
--- a/Js/fonctions.js
+++ b/Js/fonctions.js
@@ -18055,22 +18055,88 @@ function pop_messagerie()
});
}
-function marquer_message_comme_lu(idMessagerie, controle)
-{
- donnees = 'idMessagerie='+idMessagerie;
-
- $.ajax({
- url: $("#racineWeb").val()+"Ajaxmessagerieliste/marquercommelu/",
- type: 'POST',
- data: donnees,
- error: function(errorData) {
- },
- success: function(data) {
- },
- complete: function() {
- controle.parentElement.removeChild(controle);
- }
- });
+function marquer_message_comme_lu(idMessagerie, btn) {
+ const $row = $(btn).closest('tr');
+ const racineWeb = $("#racineWeb").val();
+ const codeLangue = $("#codeLangue").val(); // Récupération de la langue
+
+ // 1. Définition des messages de traduction
+ const msgSuccess = (codeLangue === "en_US")
+ ? "Message marked as read"
+ : "Message marqué comme lu";
+ const msgError = (codeLangue === "en_US")
+ ? "Error during update"
+ : "Erreur lors de la mise à jour";
+
+ // 2. Feedback visuel Neutral Pro
+ $row.addClass('is-processing');
+ $(btn).prop('disabled', true).html('');
+
+ $.ajax({
+ url: racineWeb + "Ajaxmessagerieliste/marquercommelu/",
+ type: 'POST',
+ data: { idMessagerie: idMessagerie },
+ success: function(data) {
+ // 3. Animation de sortie
+ $row.fadeOut(400, function() {
+ $(this).remove();
+
+ // 4. Mise à jour du compteur (Logique plurielle incluse)
+ actualiser_interface_messagerie(codeLangue);
+ });
+
+ if (typeof toastr !== 'undefined') {
+ toastr.success(msgSuccess);
+ }
+ },
+ error: function() {
+ $row.removeClass('is-processing');
+ $(btn).prop('disabled', false).html('');
+
+ if (typeof toastr !== 'undefined') {
+ toastr.error(msgError);
+ }
+ }
+ });
+}
+
+/**
+ * Mise à jour du compteur avec gestion de la langue
+ */
+function actualiser_interface_messagerie(codeLangue) {
+ const $txtNbre = $('#txt-nbre-msg');
+ const $labelNbre = $('#label-nbre-msg');
+ const $noMsgRow = $('#no-message-row');
+ const $badgeContainer = $('#container-badge-msg');
+
+ let newCount = $('#table-messagerie tbody tr.message-row').length;
+
+ // Mise à jour du chiffre
+ $txtNbre.text(newCount);
+
+ // Mise à jour du texte (Message vs Messages) selon la langue
+ if ($labelNbre.length) {
+ let label = "";
+ if (codeLangue === "en_US") {
+ label = newCount > 1 ? " Messages" : " Message";
+ } else {
+ label = newCount > 1 ? " Messages" : " Message";
+ }
+ $labelNbre.text(label);
+ }
+
+ // Gestion de l'état vide
+ if (newCount === 0) {
+ if ($noMsgRow.length) $noMsgRow.fadeIn();
+ if ($badgeContainer.length) {
+ $badgeContainer.removeClass('bg-primary-ghost text-primary').addClass('bg-light text-muted');
+ }
+ }
+
+ // Mise à jour du compteur global (timer)
+ if ($('#timer').length) {
+ $('#timer').val(newCount);
+ }
}
function envoyer_messagerie(textMessage, idParent)