A lot of work to get the LCI Champions able to add a biography and agree to Terms and Conditions.

This commit is contained in:
Scott Idem
2024-09-12 18:37:03 -04:00
parent 225dd678a5
commit e3b808a0e0
17 changed files with 744 additions and 80 deletions

View File

@@ -4,6 +4,7 @@ export let log_lvl = 1;
import { clipboard } from '@skeletonlabs/skeleton';
import { liveQuery } from "dexie";
import { Button, Modal } from 'flowbite-svelte';
// const dispatch = createEventDispatcher();
@@ -24,6 +25,7 @@ import { events_func } from '$lib/ae_events_functions';
import Form_agree from './form_agree.svelte';
import Comp_event_presentation_obj_li from './ae_comp__event_presentation_obj_li.svelte';
import Comp_event_session_poc_profile from './ae_comp__event_session_poc_profile.svelte';
// Exports
@@ -41,6 +43,8 @@ if (!$events_sess.pres_mgmt) {
$events_sess.pres_mgmt.show_content__agree_text = false;
$events_sess.pres_mgmt.show_content__presenter_start = false;
let poc_type = $events_loc.pres_mgmt.label__session_poc_type;
export let lq__event_obj: any;
export let lq__event_session_obj: any;
@@ -75,6 +79,7 @@ let lq__event_presenter_obj = liveQuery(
$slct.person_obj_kv = {}; // This is intended for the person POC lookup list when generated.
$events_sess.pres_mgmt.session__updated_on = null;
$: if ($lq__event_session_obj) {
if (log_lvl > 1) {
@@ -418,9 +423,9 @@ $: if ($lq__event_session_obj) {
<li
class:hidden={$lq__event_obj?.mod_pres_mgmt_json.hide__session_poc}
>
<strong class="text-sm">Moderator/Champion:</strong>
<strong class="text-sm">{$events_loc.pres_mgmt?.label__session_poc_name}:</strong>
{#if $lq__event_session_obj?.poc_person_id_random}
{#if $ae_loc.trusted_access}
{#if $ae_loc.administrator_access}
<a
href="/core/person/{$lq__event_session_obj.poc_person_id_random}"
class="text-blue-500 hover:text-blue-800 hover:underline"
@@ -428,6 +433,171 @@ $: if ($lq__event_session_obj) {
>
{@html $lq__event_session_obj.poc_person_full_name ? $lq__event_session_obj.poc_person_full_name : ae_snip.html__not_set}
</a>
<!-- <button
type="button"
on:click={() => {
console.log('View the person profile.');
$events_loc.pres_mgmt.show__session_poc_profile = !$events_loc.pres_mgmt.show__session_poc_profile;
}}
class="btn btn-sm variant-ghost-primary hover:variant-filled-primary"
title="View their event session profile."
>
<span class="fas fa-id-card m-1"></span>
{$events_loc.pres_mgmt?.label__session_poc_name}'s
Profile
</button> -->
<!-- Generate a modal popover for the person profile. -->
<!-- <div
class="modal_popover bg-yellow border border-gray-200 rounded-md shadow-md p-4"
class:hidden={!$events_loc.pres_mgmt.show__session_poc_profile}
> -->
<!-- Modal toggle -->
<button
class="btn btn-sm variant-ghost-primary hover:variant-filled-primary"
on:click={() => ($events_loc.pres_mgmt.show__session_poc_profile = true)}>
<span class="fas fa-id-card m-1"></span>
{$events_loc.pres_mgmt?.label__session_poc_name}'s
Profile
</button>
<!-- Main modal -->
<Modal
title="{$events_loc.pres_mgmt?.label__session_poc_name}'s Profile"
bind:open={$events_loc.pres_mgmt.show__session_poc_profile}
autoclose={false}
>
<Comp_event_session_poc_profile
class_li={$events_loc.pres_mgmt.show__session_poc_profile ? 'border' : 'outline'}
person_id={$lq__event_session_obj.poc_person_id_random}
lq__event_session_obj={lq__event_session_obj}
/>
<svelte:fragment slot="footer">
<div class="text-center w-full">
<button
type="button"
on:click={() => {
console.log('Close modal session poc profile.');
$events_loc.pres_mgmt.show__session_poc_profile = !$events_loc.pres_mgmt.show__session_poc_profile;
}}
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
>
<span class="fas fa-times mx-1"></span>
Close
</button>
</div>
</svelte:fragment>
</Modal>
<!-- Modal toggle -->
<button
type="button"
disabled={!$ae_loc.trusted_access && !$ae_loc.edit_mode}
class="btn btn-sm variant-ghost-primary hover:variant-filled-primary"
class:variant-soft-warning={!$lq__event_session_obj.poc_kv_json[poc_type].agree}
on:click={() => ($events_loc.pres_mgmt.show__session_poc_agree = true)}>
{#if !$lq__event_session_obj.poc_kv_json[poc_type].agree}
<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
{:else}
<span class="fas fa-check text-green-500 px-1" title="Agreed to terms and conditions"></span>
Agreed
{/if}
</button>
<!-- Main modal -->
<Modal
title="Profile"
bind:open={$events_loc.pres_mgmt.show__session_poc_agree}
autoclose={false}
>
{#if !$lq__event_session_obj.poc_kv_json[poc_type].agree}
<div>
<div>
Not Agreed:
<span class="fas fa-times text-red-500 m-1"></span>
<!-- <span class="fas fa-question text-red-500 m-1"></span> -->
</div>
<div>
Waiting for agreement to the {$events_loc.pres_mgmt?.label__session_poc_name} Consent and Release and Terms and Conditions before you can move on.
</div>
</div>
{/if}
<div class="bg-gray-100 p-4 border border-gray-200 rounded-md">
Agreement text goes here
</div>
<svelte:fragment slot="footer">
<div class="text-center w-full">
{#if !$lq__event_session_obj.poc_kv_json[poc_type].agree}
<button
on:click={() => {
console.log('Agree to the terms and conditions.');
let event_session_data = {poc_kv_json: $lq__event_session_obj.poc_kv_json};
console.log('event_session_data:', event_session_data);
event_session_data.poc_kv_json[poc_type]['agree'] = true;
ae_promises.update__event_session_obj = events_func.update_ae_obj__event_session({
api_cfg: $ae_api,
event_session_id: $lq__event_session_obj?.event_session_id_random,
data_kv: event_session_data,
log_lvl: log_lvl,
})
.then(function (update_result) {
// console.log(update_result);
// return update_result;
});
}}
class="btn btn-lg variant-ghost-warning hover:variant-filled-success m-2"
>
<span class="fa fa-check m-1 text-green-500"></span>
Mark as agreed?
</button>
{:else}
<button
on:click={() => {
console.log('Change to not agreed.');
let event_session_data = {poc_kv_json: $lq__event_session_obj.poc_kv_json};
console.log('event_session_data:', event_session_data);
event_session_data.poc_kv_json[poc_type]['agree'] = false;
ae_promises.update__event_session_obj = events_func.update_ae_obj__event_session({
api_cfg: $ae_api,
event_session_id: $lq__event_session_obj?.event_session_id_random,
data_kv: event_session_data,
log_lvl: log_lvl,
})
.then(function (update_result) {
// console.log(update_result);
// return update_result;
});
}}
class="btn btn-lg variant-ghost-success hover:variant-filled-warning m-2"
>
<span class="fas fa-times text-red-500 mx-1"></span>
Change to not agreed?
</button>
{/if}
</div>
</svelte:fragment>
</Modal>
<!-- </div> -->
{:else}
<span title={$lq__event_session_obj?.poc_person_id_random}>
{@html $lq__event_session_obj.poc_person_full_name ? $lq__event_session_obj.poc_person_full_name : ae_snip.html__not_set}