@@ -228,6 +230,7 @@
if (!o) return;
editingOrgId = o.entry_id;
editingMembers = (o.members || []).map(m => Object.assign({}, m));
+ window._memberExpanded = {};
document.getElementById('eOrgId').value = o.entry_id;
document.getElementById('eVersion').value = o.version || 1;
document.getElementById('eName').value = o.name || '';
@@ -318,22 +321,51 @@
none.classList.add('hidden');
list.innerHTML = editingMembers.map((m, i) => {
const initial = (m.name || m.email || '?')[0].toUpperCase();
- return '
'
+ const expanded = window._memberExpanded && window._memberExpanded[i];
+ return '
'
+ // header row
+ + '
'
+ '
' + escHtml(initial) + '
'
+ '
'
+ '
' + escHtml(m.name || m.email || '—') + '
'
- + (m.title ? '
' + escHtml(m.title) + '
' : '')
- + (m.email && m.name ? '
' + escHtml(m.email) + '
' : '')
+ + '
'
+ + [m.title, m.email].filter(Boolean).map(escHtml).join(' · ')
+ + (m.phone_business ? ' · ' + escHtml(m.phone_business) : '')
+ + '
'
+ + '
'
+ + '
'
+ + '
'
+ // edit panel (collapsed by default)
+ + '
'
+ + '
'
+ + '
'
+ '
'
- + '
'
+ '
';
}).join('');
}
+ function toggleMemberExpand(i) {
+ if (!window._memberExpanded) window._memberExpanded = {};
+ window._memberExpanded[i] = !window._memberExpanded[i];
+ renderMemberList();
+ }
+
+ function updateMember(i, field, value) {
+ if (editingMembers[i]) editingMembers[i][field] = value;
+ }
+
function addGlobalMember() {
const name = document.getElementById('newMemberName').value.trim();
const email = document.getElementById('newMemberEmail').value.trim();
const title = document.getElementById('newMemberTitle').value.trim();
+ const phone_business = document.getElementById('newMemberPhoneBiz').value.trim();
+ const phone_personal = document.getElementById('newMemberPhonePersonal').value.trim();
const errEl = document.getElementById('addMemberError');
if (!name && !email) {
errEl.textContent = 'Enter a name or email.';
@@ -343,10 +375,9 @@
return;
}
errEl.classList.add('hidden');
- editingMembers.push({ name, email, title, phone: '', photo: '', bio: '', linkedin: '' });
- document.getElementById('newMemberName').value = '';
- document.getElementById('newMemberEmail').value = '';
- document.getElementById('newMemberTitle').value = '';
+ editingMembers.push({ name, email, title, phone_business, phone_personal, photo: '', bio: '', linkedin: '' });
+ ['newMemberName','newMemberEmail','newMemberTitle','newMemberPhoneBiz','newMemberPhonePersonal'].forEach(id => document.getElementById(id).value = '');
+ window._memberExpanded = {};
renderMemberList();
document.getElementById('newMemberName').focus();
}