fix: account_name not showing on events page — stale Dexie cache + duplicate assignment

Two Svelte-side bugs causing account_name to always show 'Account Name Not Set':

1. ae_core__site.ts: background site_domain refresh only pushed cfg_json back
   into $ae_loc after a stale cache hit. Now also pushes account_name and
   account_code when the store holds a placeholder value.

2. +layout.ts: duplicate ae_loc_init['account_name'] assignment at line ~475
   was overwriting the correct one at line ~385 with a different fallback string
   ('Account Name Not Set' vs 'Ghost Account'). Removed the duplicate.

Also includes user-intentional changes during testing:
- events/+page.svelte: typo fix ('You access' -> 'Your access'); Pres Mgmt /
  Launcher / Badges / Leads buttons now gated on trusted_access && edit_mode
- events/+page.ts: event list limit 25 -> 7
- events/[event_id]/+page.svelte: user edit
This commit is contained in:
Scott Idem
2026-05-15 11:46:10 -04:00
parent 48a748d314
commit f297c7c018
5 changed files with 33 additions and 19 deletions

View File

@@ -221,23 +221,37 @@ async function _refresh_site_domain_background({
});
// WHY: The fast-path returns stale Dexie cache, then this background refresh
// runs after the page renders. If cfg_json changed server-side (e.g. a Novi
// API key was added), the stale cfg is already in $ae_loc. We push the fresh
// cfg_json into the store here so any layout tracking it (e.g. IDAA Novi
// verification) gets notified and can retry with the correct config.
// runs after the page renders. Push any fields that may have been missing from
// the stale cache (e.g. account_name, cfg_json) back into $ae_loc so the UI
// reflects the correct values without requiring a second full page reload.
const loc_patch: Record<string, unknown> = {};
if (result.cfg_json) {
const current_cfg = get(ae_loc).site_cfg_json;
if (
JSON.stringify(current_cfg) !==
JSON.stringify(result.cfg_json)
) {
ae_loc.update((loc) => ({
...loc,
site_cfg_json: result.cfg_json
}));
if (JSON.stringify(current_cfg) !== JSON.stringify(result.cfg_json)) {
loc_patch.site_cfg_json = result.cfg_json;
}
}
if (result.account_name) {
const current_name = get(ae_loc).account_name;
// Only overwrite the default placeholder — don't stomp a real value.
if (!current_name || current_name === 'Account Name Not Set' || current_name === 'Ghost Account') {
loc_patch.account_name = result.account_name;
}
}
if (result.account_code) {
const current_code = get(ae_loc).account_code;
if (!current_code || current_code === 'not_set' || current_code === 'ghost') {
loc_patch.account_code = result.account_code;
}
}
if (Object.keys(loc_patch).length > 0) {
ae_loc.update((loc) => ({ ...loc, ...loc_patch }));
}
return result;
}
} catch (error: any) {