The last selected report is now sticky.

This commit is contained in:
Scott Idem
2024-10-15 17:21:22 -04:00
parent 1c7518ad3f
commit 2ae3fb07eb
3 changed files with 80 additions and 112 deletions

View File

@@ -255,8 +255,9 @@ let events_local_data_struct: key_val = {
show_menu__session_search: null,
show_menu__event_reports: null,
show_report__presenters_agree: false,
show_report__recent_files: false,
show_report: null,
// show_report__presenters_agree: false,
// show_report__recent_files: false,
// time_format: 'time_12_short', // 'time_short', 'time_12_short'
@@ -433,8 +434,9 @@ let events_session_data_struct: key_val = {
show_content__presentation_description: false, // Note that this is per presentation. The event_presentation_id_random should match.
show_report__presenters_agree: false,
show_report__recent_files: false,
show_report: null,
// show_report__presenters_agree: false,
// show_report__recent_files: false,
show_field_edit__filename: false, // For file rename

View File

@@ -2,12 +2,16 @@
export let is_datetime_recent = function is_datetime_recent(
{
datetime,
minutes
minutes,
log_lvl = 0
}: {
datetime: string,
minutes: number
minutes: number,
log_lvl?: number
}) {
console.log(`*** is_datetime_recent() *** datetime=${datetime} minutes=${minutes}`);
if (log_lvl) {
console.log(`*** is_datetime_recent() *** datetime=${datetime} minutes=${minutes}`);
}
let now: any = new Date();
let then: any = new Date(datetime);

View File

@@ -50,6 +50,44 @@ let ae_promises: key_val = {};
let ae_tmp: key_val = {};
let ae_triggers: key_val = {};
if ($events_loc.pres_mgmt.show_report == 'sessions_poc_agree') {
handle_qry__event_session({
qry_poc_agree: $events_loc.pres_mgmt.rpt__session_poc_agree ?? false,
});
} else if ($events_loc.pres_mgmt.show_report == 'session_no_bio') {
handle_qry__event_session({
qry_poc_kv_json: true,
qry_poc_bios: true,
});
} else if ($events_loc.pres_mgmt.show_report == 'session_no_files') {
handle_qry__event_session({
qry_files: false,
});
} else if ($events_loc.pres_mgmt.show_report == 'presenters_agree') {
handle_search__event_presenter({
agree: $events_loc.pres_mgmt.rpt__presenter_agree ?? false,
ft_search_str: '',
lk_search_str: '',
log_lvl: log_lvl,
});
} else if ($events_loc.pres_mgmt.show_report == 'presenters_biography') {
handle_search__event_presenter({
biography: true,
ft_search_str: '',
lk_search_str: '',
log_lvl: log_lvl,
});
} else if ($events_loc.pres_mgmt.show_report == 'recent_files') {
handle_qry__event_file({
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
log_lvl: 0,
});
} else if ($events_loc.pres_mgmt.show_report == 'large_files') {
handle_qry__event_file({
min_file_size: $events_loc.pres_mgmt.qry__files_min_size ?? 100000000, // in bytes
log_lvl: log_lvl,
});
}
onMount(() => {
console.log('Events Event [slug] Reports: +page.svelte');
@@ -67,11 +105,6 @@ async function handle_qry__event_file(
min_file_size = null, // in bytes
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__files ?? 35,
// },
try_cache = true,
log_lvl = 0,
}: {
@@ -79,7 +112,6 @@ async function handle_qry__event_file(
min_file_size?: null|number,
ft_search_str?: string,
lk_search_str?: string,
// params?: key_val,
try_cache?: boolean,
log_lvl?: number,
}
@@ -87,7 +119,7 @@ async function handle_qry__event_file(
console.log('handle_qry__event_file()');
$events_sess.pres_mgmt.status_qry__search = 'loading';
$events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt.show_report] = 'loading';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'loading';
let created_on_str = null;
if (created_on_offset) {
@@ -134,8 +166,6 @@ async function handle_qry__event_file(
// created_on_str = offset_datetime_local_str;
}
ae_promises.search__event_file = events_func.qry__event_file({
api_cfg: $ae_api,
event_id: $events_slct.event_id,
@@ -154,7 +184,7 @@ async function handle_qry__event_file(
.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_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'processing';
$events_slct.event_file_obj_li = search_results;
console.log(search_results);
// $events_sess.pres_mgmt.status_qry__search = 'done';
@@ -178,7 +208,7 @@ async function handle_qry__event_file(
// 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';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'done';
if (log_lvl > 1) {
console.log(`TEST SEARCH - event_file_id_random_li:`, event_file_id_random_li);
@@ -215,7 +245,7 @@ async function 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';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'loading';
ae_promises.handle_search__event_session = events_func.search__event_session({
api_cfg: $ae_api,
@@ -231,7 +261,7 @@ async function handle_search__event_session(
.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_sess.pres_mgmt.status_rpt[$events_loc.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';
@@ -257,7 +287,7 @@ async function handle_search__event_session(
// 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';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'done';
if (log_lvl > 1) {
console.log(`TEST SEARCH - event_session_id_random_li:`, event_session_id_random_li);
@@ -299,7 +329,7 @@ async function 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';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'loading';
let order_by_li = {'updated_on': 'DESC', 'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'email': 'ASC', 'created_on': 'DESC'};
@@ -322,7 +352,7 @@ async function handle_search__event_presenter(
.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_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'processing';
$events_slct.event_presenter_obj_li = search_results;
console.log(search_results);
// $events_sess.pres_mgmt.status_qry__search = 'done';
@@ -346,7 +376,7 @@ async function handle_search__event_presenter(
// 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';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'done';
if (log_lvl > 1) {
console.log(`TEST SEARCH - event_presenter_id_random_li:`, event_presenter_id_random_li);
@@ -390,7 +420,7 @@ async function handle_qry__event_session(
console.log('handle_qry__event_session()');
$events_sess.pres_mgmt.status_qry__search = 'loading';
$events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt.show_report] = 'loading';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'loading';
ae_promises.handle_qry__event_session = events_func.qry__event_session({
api_cfg: $ae_api,
@@ -411,7 +441,7 @@ async function handle_qry__event_session(
.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_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'processing';
$events_slct.event_session_obj_li = search_results;
if (log_lvl) {
console.log(`Search results:`, search_results);
@@ -449,7 +479,7 @@ async function handle_qry__event_session(
// 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';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'done';
if (log_lvl > 1) {
console.log(`TEST SEARCH - event_session_id_random_li:`, event_session_id_random_li);
@@ -517,7 +547,7 @@ async function handle_qry__event_session(
ae_promises.handle_qry__event_session = handle_qry__event_session({
qry_poc_agree: $events_loc.pres_mgmt.rpt__session_poc_agree ?? false,
})
$events_sess.pres_mgmt.show_report = 'sessions_poc_agree';
$events_loc.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}
@@ -548,7 +578,7 @@ async function handle_qry__event_session(
qry_poc_kv_json: true,
qry_poc_bios: true,
});
$events_sess.pres_mgmt.show_report = 'session_no_bio';
$events_loc.pres_mgmt.show_report = 'session_no_bio';
}}
class="btn btn-sm variant-ghost-success hover:variant-filled-success transition-all m-1"
title="Show sessions without POC bios."
@@ -568,7 +598,7 @@ async function handle_qry__event_session(
handle_qry__event_session({
qry_files: false,
});
$events_sess.pres_mgmt.show_report = 'session_no_files';
$events_loc.pres_mgmt.show_report = 'session_no_files';
}}
class="btn btn-sm variant-ghost-success hover:variant-filled-success transition-all m-1"
title="Show sessions without files uploaded."
@@ -594,10 +624,7 @@ async function handle_qry__event_session(
lk_search_str: '',
log_lvl: log_lvl,
});
$events_sess.pres_mgmt.show_report = 'presenters_agree';
// $events_sess.pres_mgmt.show_report__presenters_agree = !$events_sess.pres_mgmt.show_report__presenters_agree;
// $events_sess.pres_mgmt.show_report__presenters_biography = false;
// $events_sess.pres_mgmt.show_report__recent_files = false;
$events_loc.pres_mgmt.show_report = 'presenters_agree';
}}
class="btn btn-sm variant-ghost-success hover:variant-filled-success transition-all m-1"
title="Show presenters who have agreed to present."
@@ -630,10 +657,7 @@ async function handle_qry__event_session(
lk_search_str: '',
log_lvl: log_lvl,
});
$events_sess.pres_mgmt.show_report = 'presenters_biography';
// $events_sess.pres_mgmt.show_report__presenters_biography = !$events_sess.pres_mgmt.show_report__presenters_biography;
// $events_sess.pres_mgmt.show_report__presenters_agree = false;
// $events_sess.pres_mgmt.show_report__recent_files = false;
$events_loc.pres_mgmt.show_report = 'presenters_biography';
}}
class="btn btn-sm variant-ghost-success hover:variant-filled-success transition-all m-1"
title="NOT READY YET: Show presenters with bios."
@@ -653,54 +677,11 @@ async function handle_qry__event_session(
type="button"
disabled={!$ae_loc.trusted_access}
on:click={() => {
// Calculate the datetime to pass based on the selected offset.
// let offset = $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0;
// let current_datetime = new Date();
// console.log(`Current time:`, current_datetime);
// // It is very important to know that all of the created_on and updated_on timestamps are in ET timezone. Sorry...?
// let for_et_tz_datetime = new Date(current_datetime.toLocaleString('en-US', {timeZone: 'America/New_York'}));
// const offset_minutes = for_et_tz_datetime.getTimezoneOffset();
// const adjusted_for_et_tz_datetime = new Date(for_et_tz_datetime.getTime() - offset_minutes * 60 * 1000);
// const adjusted_for_et_tz_datetime_iso_str = adjusted_for_et_tz_datetime.toISOString().slice(0, -1);
// console.log(`Adjusted for ET TZ time:`, adjusted_for_et_tz_datetime_iso_str);
// let offset_datetime = adjusted_for_et_tz_datetime;
// offset_datetime.setSeconds(offset_datetime.getSeconds() - offset);
// console.log(`Offset time:`, offset_datetime);
// // .slice(0, 19).replace('T', ' '), // '2024-10-15 13:59:59'
// const offset_datetime_iso_str = adjusted_for_et_tz_datetime.toISOString().slice(0, -1);
// console.log(`Offset time ET ISO: ${offset_datetime_iso_str}`);
// // Convert to US Eastern time and output as ISO string.
// let offset_datetime_local = new Date(offset_datetime.toLocaleString('en-US', {timeZone: 'America/New_York'}));
// console.log(`Test time local ET: ${offset_datetime_local}`);
// let formatted_str = offset_datetime_local.toLocaleString('en-US', {
// year: 'numeric',
// month: '2-digit',
// day: '2-digit',
// hour: '2-digit',
// minute: '2-digit',
// second: '2-digit',
// timeZone: 'UTC'
// });
// console.log(`Test time local ET: ${formatted_str}`);
// let offset_datetime_local_str = offset_datetime_local.toISOString();
// console.log(`Test time local ET: ${offset_datetime_local_str}`);
handle_qry__event_file({
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
// ft_search_str: '',
// lk_search_str: '',
log_lvl: 0,
});
$events_sess.pres_mgmt.show_report = 'recent_files';
// $events_sess.pres_mgmt.show_report__presenters_agree = false;
// $events_sess.pres_mgmt.show_report__presenters_biography = false;
// $events_sess.pres_mgmt.show_report__recent_files = !$events_sess.pres_mgmt.show_report__recent_files;
$events_loc.pres_mgmt.show_report = 'recent_files';
}}
class="btn btn-sm variant-ghost-success hover:variant-filled-success transition-all m-1"
title="Show recent file uploads."
@@ -718,13 +699,10 @@ async function handle_qry__event_session(
disabled={!$ae_loc.trusted_access}
on:click={() => {
handle_qry__event_file({
created_on: null,
min_file_size: $events_loc.pres_mgmt.qry__files_min_size ?? 100000000, // in bytes
// ft_search_str: '',
// lk_search_str: '',
log_lvl: log_lvl,
});
$events_sess.pres_mgmt.show_report = 'large_files';
$events_loc.pres_mgmt.show_report = 'large_files';
}}
class="btn btn-sm variant-ghost-success hover:variant-filled-success transition-all m-1"
title="Show large file uploads."
@@ -743,24 +721,8 @@ async function handle_qry__event_session(
</div>
<!-- {#await load_obj_li_results}
<span class="modal-loading">
<span class="fas fa-spinner fa-spin"></span>
<span class="loading-text">
Loading...
</span>
</span>
{:then load_obj_li_results}
{#if load_obj_li_results}
<span class="fas fa-check text-green-500"></span>
<span class="saved-text">
Loaded
</span>
{/if}
{/await} -->
<!-- Show session POC that have agreed -->
{#if $events_sess.pres_mgmt.show_report == 'sessions_poc_agree' && event_session_id_random_li}
{#if $events_loc.pres_mgmt.show_report == 'sessions_poc_agree' && event_session_id_random_li}
<h3 class="h4 text-center">
Sessions POC {#if $events_loc.pres_mgmt.rpt__session_poc_agree}Agreed{:else}Not Agreed{/if}
<button
@@ -771,7 +733,7 @@ async function handle_qry__event_session(
ae_promises.handle_qry__event_session = handle_qry__event_session({
qry_poc_agree: $events_loc.pres_mgmt.rpt__session_poc_agree ?? false,
})
$events_sess.pres_mgmt.show_report = 'sessions_poc_agree';
$events_loc.pres_mgmt.show_report = 'sessions_poc_agree';
}}
class="btn btn-sm variant-glass-warning hover:variant-ghost-warning transition-all m-1"
>
@@ -797,7 +759,7 @@ async function handle_qry__event_session(
</Comp_event_session_obj_tbl>
{/if}
{#if $events_sess.pres_mgmt.show_report == 'session_no_bio' && event_session_id_random_li}
{#if $events_loc.pres_mgmt.show_report == 'session_no_bio' && event_session_id_random_li}
<h3 class="h4 text-center">Sessions POC Bios</h3>
<Comp_event_session_obj_tbl
@@ -810,7 +772,7 @@ async function handle_qry__event_session(
{/if}
<!-- Show sessions without files -->
{#if $events_sess.pres_mgmt.show_report == 'session_no_files' && event_session_id_random_li}
{#if $events_loc.pres_mgmt.show_report == 'session_no_files' && event_session_id_random_li}
<h3 class="h4 text-center">Sessions without Files</h3>
<Comp_event_session_obj_tbl
@@ -824,7 +786,7 @@ async function handle_qry__event_session(
<!-- Show presenters that have agreed -->
{#if $events_sess.pres_mgmt.show_report == 'presenters_agree' && event_presenter_id_random_li}
{#if $events_loc.pres_mgmt.show_report == 'presenters_agree' && event_presenter_id_random_li}
<!-- <div class="overflow-x-auto"> -->
<h3 class="h4 text-center">
Presenters {#if $events_loc.pres_mgmt.rpt__presenter_agree}Agreed{:else}Not Agreed{/if}
@@ -860,7 +822,7 @@ async function handle_qry__event_session(
{/if}
<!-- Show presenters with bios -->
{#if $events_sess.pres_mgmt.show_report == 'presenters_biography' && event_presenter_id_random_li}
{#if $events_loc.pres_mgmt.show_report == 'presenters_biography' && event_presenter_id_random_li}
<h3 class="h4 text-center">Presenters with Bios</h3>
<Comp_event_presenter_obj_tbl
@@ -874,7 +836,7 @@ async function handle_qry__event_session(
<!-- Show recently uploaded files -->
{#if $events_sess.pres_mgmt.show_report == 'recent_files' && event_file_id_random_li}
{#if $events_loc.pres_mgmt.show_report == 'recent_files' && event_file_id_random_li}
<h3 class="h4 text-center">
Recent File Uploads
<!-- Show list of offsets: 10 minutes, 1 hours, 6 hours, 12 hours, 24 hours, 48 hours, 72 hours -->
@@ -900,7 +862,7 @@ async function handle_qry__event_session(
});
}
$events_sess.pres_mgmt.show_report = 'recent_files';
$events_loc.pres_mgmt.show_report = 'recent_files';
}
}
>
@@ -931,7 +893,7 @@ async function handle_qry__event_session(
<!-- Show large files -->
{#if $events_sess.pres_mgmt.show_report == 'large_files' && event_file_id_random_li}
{#if $events_loc.pres_mgmt.show_report == 'large_files' && event_file_id_random_li}
<h3 class="h4 text-center">
Large File Uploads
<select
@@ -943,7 +905,7 @@ async function handle_qry__event_session(
min_file_size: $events_loc.pres_mgmt.qry__files_min_size ?? 100000000, // in bytes
log_lvl: log_lvl,
});
$events_sess.pres_mgmt.show_report = 'large_files';
$events_loc.pres_mgmt.show_report = 'large_files';
}
}
>