Work on the new session POC functions and permissions. General code clean up and bug fixes.

This commit is contained in:
Scott Idem
2024-09-13 13:20:04 -04:00
parent e7e532f61a
commit 7e610ead67
16 changed files with 264 additions and 128 deletions

View File

@@ -58,54 +58,6 @@ $: if ($lq__event_obj?.mod_pres_mgmt_json) {
pres_mgmt_cfg_local: $events_loc.pres_mgmt,
log_lvl: log_lvl,
});
// if (log_lvl) {
// console.log(`*** Event Pres Mgmt JSON *** pres_mgmt_cfg_local`, $events_loc.pres_mgmt);
// }
// // Locking the config is targeted at the trusted staff level and below. It is more or less ignored at the global manager and super levels. It may be enforced at the staff admin level?
// $events_loc.pres_mgmt.lock_config = $lq__event_obj?.mod_pres_mgmt_json?.lock_config ?? true; // This disables the sync local config button and options.
// if ($events_loc.pres_mgmt.lock_config) {
// // This is to forcibly sync the local config with the remote config.
// $events_loc.pres_mgmt.sync_local_config = $lq__event_obj?.mod_pres_mgmt_json?.sync_local_config ?? true;
// } else {
// // Do not override the preference for syncing the local config with the remote config.
// }
// // Labels:
// $events_loc.pres_mgmt.label__presenter_external_id = $lq__event_obj?.mod_pres_mgmt_json?.label__presenter_external_id ?? 'External ID';
// $events_loc.pres_mgmt.label__session_poc_type = $lq__event_obj?.mod_pres_mgmt_json?.label__session_poc_type ?? 'poc';
// $events_loc.pres_mgmt.label__session_poc_name = $lq__event_obj?.mod_pres_mgmt_json?.label__session_poc_name ?? 'Point of Contact';
// // Hide content:
// $events_loc.pres_mgmt.hide__presentation_code = $lq__event_obj?.mod_pres_mgmt_json?.hide__presentation_code ?? false;
// $events_loc.pres_mgmt.hide__presenter_code = $lq__event_obj?.mod_pres_mgmt_json?.hide__presenter_code ?? false;
// $events_loc.pres_mgmt.hide__presenter_biography = $lq__event_obj?.mod_pres_mgmt_json?.hide__presenter_biography ?? false;
// $events_loc.pres_mgmt.hide__session_code = $lq__event_obj?.mod_pres_mgmt_json?.hide__session_code ?? false;
// $events_loc.pres_mgmt.hide__session_description = $lq__event_obj?.mod_pres_mgmt_json?.hide__session_description ?? false;
// $events_loc.pres_mgmt.hide__session_location = $lq__event_obj?.mod_pres_mgmt_json?.hide__session_location ?? false;
// $events_loc.pres_mgmt.hide__session_poc = $lq__event_obj?.mod_pres_mgmt_json?.hide__session_poc ?? false;
// $events_loc.pres_mgmt.hide__session_poc_profile = $lq__event_obj?.mod_pres_mgmt_json?.hide__session_poc_profile ?? false; // This should still allow the POC name to be shown.
// $events_loc.pres_mgmt.hide__session_poc_biography = $lq__event_obj?.mod_pres_mgmt_json?.hide__session_poc_biography ?? false; // New and in progress
// $events_loc.pres_mgmt.hide__session_poc_profile_pic = $lq__event_obj?.mod_pres_mgmt_json?.hide__session_poc_profile_pic ?? false; // New and in progress
// // $events_loc.pres_mgmt.hide__report_kv = $lq__event_obj?.mod_pres_mgmt_json?.hide__report_kv ?? null;
// // $events_loc.pres_mgmt.limit__navigation = $lq__event_obj?.mod_pres_mgmt_json?.limit__navigation ?? false;
// // $events_loc.pres_mgmt.limit__options = $lq__event_obj?.mod_pres_mgmt_json?.limit__options ?? false;
// // Required fields or options (agreements):
// $events_loc.pres_mgmt.require__presenter_agree = $lq__event_obj?.mod_pres_mgmt_json?.require__presenter_agree ?? false; // In use
// $events_loc.pres_mgmt.session__require_agree = $lq__event_obj?.mod_pres_mgmt_json?.session__require_agree ?? false; // New and in progress
// // Show content:
// $events_loc.pres_mgmt.show__email_access_link = $lq__event_obj?.mod_pres_mgmt_json?.show__email_access_link ?? false;
// $events_loc.pres_mgmt.show__launcher_link = $lq__event_obj?.mod_pres_mgmt_json?.show__launcher_link ?? false;
// $events_loc.pres_mgmt.show__launcher_link_legacy = $lq__event_obj?.mod_pres_mgmt_json?.show__launcher_link_legacy ?? false;
// // $events_loc.pres_mgmt.show__navigation = $lq__event_obj?.mod_pres_mgmt_json?.show__navigation ?? false;
}

View File

@@ -137,6 +137,86 @@ async function handle_search__event_file(
}
async function handle_search__event_session(
{
poc_agree = null,
ft_search_str = '',
lk_search_str = '',
params = {
'qry__enabled': $events_loc.pres_mgmt.qry_enabled ?? 'enabled',
'qry__hidden': $events_loc.pres_mgmt.qry_hidden ?? 'not_hidden',
'qry__limit': $events_loc.pres_mgmt.qry_limit__session ?? 150,
},
try_cache=true,
log_lvl=0,
}: {
poc_agree?: null|boolean,
ft_search_str?: string,
lk_search_str?: string,
params?: key_val,
try_cache?: boolean,
log_lvl?: number,
}
) {
if (log_lvl) {
console.log('handle_search__event_session()');
}
$events_sess.pres_mgmt.status_qry__search = 'loading';
$events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt.show_report] = 'loading';
ae_promises.handle_search__event_session = events_func.search__event_session({
api_cfg: $ae_api,
event_id: $events_slct.event_id,
poc_agree: poc_agree,
fulltext_search_qry_str: ft_search_str,
like_search_qry_str: lk_search_str,
// external_event_id: $events_loc.pres_mgmt.default__external_registration_id,
params: params,
try_cache: try_cache,
log_lvl: log_lvl,
})
.then(function (search_results) {
// Processing the results from the search.
$events_sess.pres_mgmt.status_qry__search = 'processing';
$events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt.show_report] = 'processing';
$events_slct.event_session_obj_li = search_results;
console.log(search_results);
// $events_sess.pres_mgmt.status_qry__search = 'done';
})
.finally(() => {
if (log_lvl) {
console.log('API query done. Pulling out the event_session_id_random values.');
}
// console.log(`TEST search: ${$lq_kv__event_session_obj_li}`);
event_session_id_random_li = [];
// We need to loop through the array of objects and get the event_session_id_random from each object a new list of event_session_id_randoms. Then we can use this list to get the full objects from the database.
let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery.
if ($events_slct.event_session_obj_li) {
for (let i = 0; i < $events_slct.event_session_obj_li.length; i++) {
tmp_li.push($events_slct.event_session_obj_li[i].event_session_id_random);
}
}
event_session_id_random_li = tmp_li;
// event_session_id_random_li = $events_slct.event_session_obj_li.map(session_obj => session_obj.event_session_id_random);
// Finally done with the search.
$events_sess.pres_mgmt.status_qry__search = 'done';
$events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt.show_report] = 'done';
if (log_lvl > 1) {
console.log(`TEST SEARCH - event_session_id_random_li:`, event_session_id_random_li);
// console.log(`TEST SEARCH - search live query: ${$lq_kv__event_session_obj_li}`);
}
});
}
async function handle_search__event_presenter(
{
agree = null,
@@ -162,7 +242,9 @@ async function handle_search__event_presenter(
log_lvl?: number,
}
) {
console.log('handle_search__event_presenter()');
if (log_lvl) {
console.log('handle_search__event_presenter()');
}
$events_sess.pres_mgmt.status_qry__search = 'loading';
$events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt.show_report] = 'loading';
@@ -348,6 +430,29 @@ async function handle_qry__event_session(
<div class="variant-ghost-success my-2 p-2 rounded-md flex flex-row flex-wrap gap-1 items-center justify-center">
<button
type="button"
disabled={!$ae_loc.trusted_access}
on:click={() => {
ae_promises.handle_search__event_session = handle_search__event_session({
poc_agree: true,
ft_search_str: '',
lk_search_str: '',
log_lvl: log_lvl,
});
$events_sess.pres_mgmt.show_report = 'sessions_poc_agree';
}}
class="btn btn-sm variant-ghost-success hover:variant-filled-success transition-all m-1"
class:hidden={!$events_loc.pres_mgmt?.require__session_agree}
title="Show POCs who have agreed to session terms and conditions."
>
{#if $events_sess.pres_mgmt?.show_report == 'sessions_poc_agree' && $events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt?.show_report] == 'loading'}
<span class="fas fa-spinner fa-spin"></span>
{/if}
<span class="fas fa-check m-1"></span>
Session {$events_loc.pres_mgmt?.label__session_poc_name}s Agreed
</button>
<button
type="button"
disabled={!$ae_loc.trusted_access}
@@ -466,6 +571,16 @@ async function handle_qry__event_session(
{/if}
{/await} -->
<!-- Show session POC that have agreed -->
{#if $events_sess.pres_mgmt.show_report == 'sessions_poc_agree' && event_session_id_random_li}
<h3 class="h4 text-center">Sessions POC Agreed</h3>
<Comp_event_session_obj_tbl
bind:event_session_id_random_li={event_session_id_random_li}
>
</Comp_event_session_obj_tbl>
{/if}
<!-- Show presenters that have agreed -->
{#if $events_sess.pres_mgmt.show_report == 'presenters_agree' && event_presenter_id_random_li}
<!-- <div class="overflow-x-auto"> -->