From 12ef74ec42b89aa2800a2998bd4fb9f78cecd2fd Mon Sep 17 00:00:00 2001 From: Anne-Catherine <57360138+accognet@users.noreply.github.com> Date: Mon, 30 Jan 2023 16:06:10 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B05849=20-=20Fix=20wrong=20encoding=20of?= =?UTF-8?q?=20external=20keys=20in=20"Header=20with=20statstics"=20dashlet?= =?UTF-8?q?=20(#384)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit N°5849 - Fix wrong encoding of external keys in "Header with statstics" dashlet #384 --- application/displayblock.class.inc.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/application/displayblock.class.inc.php b/application/displayblock.class.inc.php index f76453ae0..dd6c25a01 100644 --- a/application/displayblock.class.inc.php +++ b/application/displayblock.class.inc.php @@ -1045,9 +1045,19 @@ JS $aCount = $aCounts[$sStateValue]; $sHyperlink = $aCount['link']; $sCountLabel = $aCount['label']; - $oPill = PillFactory::MakeForState($sClass, $sStateValue) - ->SetTooltip($sStateLabel) - ->AddHtml("$sCountLabel".utils::HtmlEntities($sStateLabel).""); + + $oPill = PillFactory::MakeForState($sClass, $sStateValue); + // N°5849 - Unencode label for ExternalKey attribute because friendlyname is already html encoded thanks to DBObject::GetName() in AttributeExternalKey::GetAllowedValues(). (A fix in this function may have too much impact). + if ($oAttDef instanceof AttributeExternalKey) { + $sPillTooltip = utils::HtmlEntityDecode($sStateLabel); + $sPillLabel = $sStateLabel; + } else { + $sPillTooltip = $sStateLabel; + $sPillLabel = utils::HtmlEntities($sStateLabel); + } + $oPill->SetTooltip($sPillTooltip) + ->AddHtml("$sCountLabel".$sPillLabel.""); + if ($sHyperlink != '-') { $oPill->SetUrl($sHyperlink); }