From 063c12d32448f76384d6741500b40ed6b7058ad0 Mon Sep 17 00:00:00 2001 From: James Date: Thu, 19 Mar 2026 22:45:54 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20member=20cards=20not=20rendering=20?= =?UTF-8?q?=E2=80=94=20broken=20nested=20template=20literal;=20rewrite=20a?= =?UTF-8?q?s=20renderMemberCard=20helper=20with=20safe=20string=20concat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- portal/templates/app/project.html | 32 ++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/portal/templates/app/project.html b/portal/templates/app/project.html index d96158f..dad1baf 100644 --- a/portal/templates/app/project.html +++ b/portal/templates/app/project.html @@ -1274,6 +1274,28 @@ let allGlobalOrgs = []; let _dealOrgsMap = {}; + function imgErr(img) { + const w = img.parentElement; + w.className = 'w-11 h-11 rounded-full shrink-0 overflow-hidden bg-[#c9a84c]/20 flex items-center justify-center'; + w.innerHTML = '' + escHtml(img.dataset.initial || '?') + ''; + } + function renderMemberCard(dealOrgId, m, mi) { + const initial = (m.name || m.email || '?')[0].toUpperCase(); + let avatarHtml; + if (m.photo) { + avatarHtml = '
' + + '' + + '
'; + } else { + avatarHtml = '
' + + '' + escHtml(initial) + '
'; + } + const nameHtml = '
' + escHtml(m.name || m.email || '') + '
'; + const titleHtml = m.title ? '
' + escHtml(m.title) + '
' : ''; + return '
' + + avatarHtml + '
' + nameHtml + titleHtml + '
'; + } + async function loadOrgs() { try { const res = await fetchAPI('/api/projects/' + projectID + '/orgs'); @@ -1349,15 +1371,7 @@
- ${members.map((m, mi) => `
-
- ${m.photo ? `` : `${(m.name||m.email||'?')[0].toUpperCase()}`} -
-
-
${escHtml(m.name||m.email)}
- ${m.title ? `
${escHtml(m.title)}
` : ''} -
-
`).join('')} + ${members.map((m, mi) => renderMemberCard(o.deal_org_id, m, mi)).join('')}
+
Add person