pres_mgmt: migrate to typed PersistedState store, canonical config schema
Replaces untyped $events_loc.pres_mgmt (svelte-persisted-store) with a dedicated pres_mgmt_loc (runed PersistedState) backed by a fully typed PresMgmtLocState interface and PressMgmtRemoteCfg for the server-side JSON. Key changes: - ae_events_stores__pres_mgmt_defaults.ts: canonical interfaces + defaults covering all hide__/show__ fields, labels, report prefs, query filters, and lock_config sync fields; qry_enabled uses 'not_enabled' (matches API) - ae_events_stores__pres_mgmt.svelte.ts: new PersistedState store - ae_events__event.ts: sync_config__event_pres_mgmt() rewired to write directly to pres_mgmt_loc.current; launcher link inversion preserved - All 26+ pres_mgmt templates migrated from $events_loc.pres_mgmt.* to pres_mgmt_loc.current.* - New config UI at (pres_mgmt)/pres_mgmt/config/ — manager + edit mode only - Event settings page: removed embedded pres_mgmt form, links to config page - event_page_menu: Config button visible only when manager_access + edit_mode Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,7 @@ import {
|
||||
events_trigger,
|
||||
events_trig_kv
|
||||
} from '$lib/stores/ae_events_stores';
|
||||
import { pres_mgmt_loc } from '$lib/stores/ae_events_stores__pres_mgmt.svelte';
|
||||
import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor.svelte';
|
||||
import Comp_event_presenter_obj_li from '../events/[event_id]/(pres_mgmt)/presenter/ae_comp__event_presenter_obj_li_wrapper.svelte';
|
||||
import Element_manage_event_file_li_wrap from '$lib/elements/element_manage_event_file_li_all.svelte';
|
||||
@@ -163,7 +164,7 @@ import {
|
||||
class="bg-surface-100-900 flex flex-wrap items-center gap-2 rounded-lg px-3 py-2 text-lg font-bold">
|
||||
<span
|
||||
class:hidden={!event_presentation_obj.start_datetime ||
|
||||
$events_loc.pres_mgmt.hide__presentation_datetime}
|
||||
pres_mgmt_loc.current.hide__presentation_datetime}
|
||||
class="border-r-2 border-gray-800/50 px-1 text-base">
|
||||
{ae_util.iso_datetime_formatter(
|
||||
event_presentation_obj.start_datetime,
|
||||
@@ -171,10 +172,10 @@ import {
|
||||
)}
|
||||
@
|
||||
<!-- , -->
|
||||
<!-- {ae_util.iso_datetime_formatter(event_presentation_obj.start_datetime, $events_loc.pres_mgmt.datetime_format)} -->
|
||||
<!-- {ae_util.iso_datetime_formatter(event_presentation_obj.start_datetime, pres_mgmt_loc.current.datetime_format)} -->
|
||||
{ae_util.iso_datetime_formatter(
|
||||
event_presentation_obj.start_datetime,
|
||||
$events_loc.pres_mgmt.time_format
|
||||
pres_mgmt_loc.current.time_format
|
||||
)}
|
||||
</span>
|
||||
|
||||
@@ -212,7 +213,7 @@ import {
|
||||
event_presentation_obj.event_presentation_id,
|
||||
log_lvl: 1
|
||||
})}>
|
||||
{#if (event_presentation_obj?.code || event_presentation_obj?.abstract_code) && !$events_loc.pres_mgmt.hide__presentation_code}
|
||||
{#if (event_presentation_obj?.code || event_presentation_obj?.abstract_code) && !pres_mgmt_loc.current.hide__presentation_code}
|
||||
<span
|
||||
class="preset-tonal-warning rounded-md px-2 py-0.5 text-xs leading-none"
|
||||
title="Presentation code {event_presentation_obj?.code} and abstract code {event_presentation_obj?.abstract_code}">
|
||||
@@ -246,17 +247,17 @@ import {
|
||||
<button
|
||||
type="button"
|
||||
onclick={() => {
|
||||
if ($events_loc.pres_mgmt.time_hours == 12) {
|
||||
$events_loc.pres_mgmt.time_hours = 24;
|
||||
$events_loc.pres_mgmt.datetime_format =
|
||||
if (pres_mgmt_loc.current.time_hours == 12) {
|
||||
pres_mgmt_loc.current.time_hours = 24;
|
||||
pres_mgmt_loc.current.datetime_format =
|
||||
'datetime_long';
|
||||
$events_loc.pres_mgmt.time_format =
|
||||
pres_mgmt_loc.current.time_format =
|
||||
'time_short';
|
||||
} else {
|
||||
$events_loc.pres_mgmt.time_hours = 12;
|
||||
$events_loc.pres_mgmt.datetime_format =
|
||||
pres_mgmt_loc.current.time_hours = 12;
|
||||
pres_mgmt_loc.current.datetime_format =
|
||||
'datetime_12_long';
|
||||
$events_loc.pres_mgmt.time_format =
|
||||
pres_mgmt_loc.current.time_format =
|
||||
'time_12_short';
|
||||
}
|
||||
}}>
|
||||
@@ -282,7 +283,7 @@ import {
|
||||
)}
|
||||
{ae_util.iso_datetime_formatter(
|
||||
event_presentation_obj.start_datetime,
|
||||
$events_loc.pres_mgmt.time_format
|
||||
pres_mgmt_loc.current.time_format
|
||||
)}
|
||||
</Element_ae_obj_field_editor>
|
||||
-
|
||||
@@ -300,14 +301,13 @@ import {
|
||||
})}>
|
||||
{ae_util.iso_datetime_formatter(
|
||||
event_presentation_obj.end_datetime,
|
||||
$events_loc.pres_mgmt.time_format
|
||||
pres_mgmt_loc.current.time_format
|
||||
)}
|
||||
</Element_ae_obj_field_editor>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class:hidden={!$events_loc.pres_mgmt
|
||||
.show_content__presentation_description &&
|
||||
class:hidden={!pres_mgmt_loc.current.show_content__presentation_description &&
|
||||
!($ae_loc.trusted_access && $ae_loc.edit_mode)}>
|
||||
<Element_ae_obj_field_editor
|
||||
object_type={'event_presentation'}
|
||||
|
||||
Reference in New Issue
Block a user