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