fix(pres_mgmt): make POC list/table column a real per-event config

show__session_li_poc_field was local-browser-only and the session list
prop computation ignored the admin's hide__session_poc master switch
entirely, so disabling POC for an event didn't hide the column if a
user's browser had it toggled on.

- Add show__session_li_poc_field to PressMgmtRemoteCfg + Config page UI
  (Session Field Visibility) + sync_config__event_pres_mgmt() lock-synced
  block, so it's admin-configurable per event like the other display flags
- Fix list/table column visibility to hide__session_poc || !show__session_li_poc_field
  in pres_mgmt/+page.svelte and locations/ae_comp__event_location_obj_li.svelte
- Remove the now-redundant local "Show/Hide POC Column" toggle buttons from
  ae_comp__events_menu_opts.svelte and event_page_menu.svelte
- Log the fix in PROJECT__AE_Events_PressMgmt_Config_Cleanup.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-06-16 10:18:10 -04:00
parent 0954369ef0
commit a47a2103eb
8 changed files with 35 additions and 43 deletions

View File

@@ -96,6 +96,7 @@ interface PressMgmtRemoteCfg {
show__email_access_link: boolean;
show__launcher_link: boolean;
show__launcher_link_legacy: boolean;
show__session_li_poc_field: boolean; // POC column in session list/table; hide__session_poc still wins
// Requirements
require__presenter_agree: boolean;
@@ -222,6 +223,16 @@ Safe and backward compatible — old DB records fall through to `?? false` defau
- Decision: Keep separate? Document clearly? Unify?
- [ ] **Add `AE_PRES_MGMT_LOC_VERSION` to `store_versions.ts`** (Step 2 requirement)
- [ ] **Clean `hide__launcher_link*` from defaults** if truly deprecated (lines 154-155, 333-334 in `pres_mgmt_defaults.ts`)
- [x] **POC column local/remote conflict fixed (2026-06-16)**`show__session_li_poc_field` was
local-only (never synced) and the session-list-table prop computation ignored the admin's
`hide__session_poc` master switch entirely. Fixed: added `show__session_li_poc_field` to
`PressMgmtRemoteCfg` + Config UI (Session Field Visibility) + `sync_config__event_pres_mgmt()`
lock-synced block; list/table column visibility is now
`hide__session_poc || !show__session_li_poc_field` in `pres_mgmt/+page.svelte` and
`locations/ae_comp__event_location_obj_li.svelte`. The local per-browser "Show/Hide POC
Column" toggle buttons in `ae_comp__events_menu_opts.svelte` and `event_page_menu.svelte`
were removed — the field is lock-synced from the per-event Config page now, same as the
other session field visibility toggles.
### Step 6 scope (mechanical find-replace)

View File

@@ -1032,6 +1032,8 @@ export function sync_config__event_pres_mgmt({
pres_mgmt_cfg_remote?.hide__session_msg ?? false;
loc.hide__session_poc =
pres_mgmt_cfg_remote?.hide__session_poc ?? false;
loc.show__session_li_poc_field =
pres_mgmt_cfg_remote?.show__session_li_poc_field ?? false;
loc.hide__session_poc_biography =
pres_mgmt_cfg_remote?.hide__session_poc_biography ?? false;
loc.hide__session_poc_profile =

View File

@@ -54,6 +54,10 @@ export interface PressMgmtRemoteCfg {
show__copy_access_link: boolean;
show__email_access_link: boolean;
show__launcher_link: boolean;
// POC column in session list/table views. Independent of hide__session_poc
// (the overall "is POC used at all" master switch) — that one wins if set,
// see sync_config__event_pres_mgmt() and the session list wrapper usages.
show__session_li_poc_field: boolean;
// Requirements
require__presenter_agree: boolean;
@@ -149,6 +153,8 @@ export interface PresMgmtLocState {
hide__device_code: boolean;
hide__locations_msg: boolean;
hide__session_li_location_field: boolean;
// Also mirrors PressMgmtRemoteCfg.show__session_li_poc_field — lock-synced
// (overwritten when lock_config=true), see sync_config__event_pres_mgmt().
show__session_li_poc_field: boolean;
// Launcher/location links in session list
hide__launcher_link_legacy: boolean; // Flask/legacy launcher

View File

@@ -293,26 +293,9 @@ async function on_delete(method: 'delete' | 'disable') {
: 'Hide Location Column?'}
</span>
</button>
<button
type="button"
onclick={() => {
pres_mgmt_loc.current.show__session_li_poc_field =
!pres_mgmt_loc.current.show__session_li_poc_field;
}}
class="btn btn-sm ae_btn_surface w-full justify-between"
title="Toggle the POC column in session lists">
{#if !pres_mgmt_loc.current.show__session_li_poc_field}<ToggleLeft
size="1em"
class="mr-1" />{:else}<ToggleRight
size="1em"
class="mr-1" />{/if}
<span class="grow">
{!pres_mgmt_loc.current.show__session_li_poc_field
? 'Show POC Column'
: 'Hide POC Column?'}
</span>
</button>
<!-- POC column visibility is a per-event config (Config page), not a
local toggle — removed 2026-06-16, see
PROJECT__AE_Events_PressMgmt_Config_Cleanup.md -->
</div>
</section>

View File

@@ -377,7 +377,8 @@ if (!pres_mgmt_loc.current.location_kv) {
link_to_id={event_location_obj?.event_location_id}
event_session_id_random_li={[]}
hide__session_location={true}
hide__session_poc={!pres_mgmt_loc.current.show__session_li_poc_field}
hide__session_poc={pres_mgmt_loc.current.hide__session_poc ||
!pres_mgmt_loc.current.show__session_li_poc_field}
{log_lvl}></Comp_event_session_obj_li>
{/if}
{:else if pres_mgmt_loc.current.show_content__location_devices_sessions == 'devices'}

View File

@@ -485,7 +485,8 @@ if (
<Comp_event_session_obj_li_wrapper
{lq__event_session_obj_li}
hide__session_location={pres_mgmt_loc.current.hide__session_li_location_field}
hide__session_poc={!pres_mgmt_loc.current.show__session_li_poc_field}
hide__session_poc={pres_mgmt_loc.current.hide__session_poc ||
!pres_mgmt_loc.current.show__session_li_poc_field}
hide__launcher_link_legacy={pres_mgmt_loc.current.hide__launcher_link_legacy}
hide__launcher_link={pres_mgmt_loc.current.hide__launcher_link}
hide__location_link={pres_mgmt_loc.current.hide__location_link}

View File

@@ -70,6 +70,7 @@ const cfg_defaults: PressMgmtRemoteCfg = {
show__copy_access_link: false,
show__email_access_link: false,
show__launcher_link: false,
show__session_li_poc_field: false,
require__presenter_agree: false,
require__session_agree: false,
limit__navigation: false,
@@ -378,6 +379,7 @@ function toggle(key: string) {
{ field: 'hide__session_location' as const, label: 'Hide Location' },
{ field: 'hide__session_msg' as const, label: 'Hide Message' },
{ field: 'hide__session_poc' as const, label: 'Hide POC' },
{ field: 'show__session_li_poc_field' as const, label: 'Show POC Column in Lists/Tables' },
{ field: 'hide__session_poc_biography' as const, label: 'Hide POC Biography' },
{ field: 'hide__session_poc_profile' as const, label: 'Hide POC Profile' },
{ field: 'hide__session_poc_profile_pic' as const, label: 'Hide POC Profile Pic' }
@@ -388,6 +390,10 @@ function toggle(key: string) {
</label>
{/each}
</div>
<p class="text-surface-500 border-surface-200-800 border-t px-4 py-2 text-xs">
<strong>Hide POC</strong> is the master switch — when on, POC is hidden everywhere
(session detail and list/table column) regardless of the column setting below it.
</p>
{/if}
</section>

View File

@@ -540,27 +540,9 @@ import {
</span>
</button>
<!-- Show/Hide the POC column in tables and lists -->
<button
type="button"
onclick={() => {
pres_mgmt_loc.current.show__session_li_poc_field =
!pres_mgmt_loc.current.show__session_li_poc_field;
}}
class="btn btn-sm ae_btn_surface w-full justify-between text-center"
title="Toggle showing the POC column in session lists and tables">
{#if !pres_mgmt_loc.current.show__session_li_poc_field}<ToggleLeft
size="1em"
class="m-1" />{:else}<ToggleRight
size="1em"
class="m-1" />{/if}
<span class="grow">
<!-- <span class="fas fa-user-tie m-1"></span> -->
{!pres_mgmt_loc.current.show__session_li_poc_field
? 'Show POC Column'
: 'Hide POC Column?'}
</span>
</button>
<!-- POC column visibility is a per-event config (Config page), not a
local toggle — removed 2026-06-16, see
PROJECT__AE_Events_PressMgmt_Config_Cleanup.md -->
<!-- These are related to more content showing in lists. -->
<span