fix: saveOrg finally block — button always resets regardless of success/error/close order
This commit is contained in:
parent
5e77fa13fd
commit
b0f86ed4bb
|
|
@ -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 ----
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue