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:
@@ -221,23 +221,37 @@ async function _refresh_site_domain_background({
|
|||||||
});
|
});
|
||||||
|
|
||||||
// WHY: The fast-path returns stale Dexie cache, then this background refresh
|
// 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
|
// runs after the page renders. Push any fields that may have been missing from
|
||||||
// API key was added), the stale cfg is already in $ae_loc. We push the fresh
|
// the stale cache (e.g. account_name, cfg_json) back into $ae_loc so the UI
|
||||||
// cfg_json into the store here so any layout tracking it (e.g. IDAA Novi
|
// reflects the correct values without requiring a second full page reload.
|
||||||
// verification) gets notified and can retry with the correct config.
|
const loc_patch: Record<string, unknown> = {};
|
||||||
|
|
||||||
if (result.cfg_json) {
|
if (result.cfg_json) {
|
||||||
const current_cfg = get(ae_loc).site_cfg_json;
|
const current_cfg = get(ae_loc).site_cfg_json;
|
||||||
if (
|
if (JSON.stringify(current_cfg) !== JSON.stringify(result.cfg_json)) {
|
||||||
JSON.stringify(current_cfg) !==
|
loc_patch.site_cfg_json = result.cfg_json;
|
||||||
JSON.stringify(result.cfg_json)
|
|
||||||
) {
|
|
||||||
ae_loc.update((loc) => ({
|
|
||||||
...loc,
|
|
||||||
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;
|
return result;
|
||||||
}
|
}
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
|
|||||||
@@ -472,8 +472,8 @@ export async function load({ fetch, params, parent, route, url }) {
|
|||||||
// });
|
// });
|
||||||
// }
|
// }
|
||||||
|
|
||||||
ae_loc_init['account_name'] =
|
// account_name is already set above (line ~385). This was a duplicate that
|
||||||
json_data.account_name || 'Account Name Not Set';
|
// overwrote it with a different fallback string — removed.
|
||||||
|
|
||||||
// ae_acct['api'] = ae_api_init; // DO NOT USE: This overwrites our isolated clone from line 65
|
// ae_acct['api'] = ae_api_init; // DO NOT USE: This overwrites our isolated clone from line 65
|
||||||
ae_acct['loc'] = ae_loc_init;
|
ae_acct['loc'] = ae_loc_init;
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ onMount(() => {
|
|||||||
</p>
|
</p>
|
||||||
{:else if !$ae_loc.trusted_access}
|
{:else if !$ae_loc.trusted_access}
|
||||||
<h3 class="h4">Restricted Access</h3>
|
<h3 class="h4">Restricted Access</h3>
|
||||||
<p>You access to the presentation management system is limited.</p>
|
<p>Your access to the presentation management system is limited.</p>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<!-- <Element_data_store
|
<!-- <Element_data_store
|
||||||
@@ -164,7 +164,7 @@ onMount(() => {
|
|||||||
Event Home
|
Event Home
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
{#if $ae_loc.trusted_access}
|
{#if $ae_loc.trusted_access && $ae_loc.edit_mode}
|
||||||
<a
|
<a
|
||||||
href="/events/{event_obj.event_id}/pres_mgmt"
|
href="/events/{event_obj.event_id}/pres_mgmt"
|
||||||
class="btn btn-sm preset-tonal-secondary border-secondary-500 hover:preset-filled-secondary-500 border"
|
class="btn btn-sm preset-tonal-secondary border-secondary-500 hover:preset-filled-secondary-500 border"
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export async function load({ parent }) {
|
|||||||
// inc_session_li: false,
|
// inc_session_li: false,
|
||||||
hidden: 'all', // 'not_hidden'
|
hidden: 'all', // 'not_hidden'
|
||||||
enabled: 'enabled',
|
enabled: 'enabled',
|
||||||
limit: 25,
|
limit: 7,
|
||||||
try_cache: true,
|
try_cache: true,
|
||||||
log_lvl: log_lvl
|
log_lvl: log_lvl
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ const modules = [
|
|||||||
icon: Presentation,
|
icon: Presentation,
|
||||||
description: 'Manage sessions, presentations, and presenters.',
|
description: 'Manage sessions, presentations, and presenters.',
|
||||||
color: 'preset-filled-primary-200-800',
|
color: 'preset-filled-primary-200-800',
|
||||||
access: 'authenticated_access'
|
access: 'anonymous_access'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Launcher',
|
name: 'Launcher',
|
||||||
@@ -40,7 +40,7 @@ const modules = [
|
|||||||
icon: IdCard,
|
icon: IdCard,
|
||||||
description: 'Manage and print event badges.',
|
description: 'Manage and print event badges.',
|
||||||
color: 'preset-filled-tertiary-200-800',
|
color: 'preset-filled-tertiary-200-800',
|
||||||
access: 'authenticated_access'
|
access: 'anonymous_access'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Leads',
|
name: 'Leads',
|
||||||
|
|||||||
Reference in New Issue
Block a user