fix: saveOrg finally block — button always resets regardless of success/error/close order

This commit is contained in:
James 2026-03-20 01:44:42 -04:00
parent 5e77fa13fd
commit b0f86ed4bb
1 changed files with 5 additions and 6 deletions

View File

@ -279,12 +279,9 @@
const domains = domainsRaw ? domainsRaw.split(',').map(d => d.trim().replace(/^@/, '')).filter(Boolean) : undefined; const domains = domainsRaw ? domainsRaw.split(',').map(d => d.trim().replace(/^@/, '')).filter(Boolean) : undefined;
btn.disabled = true; btn.textContent = 'Saving...'; errEl.classList.add('hidden'); btn.disabled = true; btn.textContent = 'Saving...'; errEl.classList.add('hidden');
try { try {
// Always fetch fresh version to avoid stale version conflicts
const freshRes = await fetchAPI('/api/orgs/' + editingOrgId); const freshRes = await fetchAPI('/api/orgs/' + editingOrgId);
const freshOrg = await freshRes.json(); const freshOrg = await freshRes.json();
let version = freshOrg.version || 1; let version = freshOrg.version || 1;
// Save members first
const mRes = await fetchAPI('/api/orgs/' + editingOrgId + '/members', { const mRes = await fetchAPI('/api/orgs/' + editingOrgId + '/members', {
method: 'PUT', method: 'PUT',
body: JSON.stringify({ members: editingMembers, version }) body: JSON.stringify({ members: editingMembers, version })
@ -292,8 +289,6 @@
const mData = await mRes.json(); const mData = await mRes.json();
if (!mRes.ok) throw new Error(mData.error || 'Failed to save contacts'); if (!mRes.ok) throw new Error(mData.error || 'Failed to save contacts');
version = mData.version; version = mData.version;
// Save details with updated version
const res = await fetchAPI('/api/orgs/' + editingOrgId, { const res = await fetchAPI('/api/orgs/' + editingOrgId, {
method: 'PUT', method: 'PUT',
body: JSON.stringify({ body: JSON.stringify({
@ -314,7 +309,11 @@
if (!res.ok) throw new Error(data.error || 'Failed to save details'); if (!res.ok) throw new Error(data.error || 'Failed to save details');
closeEditModal(); closeEditModal();
loadOrgs(); loadOrgs();
} catch(e) { errEl.textContent = e.message; errEl.classList.remove('hidden'); btn.disabled = false; btn.textContent = 'Save Changes'; } } catch(e) {
errEl.textContent = e.message; errEl.classList.remove('hidden');
} finally {
btn.disabled = false; btn.textContent = 'Save Changes';
}
} }
// ---- Members Tab ---- // ---- Members Tab ----