diff --git a/src/lib/app_components/e_app_access_type.svelte b/src/lib/app_components/e_app_access_type.svelte index c69f1e88..2bed17a3 100644 --- a/src/lib/app_components/e_app_access_type.svelte +++ b/src/lib/app_components/e_app_access_type.svelte @@ -30,7 +30,6 @@ import { } from '$lib/stores/ae_stores'; // import { core_func } from '$lib/ae_core/ae_core_functions'; // Ideally the Event related stores should not be imported here? -import { events_loc } from '$lib/stores/ae_events_stores'; import { pres_mgmt_loc } from '$lib/stores/ae_events_stores__pres_mgmt.svelte'; // import { db_events } from "$lib/db_events"; diff --git a/src/lib/stores/ae_events_stores.ts b/src/lib/stores/ae_events_stores.ts index 3bbd6819..a50c432f 100644 --- a/src/lib/stores/ae_events_stores.ts +++ b/src/lib/stores/ae_events_stores.ts @@ -28,10 +28,6 @@ const events_local_data_struct: key_val = { name: 'Aether - Events', title: `OSIT's Æ Events`, - events_cfg_json: {}, - - event_id: null, - // all, disabled, enabled qry__enabled: 'enabled', // all, hidden, not_hidden @@ -39,27 +35,9 @@ const events_local_data_struct: key_val = { qry__limit: 20, qry__offset: 0, - // The show details is intended for things like meta data and additional details that are not always needed. - show_details: false, - - auth__person: {}, // allow, id, name, email, passcode, etc - // The auth__entered_key (usually email or person_id) and auth__entered_passcode is found under events_sess.entered_key and events_sess.entered_passcode because it should be temporary. - // auth__entered_passcode: null, - - // auth__kv tracks which IDs the browser client is permitted to access. - // Each entry is an ID mapped to true, false, 'read', or 'write'. - // Keys should be no older than a configurable max age (checked on read). - auth__kv: { - event: {}, - exhibit: {}, - location: {}, - session: {}, - presentation: {}, - presenter: {}, - person: {} - }, - - // Event Presentation Launcher — see ae_events_stores__launcher_defaults.ts + // auth__person and auth__kv have been promoted to events_auth_loc (ae_events_stores__auth.svelte.ts). + // show_details has been moved to leads_loc (ae_events_stores__leads_defaults.ts). + // events_cfg_json and event_id were unused — removed. // badges, leads, pres_mgmt, launcher have all been promoted to their own PersistedState stores. }; diff --git a/src/lib/stores/ae_events_stores__auth.svelte.ts b/src/lib/stores/ae_events_stores__auth.svelte.ts new file mode 100644 index 00000000..61dacd56 --- /dev/null +++ b/src/lib/stores/ae_events_stores__auth.svelte.ts @@ -0,0 +1,30 @@ +import { PersistedState } from 'runed'; + +const events_auth_loc_defaults = { + auth__person: { + id: null as string | null, + person_id: null as string | null, + entered_key: null as string | null, + email: null as string | null, + full_name: null as string | null, + presenter_id: null as string | null, + presentation_id: null as string | null, + session_id: null as string | null + }, + auth__kv: { + event: {} as Record, + exhibit: {} as Record, + location: {} as Record, + session: {} as Record, + presentation: {} as Record, + presenter: {} as Record, + person: {} as Record + } +}; + +export const events_auth_loc = new PersistedState('ae_events_auth_loc', events_auth_loc_defaults, { + serializer: { + serialize: JSON.stringify, + deserialize: (raw: string) => ({ ...events_auth_loc_defaults, ...JSON.parse(raw) }) + } +}); diff --git a/src/lib/stores/ae_events_stores__leads_defaults.ts b/src/lib/stores/ae_events_stores__leads_defaults.ts index a5a89066..77c3e7bf 100644 --- a/src/lib/stores/ae_events_stores__leads_defaults.ts +++ b/src/lib/stores/ae_events_stores__leads_defaults.ts @@ -8,6 +8,7 @@ export interface LeadsLocState { __version: number; + show_details: boolean; // Show extra metadata/details in the leads tab (was events_loc.show_details) show_option__paid_tab: boolean; show_content__scan_alert: boolean; show_content__scan_requirements: boolean; @@ -80,6 +81,7 @@ export interface LeadsSessState { // Persisted leads config — survives browser sessions. export const leads_loc_defaults: LeadsLocState = { __version: 1, + show_details: false, // Show extra metadata/details in the leads tab (was events_loc.show_details) show_option__paid_tab: true, show_content__scan_alert: true, // Workaround for QR scanner edge-case bug. show_content__scan_requirements: true, diff --git a/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte b/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte index 9213dab5..8ff4b938 100644 --- a/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte +++ b/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte @@ -7,7 +7,7 @@ import { page } from '$app/state'; import { liveQuery } from 'dexie'; import { db_events } from '$lib/ae_events/db_events'; import { ae_api, ae_loc } from '$lib/stores/ae_stores'; -import { events_loc, events_sess } from '$lib/stores/ae_events_stores'; +import { events_sess } from '$lib/stores/ae_events_stores'; import { leads_loc } from '$lib/stores/ae_events_stores__leads.svelte'; import { events_func } from '$lib/ae_events/ae_events_functions'; import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor.svelte'; @@ -605,7 +605,7 @@ function handle_signout() { + bind:checked={leads_loc.current.show_details} /> diff --git a/src/routes/events/[event_id]/(pres_mgmt)/pres_mgmt/+page.svelte b/src/routes/events/[event_id]/(pres_mgmt)/pres_mgmt/+page.svelte index 4e863e25..359f5653 100644 --- a/src/routes/events/[event_id]/(pres_mgmt)/pres_mgmt/+page.svelte +++ b/src/routes/events/[event_id]/(pres_mgmt)/pres_mgmt/+page.svelte @@ -33,6 +33,7 @@ import { // events_trigger } from '$lib/stores/ae_events_stores'; import { pres_mgmt_loc } from '$lib/stores/ae_events_stores__pres_mgmt.svelte'; +import { events_auth_loc } from '$lib/stores/ae_events_stores__auth.svelte'; import { events_func } from '$lib/ae_events/ae_events_functions'; import Comp_event_files_upload from '../../../ae_comp__event_files_upload.svelte'; @@ -593,10 +594,10 @@ if ( diff --git a/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/+page.svelte b/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/+page.svelte index 55448205..e414e3dc 100644 --- a/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/+page.svelte +++ b/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/+page.svelte @@ -33,6 +33,7 @@ import { events_trigger } from '$lib/stores/ae_events_stores'; import { pres_mgmt_loc } from '$lib/stores/ae_events_stores__pres_mgmt.svelte'; +import { events_auth_loc } from '$lib/stores/ae_events_stores__auth.svelte'; import { events_func } from '$lib/ae_events/ae_events_functions'; import Comp_event_files_upload from '../../../../ae_comp__event_files_upload.svelte'; @@ -108,7 +109,7 @@ let lq__event_presentation_obj = $derived( let lq__auth__event_presenter_obj = $derived( liveQuery(async () => { let results = await db_events.presenter.get( - $events_loc.auth__person?.presenter_id ?? null + events_auth_loc.current.auth__person?.presenter_id ?? null ); return results; @@ -201,7 +202,7 @@ let lq__auth__event_presenter_obj = $derived( - {#if !$ae_loc.trusted_access && !$events_loc.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id] && !$events_loc.auth__kv.session[$lq__event_presenter_obj.event_session_id]} + {#if !$ae_loc.trusted_access && !events_auth_loc.current.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id] && !events_auth_loc.current.auth__kv.session[$lq__event_presenter_obj.event_session_id]} @@ -248,7 +249,7 @@ let lq__auth__event_presenter_obj = $derived( > {/if} - {#if pres_mgmt_loc.current.require__presenter_agree && $events_loc?.pres_mgmt?.show__email_access_link && $lq__event_presenter_obj?.person_primary_email && ($ae_loc.public_access || !$events_loc.auth__person?.id)} + {#if pres_mgmt_loc.current.require__presenter_agree && pres_mgmt_loc.current.show__email_access_link && $lq__event_presenter_obj?.person_primary_email && ($ae_loc.public_access || !events_auth_loc.current.auth__person?.id)}