All of the changes from today (Wednesday February 25, 2026) need to be reviewed. We spent over 6 hours trying to fix the page loading when viewing a fresh Session ID and Presentation ID. OpenAI and Gemini failed hard!!! I am at a lost and frustrated. I will probably need to deal with this myself. :-/
This commit is contained in:
@@ -124,280 +124,269 @@
|
||||
</h3>
|
||||
|
||||
<!-- Show presenters for this LiveQuery -->
|
||||
{#if $lq__event_presenter_obj_li?.length}
|
||||
<!-- <strong class="text-sm">Presenters:
|
||||
{#if $ae_loc.administrator_access}
|
||||
({$lq__event_presenter_obj_li?.length})
|
||||
{/if}
|
||||
</strong> -->
|
||||
<ul class="space-y-1 px-4 m-2 bg-gray-100 rounded-md">
|
||||
{#each $lq__event_presenter_obj_li as event_presenter_obj}
|
||||
<!-- This is a hack. I can not get the LiveQuery to work with specific presentation IDs. It only works with the session ID. I need to figure out how to get the presenters for the specific presentation. -->
|
||||
<!-- {#if event_presenter_obj.event_presentation_id == event_presentation_obj.event_presentation_id} -->
|
||||
<li
|
||||
class:dim={event_presenter_obj?.hide}
|
||||
class:dim_warning={!event_presenter_obj?.enable}
|
||||
class:hidden={!event_presenter_obj?.enable &&
|
||||
!$ae_loc.administrator_access}
|
||||
<ul class="space-y-1 px-4 m-2 bg-gray-100 rounded-md">
|
||||
{#each $lq__event_presenter_obj_li ?? [] as event_presenter_obj}
|
||||
<!-- This is a hack. I can not get the LiveQuery to work with specific presentation IDs. It only works with the session ID. I need to figure out how to get the presenters for the specific presentation. -->
|
||||
<!-- {#if event_presenter_obj.event_presentation_id == event_presentation_obj.event_presentation_id} -->
|
||||
<li
|
||||
class:dim={event_presenter_obj?.hide}
|
||||
class:dim_warning={!event_presenter_obj?.enable}
|
||||
class:hidden={!event_presenter_obj?.enable &&
|
||||
!$ae_loc.administrator_access}
|
||||
>
|
||||
<a
|
||||
href="/events/{event_presenter_obj.event_id}/presenter/{event_presenter_obj.event_presenter_id}"
|
||||
class:btn-sm={display_mode != 'default'}
|
||||
class="
|
||||
ae_obj__event_presenter
|
||||
btn preset-tonal-primary border border-primary-500
|
||||
hover:preset-filled-primary-500
|
||||
font-bold min-w-64 max-w-96 my-0.5
|
||||
overflow-hidden
|
||||
"
|
||||
title="Person ID: {event_presenter_obj.person_id}; Email: {event_presenter_obj.person_primary_email}"
|
||||
>
|
||||
<a
|
||||
href="/events/{event_presenter_obj.event_id}/presenter/{event_presenter_obj.event_presenter_id}"
|
||||
class:btn-sm={display_mode != 'default'}
|
||||
class="
|
||||
ae_obj__event_presenter
|
||||
btn preset-tonal-primary border border-primary-500
|
||||
hover:preset-filled-primary-500
|
||||
font-bold min-w-64 max-w-96 my-0.5
|
||||
overflow-hidden
|
||||
"
|
||||
title="Person ID: {event_presenter_obj.person_id}; Email: {event_presenter_obj.person_primary_email}"
|
||||
>
|
||||
{#if event_presenter_obj?.given_name && event_presenter_obj?.given_name != 'Group'}
|
||||
<span
|
||||
class="fas fa-user m-0.5 text-xs text-surface-800-200"
|
||||
></span>
|
||||
{:else if event_presenter_obj?.given_name == 'Group'}
|
||||
<span
|
||||
class="fas fa-users m-0.5 text-xs text-surface-800-200"
|
||||
></span>
|
||||
{:else}
|
||||
<span
|
||||
class="fas fa-user-slash m-0.5 text-xs text-surface-800-200"
|
||||
></span>
|
||||
{/if}
|
||||
{#if event_presenter_obj.priority}
|
||||
<span
|
||||
class="fas fa-star m-0.5 text-xs text-yellow-800-200"
|
||||
></span>
|
||||
{/if}
|
||||
<span class="text-center grow">
|
||||
{#if event_presenter_obj?.given_name && event_presenter_obj?.given_name != 'Group'}
|
||||
<span
|
||||
class="fas fa-user m-0.5 text-xs text-surface-800-200"
|
||||
></span>
|
||||
{event_presenter_obj?.full_name}
|
||||
{:else if event_presenter_obj?.given_name == 'Group'}
|
||||
<span
|
||||
class="fas fa-users m-0.5 text-xs text-surface-800-200"
|
||||
></span>
|
||||
{ae_util.shorten_string({
|
||||
string: event_presenter_obj?.affiliations,
|
||||
max_length: 25
|
||||
})}
|
||||
{:else}
|
||||
<span
|
||||
class="fas fa-user-slash m-0.5 text-xs text-surface-800-200"
|
||||
></span>
|
||||
--not set--
|
||||
{/if}
|
||||
{#if event_presenter_obj.priority}
|
||||
<span
|
||||
class="fas fa-star m-0.5 text-xs text-yellow-800-200"
|
||||
></span>
|
||||
{/if}
|
||||
<span class="text-center grow">
|
||||
{#if event_presenter_obj?.given_name && event_presenter_obj?.given_name != 'Group'}
|
||||
{event_presenter_obj?.full_name}
|
||||
{:else if event_presenter_obj?.given_name == 'Group'}
|
||||
{ae_util.shorten_string({
|
||||
string: event_presenter_obj?.affiliations,
|
||||
max_length: 25
|
||||
})}
|
||||
{:else}
|
||||
--not set--
|
||||
{/if}
|
||||
</span>
|
||||
|
||||
{#if event_presenter_obj?.file_count}
|
||||
<span
|
||||
class="badge preset-tonal-success hover:preset-filled-success-500"
|
||||
title="{event_presenter_obj.file_count} files"
|
||||
>
|
||||
<span class="fas fa-file-alt mx-1"></span>
|
||||
{event_presenter_obj?.file_count}×
|
||||
<!-- {event_presenter_obj?.file_count ? `(${event_presenter_obj?.file_count}× files)` : '(0 files)'} -->
|
||||
</span>
|
||||
{/if}
|
||||
</a>
|
||||
|
||||
{#if event_presenter_obj?.file_count}
|
||||
<span
|
||||
class="badge preset-tonal-success hover:preset-filled-success-500"
|
||||
title="{event_presenter_obj.file_count} files"
|
||||
>
|
||||
<span class="fas fa-file-alt mx-1"></span>
|
||||
{event_presenter_obj?.file_count}×
|
||||
<!-- {event_presenter_obj?.file_count ? `(${event_presenter_obj?.file_count}× files)` : '(0 files)'} -->
|
||||
</span>
|
||||
{/if}
|
||||
</a>
|
||||
{#if $events_loc?.pres_mgmt?.show__email_access_link && event_presenter_obj?.person_primary_email && ($ae_loc.administrator_access || !$events_loc.auth__person?.id)}
|
||||
<button
|
||||
type="button"
|
||||
onclick={() => {
|
||||
console.log('Email the access link');
|
||||
if (!event_presenter_obj.person_primary_email) {
|
||||
alert(
|
||||
'No email address found for this presenter.'
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (
|
||||
confirm(
|
||||
`This will send the sign in email to ${event_presenter_obj.person_primary_email}`
|
||||
)
|
||||
) {
|
||||
console.log(
|
||||
'Send the email to the presenter.'
|
||||
);
|
||||
} else {
|
||||
console.log('Cancelled sending the email.');
|
||||
return false;
|
||||
}
|
||||
|
||||
{#if $events_loc?.pres_mgmt?.show__email_access_link && event_presenter_obj?.person_primary_email && ($ae_loc.administrator_access || !$events_loc.auth__person?.id)}
|
||||
events_func.email_sign_in__event_presenter({
|
||||
api_cfg: $ae_api,
|
||||
to_email:
|
||||
event_presenter_obj.person_primary_email,
|
||||
to_name:
|
||||
event_presenter_obj?.full_name ??
|
||||
'-- not set --',
|
||||
base_url: $ae_loc.url_origin,
|
||||
person_id:
|
||||
event_presenter_obj?.person_id,
|
||||
person_passcode:
|
||||
event_presenter_obj.person_passcode ??
|
||||
'-- not set --',
|
||||
event_id:
|
||||
event_presenter_obj.event_id,
|
||||
event_session_id:
|
||||
event_presenter_obj.event_session_id,
|
||||
event_presentation_id:
|
||||
event_presenter_obj.event_presentation_id,
|
||||
event_presenter_id:
|
||||
event_presenter_obj.event_presenter_id,
|
||||
session_name:
|
||||
event_presenter_obj?.event_session_name ??
|
||||
'-- not set --',
|
||||
presentation_name:
|
||||
event_presenter_obj?.event_presentation_name ??
|
||||
'-- not set --'
|
||||
});
|
||||
}}
|
||||
class="btn preset-tonal-secondary border border-secondary-500 hover:preset-filled-secondary-500 my-0.5 transition-all hover:transition-all"
|
||||
class:btn-sm={display_mode != 'default'}
|
||||
title="Email the access link to the presenter"
|
||||
>
|
||||
<span class="fas fa-envelope mx-1"></span>
|
||||
Email Access Link
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
{#if $events_loc.pres_mgmt?.require__presenter_agree}
|
||||
{#if event_presenter_obj?.agree}
|
||||
<!-- {#if $ae_loc.trusted_access || $events_loc.auth__kv.presenter[event_presenter_obj.event_presenter_id]} -->
|
||||
<button
|
||||
type="button"
|
||||
disabled={!$ae_loc.trusted_access &&
|
||||
!$events_loc.auth__kv.presenter[
|
||||
event_presenter_obj
|
||||
.event_presenter_id
|
||||
]}
|
||||
onclick={() => {
|
||||
console.log('Email the access link');
|
||||
if (!event_presenter_obj.person_primary_email) {
|
||||
alert(
|
||||
'No email address found for this presenter.'
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (
|
||||
confirm(
|
||||
`This will send the sign in email to ${event_presenter_obj.person_primary_email}`
|
||||
)
|
||||
) {
|
||||
console.log(
|
||||
'Send the email to the presenter.'
|
||||
);
|
||||
} else {
|
||||
console.log('Cancelled sending the email.');
|
||||
return false;
|
||||
}
|
||||
console.log('View terms and conditions');
|
||||
$events_slct.event_presentation_id =
|
||||
event_presenter_obj.event_presentation_id;
|
||||
// $events_slct.event_presentation_obj = $lq__event_presentation_obj;
|
||||
|
||||
events_func.email_sign_in__event_presenter({
|
||||
api_cfg: $ae_api,
|
||||
to_email:
|
||||
event_presenter_obj.person_primary_email,
|
||||
to_name:
|
||||
event_presenter_obj?.full_name ??
|
||||
'-- not set --',
|
||||
base_url: $ae_loc.url_origin,
|
||||
person_id:
|
||||
event_presenter_obj?.person_id,
|
||||
person_passcode:
|
||||
event_presenter_obj.person_passcode ??
|
||||
'-- not set --',
|
||||
event_id:
|
||||
event_presenter_obj.event_id,
|
||||
event_session_id:
|
||||
event_presenter_obj.event_session_id,
|
||||
event_presentation_id:
|
||||
event_presenter_obj.event_presentation_id,
|
||||
event_presenter_id:
|
||||
event_presenter_obj.event_presenter_id,
|
||||
session_name:
|
||||
event_presenter_obj?.event_session_name ??
|
||||
'-- not set --',
|
||||
presentation_name:
|
||||
event_presenter_obj?.event_presentation_name ??
|
||||
'-- not set --'
|
||||
});
|
||||
$events_slct.event_presenter_id =
|
||||
event_presenter_obj.event_presenter_id;
|
||||
// $events_slct.event_presenter_obj = event_presenter_obj;
|
||||
|
||||
$events_sess.pres_mgmt.show_modal__presenter_agree =
|
||||
event_presenter_obj.event_presenter_id;
|
||||
}}
|
||||
class="btn preset-tonal-secondary border border-secondary-500 hover:preset-filled-secondary-500 my-0.5 transition-all hover:transition-all"
|
||||
class="btn preset-tonal-success hover:preset-filled-success-500 my-0.5"
|
||||
class:btn-sm={display_mode != 'default'}
|
||||
title="Email the access link to the presenter"
|
||||
title="Agreed to terms and conditions"
|
||||
>
|
||||
<span class="fas fa-envelope mx-1"></span>
|
||||
Email Access Link
|
||||
<span
|
||||
class="fas fa-check text-green-500 px-1"
|
||||
title="Agreed to terms and conditions"
|
||||
></span>
|
||||
Agreed
|
||||
</button>
|
||||
{:else}
|
||||
<button
|
||||
type="button"
|
||||
disabled={!$ae_loc.trusted_access &&
|
||||
!$events_loc.auth__kv.presenter[
|
||||
event_presenter_obj
|
||||
.event_presenter_id
|
||||
]}
|
||||
onclick={() => {
|
||||
console.log('View terms and conditions');
|
||||
|
||||
$events_slct.event_presentation_id =
|
||||
event_presenter_obj.event_presentation_id;
|
||||
// $events_slct.event_presentation_obj = $lq__event_presentation_obj;
|
||||
|
||||
$events_slct.event_presenter_id =
|
||||
event_presenter_obj.event_presenter_id;
|
||||
// $events_slct.event_presenter_obj = event_presenter_obj;
|
||||
|
||||
$events_sess.pres_mgmt.show_modal__presenter_agree =
|
||||
event_presenter_obj.event_presenter_id;
|
||||
}}
|
||||
class="btn preset-tonal-warning border border-warning-500 hover:preset-filled-warning-500 my-0.5"
|
||||
class:btn-sm={display_mode != 'default'}
|
||||
title="View terms and conditions"
|
||||
>
|
||||
<span
|
||||
class="fas fa-times bg-red-500 text-white px-1 mx-1"
|
||||
title="Not agreed to terms and conditions"
|
||||
></span>
|
||||
Not yet agreed
|
||||
</button>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{#if $events_loc.pres_mgmt?.require__presenter_agree}
|
||||
{#if event_presenter_obj?.agree}
|
||||
<!-- {#if $ae_loc.trusted_access || $events_loc.auth__kv.presenter[event_presenter_obj.event_presenter_id]} -->
|
||||
<button
|
||||
type="button"
|
||||
disabled={!$ae_loc.trusted_access &&
|
||||
!$events_loc.auth__kv.presenter[
|
||||
event_presenter_obj
|
||||
.event_presenter_id
|
||||
]}
|
||||
onclick={() => {
|
||||
console.log('View terms and conditions');
|
||||
$events_slct.event_presentation_id =
|
||||
event_presenter_obj.event_presentation_id;
|
||||
// $events_slct.event_presentation_obj = $lq__event_presentation_obj;
|
||||
<div class="float-right space-2 flex flex-row items-center">
|
||||
{#if $ae_loc.administrator_access && !event_presenter_obj.person_id}
|
||||
<button
|
||||
type="button"
|
||||
onclick={async () => {
|
||||
console.log('Add Person');
|
||||
if (
|
||||
!confirm(
|
||||
`Add a new person to the account? You will be able to edit their details after the person record is created.\n\n${$ae_loc.account_name}\nID: ${$slct.account_id}`
|
||||
)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
$events_slct.event_presenter_id =
|
||||
event_presenter_obj.event_presenter_id;
|
||||
// $events_slct.event_presenter_obj = event_presenter_obj;
|
||||
let person_data = {
|
||||
account_id: $slct.account_id,
|
||||
// user_id: user_obj.user_id,
|
||||
given_name: 'New',
|
||||
family_name: 'Presenter',
|
||||
primary_email:
|
||||
'test+newpres@oneskyit.com',
|
||||
code: 'new_presenter',
|
||||
// Random number between 100000 and 999999
|
||||
passcode:
|
||||
Math.floor(Math.random() * 900000) +
|
||||
100000,
|
||||
enable: true
|
||||
};
|
||||
|
||||
$events_sess.pres_mgmt.show_modal__presenter_agree =
|
||||
event_presenter_obj.event_presenter_id;
|
||||
}}
|
||||
class="btn preset-tonal-success hover:preset-filled-success-500 my-0.5"
|
||||
class:btn-sm={display_mode != 'default'}
|
||||
title="Agreed to terms and conditions"
|
||||
>
|
||||
<span
|
||||
class="fas fa-check text-green-500 px-1"
|
||||
title="Agreed to terms and conditions"
|
||||
></span>
|
||||
Agreed
|
||||
</button>
|
||||
{:else}
|
||||
<button
|
||||
type="button"
|
||||
disabled={!$ae_loc.trusted_access &&
|
||||
!$events_loc.auth__kv.presenter[
|
||||
event_presenter_obj
|
||||
.event_presenter_id
|
||||
]}
|
||||
onclick={() => {
|
||||
console.log('View terms and conditions');
|
||||
let new_person_obj =
|
||||
await core_func.create_ae_obj__person({
|
||||
api_cfg: $ae_api,
|
||||
// user_id: $ae_loc.user_id,
|
||||
data_kv: person_data,
|
||||
log_lvl: log_lvl
|
||||
});
|
||||
|
||||
$events_slct.event_presentation_id =
|
||||
event_presenter_obj.event_presentation_id;
|
||||
// $events_slct.event_presentation_obj = $lq__event_presentation_obj;
|
||||
console.log(
|
||||
'new_person_obj:',
|
||||
new_person_obj
|
||||
);
|
||||
|
||||
$events_slct.event_presenter_id =
|
||||
event_presenter_obj.event_presenter_id;
|
||||
// $events_slct.event_presenter_obj = event_presenter_obj;
|
||||
|
||||
$events_sess.pres_mgmt.show_modal__presenter_agree =
|
||||
event_presenter_obj.event_presenter_id;
|
||||
}}
|
||||
class="btn preset-tonal-warning border border-warning-500 hover:preset-filled-warning-500 my-0.5"
|
||||
class:btn-sm={display_mode != 'default'}
|
||||
title="View terms and conditions"
|
||||
>
|
||||
<span
|
||||
class="fas fa-times bg-red-500 text-white px-1 mx-1"
|
||||
title="Not agreed to terms and conditions"
|
||||
></span>
|
||||
Not yet agreed
|
||||
</button>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
<div class="float-right space-2 flex flex-row items-center">
|
||||
{#if $ae_loc.administrator_access && !event_presenter_obj.person_id}
|
||||
<button
|
||||
type="button"
|
||||
onclick={async () => {
|
||||
console.log('Add Person');
|
||||
if (
|
||||
!confirm(
|
||||
`Add a new person to the account? You will be able to edit their details after the person record is created.\n\n${$ae_loc.account_name}\nID: ${$slct.account_id}`
|
||||
)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
let person_data = {
|
||||
account_id: $slct.account_id,
|
||||
// user_id: user_obj.user_id,
|
||||
given_name: 'New',
|
||||
family_name: 'Presenter',
|
||||
primary_email:
|
||||
'test+newpres@oneskyit.com',
|
||||
code: 'new_presenter',
|
||||
// Random number between 100000 and 999999
|
||||
passcode:
|
||||
Math.floor(Math.random() * 900000) +
|
||||
100000,
|
||||
enable: true
|
||||
};
|
||||
|
||||
let new_person_obj =
|
||||
await core_func.create_ae_obj__person({
|
||||
if (new_person_obj) {
|
||||
// We then need to update the event_presenter with the new person_id.
|
||||
events_func.update_ae_obj__event_presenter(
|
||||
{
|
||||
api_cfg: $ae_api,
|
||||
// user_id: $ae_loc.user_id,
|
||||
data_kv: person_data,
|
||||
event_presenter_id:
|
||||
event_presenter_obj.event_presenter_id,
|
||||
data_kv: {
|
||||
person_id:
|
||||
new_person_obj.person_id
|
||||
},
|
||||
log_lvl: log_lvl
|
||||
});
|
||||
|
||||
console.log(
|
||||
'new_person_obj:',
|
||||
new_person_obj
|
||||
}
|
||||
);
|
||||
|
||||
if (new_person_obj) {
|
||||
// We then need to update the event_presenter with the new person_id.
|
||||
events_func.update_ae_obj__event_presenter(
|
||||
{
|
||||
api_cfg: $ae_api,
|
||||
event_presenter_id:
|
||||
event_presenter_obj.event_presenter_id,
|
||||
data_kv: {
|
||||
person_id:
|
||||
new_person_obj.person_id
|
||||
},
|
||||
log_lvl: log_lvl
|
||||
}
|
||||
);
|
||||
}
|
||||
}}
|
||||
class:hidden={!$ae_loc.edit_mode}
|
||||
class="btn btn-sm preset-tonal-warning hover:preset-filled-warning-500"
|
||||
>
|
||||
<span class="fas fa-plus mx-1"></span>
|
||||
Add Person
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
</li>
|
||||
<!-- {/if} -->
|
||||
{/each}
|
||||
</ul>
|
||||
{:else}
|
||||
<!-- <p class:hidden={display_mode != 'default'}>
|
||||
No presenters available to show at this time
|
||||
</p> -->
|
||||
{/if}
|
||||
}
|
||||
}}
|
||||
class:hidden={!$ae_loc.edit_mode}
|
||||
class="btn btn-sm preset-tonal-warning hover:preset-filled-warning-500"
|
||||
>
|
||||
<span class="fas fa-plus mx-1"></span>
|
||||
Add Person
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
</li>
|
||||
<!-- {/if} -->
|
||||
{/each}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user