From 82c0d8f2449cf163037d6830aa1a0674dc9e66ac Mon Sep 17 00:00:00 2001 From: KONE SOREL Date: Fri, 13 Mar 2026 13:06:15 +0000 Subject: [PATCH] fg --- Js/fonctions.js | 98 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 82 insertions(+), 16 deletions(-) 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)