Now with presenter biography. Used the speakers collection that was done for CHOW as the basis.

This commit is contained in:
Scott Idem
2024-06-28 12:02:45 -04:00
parent 298f87960a
commit 4183c9022c
3 changed files with 88 additions and 10 deletions

View File

@@ -1631,6 +1631,7 @@ function send_sign_in_poc_email(
link_to_id={event_presentation_obj.event_presentation_id_random}
allow_basic={$events_loc.auth__kv.session[$events_slct.event_session_id] || $events_loc.auth__kv.presenter[$events_slct.event_presenter_id]}
allow_moderator={$events_loc.auth__kv.session[$events_slct.event_session_id]}
container_class_li={'ae_modal_scrollfix'}
/>
<!-- Show files list for this presentation -->

View File

@@ -25,6 +25,7 @@ let ae_placeholder_li: key_val = {};
let ae_promises: key_val = {}; // Promise<any>;
let ae_tmp: key_val = {};
ae_tmp.show__file_li = true;
let ae_triggers: key_val = {};
// let lq__event_session_obj = liveQuery(
@@ -45,6 +46,12 @@ let lq__event_file_obj_li = liveQuery(
);
ae_tmp.biography = null;
$: if ($lq__event_presenter_obj?.biography && ae_tmp.biography === null) {
ae_tmp.biography = JSON.parse(JSON.stringify($lq__event_presenter_obj.biography));
}
// console.log(`ae_tmp.biography:`, $lq__event_presenter_obj?.biography);
$slct.person_obj_kv = {}; // This is intended for the POC lookup list when generated.
// $events_slct.event_presenter_obj = $lq__event_presenter_obj;
@@ -64,6 +71,7 @@ onMount(() => {
console.log(`$events_slct.event_presenter_id:`, $events_slct.event_presenter_id);
$slct_trigger = 'load__event_file_obj_li';
// ae_tmp.biography = $lq__event_presenter_obj?.biography;
});
@@ -778,8 +786,8 @@ async function handle_delete__event_file({event_file_id}) {
log_lvl: 1,
})
.then(function (update_result) {
console.log(update_result);
return update_result;
// console.log(update_result);
// return update_result;
});
return person_update_result;
@@ -792,6 +800,75 @@ async function handle_delete__event_file({event_file_id}) {
</button>
{/if}
</li>
<!-- The presenters biography. There should be a character counter. -->
<li>
<div class="label event_presenter__biography required space-y-4">
<label for="presenter__biography" class="label">
<span class="fas fa-book"></span>
Presenter Biography
<span class="text-sm text-gray-500">
(75 to 100 words or 600 character limit)
</span>
</label>
<textarea
name="biography"
id="presenter__biography"
class="textarea ae_value event_presenter__biography font-mono"
class:variant-glass-error={(ae_tmp.biography && ae_tmp.biography.length >600 ? true : false)}
required
rows="8" cols="70"
bind:value={ae_tmp.biography}
placeholder="Enter brief biography here"></textarea>
<!-- {/if} -->
</div>
<p>Biography length: {(ae_tmp.biography ? ae_util.number_w_commas(ae_tmp.biography.length) : 0)} characters; {(ae_tmp.biography ? ae_util.number_w_commas(ae_util.count_words(ae_tmp.biography)) : 0)} estimated words</p>
<!-- <p>Biography length: </p> -->
<p>The biography should be plain text only and be at most 100 words.</p>
<!-- <p>1,250 characters is roughly 250 words</p> -->
<!-- <p>1,375 characters is roughly 250 to 300 words</p> -->
<div class="flex flex-wrap gap-2 p-1">
<button
type="button"
class="btn btn-md variant-glass-primary hover:variant-filled-primary"
disabled={(ae_tmp.biography == $lq__event_presenter_obj.biography)}
on:click={() => {
console.log('*** Save button clicked ***');
let event_presenter_data = {
'biography': ae_tmp.biography,
};
ae_promises.update__event_presenter_obj = events_func.handle_update_ae_obj__event_presenter({
api_cfg: $ae_api,
event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random,
data_kv: event_presenter_data,
log_lvl: 1,
})
.then(function (update_result) {
// console.log(update_result);
// return update_result;
});
}}
>
{#await ae_promises.update__event_presenter_obj}
<span class="fas fa-spinner fa-spin mx-1"></span>
{:then}
{#if (ae_tmp.biography == $lq__event_presenter_obj.biography)}
<span class="fas fa-check mx-1"></span>
{:else}
<span class="fas fa-save mx-1"></span>
{/if}
{/await}
Save Biography
</button>
</div>
</li>
</ul>