refactor(events): finalize formatting and fix remaining native calls

- Corrected missed native 'event.preventDefault()' calls in badge form components.
- Applied batch formatting (printWidth: 80) to top-level event route files.
This commit is contained in:
Scott Idem
2026-02-06 15:04:55 -05:00
parent bb94fd38aa
commit f8476e1133
5 changed files with 328 additions and 142 deletions

View File

@@ -40,7 +40,7 @@
]; ];
async function handle_submit(event: Event) { async function handle_submit(event: Event) {
event.prevent_default(); event.preventDefault();
submit_status = 'loading'; submit_status = 'loading';
const data_to_create: key_val = { const data_to_create: key_val = {
full_name_override, full_name_override,

View File

@@ -48,7 +48,7 @@
} }
async function handle_upload(event: Event) { async function handle_upload(event: Event) {
event.prevent_default(); event.preventDefault();
if (!selected_file) { if (!selected_file) {
upload_message = 'Please select a file first.'; upload_message = 'Please select a file first.';
upload_status = 'error'; upload_status = 'error';

View File

@@ -45,15 +45,24 @@
// *** Initialization & Store Guard *** // *** Initialization & Store Guard ***
if ($events_loc.pres_mgmt) { if ($events_loc.pres_mgmt) {
if (typeof $events_loc.pres_mgmt.search_version === 'undefined') $events_loc.pres_mgmt.search_version = 0; if (typeof $events_loc.pres_mgmt.search_version === 'undefined')
if (typeof $events_loc.pres_mgmt.qry__remote_first === 'undefined') $events_loc.pres_mgmt.qry__remote_first = false; $events_loc.pres_mgmt.search_version = 0;
if (typeof $events_loc.pres_mgmt.fulltext_search_qry_str === 'undefined') $events_loc.pres_mgmt.fulltext_search_qry_str = ''; if (typeof $events_loc.pres_mgmt.qry__remote_first === 'undefined')
if (typeof $events_loc.pres_mgmt.location_name_qry_str === 'undefined') $events_loc.pres_mgmt.location_name_qry_str = ''; $events_loc.pres_mgmt.qry__remote_first = false;
if (
typeof $events_loc.pres_mgmt.fulltext_search_qry_str === 'undefined'
)
$events_loc.pres_mgmt.fulltext_search_qry_str = '';
if (typeof $events_loc.pres_mgmt.location_name_qry_str === 'undefined')
$events_loc.pres_mgmt.location_name_qry_str = '';
} }
let lq__event_obj = $derived( let lq__event_obj = $derived(
liveQuery(async () => { liveQuery(async () => {
if (log_lvl) console.log(`*** LiveQuery: lq__event_obj *** event_id=${$events_slct.event_id}`); if (log_lvl)
console.log(
`*** LiveQuery: lq__event_obj *** event_id=${$events_slct.event_id}`
);
return await db_events.event.get($events_slct?.event_id ?? ''); return await db_events.event.get($events_slct?.event_id ?? '');
}) })
); );
@@ -78,18 +87,26 @@
let lq__event_session_obj_li = $derived.by(() => { let lq__event_session_obj_li = $derived.by(() => {
const ids = event_session_id_li; const ids = event_session_id_li;
const event_id = $events_slct?.event_id; const event_id = $events_slct?.event_id;
return liveQuery(async () => { return liveQuery(async () => {
// SCENARIO 1: Specific IDs provided (Search Results) // SCENARIO 1: Specific IDs provided (Search Results)
if (Array.isArray(ids) && ids.length > 0) { if (Array.isArray(ids) && ids.length > 0) {
if (log_lvl) console.log(`Session Page LQ: bulkGet ${ids.length} IDs`); if (log_lvl)
console.log(`Session Page LQ: bulkGet ${ids.length} IDs`);
const results = await db_events.session.bulkGet(ids); const results = await db_events.session.bulkGet(ids);
return results.filter(item => item !== undefined); return results.filter((item) => item !== undefined);
} }
// SCENARIO 2: Fallback broad search (Only if no active filters) // SCENARIO 2: Fallback broad search (Only if no active filters)
if (event_id && !$events_loc.pres_mgmt.fulltext_search_qry_str && !$events_loc.pres_mgmt.location_name_qry_str) { if (
if (log_lvl) console.log(`Session Page LQ: Fallback search for event: ${event_id}`); event_id &&
!$events_loc.pres_mgmt.fulltext_search_qry_str &&
!$events_loc.pres_mgmt.location_name_qry_str
) {
if (log_lvl)
console.log(
`Session Page LQ: Fallback search for event: ${event_id}`
);
return await db_events.session return await db_events.session
.where('event_id') .where('event_id')
.equals(event_id) .equals(event_id)
@@ -114,7 +131,9 @@
// Standardized Reactive Search Pattern (Aether UI V3) // Standardized Reactive Search Pattern (Aether UI V3)
let search_params = $derived({ let search_params = $derived({
v: $events_loc.pres_mgmt.search_version, v: $events_loc.pres_mgmt.search_version,
str: ($events_loc.pres_mgmt.fulltext_search_qry_str ?? '').toLowerCase().trim(), str: ($events_loc.pres_mgmt.fulltext_search_qry_str ?? '')
.toLowerCase()
.trim(),
location: $events_loc.pres_mgmt.location_name_qry_str, location: $events_loc.pres_mgmt.location_name_qry_str,
event_id: $events_slct?.event_id, event_id: $events_slct?.event_id,
remote_first: $events_loc.pres_mgmt.qry__remote_first remote_first: $events_loc.pres_mgmt.qry__remote_first
@@ -140,9 +159,12 @@
const current_search_id = ++last_search_id; const current_search_id = ++last_search_id;
const event_id = params.event_id; const event_id = params.event_id;
const remote_first = params.remote_first; const remote_first = params.remote_first;
if (log_lvl) console.log(`[Session Search #${current_search_id}] Refreshing (remote=${remote_first}, event=${event_id}, str=${params.str})...`); if (log_lvl)
console.log(
`[Session Search #${current_search_id}] Refreshing (remote=${remote_first}, event=${event_id}, str=${params.str})...`
);
untrack(() => { untrack(() => {
$events_sess.pres_mgmt.status_qry__search = 'loading'; $events_sess.pres_mgmt.status_qry__search = 'loading';
}); });
@@ -157,34 +179,52 @@
let local_results = await db_events.session let local_results = await db_events.session
.where('event_id') .where('event_id')
.equals(event_id) .equals(event_id)
.filter(session => { .filter((session) => {
if (location_name && session.event_location_name !== location_name) return false; if (
location_name &&
session.event_location_name !== location_name
)
return false;
if (qry_str) { if (qry_str) {
const name = (session.name ?? '').toLowerCase(); const name = (session.name ?? '').toLowerCase();
const code = (session.code ?? '').toLowerCase(); const code = (session.code ?? '').toLowerCase();
const description = (session.description ?? '').toLowerCase(); const description = (
const qry_string = (session.default_qry_str ?? '').toLowerCase(); session.description ?? ''
).toLowerCase();
const match = name.includes(qry_str) || const qry_string = (
code.includes(qry_str) || session.default_qry_str ?? ''
description.includes(qry_str) || ).toLowerCase();
qry_string.includes(qry_str);
const match =
name.includes(qry_str) ||
code.includes(qry_str) ||
description.includes(qry_str) ||
qry_string.includes(qry_str);
if (!match) return false; if (!match) return false;
} }
return true; return true;
}) })
.toArray(); .toArray();
local_results.sort((a, b) => (a.name ?? '').localeCompare(b.name ?? '')); local_results.sort((a, b) =>
const local_ids = local_results.map(s => s.id || s.event_session_id).filter(Boolean); (a.name ?? '').localeCompare(b.name ?? '')
);
const local_ids = local_results
.map((s) => s.id || s.event_session_id)
.filter(Boolean);
if (current_search_id === last_search_id) { if (current_search_id === last_search_id) {
if (log_lvl) console.log(`[Session Search #${current_search_id}] Fast Path found ${local_ids.length} items locally.`); if (log_lvl)
console.log(
`[Session Search #${current_search_id}] Fast Path found ${local_ids.length} items locally.`
);
untrack(() => { untrack(() => {
event_session_id_li = local_ids; event_session_id_li = local_ids;
if (local_ids.length > 0) $events_sess.pres_mgmt.status_qry__search = 'done'; if (local_ids.length > 0)
$events_sess.pres_mgmt.status_qry__search =
'done';
}); });
} }
} }
@@ -214,32 +254,46 @@
if (current_search_id === last_search_id) { if (current_search_id === last_search_id) {
let api_results = results || []; let api_results = results || [];
// Client-side Filter Guard: Ensure API results match local criteria (Backup filter) // Client-side Filter Guard: Ensure API results match local criteria (Backup filter)
api_results = api_results.filter(session => { api_results = api_results.filter((session) => {
if (location_name && session.event_location_name !== location_name) return false; if (
location_name &&
session.event_location_name !== location_name
)
return false;
if (qry_str) { if (qry_str) {
const name = (session.name ?? '').toLowerCase(); const name = (session.name ?? '').toLowerCase();
const code = (session.code ?? '').toLowerCase(); const code = (session.code ?? '').toLowerCase();
const description = (session.description ?? '').toLowerCase(); const description = (
const qry_string = (session.default_qry_str ?? '').toLowerCase(); session.description ?? ''
const match = name.includes(qry_str) || ).toLowerCase();
code.includes(qry_str) || const qry_string = (
description.includes(qry_str) || session.default_qry_str ?? ''
qry_string.includes(qry_str); ).toLowerCase();
const match =
name.includes(qry_str) ||
code.includes(qry_str) ||
description.includes(qry_str) ||
qry_string.includes(qry_str);
if (!match) return false; if (!match) return false;
} }
return true; return true;
}); });
const api_ids = api_results.map((s: any) => s.id || s.event_session_id).filter(Boolean); const api_ids = api_results
.map((s: any) => s.id || s.event_session_id)
.filter(Boolean);
untrack(() => { untrack(() => {
$events_slct.event_session_obj_li = api_results; $events_slct.event_session_obj_li = api_results;
event_session_id_li = api_ids; event_session_id_li = api_ids;
$events_sess.pres_mgmt.status_qry__search = 'done'; $events_sess.pres_mgmt.status_qry__search = 'done';
}); });
if (log_lvl) console.log(`[Session Search #${current_search_id}] Revalidation Complete. Found ${api_ids.length} items.`); if (log_lvl)
console.log(
`[Session Search #${current_search_id}] Revalidation Complete. Found ${api_ids.length} items.`
);
} }
} catch (error) { } catch (error) {
if (current_search_id === last_search_id) { if (current_search_id === last_search_id) {
@@ -251,7 +305,10 @@
} }
} }
if ($events_loc.pres_mgmt?.save_search_text && $events_loc.pres_mgmt?.saved_search__session) { if (
$events_loc.pres_mgmt?.save_search_text &&
$events_loc.pres_mgmt?.saved_search__session
) {
$events_loc.pres_mgmt.fulltext_search_qry_str = $events_loc.pres_mgmt.fulltext_search_qry_str =
$events_loc.pres_mgmt.saved_search__session; $events_loc.pres_mgmt.saved_search__session;
} }
@@ -278,7 +335,10 @@
<svelte:head> <svelte:head>
<title> <title>
&AElig;: &AElig;:
{ae_util.shorten_string({ string: $lq__event_obj?.name, max_length: 12 })} {ae_util.shorten_string({
string: $lq__event_obj?.name,
max_length: 12
})}
- Pres Mgmt - {$events_loc?.title} - Pres Mgmt - {$events_loc?.title}
</title> </title>
</svelte:head> </svelte:head>
@@ -294,17 +354,24 @@
<header class="ae_module_header"> <header class="ae_module_header">
<span class="flex flex-row flex-wrap gap-1 items-center justify-center"> <span class="flex flex-row flex-wrap gap-1 items-center justify-center">
<span class="fas fa-calendar-day m-1 text-neutral-800/80"></span> <span class="fas fa-calendar-day m-1 text-neutral-800/80"></span>
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
if ($events_loc.pres_mgmt.show_content__event_view == 'manage_files') { if (
$events_loc.pres_mgmt.show_content__event_view ==
'manage_files'
) {
$events_loc.pres_mgmt.show_content__event_view = null; $events_loc.pres_mgmt.show_content__event_view = null;
} else { } else {
$events_loc.pres_mgmt.show_content__event_view = 'manage_files'; $events_loc.pres_mgmt.show_content__event_view =
'manage_files';
} }
}} }}
class="btn ae_btn_secondary" class="btn ae_btn_secondary"
class:preset-filled-secondary-500={$events_loc.pres_mgmt.show_content__event_view == 'manage_files'} class:preset-filled-secondary-500={$events_loc.pres_mgmt
class:preset-filled-tertiary-500={$events_loc.pres_mgmt.show_content__event_view != 'manage_files'} .show_content__event_view == 'manage_files'}
class:preset-filled-tertiary-500={$events_loc.pres_mgmt
.show_content__event_view != 'manage_files'}
class:hidden={!$ae_loc.administrator_access} class:hidden={!$ae_loc.administrator_access}
title="View event search or manage files for the event" title="View event search or manage files for the event"
> >
@@ -325,7 +392,9 @@
</button> </button>
</span> </span>
<h2 class="text-2xl font-bold text-center max-w-xs sm:max-w-lg md:max-w-2xl"> <h2
class="text-2xl font-bold text-center max-w-xs sm:max-w-lg md:max-w-2xl"
>
<span class="sm:inline-block md:hidden"> <span class="sm:inline-block md:hidden">
{$lq__event_obj.cfg_json?.short_name ?? $lq__event_obj?.name} {$lq__event_obj.cfg_json?.short_name ?? $lq__event_obj?.name}
</span> </span>
@@ -345,12 +414,15 @@
autocomplete="off" autocomplete="off"
class="form grow flex flex-row flex-wrap gap-1 justify-center items-center w-full" class="form grow flex flex-row flex-wrap gap-1 justify-center items-center w-full"
> >
<button type="button" <button
type="button"
class="btn btn-sm mx-1 ae_btn_warning" class="btn btn-sm mx-1 ae_btn_warning"
class:hidden={!$ae_loc.authenticated_access} class:hidden={!$ae_loc.authenticated_access}
onclick={() => { onclick={() => {
$events_loc.pres_mgmt.location_name_qry_str = ''; $events_loc.pres_mgmt.location_name_qry_str = '';
$events_loc.pres_mgmt.show_content__session_search_room_name = !$events_loc.pres_mgmt.show_content__session_search_room_name; $events_loc.pres_mgmt.show_content__session_search_room_name =
!$events_loc.pres_mgmt
.show_content__session_search_room_name;
handle_search_trigger(); handle_search_trigger();
}} }}
title="Search by location name" title="Search by location name"
@@ -363,24 +435,30 @@
id="session_location_name_list" id="session_location_name_list"
bind:value={$events_loc.pres_mgmt.location_name_qry_str} bind:value={$events_loc.pres_mgmt.location_name_qry_str}
class="input text-xs font-bold font-mono min-w-fit w-min max-w-40 transition-all mx-1" class="input text-xs font-bold font-mono min-w-fit w-min max-w-40 transition-all mx-1"
class:hidden={!$ae_loc.authenticated_access || !$events_loc.pres_mgmt.show_content__session_search_room_name} class:hidden={!$ae_loc.authenticated_access ||
!$events_loc.pres_mgmt
.show_content__session_search_room_name}
onchange={() => handle_search_trigger()} onchange={() => handle_search_trigger()}
title="Select to filter based on the location/room name" title="Select to filter based on the location/room name"
> >
{#if $lq__event_location_obj_li} {#if $lq__event_location_obj_li}
<option value="">Location / Room</option> <option value="">Location / Room</option>
{#each $lq__event_location_obj_li as event_location_obj} {#each $lq__event_location_obj_li as event_location_obj}
<option value={event_location_obj?.name}>{event_location_obj.name}</option> <option value={event_location_obj?.name}
>{event_location_obj.name}</option
>
{/each} {/each}
{/if} {/if}
</select> </select>
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
$events_loc.pres_mgmt.fulltext_search_qry_str = ''; $events_loc.pres_mgmt.fulltext_search_qry_str = '';
handle_search_trigger(); handle_search_trigger();
}} }}
class:hidden={!$events_loc.pres_mgmt.fulltext_search_qry_str} class:hidden={!$events_loc.pres_mgmt
.fulltext_search_qry_str}
class="btn btn-sm mx-1 ae_btn_warning" class="btn btn-sm mx-1 ae_btn_warning"
title="Clear search text" title="Clear search text"
> >
@@ -406,19 +484,26 @@
title="Search for a session" title="Search for a session"
> >
{#if $events_sess.pres_mgmt.status_qry__search == 'loading'} {#if $events_sess.pres_mgmt.status_qry__search == 'loading'}
<span class="fas fa-spinner fa-spin mx-1 text-success-800-200"></span> <span
class="fas fa-spinner fa-spin mx-1 text-success-800-200"
></span>
{:else} {:else}
<span class="fas fa-search mx-1 text-neutral-800/80"></span> <span class="fas fa-search mx-1 text-neutral-800/80"
></span>
{/if} {/if}
Search Search
</button> </button>
{#if $ae_loc.edit_mode} {#if $ae_loc.edit_mode}
<label class="flex items-center gap-1 cursor-pointer bg-surface-200-800 px-2 py-1 rounded-token text-xs font-semibold opacity-70 hover:opacity-100 transition-all"> <label
class="flex items-center gap-1 cursor-pointer bg-surface-200-800 px-2 py-1 rounded-token text-xs font-semibold opacity-70 hover:opacity-100 transition-all"
>
<span> Remote First </span> <span> Remote First </span>
<input <input
type="checkbox" type="checkbox"
bind:checked={$events_loc.pres_mgmt.qry__remote_first} bind:checked={
$events_loc.pres_mgmt.qry__remote_first
}
onchange={() => handle_search_trigger()} onchange={() => handle_search_trigger()}
class="checkbox checkbox-sm" class="checkbox checkbox-sm"
/> />
@@ -429,27 +514,40 @@
{#if event_session_id_li.length} {#if event_session_id_li.length}
<Comp_event_session_obj_li_wrapper <Comp_event_session_obj_li_wrapper
lq__event_session_obj_li={lq__event_session_obj_li} {lq__event_session_obj_li}
hide__session_location={$events_loc.pres_mgmt?.hide__session_li_location_field} hide__session_location={$events_loc.pres_mgmt
hide__session_poc={$events_loc.pres_mgmt?.hide__session_li_poc_field} ?.hide__session_li_location_field}
hide__launcher_link_legacy={$events_loc.pres_mgmt?.hide__launcher_link_legacy} hide__session_poc={$events_loc.pres_mgmt
?.hide__session_li_poc_field}
hide__launcher_link_legacy={$events_loc.pres_mgmt
?.hide__launcher_link_legacy}
hide__launcher_link={$events_loc.pres_mgmt?.hide__launcher_link} hide__launcher_link={$events_loc.pres_mgmt?.hide__launcher_link}
hide__location_link={$events_loc.pres_mgmt?.hide__location_link} hide__location_link={$events_loc.pres_mgmt?.hide__location_link}
log_lvl={1} log_lvl={1}
/> />
{:else if $events_sess.pres_mgmt.status_qry__search === 'loading'} {:else if $events_sess.pres_mgmt.status_qry__search === 'loading'}
<div class="flex flex-col items-center justify-center p-20 opacity-50 text-center"> <div
class="flex flex-col items-center justify-center p-20 opacity-50 text-center"
>
<span class="fas fa-spinner fa-spin text-4xl mb-4"></span> <span class="fas fa-spinner fa-spin text-4xl mb-4"></span>
<p class="text-xl">Searching sessions...</p> <p class="text-xl">Searching sessions...</p>
</div> </div>
{:else} {:else}
<section class="text-center text-2xl bg-yellow-100 p-4 rounded-md lg:max-w-lg space-y-2 mx-auto"> <section
class="text-center text-2xl bg-yellow-100 p-4 rounded-md lg:max-w-lg space-y-2 mx-auto"
>
<div> <div>
<span class="fas fa-exclamation-triangle text-2xl text-yellow-500"></span> <span
class="fas fa-exclamation-triangle text-2xl text-yellow-500"
></span>
<strong>No results to show</strong> <strong>No results to show</strong>
<span class="fas fa-exclamation-triangle text-2xl text-yellow-500"></span> <span
class="fas fa-exclamation-triangle text-2xl text-yellow-500"
></span>
<br /> <br />
<div class="text-lg">Please use the search above to find your session.</div> <div class="text-lg">
Please use the search above to find your session.
</div>
</div> </div>
<div> <div>
<strong>Search by:</strong> <strong>Search by:</strong>
@@ -487,13 +585,18 @@
<span> <span>
<div class="text-lg"> <div class="text-lg">
<span class="fas fa-upload"></span> <span class="fas fa-upload"></span>
<strong class="">Upload global event files only!</strong> <strong class=""
>Upload global event files only!</strong
>
</div> </div>
<div class="text-sm text-gray-600 dark:text-gray-400 italic"> <div
class="text-sm text-gray-600 dark:text-gray-400 italic"
>
<strong>Global event files only</strong><br /> <strong>Global event files only</strong><br />
Recommended: PowerPoint (pptx) or Keynote (key)<br /> Recommended: PowerPoint (pptx) or Keynote (key)<br
Media: Audio and videos files should be directly embedded in PowerPoint (PPTX) />
files<br /> Media: Audio and videos files should be directly embedded
in PowerPoint (PPTX) files<br />
Supplemental files: mp4, PDF, Word Doc, Excel, txt, etc Supplemental files: mp4, PDF, Word Doc, Excel, txt, etc
</div> </div>
</span> </span>
@@ -504,8 +607,12 @@
<Element_manage_event_file_li_wrap <Element_manage_event_file_li_wrap
link_to_type={'event'} link_to_type={'event'}
link_to_id={$lq__event_obj?.event_id} link_to_id={$lq__event_obj?.event_id}
allow_basic={$events_loc.auth__kv.session[$lq__event_obj?.event_id]} allow_basic={$events_loc.auth__kv.session[
allow_moderator={$events_loc.auth__kv.session[$lq__event_obj?.event_id]} $lq__event_obj?.event_id
]}
allow_moderator={$events_loc.auth__kv.session[
$lq__event_obj?.event_id
]}
container_class_li={''} container_class_li={''}
/> />
</div> </div>
@@ -517,9 +624,12 @@
<span class="fas fa-exclamation-triangle text-red-500 m-1"></span> <span class="fas fa-exclamation-triangle text-red-500 m-1"></span>
Event Disabled Event Disabled
</h2> </h2>
<p>This event is currently disabled. Please contact the event organizer for more information.</p> <p>
This event is currently disabled. Please contact the event organizer
for more information.
</p>
</div> </div>
{/if} {/if}
<style lang="postcss"> <style lang="postcss">
</style> </style>

View File

@@ -43,7 +43,9 @@
<!-- New standard page specific menu 2025-06-20 --> <!-- New standard page specific menu 2025-06-20 -->
<div class="pres_mgmt__session_search_menu ae_container_module_menu"> <div class="pres_mgmt__session_search_menu ae_container_module_menu">
<!-- BEGIN: The menu button options --> <!-- BEGIN: The menu button options -->
<div class="flex flex-row flex-wrap gap-1 items-center justify-around w-full"> <div
class="flex flex-row flex-wrap gap-1 items-center justify-around w-full"
>
<Comp__events_menu_nav <Comp__events_menu_nav
hide={!$ae_loc.authenticated_access} hide={!$ae_loc.authenticated_access}
event_id={$lq__event_obj?.event_id} event_id={$lq__event_obj?.event_id}
@@ -57,19 +59,24 @@
class="ae_menu__object_options flex flex-row flex-wrap gap-0.5 items-center justify-around" class="ae_menu__object_options flex flex-row flex-wrap gap-0.5 items-center justify-around"
> >
<!-- Button to toggle between the regular event session search view and managing event files --> <!-- Button to toggle between the regular event session search view and managing event files -->
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
if ($events_loc.pres_mgmt.show_content__event_view == 'manage_files') { if (
$events_loc.pres_mgmt.show_content__event_view ==
'manage_files'
) {
$events_loc.pres_mgmt.show_content__event_view = null; $events_loc.pres_mgmt.show_content__event_view = null;
} else { } else {
$events_loc.pres_mgmt.show_content__event_view = 'manage_files'; $events_loc.pres_mgmt.show_content__event_view =
'manage_files';
} }
}} }}
class={ae_snip.classes__events_pres_mgmt_menu__button_special} class={ae_snip.classes__events_pres_mgmt_menu__button_special}
class:preset-filled-primary-500={$events_loc.pres_mgmt.show_content__event_view == class:preset-filled-primary-500={$events_loc.pres_mgmt
'manage_files'} .show_content__event_view == 'manage_files'}
class:preset-tonal-primary={$events_loc.pres_mgmt.show_content__event_view != class:preset-tonal-primary={$events_loc.pres_mgmt
'manage_files'} .show_content__event_view != 'manage_files'}
class:hidden={!$ae_loc.administrator_access || 1 == 1} class:hidden={!$ae_loc.administrator_access || 1 == 1}
disabled={!$ae_loc.manager_access} disabled={!$ae_loc.manager_access}
title="Session search or manage files for the event" title="Session search or manage files for the event"
@@ -91,18 +98,24 @@
</button> </button>
<!-- Button to toggle between showing and not showing the extended options menu --> <!-- Button to toggle between showing and not showing the extended options menu -->
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
if ($events_loc.pres_mgmt.show_menu__session_search == 'options') { if (
$events_loc.pres_mgmt.show_menu__session_search ==
'options'
) {
$events_loc.pres_mgmt.show_menu__session_search = null; $events_loc.pres_mgmt.show_menu__session_search = null;
} else { } else {
$events_loc.pres_mgmt.show_menu__session_search = 'options'; $events_loc.pres_mgmt.show_menu__session_search =
'options';
} }
}} }}
class="btn btn-sm mx-1" class="btn btn-sm mx-1"
class:ae_btn_info_filled={$events_loc.pres_mgmt.show_menu__session_search == class:ae_btn_info_filled={$events_loc.pres_mgmt
'options'} .show_menu__session_search == 'options'}
class:ae_btn_info={$events_loc.pres_mgmt.show_menu__session_search != 'options'} class:ae_btn_info={$events_loc.pres_mgmt
.show_menu__session_search != 'options'}
class:hidden={!$ae_loc.trusted_access} class:hidden={!$ae_loc.trusted_access}
title="Options for the event session search" title="Options for the event session search"
> >
@@ -115,17 +128,24 @@
Options? Options?
</button> </button>
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
if ($events_loc.pres_mgmt.show_menu__session_search == 'help') { if (
$events_loc.pres_mgmt.show_menu__session_search ==
'help'
) {
$events_loc.pres_mgmt.show_menu__session_search = null; $events_loc.pres_mgmt.show_menu__session_search = null;
} else { } else {
$events_loc.pres_mgmt.show_menu__session_search = 'help'; $events_loc.pres_mgmt.show_menu__session_search =
'help';
} }
}} }}
class="btn btn-sm mx-1" class="btn btn-sm mx-1"
class:ae_btn_info_filled={$events_loc.pres_mgmt.show_menu__session_search == 'help'} class:ae_btn_info_filled={$events_loc.pres_mgmt
class:ae_btn_info={$events_loc.pres_mgmt.show_menu__session_search != 'help'} .show_menu__session_search == 'help'}
class:ae_btn_info={$events_loc.pres_mgmt
.show_menu__session_search != 'help'}
title="Help and information about the session search" title="Help and information about the session search"
> >
<span class="fas fa-question-circle m-1"></span> <span class="fas fa-question-circle m-1"></span>
@@ -145,17 +165,25 @@
<!-- BEGIN: The expanded menu area for information and options --> <!-- BEGIN: The expanded menu area for information and options -->
<div <div
class:ae_container_module_options={$events_loc.pres_mgmt.show_menu__session_search == class:ae_container_module_options={$events_loc.pres_mgmt
.show_menu__session_search == 'options'}
class:hidden={$events_loc.pres_mgmt.show_menu__session_search !=
'options'} 'options'}
class:hidden={$events_loc.pres_mgmt.show_menu__session_search != 'options'}
> >
<div class="ae_comp__event_menu_opts w-full"> <div class="ae_comp__event_menu_opts w-full">
<h2 class="text-sm font-semibold text-center pb-1">Æ Event Menu Options</h2> <h2 class="text-sm font-semibold text-center pb-1">
Æ Event Menu Options
</h2>
<div class="flex flex-row flex-wrap gap-1 items-center justify-between"> <div
<div class="flex flex-row gap-1 items-center justify-evenly relative"> class="flex flex-row flex-wrap gap-1 items-center justify-between"
>
<div
class="flex flex-row gap-1 items-center justify-evenly relative"
>
<!-- Toggle alert status --> <!-- Toggle alert status -->
<button type="button" <button
type="button"
disabled={!$ae_loc.administrator_access} disabled={!$ae_loc.administrator_access}
onclick={() => { onclick={() => {
if ( if (
@@ -193,7 +221,9 @@
hover:opacity-100 hover:opacity-100
transition-all transition-all
" "
title={$lq__event_obj?.alert ? 'Remove alert status' : 'Mark as alert'} title={$lq__event_obj?.alert
? 'Remove alert status'
: 'Mark as alert'}
> >
{#if $lq__event_obj?.alert} {#if $lq__event_obj?.alert}
<!-- class="fas fa-exclamation-triangle" --> <!-- class="fas fa-exclamation-triangle" -->
@@ -211,7 +241,9 @@
</button> </button>
</div> </div>
<div class="flex flex-row flex-wrap gap-1 items-center justify-evenly"> <div
class="flex flex-row flex-wrap gap-1 items-center justify-evenly"
>
<Element_ae_crud <Element_ae_crud
trigger_patch={ae_triggers.priority} trigger_patch={ae_triggers.priority}
api_cfg={$ae_api} api_cfg={$ae_api}
@@ -237,7 +269,8 @@
}} }}
> >
<!-- {@html $lq__event_obj?.priority ? '<span class="fas fa-star m-1"></span> High Priority' : '<span class="far fa-star m-1"></span> Priority not set'} --> <!-- {@html $lq__event_obj?.priority ? '<span class="fas fa-star m-1"></span> High Priority' : '<span class="far fa-star m-1"></span> Priority not set'} -->
<button type="button" <button
type="button"
disabled={!$ae_loc.administrator_access} disabled={!$ae_loc.administrator_access}
onclick={() => { onclick={() => {
if ( if (
@@ -248,7 +281,8 @@
return false; return false;
} }
ae_tmp.value__priority = !$lq__event_obj?.priority; ae_tmp.value__priority =
!$lq__event_obj?.priority;
// $events_slct.exhibit_tracking_obj.priority = !$lq__event_obj?.priority; // $events_slct.exhibit_tracking_obj.priority = !$lq__event_obj?.priority;
ae_triggers.priority = true; ae_triggers.priority = true;
@@ -295,7 +329,8 @@
}} }}
> >
<!-- {($lq__event_obj?.hide ? 'Hidden' : 'Not Hidden')} --> <!-- {($lq__event_obj?.hide ? 'Hidden' : 'Not Hidden')} -->
<button type="button" <button
type="button"
disabled={!$ae_loc.manager_access} disabled={!$ae_loc.manager_access}
onclick={() => { onclick={() => {
if ( if (
@@ -357,7 +392,8 @@
}} }}
> >
<!-- {($lq__event_obj?.enable ? 'Enabled' : 'Disabled')} --> <!-- {($lq__event_obj?.enable ? 'Enabled' : 'Disabled')} -->
<button type="button" <button
type="button"
disabled={!$ae_loc.manager_access} disabled={!$ae_loc.manager_access}
onclick={() => { onclick={() => {
if ( if (
@@ -393,10 +429,15 @@
<!-- Group --> <!-- Group -->
{#if $ae_loc.manager_access} {#if $ae_loc.manager_access}
<button type="button" <button
type="button"
disabled={!$ae_loc.super_access} disabled={!$ae_loc.super_access}
onclick={() => { onclick={() => {
if (!confirm('Are you sure you want to delete this session?')) { if (
!confirm(
'Are you sure you want to delete this session?'
)
) {
return false; return false;
} }
@@ -420,7 +461,8 @@
Delete Delete
</button> </button>
{:else if $ae_loc.manager_access} {:else if $ae_loc.manager_access}
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
if ( if (
!confirm( !confirm(
@@ -454,16 +496,20 @@
</div> </div>
</div> </div>
<div class="flex flex-row flex-wrap gap-1 items-center justify-center w-full p-1"> <div
class="flex flex-row flex-wrap gap-1 items-center justify-center w-full p-1"
>
<!-- Save search text option toggle button? --> <!-- Save search text option toggle button? -->
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
$events_loc.pres_mgmt.save_search_text = $events_loc.pres_mgmt.save_search_text =
!$events_loc.pres_mgmt.save_search_text; !$events_loc.pres_mgmt.save_search_text;
}} }}
class="btn btn-sm justify-between w-full max-w-50 text-center" class="btn btn-sm justify-between w-full max-w-50 text-center"
class:ae_btn_surface={$events_loc.pres_mgmt.save_search_text} class:ae_btn_surface={$events_loc.pres_mgmt.save_search_text}
class:ae_btn_surface_outlined={!$events_loc.pres_mgmt.save_search_text} class:ae_btn_surface_outlined={!$events_loc.pres_mgmt
.save_search_text}
title="Save the search text for this session search?" title="Save the search text for this session search?"
> >
{#if $events_loc.pres_mgmt.save_search_text} {#if $events_loc.pres_mgmt.save_search_text}
@@ -482,7 +528,8 @@
</button> </button>
<!-- Show/Hide launcher links (new version) --> <!-- Show/Hide launcher links (new version) -->
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
$events_loc.pres_mgmt.hide__launcher_link = $events_loc.pres_mgmt.hide__launcher_link =
!$events_loc.pres_mgmt.hide__launcher_link; !$events_loc.pres_mgmt.hide__launcher_link;
@@ -503,7 +550,8 @@
</button> </button>
<!-- Show/Hide launcher links (legacy version) --> <!-- Show/Hide launcher links (legacy version) -->
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
$events_loc.pres_mgmt.hide__launcher_link_legacy = $events_loc.pres_mgmt.hide__launcher_link_legacy =
!$events_loc.pres_mgmt.hide__launcher_link_legacy; !$events_loc.pres_mgmt.hide__launcher_link_legacy;
@@ -524,7 +572,8 @@
</button> </button>
<!-- Show/Hide links to the location (room) --> <!-- Show/Hide links to the location (room) -->
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
$events_loc.pres_mgmt.hide__location_link = $events_loc.pres_mgmt.hide__location_link =
!$events_loc.pres_mgmt.hide__location_link; !$events_loc.pres_mgmt.hide__location_link;
@@ -545,7 +594,8 @@
</button> </button>
<!-- Show/Hide the Location (room) column in tables and lists --> <!-- Show/Hide the Location (room) column in tables and lists -->
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
$events_loc.pres_mgmt.hide__session_li_location_field = $events_loc.pres_mgmt.hide__session_li_location_field =
!$events_loc.pres_mgmt.hide__session_li_location_field; !$events_loc.pres_mgmt.hide__session_li_location_field;
@@ -554,7 +604,8 @@
title="Toggle showing the Location column in session lists and tables" title="Toggle showing the Location column in session lists and tables"
> >
<span <span
class="fas {$events_loc.pres_mgmt.hide__session_li_location_field class="fas {$events_loc.pres_mgmt
.hide__session_li_location_field
? 'fa-toggle-off' ? 'fa-toggle-off'
: 'fa-toggle-on'} m-1" : 'fa-toggle-on'} m-1"
></span> ></span>
@@ -567,7 +618,8 @@
</button> </button>
<!-- Show/Hide the POC column in tables and lists --> <!-- Show/Hide the POC column in tables and lists -->
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
$events_loc.pres_mgmt.hide__session_li_poc_field = $events_loc.pres_mgmt.hide__session_li_poc_field =
!$events_loc.pres_mgmt.hide__session_li_poc_field; !$events_loc.pres_mgmt.hide__session_li_poc_field;
@@ -606,7 +658,8 @@
/> />
<div> <div>
<button type="button" <button
type="button"
onclick={() => { onclick={() => {
$events_loc.pres_mgmt.show_menu__session_search = $events_loc.pres_mgmt.show_menu__session_search =
!$events_loc.pres_mgmt.show_menu__session_search; !$events_loc.pres_mgmt.show_menu__session_search;

View File

@@ -7,8 +7,12 @@
lq__auth__event_presenter_obj: any; lq__auth__event_presenter_obj: any;
} }
let { data, event_session_id, lq__event_session_obj, lq__auth__event_presenter_obj }: Props = let {
$props(); data,
event_session_id,
lq__event_session_obj,
lq__auth__event_presenter_obj
}: Props = $props();
import { browser } from '$app/environment'; import { browser } from '$app/environment';
import { goto } from '$app/navigation'; import { goto } from '$app/navigation';
@@ -33,7 +37,10 @@
if (browser) { if (browser) {
console.log('Browser environment detected.'); console.log('Browser environment detected.');
console.log(`lq__auth__event_presenter_obj = `, $lq__auth__event_presenter_obj); console.log(
`lq__auth__event_presenter_obj = `,
$lq__auth__event_presenter_obj
);
let url_person_id = data.url.searchParams.get('person_id'); let url_person_id = data.url.searchParams.get('person_id');
let url_person_pass = data.url.searchParams.get('person_pass'); let url_person_pass = data.url.searchParams.get('person_pass');
@@ -108,9 +115,13 @@
$events_loc.auth__person.entered_key = $events_sess.auth__entered_key; // need to verify entered_key... $events_loc.auth__person.entered_key = $events_sess.auth__entered_key; // need to verify entered_key...
$events_loc.auth__kv.person[$events_sess.auth__person.person_id] = true; $events_loc.auth__kv.person[$events_sess.auth__person.person_id] = true;
$events_loc.auth__kv.session[$events_sess.auth__person.session_id] = true; $events_loc.auth__kv.session[$events_sess.auth__person.session_id] =
$events_loc.auth__kv.presentation[$events_sess.auth__person.presentation_id] = false; // Set to false for session POC (LCI Champions). true;
$events_loc.auth__kv.presenter[$events_sess.auth__person.presenter_id] = false; // Set to false for session POC (LCI Champions). $events_loc.auth__kv.presentation[
$events_sess.auth__person.presentation_id
] = false; // Set to false for session POC (LCI Champions).
$events_loc.auth__kv.presenter[$events_sess.auth__person.presenter_id] =
false; // Set to false for session POC (LCI Champions).
// Setting again here... just because for now. // Setting again here... just because for now.
// $events_slct.event_presentation_id = $events_sess.auth__person.presentation_id; // $events_slct.event_presentation_id = $events_sess.auth__person.presentation_id;
@@ -137,20 +148,26 @@
// $lq__auth__event_presenter_obj.full_name // $lq__auth__event_presenter_obj.full_name
// $events_loc.auth__person.email = 'test@example.com'; // $events_loc.auth__person.email = 'test@example.com';
// $events_loc.auth__person.full_name = 'Test Person'; // $events_loc.auth__person.full_name = 'Test Person';
$events_loc.auth__person.presenter_id = $events_sess.auth__person.presenter_id; $events_loc.auth__person.presenter_id =
$events_sess.auth__person.presenter_id;
$events_loc.auth__kv.person[$events_sess.auth__person.person_id] = true; $events_loc.auth__kv.person[$events_sess.auth__person.person_id] = true;
// $events_loc.auth__kv.session[$events_sess.auth__person.session_id] = 'read'; // Set to 'read' for presenters. // $events_loc.auth__kv.session[$events_sess.auth__person.session_id] = 'read'; // Set to 'read' for presenters.
$events_loc.auth__kv.session[event_session_id] = 'read'; // Set to 'read' for presenters. $events_loc.auth__kv.session[event_session_id] = 'read'; // Set to 'read' for presenters.
$events_loc.auth__kv.presentation[$events_sess.auth__person.presentation_id] = true; // true implies read/write access $events_loc.auth__kv.presentation[
$events_loc.auth__kv.presenter[$events_sess.auth__person.presenter_id] = true; // true implies read/write access $events_sess.auth__person.presentation_id
] = true; // true implies read/write access
$events_loc.auth__kv.presenter[$events_sess.auth__person.presenter_id] =
true; // true implies read/write access
// Setting again here... just because for now. // Setting again here... just because for now.
// $events_slct.auth__event_presentation_id = $events_sess.auth__person.presentation_id; // $events_slct.auth__event_presentation_id = $events_sess.auth__person.presentation_id;
// $events_slct.auth__event_presenter_id = $events_sess.auth__person.presenter_id; // $events_slct.auth__event_presenter_id = $events_sess.auth__person.presenter_id;
$events_loc.auth__person.presentation_id = $events_sess.auth__person.presentation_id; $events_loc.auth__person.presentation_id =
$events_loc.auth__person.presenter_id = $events_sess.auth__person.presenter_id; $events_sess.auth__person.presentation_id;
$events_loc.auth__person.presenter_id =
$events_sess.auth__person.presenter_id;
} }
function sign_out() { function sign_out() {
@@ -184,7 +201,8 @@
<span> <span>
{#if $events_loc.auth__person?.id} {#if $events_loc.auth__person?.id}
<button type="button" <button
type="button"
class="btn btn-sm preset-tonal-warning" class="btn btn-sm preset-tonal-warning"
onclick={() => { onclick={() => {
sign_out(); sign_out();
@@ -198,10 +216,12 @@
: ''} : ''}
</button> </button>
{:else if $events_sess.auth__person.presenter_id || $events_sess.auth__person.session_id} {:else if $events_sess.auth__person.presenter_id || $events_sess.auth__person.session_id}
<div class="border border-gray-200 p-2 rounded-md m-2 text-center space-y-2"> <div
class="border border-gray-200 p-2 rounded-md m-2 text-center space-y-2"
>
<div class="text-sm text-gray-500"> <div class="text-sm text-gray-500">
Use the link that was sent to your email address to sign in or enter your key and Use the link that was sent to your email address to sign in or
passcode to sign in. enter your key and passcode to sign in.
</div> </div>
<div> <div>
<input <input
@@ -209,16 +229,19 @@
class="input max-w-36" class="input max-w-36"
placeholder="Key" placeholder="Key"
value={$events_sess.auth__entered_key ?? ''} value={$events_sess.auth__entered_key ?? ''}
oninput={(e) => ($events_sess.auth__entered_key = e.target?.value)} oninput={(e) =>
($events_sess.auth__entered_key = e.target?.value)}
/> />
<input <input
type="text" type="text"
class="input max-w-36" class="input max-w-36"
placeholder="Passcode" placeholder="Passcode"
value={$events_sess.auth__entered_passcode ?? ''} value={$events_sess.auth__entered_passcode ?? ''}
oninput={(e) => ($events_sess.auth__entered_passcode = e.target?.value)} oninput={(e) =>
($events_sess.auth__entered_passcode = e.target?.value)}
/> />
<button type="button" <button
type="button"
class="btn btn-md preset-tonal-primary border border-primary-500" class="btn btn-md preset-tonal-primary border border-primary-500"
onclick={() => { onclick={() => {
console.log('Sign in with URL values'); console.log('Sign in with URL values');