From bf5568f77146f9405fdc3db28b33b653c2950e6c Mon Sep 17 00:00:00 2001 From: doxa-maps Date: Tue, 29 Sep 2026 05:45:10 +0000 Subject: [PATCH] Country map popup: the Pray and Full Profile links are escaped like every other value in it popupHtml() escaped the name, the subtitle, the stats, the description, the photo address and the two button labels, but put prayUrl and profileUrl into href raw. Both end in the people group's slug, which comes from the API, so a slug with a double quote would close the attribute. Both now go through the escapeHtml the popup already uses. Found by the regions plugin, which fixed the same inherited code in its dx-maps port. --- app/components/public/CountryMap.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/components/public/CountryMap.vue b/app/components/public/CountryMap.vue index a4672368..d03f235a 100644 --- a/app/components/public/CountryMap.vue +++ b/app/components/public/CountryMap.vue @@ -154,8 +154,8 @@ function popupHtml(p: any): string { ${rows.length ? `
${rows.join('')}
` : ''} ${p.description ? `

${escapeHtml(p.description)}

` : ''}
- ${escapeHtml(t('Pray'))} - ${escapeHtml(t('Full Profile'))} + ${escapeHtml(t('Pray'))} + ${escapeHtml(t('Full Profile'))}
`