From ae01ef8531be4a3c0b11843c4da9823d9d0be370 Mon Sep 17 00:00:00 2001 From: James Date: Fri, 20 Mar 2026 01:26:32 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20orgToMap=20missing=20version=20field=20?= =?UTF-8?q?=E2=80=94=20always=20caused=20version=5Fconflict=20on=20save;?= =?UTF-8?q?=20stop=20rollback=20on=20catch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/handlers.go | 1 + portal/templates/app/orgs.html | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/handlers.go b/api/handlers.go index 65c8f18..eeb4f88 100644 --- a/api/handlers.go +++ b/api/handlers.go @@ -1346,6 +1346,7 @@ func (h *Handlers) orgToMap(org *lib.Entry) map[string]any { result := map[string]any{ "entry_id": org.EntryID, "type": org.Type, + "version": org.Version, "created_at": org.CreatedAt, "created_by": org.CreatedBy, } diff --git a/portal/templates/app/orgs.html b/portal/templates/app/orgs.html index 8c168e6..1b0dfd9 100644 --- a/portal/templates/app/orgs.html +++ b/portal/templates/app/orgs.html @@ -560,9 +560,8 @@ 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'); + errEl.textContent = 'Save failed: ' + e.message + ' — contacts were added locally, click Save Changes to retry.'; + errEl.classList.remove('hidden'); btn.disabled = false; btn.textContent = 'Save Changes'; } }