diff --git a/portal/templates/app/orgs.html b/portal/templates/app/orgs.html index 139c6b7..28f595d 100644 --- a/portal/templates/app/orgs.html +++ b/portal/templates/app/orgs.html @@ -53,7 +53,7 @@
- +
@@ -90,7 +90,7 @@ ' - + '' + + '' + '
' + ''; }).join(''); @@ -528,6 +528,43 @@ window._rescrapeNewPeople[i][field] = value; } } + async function saveRescrapeSelection() { + const people = window._rescrapeNewPeople || []; + const checked = document.querySelectorAll('.rescrape-cb:checked'); + const toAdd = []; + checked.forEach(cb => { + const p = people[parseInt(cb.dataset.idx)]; + if (p) toAdd.push({ name: p.name || '', email: p.email || '', title: p.title || '', phone_business: p.phone_business || p.phone || '', phone_personal: p.phone_personal || '', photo: p.photo || '', bio: p.bio || '', linkedin: p.linkedin || '' }); + }); + if (toAdd.length === 0) { document.getElementById('rescrapeResults').classList.add('hidden'); return; } + toAdd.forEach(m => editingMembers.push(m)); + renderMemberList(); + document.getElementById('rescrapeResults').classList.add('hidden'); + const btn = document.getElementById('saveOrgBtn'); + const errEl = document.getElementById('editModalError'); + btn.disabled = true; btn.textContent = 'Saving...'; + try { + const version = parseInt(document.getElementById('eVersion').value) || 1; + const mRes = await fetchAPI('/api/orgs/' + editingOrgId + '/members', { + method: 'PUT', + body: JSON.stringify({ members: editingMembers, version }) + }); + const mData = await mRes.json(); + if (!mRes.ok) throw new Error(mData.error || 'Failed to save'); + document.getElementById('eVersion').value = mData.version || version + 1; + btn.disabled = false; btn.textContent = 'Save Changes'; + if (window._orgsMap && window._orgsMap[editingOrgId]) { + window._orgsMap[editingOrgId].members = editingMembers; + window._orgsMap[editingOrgId].version = mData.version || version + 1; + } + } catch(e) { + editingMembers.splice(editingMembers.length - toAdd.length, toAdd.length); + renderMemberList(); + errEl.textContent = e.message; errEl.classList.remove('hidden'); + btn.disabled = false; btn.textContent = 'Save Changes'; + } + } + function addRescrapeSelected() { const people = window._rescrapeNewPeople || []; const checked = document.querySelectorAll('.rescrape-cb:checked');