fix: saveOrg also fetches fresh version before writing — same stale version bug
This commit is contained in:
parent
8f6c6898c7
commit
f8afed6a61
|
|
@ -279,18 +279,21 @@
|
|||
const domains = domainsRaw ? domainsRaw.split(',').map(d => d.trim().replace(/^@/, '')).filter(Boolean) : undefined;
|
||||
btn.disabled = true; btn.textContent = 'Saving...'; errEl.classList.add('hidden');
|
||||
try {
|
||||
const version = parseInt(document.getElementById('eVersion').value) || 1;
|
||||
// Single write: details + members together via members endpoint first, then details
|
||||
// Actually: save details (which preserves existing members in orgData), then members
|
||||
// To avoid version race, save members FIRST then details (or combine)
|
||||
// Simplest: save members first with current version, details second with version+1
|
||||
// Always fetch fresh version to avoid stale version conflicts
|
||||
const freshRes = await fetchAPI('/api/orgs/' + editingOrgId);
|
||||
const freshOrg = await freshRes.json();
|
||||
let version = freshOrg.version || 1;
|
||||
|
||||
// Save members first
|
||||
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 members');
|
||||
const newVersion = mData.version || version + 1;
|
||||
if (!mRes.ok) throw new Error(mData.error || 'Failed to save contacts');
|
||||
version = mData.version;
|
||||
|
||||
// Save details with updated version
|
||||
const res = await fetchAPI('/api/orgs/' + editingOrgId, {
|
||||
method: 'PUT',
|
||||
body: JSON.stringify({
|
||||
|
|
@ -304,7 +307,7 @@
|
|||
address: document.getElementById('eAddress').value.trim(),
|
||||
state: document.getElementById('eState').value.trim(),
|
||||
logo: document.getElementById('eLogo').value.trim(),
|
||||
version: newVersion,
|
||||
version,
|
||||
})
|
||||
});
|
||||
const data = await res.json();
|
||||
|
|
|
|||
Loading…
Reference in New Issue