Now with all reports broken out by type and things generally cleaned up.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "osit-aether-app-svelte",
|
"name": "osit-aether-app-svelte",
|
||||||
"version": "3.3.4",
|
"version": "3.4.1",
|
||||||
"description": "One Sky IT's Aether App created with Svelte, SvelteKit, Tailwind CSS, Lucide, Font Awesome, and Skeleton UI. -Scott Idem",
|
"description": "One Sky IT's Aether App created with Svelte, SvelteKit, Tailwind CSS, Lucide, Font Awesome, and Skeleton UI. -Scott Idem",
|
||||||
"homepage": "https://oneskyit.com/",
|
"homepage": "https://oneskyit.com/",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@@ -53,7 +53,11 @@ let event_session_id_random_li: Array<string> = $state();
|
|||||||
|
|
||||||
let ae_promises: key_val = $state({});
|
let ae_promises: key_val = $state({});
|
||||||
let ae_tmp: key_val = {};
|
let ae_tmp: key_val = {};
|
||||||
let ae_triggers: key_val = {};
|
let ae_triggers: key_val = $state({
|
||||||
|
rpt__event_files: true,
|
||||||
|
rpt__event_sessions: true,
|
||||||
|
rpt__event_presenters: true,
|
||||||
|
});
|
||||||
|
|
||||||
// if ($events_loc.pres_mgmt.show_report == 'sessions_poc_agree') {
|
// if ($events_loc.pres_mgmt.show_report == 'sessions_poc_agree') {
|
||||||
// handle_qry__event_session({
|
// handle_qry__event_session({
|
||||||
@@ -536,23 +540,6 @@ async function handle_qry__event_session(
|
|||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
|
|
||||||
<!-- <section
|
|
||||||
class="
|
|
||||||
ae_events_pres_mgmt_event
|
|
||||||
flex flex-col gap-1
|
|
||||||
items-center
|
|
||||||
justify-start
|
|
||||||
mx-auto
|
|
||||||
min-h-full
|
|
||||||
h-full
|
|
||||||
min-w-full
|
|
||||||
max-w-max
|
|
||||||
"
|
|
||||||
> -->
|
|
||||||
<!-- lg:bg-green-100
|
|
||||||
xl:bg-green-200 -->
|
|
||||||
|
|
||||||
|
|
||||||
<Event_reports_page_menu
|
<Event_reports_page_menu
|
||||||
data={data}
|
data={data}
|
||||||
lq__event_obj={lq__event_obj}
|
lq__event_obj={lq__event_obj}
|
||||||
@@ -594,8 +581,6 @@ async function handle_qry__event_session(
|
|||||||
{/if}
|
{/if}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<!-- </span> -->
|
|
||||||
|
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
|
||||||
@@ -608,11 +593,6 @@ async function handle_qry__event_session(
|
|||||||
type="button"
|
type="button"
|
||||||
disabled={!$ae_loc.trusted_access}
|
disabled={!$ae_loc.trusted_access}
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
// $events_loc.pres_mgmt.rpt__session_no_files = !$events_loc.pres_mgmt.rpt__session_no_files;
|
|
||||||
// ae_promises.handle_qry__event_session =
|
|
||||||
// handle_qry__event_session({
|
|
||||||
// qry_files: false,
|
|
||||||
// });
|
|
||||||
ae_triggers.rpt__event_sessions = true;
|
ae_triggers.rpt__event_sessions = true;
|
||||||
$events_loc.pres_mgmt.show_report = 'session_no_files';
|
$events_loc.pres_mgmt.show_report = 'session_no_files';
|
||||||
}}
|
}}
|
||||||
@@ -637,16 +617,6 @@ async function handle_qry__event_session(
|
|||||||
type="button"
|
type="button"
|
||||||
disabled={!$ae_loc.trusted_access}
|
disabled={!$ae_loc.trusted_access}
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
// ae_promises.handle_search__event_session = handle_search__event_session({
|
|
||||||
// poc_agree: true,
|
|
||||||
// ft_search_str: '',
|
|
||||||
// lk_search_str: '',
|
|
||||||
// log_lvl: log_lvl,
|
|
||||||
// });
|
|
||||||
// $events_loc.pres_mgmt.rpt__session_poc_agree = !$events_loc.pres_mgmt.rpt__session_poc_agree;
|
|
||||||
// ae_promises.handle_qry__event_session = handle_qry__event_session({
|
|
||||||
// qry_poc_agree: $events_loc.pres_mgmt.rpt__session_poc_agree ?? false,
|
|
||||||
// })
|
|
||||||
ae_triggers.rpt__event_sessions = true;
|
ae_triggers.rpt__event_sessions = true;
|
||||||
$events_loc.pres_mgmt.show_report = 'sessions_poc_agree';
|
$events_loc.pres_mgmt.show_report = 'sessions_poc_agree';
|
||||||
}}
|
}}
|
||||||
@@ -675,10 +645,6 @@ async function handle_qry__event_session(
|
|||||||
type="button"
|
type="button"
|
||||||
disabled={!$ae_loc.trusted_access}
|
disabled={!$ae_loc.trusted_access}
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
// handle_qry__event_session({
|
|
||||||
// qry_poc_kv_json: true,
|
|
||||||
// qry_poc_bios: true,
|
|
||||||
// });
|
|
||||||
ae_triggers.rpt__event_sessions = true;
|
ae_triggers.rpt__event_sessions = true;
|
||||||
$events_loc.pres_mgmt.show_report = 'session_no_bio';
|
$events_loc.pres_mgmt.show_report = 'session_no_bio';
|
||||||
}}
|
}}
|
||||||
@@ -703,21 +669,13 @@ async function handle_qry__event_session(
|
|||||||
type="button"
|
type="button"
|
||||||
disabled={!$ae_loc.trusted_access}
|
disabled={!$ae_loc.trusted_access}
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
ae_promises.handle_search__event_presenter = handle_search__event_presenter({
|
ae_triggers.rpt__event_presenters = true;
|
||||||
agree: $events_loc.pres_mgmt.rpt__presenter_agree ?? false,
|
|
||||||
ft_search_str: '',
|
|
||||||
lk_search_str: '',
|
|
||||||
log_lvl: log_lvl,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'presenters_agree';
|
$events_loc.pres_mgmt.show_report = 'presenters_agree';
|
||||||
}}
|
}}
|
||||||
class:hidden={!$events_loc.pres_mgmt?.require__presenter_agree}
|
class:hidden={!$events_loc.pres_mgmt?.require__presenter_agree}
|
||||||
class="btn btn-sm preset-tonal-success border border-success-500 hover:preset-filled-success-500 transition-all m-1"
|
class="btn btn-sm preset-tonal-success border border-success-500 hover:preset-filled-success-500 transition-all m-1"
|
||||||
title="Show presenters who have agreed to present."
|
title="Show presenters who have agreed to present."
|
||||||
>
|
>
|
||||||
<!-- {#await ae_promises.handle_search__event_presenter}
|
|
||||||
<span class="fas fa-spinner fa-spin"></span>
|
|
||||||
{/await} -->
|
|
||||||
{#if $events_loc.pres_mgmt?.show_report == 'presenters_agree' && $events_sess.pres_mgmt?.status_qry__search == 'loading'}
|
{#if $events_loc.pres_mgmt?.show_report == 'presenters_agree' && $events_sess.pres_mgmt?.status_qry__search == 'loading'}
|
||||||
<span class="fas fa-spinner fa-spin"></span>
|
<span class="fas fa-spinner fa-spin"></span>
|
||||||
{:else if $events_loc.pres_mgmt.rpt__presenter_agree}
|
{:else if $events_loc.pres_mgmt.rpt__presenter_agree}
|
||||||
@@ -737,12 +695,7 @@ async function handle_qry__event_session(
|
|||||||
type="button"
|
type="button"
|
||||||
disabled={!$ae_loc.trusted_access}
|
disabled={!$ae_loc.trusted_access}
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
handle_search__event_presenter({
|
ae_triggers.rpt__event_presenters = true;
|
||||||
biography: true,
|
|
||||||
ft_search_str: '',
|
|
||||||
lk_search_str: '',
|
|
||||||
log_lvl: log_lvl,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'presenters_biography';
|
$events_loc.pres_mgmt.show_report = 'presenters_biography';
|
||||||
}}
|
}}
|
||||||
class:hidden={$lq__event_obj?.mod_pres_mgmt_json?.hide__report_kv.presenter_no_bio && !$ae_loc.edit_mode}
|
class:hidden={$lq__event_obj?.mod_pres_mgmt_json?.hide__report_kv.presenter_no_bio && !$ae_loc.edit_mode}
|
||||||
@@ -762,11 +715,7 @@ async function handle_qry__event_session(
|
|||||||
type="button"
|
type="button"
|
||||||
disabled={!$ae_loc.trusted_access}
|
disabled={!$ae_loc.trusted_access}
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
handle_search__event_presenter({
|
ae_triggers.rpt__event_presenters = true;
|
||||||
ft_search_str: '',
|
|
||||||
lk_search_str: '',
|
|
||||||
log_lvl: log_lvl,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'presenters_overview';
|
$events_loc.pres_mgmt.show_report = 'presenters_overview';
|
||||||
}}
|
}}
|
||||||
class:hidden={$lq__event_obj?.mod_pres_mgmt_json?.hide__report_kv.presenter_overview}
|
class:hidden={$lq__event_obj?.mod_pres_mgmt_json?.hide__report_kv.presenter_overview}
|
||||||
@@ -789,10 +738,7 @@ async function handle_qry__event_session(
|
|||||||
type="button"
|
type="button"
|
||||||
disabled={!$ae_loc.trusted_access}
|
disabled={!$ae_loc.trusted_access}
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
handle_qry__event_file({
|
ae_triggers.rpt__event_files = true;
|
||||||
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
|
||||||
log_lvl: log_lvl,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'recent_files';
|
$events_loc.pres_mgmt.show_report = 'recent_files';
|
||||||
}}
|
}}
|
||||||
class:hidden={$lq__event_obj?.mod_pres_mgmt_json?.hide__report_kv.recent_files}
|
class:hidden={$lq__event_obj?.mod_pres_mgmt_json?.hide__report_kv.recent_files}
|
||||||
@@ -811,10 +757,7 @@ async function handle_qry__event_session(
|
|||||||
type="button"
|
type="button"
|
||||||
disabled={!$ae_loc.trusted_access}
|
disabled={!$ae_loc.trusted_access}
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
handle_qry__event_file({
|
ae_triggers.rpt__event_files = true;
|
||||||
min_file_size: $events_loc.pres_mgmt.qry__files_min_size ?? 100000000, // in bytes
|
|
||||||
log_lvl: log_lvl,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'large_files';
|
$events_loc.pres_mgmt.show_report = 'large_files';
|
||||||
}}
|
}}
|
||||||
class:hidden={$lq__event_obj?.mod_pres_mgmt_json?.hide__report_kv.large_files}
|
class:hidden={$lq__event_obj?.mod_pres_mgmt_json?.hide__report_kv.large_files}
|
||||||
@@ -831,11 +774,9 @@ async function handle_qry__event_session(
|
|||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- All Event Session related reports -->
|
<!-- All Event Session related reports -->
|
||||||
{#if $events_loc.pres_mgmt.show_report == 'session_no_files' || $events_loc.pres_mgmt.show_report == 'session_no_bio' || $events_loc.pres_mgmt.show_report == 'sessions_poc_agree'}
|
{#if $events_loc.pres_mgmt.show_report == 'session_no_files' || $events_loc.pres_mgmt.show_report == 'session_no_bio' || $events_loc.pres_mgmt.show_report == 'sessions_poc_agree'}
|
||||||
<Reports_sessions
|
<Reports_sessions
|
||||||
@@ -851,7 +792,7 @@ async function handle_qry__event_session(
|
|||||||
bind:qry__status={$events_sess.pres_mgmt.status_qry__search}
|
bind:qry__status={$events_sess.pres_mgmt.status_qry__search}
|
||||||
qry__count={$events_sess.event_session_obj_li?.length ?? 0}
|
qry__count={$events_sess.event_session_obj_li?.length ?? 0}
|
||||||
|
|
||||||
qry__trigger={ae_triggers.rpt__event_sessions}
|
bind:qry__trigger={ae_triggers.rpt__event_sessions}
|
||||||
|
|
||||||
hide_session_code={$events_loc.pres_mgmt?.hide__session_code}
|
hide_session_code={$events_loc.pres_mgmt?.hide__session_code}
|
||||||
|
|
||||||
@@ -860,100 +801,6 @@ async function handle_qry__event_session(
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
<!-- Show session POC that have agreed -->
|
|
||||||
<!-- {#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
|
|
||||||
type="button"
|
|
||||||
onclick={() => {
|
|
||||||
$events_loc.pres_mgmt.rpt__session_poc_agree = !$events_loc.pres_mgmt.rpt__session_poc_agree;
|
|
||||||
|
|
||||||
ae_promises.handle_qry__event_session = handle_qry__event_session({
|
|
||||||
qry_poc_agree: $events_loc.pres_mgmt.rpt__session_poc_agree ?? false,
|
|
||||||
})
|
|
||||||
$events_loc.pres_mgmt.show_report = 'sessions_poc_agree';
|
|
||||||
}}
|
|
||||||
class="ae_btn_info btn-sm m-1"
|
|
||||||
>
|
|
||||||
{#if $events_loc.pres_mgmt.rpt__session_poc_agree}
|
|
||||||
<span class="fas fa-toggle-on m-1"></span>
|
|
||||||
Agreed
|
|
||||||
{:else}
|
|
||||||
<span class="fas fa-toggle-off m-1"></span>
|
|
||||||
Not Agreed
|
|
||||||
{/if}
|
|
||||||
</button>
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
<Comp_event_session_obj_tbl
|
|
||||||
link_to_type="event"
|
|
||||||
link_to_id={$events_slct.event_id}
|
|
||||||
bind:event_session_id_random_li={event_session_id_random_li}
|
|
||||||
log_lvl={1}
|
|
||||||
>
|
|
||||||
</Comp_event_session_obj_tbl>
|
|
||||||
{/if} -->
|
|
||||||
|
|
||||||
<!-- {#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
|
|
||||||
link_to_type="event"
|
|
||||||
link_to_id={$events_slct.event_id}
|
|
||||||
bind:event_session_id_random_li={event_session_id_random_li}
|
|
||||||
log_lvl={1}
|
|
||||||
>
|
|
||||||
</Comp_event_session_obj_tbl>
|
|
||||||
{/if} -->
|
|
||||||
|
|
||||||
<!-- Show sessions without files -->
|
|
||||||
<!-- {#if $events_loc.pres_mgmt.show_report == 'session_no_files' && event_session_id_random_li}
|
|
||||||
<h3 class="h4 text-center">
|
|
||||||
Sessions
|
|
||||||
{#if $events_loc.pres_mgmt?.rpt__session_no_files}
|
|
||||||
With
|
|
||||||
{:else}
|
|
||||||
Without
|
|
||||||
{/if}
|
|
||||||
Files
|
|
||||||
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
onclick={() => {
|
|
||||||
$events_loc.pres_mgmt.rpt__session_no_files = !$events_loc.pres_mgmt.rpt__session_no_files;
|
|
||||||
ae_promises.handle_qry__event_session =
|
|
||||||
handle_qry__event_session({
|
|
||||||
qry_files: !$events_loc.pres_mgmt.rpt__session_no_files ?? false,
|
|
||||||
});
|
|
||||||
|
|
||||||
$events_loc.pres_mgmt.show_report = 'session_no_files';
|
|
||||||
qry__trigger = true;
|
|
||||||
}}
|
|
||||||
class="ae_btn_info btn-sm m-1"
|
|
||||||
>
|
|
||||||
{#if $events_loc.pres_mgmt?.rpt__session_no_files}
|
|
||||||
<span class="fas fa-toggle-on m-1"></span>
|
|
||||||
With
|
|
||||||
{:else}
|
|
||||||
<span class="fas fa-toggle-off m-1"></span>
|
|
||||||
Without
|
|
||||||
{/if}
|
|
||||||
</button>
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
<Comp_event_session_obj_tbl
|
|
||||||
link_to_type="event"
|
|
||||||
link_to_id={$events_slct.event_id}
|
|
||||||
bind:event_session_id_random_li={event_session_id_random_li}
|
|
||||||
log_lvl={1}
|
|
||||||
>
|
|
||||||
</Comp_event_session_obj_tbl>
|
|
||||||
{/if} -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- All Event Presenter related reports -->
|
<!-- All Event Presenter related reports -->
|
||||||
{#if $events_loc.pres_mgmt.show_report == 'presenters_agree' || $events_loc.pres_mgmt.show_report == 'presenters_biography' || $events_loc.pres_mgmt.show_report == 'presenters_overview'}
|
{#if $events_loc.pres_mgmt.show_report == 'presenters_agree' || $events_loc.pres_mgmt.show_report == 'presenters_biography' || $events_loc.pres_mgmt.show_report == 'presenters_overview'}
|
||||||
<Reports_presenters
|
<Reports_presenters
|
||||||
@@ -969,184 +816,14 @@ async function handle_qry__event_session(
|
|||||||
bind:qry__status={$events_sess.pres_mgmt.status_qry__search}
|
bind:qry__status={$events_sess.pres_mgmt.status_qry__search}
|
||||||
qry__count={$events_sess.event_presenter_obj_li?.length ?? 0}
|
qry__count={$events_sess.event_presenter_obj_li?.length ?? 0}
|
||||||
|
|
||||||
|
bind:qry__trigger={ae_triggers.rpt__event_presenters}
|
||||||
|
|
||||||
hide_session_code={$events_loc.pres_mgmt?.hide__session_code}
|
hide_session_code={$events_loc.pres_mgmt?.hide__session_code}
|
||||||
|
|
||||||
log_lvl={log_lvl}
|
log_lvl={log_lvl}
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<!-- Show presenters that have agreed -->
|
|
||||||
<!-- {#if 1==3 && $events_loc.pres_mgmt.show_report == 'presenters_agree' && $events_sess.event_presenter_obj_li}
|
|
||||||
<h3 class="h4 text-center">
|
|
||||||
Presenters {#if $events_loc.pres_mgmt.rpt__presenter_agree}Agreed{:else}Not Agreed{/if}
|
|
||||||
{$events_slct.event_presenter_obj_li.length ?? 0} found
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
onclick={() => {
|
|
||||||
$events_loc.pres_mgmt.rpt__presenter_agree = !$events_loc.pres_mgmt.rpt__presenter_agree;
|
|
||||||
$events_loc.pres_mgmt.show_report = '';
|
|
||||||
|
|
||||||
ae_promises.handle_search__event_presenter = handle_search__event_presenter({
|
|
||||||
agree: $events_loc.pres_mgmt.rpt__presenter_agree ?? false,
|
|
||||||
ft_search_str: '',
|
|
||||||
lk_search_str: '',
|
|
||||||
log_lvl: log_lvl,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'presenters_agree';
|
|
||||||
}}
|
|
||||||
class="ae_btn_info btn btn-sm m-1"
|
|
||||||
>
|
|
||||||
{#if $events_loc.pres_mgmt.rpt__presenter_agree}
|
|
||||||
<span class="fas fa-toggle-on m-1"></span>
|
|
||||||
Agreed
|
|
||||||
{:else}
|
|
||||||
<span class="fas fa-toggle-off m-1"></span>
|
|
||||||
Not Agreed
|
|
||||||
{/if}
|
|
||||||
</button>
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
<Comp_event_presenter_obj_tbl
|
|
||||||
bind:event_presenter_obj_li={$events_sess.event_presenter_obj_li}
|
|
||||||
show_presentation_fields={true}
|
|
||||||
show_session_fields={true}
|
|
||||||
log_lvl={2}
|
|
||||||
>
|
|
||||||
</Comp_event_presenter_obj_tbl>
|
|
||||||
{/if} -->
|
|
||||||
|
|
||||||
<!-- Show presenters with bios -->
|
|
||||||
<!-- {#if 1==3 && $events_loc.pres_mgmt.show_report == 'presenters_biography' && $events_sess.event_presenter_obj_li}
|
|
||||||
<h3 class="h4 text-center">Presenters with Bios</h3>
|
|
||||||
|
|
||||||
<Comp_event_presenter_obj_tbl
|
|
||||||
bind:event_presenter_obj_li={$events_sess.event_presenter_obj_li}
|
|
||||||
show_presentation_fields={true}
|
|
||||||
show_session_fields={true}
|
|
||||||
log_lvl={log_lvl}
|
|
||||||
>
|
|
||||||
</Comp_event_presenter_obj_tbl>
|
|
||||||
{/if} -->
|
|
||||||
|
|
||||||
<!-- Show overview of presenters (status checklist) -->
|
|
||||||
<!-- {#if 1==3 && $events_loc.pres_mgmt.show_report == 'presenters_overview' && $events_sess.event_presenter_obj_li}
|
|
||||||
<header class="w-full flex flex-row flex-wrap items-center justify-center gap-1">
|
|
||||||
<h3 class="h4 text-center">
|
|
||||||
Presenters Overview
|
|
||||||
</h3>
|
|
||||||
{#if $events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt?.show_report] == 'loading'}
|
|
||||||
<span class="fas fa-spinner fa-spin m-1"></span>
|
|
||||||
<span>Loading...</span>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-center">
|
|
||||||
<label class="label text-sm">
|
|
||||||
<span class="fas fa-sort m-1"></span>
|
|
||||||
Sort by:
|
|
||||||
|
|
||||||
<select
|
|
||||||
class="inline-block select text-sm w-36 px-1 m-1 ae_btn_info"
|
|
||||||
bind:value={$events_loc.pres_mgmt.qry__presenter_sort}
|
|
||||||
onchange={(event) => {
|
|
||||||
if (event.target.value) {
|
|
||||||
$events_loc.pres_mgmt.qry__presenter_sort = event.target.value;
|
|
||||||
} else {
|
|
||||||
$events_loc.pres_mgmt.qry__presenter_sort = 'updated_on';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($events_loc.pres_mgmt.qry__presenter_sort == 'updated_on') {
|
|
||||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
|
||||||
'updated_on': 'DESC',
|
|
||||||
'priority': 'DESC',
|
|
||||||
'sort': 'DESC',
|
|
||||||
'given_name': 'ASC',
|
|
||||||
'family_name': 'ASC',
|
|
||||||
'email': 'ASC',
|
|
||||||
'created_on': 'DESC',
|
|
||||||
};
|
|
||||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'given_name') {
|
|
||||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
|
||||||
'given_name': 'ASC',
|
|
||||||
'family_name': 'ASC',
|
|
||||||
'updated_on': 'DESC',
|
|
||||||
'priority': 'DESC',
|
|
||||||
'sort': 'DESC',
|
|
||||||
'email': 'ASC',
|
|
||||||
'created_on': 'DESC',
|
|
||||||
};
|
|
||||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'family_name') {
|
|
||||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
|
||||||
'family_name': 'ASC',
|
|
||||||
'given_name': 'ASC',
|
|
||||||
'updated_on': 'DESC',
|
|
||||||
'priority': 'DESC',
|
|
||||||
'sort': 'DESC',
|
|
||||||
'email': 'ASC',
|
|
||||||
'created_on': 'DESC',
|
|
||||||
};
|
|
||||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'email') {
|
|
||||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
|
||||||
'email': 'ASC',
|
|
||||||
'given_name': 'ASC',
|
|
||||||
'family_name': 'ASC',
|
|
||||||
'updated_on': 'DESC',
|
|
||||||
'priority': 'DESC',
|
|
||||||
'sort': 'DESC',
|
|
||||||
'created_on': 'DESC',
|
|
||||||
|
|
||||||
};
|
|
||||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'start_datetime') {
|
|
||||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
|
||||||
'event_presentation_start_datetime': 'ASC',
|
|
||||||
'priority': 'DESC',
|
|
||||||
'sort': 'DESC',
|
|
||||||
'given_name': 'ASC',
|
|
||||||
'family_name': 'ASC',
|
|
||||||
'email': 'ASC',
|
|
||||||
'updated_on': 'DESC',
|
|
||||||
'created_on': 'DESC',
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
|
||||||
'updated_on': 'DESC',
|
|
||||||
'priority': 'DESC',
|
|
||||||
'sort': 'DESC',
|
|
||||||
'given_name': 'ASC',
|
|
||||||
'family_name': 'ASC',
|
|
||||||
'email': 'ASC',
|
|
||||||
'created_on': 'DESC',
|
|
||||||
};
|
|
||||||
}
|
|
||||||
ae_promises.handle_search__event_presenter = handle_search__event_presenter({
|
|
||||||
// ft_search_str: '',
|
|
||||||
// lk_search_str: '',
|
|
||||||
order_by_li: $events_loc.pres_mgmt.qry__presenter_order_by_li,
|
|
||||||
log_lvl: log_lvl,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'presenters_overview';
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<option value="updated_on">Updated On</option>
|
|
||||||
<option value="given_name">Given Name</option>
|
|
||||||
<option value="family_name">Family Name</option>
|
|
||||||
<option value="email">Email</option>
|
|
||||||
<option value="start_datetime">Start Date Time</option>
|
|
||||||
</select>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<Comp_event_presenter_obj_tbl
|
|
||||||
bind:event_presenter_obj_li={$events_sess.event_presenter_obj_li}
|
|
||||||
show_presentation_fields={true}
|
|
||||||
show_session_fields={true}
|
|
||||||
log_lvl={log_lvl}
|
|
||||||
>
|
|
||||||
</Comp_event_presenter_obj_tbl>
|
|
||||||
{/if} -->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- All Event File related reports -->
|
<!-- All Event File related reports -->
|
||||||
{#if $events_loc.pres_mgmt.show_report == 'recent_files' || $events_loc.pres_mgmt.show_report == 'large_files'}
|
{#if $events_loc.pres_mgmt.show_report == 'recent_files' || $events_loc.pres_mgmt.show_report == 'large_files'}
|
||||||
@@ -1163,233 +840,12 @@ async function handle_qry__event_session(
|
|||||||
bind:qry__status={$events_sess.pres_mgmt.status_qry__search}
|
bind:qry__status={$events_sess.pres_mgmt.status_qry__search}
|
||||||
qry__count={$events_sess.event_file_obj_li?.length ?? 0}
|
qry__count={$events_sess.event_file_obj_li?.length ?? 0}
|
||||||
|
|
||||||
|
bind:qry__trigger={ae_triggers.rpt__event_files}
|
||||||
|
|
||||||
hide_session_code={$events_loc.pres_mgmt?.hide__session_code}
|
hide_session_code={$events_loc.pres_mgmt?.hide__session_code}
|
||||||
|
|
||||||
log_lvl={log_lvl}
|
log_lvl={log_lvl}
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
<!-- Show recently uploaded files -->
|
|
||||||
{#if 1==3 && $events_loc.pres_mgmt.show_report == 'recent_files' && event_file_id_random_li}
|
|
||||||
<header class="w-full flex flex-row flex-wrap items-center justify-center gap-1">
|
|
||||||
<h3 class="h4 text-center">
|
|
||||||
Recent File Uploads
|
|
||||||
</h3>
|
|
||||||
{#if $events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt?.show_report] == 'loading'}
|
|
||||||
<span class="fas fa-spinner fa-spin m-1"></span>
|
|
||||||
<span>Loading...</span>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<!-- Show list of offsets: 10 minutes, 1 hours, 6 hours, 12 hours, 24 hours, 48 hours, 72 hours -->
|
|
||||||
<div class="flex flex-row flex-wrap items-center justify-center">
|
|
||||||
<select
|
|
||||||
class="inline-block select text-sm px-1 w-40 m-1 ae_btn_info"
|
|
||||||
bind:value={$events_loc.pres_mgmt.qry__files_offset_seconds}
|
|
||||||
onchange={() => {
|
|
||||||
if ($events_loc.pres_mgmt?.qry__files_offset_seconds) {
|
|
||||||
// Calculate the datetime to pass based on the selected offset.
|
|
||||||
// let offset = $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0;
|
|
||||||
// let created_on = new Date()
|
|
||||||
// console.log(`Created on:`, created_on);
|
|
||||||
// created_on.setSeconds(created_on.getSeconds() - offset);
|
|
||||||
handle_qry__event_file({
|
|
||||||
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
|
||||||
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
|
||||||
log_lvl: 1,
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
console.log('No offset is will be used.');
|
|
||||||
handle_qry__event_file({
|
|
||||||
log_lvl: 1,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$events_loc.pres_mgmt.show_report = 'recent_files';
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<option value="">-- offset not set --</option>
|
|
||||||
<option value="600">10 minutes</option>
|
|
||||||
<option value="1800">30 minutes</option>
|
|
||||||
<option value="3600">1 hour</option>
|
|
||||||
<option value="10800">2 hours</option>
|
|
||||||
<option value="21600">6 hours</option>
|
|
||||||
<option value="43200">12 hours</option>
|
|
||||||
<option value="86400">24 hours</option>
|
|
||||||
<option value="129600">36 hours</option>
|
|
||||||
<option value="172800">48 hours</option>
|
|
||||||
<option value="259200">72 hours</option>
|
|
||||||
<option value="604800">1 week</option>
|
|
||||||
<option value="1209600">2 weeks</option>
|
|
||||||
<option value="2419200">4 weeks</option>
|
|
||||||
<option value="7776000">12 weeks</option>
|
|
||||||
<option value="15552000">24 weeks</option>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select
|
|
||||||
id="file_purpose"
|
|
||||||
name="file_purpose"
|
|
||||||
class="inline-block select text-sm w-40 px-1 m-1 ae_btn_info"
|
|
||||||
bind:value={$events_loc.pres_mgmt.qry__file_purpose}
|
|
||||||
onchange={() => {
|
|
||||||
handle_qry__event_file({
|
|
||||||
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
|
||||||
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
|
||||||
log_lvl: 1,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'recent_files';
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<option
|
|
||||||
value={null}
|
|
||||||
selected={!$events_loc.pres_mgmt.qry__file_purpose}
|
|
||||||
class="text-xs"
|
|
||||||
>
|
|
||||||
-- purpose not set --
|
|
||||||
</option>
|
|
||||||
{#if $events_loc.pres_mgmt?.file_purpose_option_kv}
|
|
||||||
{#each Object.entries($events_loc.pres_mgmt.file_purpose_option_kv) as [key, file_purpose_option]}
|
|
||||||
<option
|
|
||||||
value={key} selected={$events_loc.pres_mgmt.qry__file_purpose === key}
|
|
||||||
disabled={file_purpose_option?.disabled}
|
|
||||||
class:hidden={file_purpose_option?.hidden}
|
|
||||||
>
|
|
||||||
{file_purpose_option?.name}
|
|
||||||
</option>
|
|
||||||
{/each}
|
|
||||||
{/if}
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<!-- Max files select options -->
|
|
||||||
|
|
||||||
<select
|
|
||||||
id="qry_limit__files"
|
|
||||||
bind:value={$events_loc.pres_mgmt.qry_limit__files}
|
|
||||||
class="inline-block select text-sm px-1 w-40 m-1 ae_btn_info"
|
|
||||||
onchange={() => {
|
|
||||||
handle_qry__event_file({
|
|
||||||
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
|
||||||
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
|
||||||
limit: $events_loc.pres_mgmt.qry_limit__files ?? 100,
|
|
||||||
log_lvl: log_lvl,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'recent_files';
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<option value={0}>-- max not set --</option>
|
|
||||||
<option value={25}>25 files</option>
|
|
||||||
<option value={50}>50 files</option>
|
|
||||||
<option value={75}>75 files</option>
|
|
||||||
<option value={100}>100 files</option>
|
|
||||||
<option value={200}>200 files</option>
|
|
||||||
<option value={500}>500 files</option>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- <p class="text-center text-red-500 font-bold">
|
|
||||||
This report is new and still being tested.
|
|
||||||
</p> -->
|
|
||||||
|
|
||||||
<!-- <Comp_event_file_obj_tbl
|
|
||||||
bind:event_file_id_random_li={event_file_id_random_li}
|
|
||||||
bind:show_direct_download={$events_loc.pres_mgmt.show__direct_download}
|
|
||||||
show_location_fields={true}
|
|
||||||
show_presenter_fields={true}
|
|
||||||
show_presentation_fields={true}
|
|
||||||
show_session_fields={true}
|
|
||||||
hide_session_code={$events_loc.pres_mgmt?.hide__session_code}
|
|
||||||
>
|
|
||||||
</Comp_event_file_obj_tbl> -->
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Show large files -->
|
|
||||||
{#if 1==3 && $events_loc.pres_mgmt.show_report == 'large_files' && event_file_id_random_li}
|
|
||||||
<header class="w-full flex flex-row flex-wrap items-center justify-center gap-1">
|
|
||||||
<h3 class="h4 text-center">
|
|
||||||
Large File Uploads
|
|
||||||
</h3>
|
|
||||||
{#if $events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt?.show_report] == 'loading'}
|
|
||||||
<span class="fas fa-spinner fa-spin m-1"></span>
|
|
||||||
<span>Loading...</span>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<div class="flex flex-row flex-wrap items-center justify-center">
|
|
||||||
<select
|
|
||||||
class="inline-block select text-sm w-40 px-1 m-1 ae_btn_info"
|
|
||||||
bind:value={$events_loc.pres_mgmt.qry__files_min_size}
|
|
||||||
onchange={() => {
|
|
||||||
handle_qry__event_file({
|
|
||||||
min_file_size: $events_loc.pres_mgmt.qry__files_min_size ?? 100000000, // in bytes
|
|
||||||
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
|
||||||
log_lvl: log_lvl,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'large_files';
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<option value="">-- size not set --</option>
|
|
||||||
<option value="10000000">10 MB</option>
|
|
||||||
<option value="25000000">25 MB</option>
|
|
||||||
<option value="50000000">50 MB</option>
|
|
||||||
<option value="75000000">75 MB</option>
|
|
||||||
<option value="100000000">100 MB</option>
|
|
||||||
<option value="150000000">150 MB</option>
|
|
||||||
<option value="250000000">250 MB</option>
|
|
||||||
<option value="500000000">500 MB</option>
|
|
||||||
<option value="1000000000">1 GB</option>
|
|
||||||
<!-- <option value="5000000000">5 GB</option> -->
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select
|
|
||||||
id="file_purpose"
|
|
||||||
name="file_purpose"
|
|
||||||
class="inline-block select text-sm w-40 p-1 m-1 ae_btn_info"
|
|
||||||
bind:value={$events_loc.pres_mgmt.qry__file_purpose}
|
|
||||||
onchange={() => {
|
|
||||||
handle_qry__event_file({
|
|
||||||
min_file_size: $events_loc.pres_mgmt.qry__files_min_size ?? 100000000, // in bytes
|
|
||||||
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
|
||||||
log_lvl: 1,
|
|
||||||
});
|
|
||||||
$events_loc.pres_mgmt.show_report = 'large_files';
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<option
|
|
||||||
value={null}
|
|
||||||
selected={!$events_loc.pres_mgmt.qry__file_purpose}
|
|
||||||
class="text-xs"
|
|
||||||
>
|
|
||||||
-- purpose not set --
|
|
||||||
</option>
|
|
||||||
{#if $events_loc.pres_mgmt?.file_purpose_option_kv}
|
|
||||||
{#each Object.entries($events_loc.pres_mgmt.file_purpose_option_kv) as [key, file_purpose_option]}
|
|
||||||
<option
|
|
||||||
value={key} selected={$events_loc.pres_mgmt.qry__file_purpose === key}
|
|
||||||
disabled={file_purpose_option?.disabled}
|
|
||||||
class:hidden={file_purpose_option?.hidden}
|
|
||||||
>
|
|
||||||
{file_purpose_option?.name}
|
|
||||||
</option>
|
|
||||||
{/each}
|
|
||||||
{/if}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- <Comp_event_file_obj_tbl
|
|
||||||
bind:event_file_id_random_li={event_file_id_random_li}
|
|
||||||
show_location_fields={true}
|
|
||||||
show_presenter_fields={true}
|
|
||||||
show_presentation_fields={true}
|
|
||||||
show_session_fields={true}
|
|
||||||
hide_session_code={$events_loc.pres_mgmt?.hide__session_code}
|
|
||||||
>
|
|
||||||
</Comp_event_file_obj_tbl> -->
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
|
|
||||||
{/if}
|
{/if}
|
||||||
@@ -116,22 +116,26 @@ let sort_option_kv: key_val = {
|
|||||||
|
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
if (qry__trigger) {
|
if (qry__trigger) {
|
||||||
|
if (log_lvl) {
|
||||||
|
console.log(`Report: ${rpt__name}; Triggered query for event files.`);
|
||||||
|
}
|
||||||
qry__trigger = false;
|
qry__trigger = false;
|
||||||
if (rpt__name == 'recent_files') {
|
if (rpt__name == 'recent_files') {
|
||||||
handle_qry__event_file({
|
handle_qry__event_file({
|
||||||
created_on_offset: null,
|
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds,
|
||||||
min_file_size: null, // in bytes
|
// min_file_size: $events_loc.pres_mgmt.qry__files_min_size,
|
||||||
file_purpose: null,
|
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
||||||
// ft_search_str: '',
|
// ft_search_str: '',
|
||||||
// lk_search_str: '',
|
// lk_search_str: '',
|
||||||
|
limit: rpt__limit,
|
||||||
order_by_li: rpt__order_by_li,
|
order_by_li: rpt__order_by_li,
|
||||||
log_lvl: log_lvl,
|
log_lvl: log_lvl,
|
||||||
});
|
});
|
||||||
} else if (rpt__name == 'large_files') {
|
} else if (rpt__name == 'large_files') {
|
||||||
handle_qry__event_file({
|
handle_qry__event_file({
|
||||||
created_on_offset: null,
|
created_on_offset: null,
|
||||||
min_file_size: 5000000, // in bytes
|
min_file_size: $events_loc.pres_mgmt.qry__files_min_size,
|
||||||
file_purpose: null,
|
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
||||||
// ft_search_str: '',
|
// ft_search_str: '',
|
||||||
// lk_search_str: '',
|
// lk_search_str: '',
|
||||||
order_by_li: rpt__order_by_li,
|
order_by_li: rpt__order_by_li,
|
||||||
@@ -312,16 +316,18 @@ async function handle_qry__event_file(
|
|||||||
// let created_on = new Date()
|
// let created_on = new Date()
|
||||||
// console.log(`Created on:`, created_on);
|
// console.log(`Created on:`, created_on);
|
||||||
// created_on.setSeconds(created_on.getSeconds() - offset);
|
// created_on.setSeconds(created_on.getSeconds() - offset);
|
||||||
handle_qry__event_file({
|
// handle_qry__event_file({
|
||||||
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
// created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
||||||
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
// file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
||||||
log_lvl: log_lvl,
|
// log_lvl: log_lvl,
|
||||||
});
|
// });
|
||||||
|
qry__trigger = true;
|
||||||
} else {
|
} else {
|
||||||
console.log('No offset is will be used.');
|
console.log('No offset is will be used.');
|
||||||
handle_qry__event_file({
|
// handle_qry__event_file({
|
||||||
log_lvl: log_lvl,
|
// log_lvl: log_lvl,
|
||||||
});
|
// });
|
||||||
|
qry__trigger = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$events_loc.pres_mgmt.show_report = 'recent_files';
|
$events_loc.pres_mgmt.show_report = 'recent_files';
|
||||||
@@ -351,11 +357,12 @@ async function handle_qry__event_file(
|
|||||||
class="inline-block select text-sm w-40 px-1 m-1 ae_btn_info"
|
class="inline-block select text-sm w-40 px-1 m-1 ae_btn_info"
|
||||||
bind:value={$events_loc.pres_mgmt.qry__file_purpose}
|
bind:value={$events_loc.pres_mgmt.qry__file_purpose}
|
||||||
onchange={() => {
|
onchange={() => {
|
||||||
handle_qry__event_file({
|
// handle_qry__event_file({
|
||||||
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
// created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
||||||
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
// file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
||||||
log_lvl: log_lvl,
|
// log_lvl: log_lvl,
|
||||||
});
|
// });
|
||||||
|
qry__trigger = true;
|
||||||
$events_loc.pres_mgmt.show_report = 'recent_files';
|
$events_loc.pres_mgmt.show_report = 'recent_files';
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -386,12 +393,13 @@ async function handle_qry__event_file(
|
|||||||
bind:value={$events_loc.pres_mgmt.qry_limit__files}
|
bind:value={$events_loc.pres_mgmt.qry_limit__files}
|
||||||
class="inline-block select text-sm px-1 w-40 m-1 ae_btn_info"
|
class="inline-block select text-sm px-1 w-40 m-1 ae_btn_info"
|
||||||
onchange={() => {
|
onchange={() => {
|
||||||
handle_qry__event_file({
|
// handle_qry__event_file({
|
||||||
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
// created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
||||||
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
// file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
||||||
limit: $events_loc.pres_mgmt.qry_limit__files ?? 100,
|
// limit: $events_loc.pres_mgmt.qry_limit__files ?? 100,
|
||||||
log_lvl: log_lvl,
|
// log_lvl: log_lvl,
|
||||||
});
|
// });
|
||||||
|
qry__trigger = true;
|
||||||
$events_loc.pres_mgmt.show_report = 'recent_files';
|
$events_loc.pres_mgmt.show_report = 'recent_files';
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -429,11 +437,12 @@ async function handle_qry__event_file(
|
|||||||
class="inline-block select text-sm w-40 px-1 m-1 ae_btn_info"
|
class="inline-block select text-sm w-40 px-1 m-1 ae_btn_info"
|
||||||
bind:value={$events_loc.pres_mgmt.qry__files_min_size}
|
bind:value={$events_loc.pres_mgmt.qry__files_min_size}
|
||||||
onchange={() => {
|
onchange={() => {
|
||||||
handle_qry__event_file({
|
// handle_qry__event_file({
|
||||||
min_file_size: $events_loc.pres_mgmt.qry__files_min_size ?? 100000000, // in bytes
|
// min_file_size: $events_loc.pres_mgmt.qry__files_min_size ?? 100000000, // in bytes
|
||||||
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
// file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
||||||
log_lvl: log_lvl,
|
// log_lvl: log_lvl,
|
||||||
});
|
// });
|
||||||
|
qry__trigger = true;
|
||||||
$events_loc.pres_mgmt.show_report = 'large_files';
|
$events_loc.pres_mgmt.show_report = 'large_files';
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -456,11 +465,12 @@ async function handle_qry__event_file(
|
|||||||
class="inline-block select text-sm w-40 p-1 m-1 ae_btn_info"
|
class="inline-block select text-sm w-40 p-1 m-1 ae_btn_info"
|
||||||
bind:value={$events_loc.pres_mgmt.qry__file_purpose}
|
bind:value={$events_loc.pres_mgmt.qry__file_purpose}
|
||||||
onchange={() => {
|
onchange={() => {
|
||||||
handle_qry__event_file({
|
// handle_qry__event_file({
|
||||||
min_file_size: $events_loc.pres_mgmt.qry__files_min_size ?? 100000000, // in bytes
|
// min_file_size: $events_loc.pres_mgmt.qry__files_min_size ?? 100000000, // in bytes
|
||||||
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
// file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
|
||||||
log_lvl: 1,
|
// log_lvl: 1,
|
||||||
});
|
// });
|
||||||
|
qry__trigger = true;
|
||||||
$events_loc.pres_mgmt.show_report = 'large_files';
|
$events_loc.pres_mgmt.show_report = 'large_files';
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -296,16 +296,9 @@ async function handle_search__event_presenter(
|
|||||||
type="button"
|
type="button"
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
$events_loc.pres_mgmt.rpt__presenter_agree = !$events_loc.pres_mgmt.rpt__presenter_agree;
|
$events_loc.pres_mgmt.rpt__presenter_agree = !$events_loc.pres_mgmt.rpt__presenter_agree;
|
||||||
// rpt__name = '';
|
|
||||||
|
|
||||||
// ae_promises.handle_search__event_presenter = handle_search__event_presenter({
|
|
||||||
// agree: $events_loc.pres_mgmt.rpt__presenter_agree ?? false,
|
|
||||||
// ft_search_str: '',
|
|
||||||
// lk_search_str: '',
|
|
||||||
// log_lvl: log_lvl,
|
|
||||||
// });
|
|
||||||
rpt__name = 'presenters_agree';
|
|
||||||
qry__trigger = true;
|
qry__trigger = true;
|
||||||
|
rpt__name = 'presenters_agree';
|
||||||
}}
|
}}
|
||||||
class="ae_btn_info btn btn-sm m-1"
|
class="ae_btn_info btn btn-sm m-1"
|
||||||
>
|
>
|
||||||
@@ -378,8 +371,8 @@ async function handle_search__event_presenter(
|
|||||||
// order_by_li: $events_loc.pres_mgmt.qry__presenter_order_by_li,
|
// order_by_li: $events_loc.pres_mgmt.qry__presenter_order_by_li,
|
||||||
// log_lvl: log_lvl,
|
// log_lvl: log_lvl,
|
||||||
// });
|
// });
|
||||||
rpt__name = 'presenters_overview';
|
|
||||||
qry__trigger = true;
|
qry__trigger = true;
|
||||||
|
rpt__name = 'presenters_overview';
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<option value="updated_on">Updated On</option>
|
<option value="updated_on">Updated On</option>
|
||||||
|
|||||||
@@ -296,19 +296,16 @@ async function handle_qry__event_session(
|
|||||||
Without
|
Without
|
||||||
{/if}
|
{/if}
|
||||||
Files
|
Files
|
||||||
|
</h3>
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-center">
|
<div class="flex flex-row items-center justify-center">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
$events_loc.pres_mgmt.rpt__session_no_files = !$events_loc.pres_mgmt.rpt__session_no_files;
|
$events_loc.pres_mgmt.rpt__session_no_files = !$events_loc.pres_mgmt.rpt__session_no_files;
|
||||||
// ae_promises.handle_qry__event_session =
|
|
||||||
// handle_qry__event_session({
|
|
||||||
// qry_files: !$events_loc.pres_mgmt.rpt__session_no_files,
|
|
||||||
// });
|
|
||||||
|
|
||||||
rpt__name = 'session_no_files';
|
|
||||||
qry__trigger = true;
|
qry__trigger = true;
|
||||||
|
rpt__name = 'session_no_files';
|
||||||
}}
|
}}
|
||||||
class="ae_btn_info btn-sm m-1"
|
class="ae_btn_info btn-sm m-1"
|
||||||
>
|
>
|
||||||
@@ -320,8 +317,7 @@ async function handle_qry__event_session(
|
|||||||
Without
|
Without
|
||||||
{/if}
|
{/if}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</h3>
|
|
||||||
</header>
|
</header>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
@@ -350,13 +346,9 @@ async function handle_qry__event_session(
|
|||||||
type="button"
|
type="button"
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
$events_loc.pres_mgmt.rpt__session_no_bio = !$events_loc.pres_mgmt.rpt__session_no_bio;
|
$events_loc.pres_mgmt.rpt__session_no_bio = !$events_loc.pres_mgmt.rpt__session_no_bio;
|
||||||
// ae_promises.handle_qry__event_session =
|
|
||||||
// handle_qry__event_session({
|
|
||||||
// qry_poc_bios: $events_loc.pres_mgmt.rpt__session_no_bio ?? false,
|
|
||||||
// });
|
|
||||||
|
|
||||||
rpt__name = 'session_no_bio';
|
|
||||||
qry__trigger = true;
|
qry__trigger = true;
|
||||||
|
rpt__name = 'session_no_bio';
|
||||||
}}
|
}}
|
||||||
class="ae_btn_info btn-sm m-1"
|
class="ae_btn_info btn-sm m-1"
|
||||||
>
|
>
|
||||||
@@ -400,13 +392,9 @@ async function handle_qry__event_session(
|
|||||||
type="button"
|
type="button"
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
$events_loc.pres_mgmt.rpt__session_poc_agree = !$events_loc.pres_mgmt.rpt__session_poc_agree;
|
$events_loc.pres_mgmt.rpt__session_poc_agree = !$events_loc.pres_mgmt.rpt__session_poc_agree;
|
||||||
// ae_promises.handle_qry__event_session =
|
|
||||||
// handle_qry__event_session({
|
|
||||||
// qry_poc_agree: $events_loc.pres_mgmt.rpt__session_poc_agree ?? false,
|
|
||||||
// });
|
|
||||||
|
|
||||||
rpt__name = 'sessions_poc_agree';
|
|
||||||
qry__trigger = true;
|
qry__trigger = true;
|
||||||
|
rpt__name = 'sessions_poc_agree';
|
||||||
}}
|
}}
|
||||||
class="ae_btn_info btn-sm m-1"
|
class="ae_btn_info btn-sm m-1"
|
||||||
title="Toggle to show sessions with or without POC agreement to terms"
|
title="Toggle to show sessions with or without POC agreement to terms"
|
||||||
|
|||||||
@@ -69,6 +69,79 @@ $effect(() => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function generate_file_export_csv(ae_obj_li) {
|
||||||
|
console.log(`*** generate_file_export_csv() ***`, ae_obj_li);
|
||||||
|
|
||||||
|
// We need to create a list with the column names and then a list of lists with the data.
|
||||||
|
let csv_data = [];
|
||||||
|
let csv_columns = [
|
||||||
|
'File ID', 'Filename', 'Extension', 'Size', 'SHA256 Hash', 'Uploaded On', 'Updated On',
|
||||||
|
'Session ID', 'Session Code', 'Session Name', 'Session Start Datetime',
|
||||||
|
'Presentation ID', 'Presentation Name', 'Presentation Time',
|
||||||
|
'Presenter ID', 'Name', 'Email',
|
||||||
|
'Download Link',
|
||||||
|
'Download Link - Session Code'
|
||||||
|
];
|
||||||
|
csv_data.push(csv_columns);
|
||||||
|
|
||||||
|
for (let i = 0; i < ae_obj_li.length; i++) {
|
||||||
|
let csv_row = [];
|
||||||
|
csv_row.push(ae_obj_li[i].event_file_id);
|
||||||
|
csv_row.push(ae_obj_li[i].filename ? `"${ae_util.clean_filename(ae_obj_li[i].filename)}"` : '');
|
||||||
|
csv_row.push(ae_obj_li[i].extension ? ae_obj_li[i].extension : '');
|
||||||
|
csv_row.push(ae_obj_li[i].file_size ? ae_util.format_bytes(ae_obj_li[i].file_size) : '');
|
||||||
|
csv_row.push(ae_obj_li[i].hash_sha256.slice(0, 10) + '...');
|
||||||
|
csv_row.push(ae_obj_li[i].created_on ? ae_util.iso_datetime_formatter(ae_obj_li[i].created_on, 'datetime_iso_12_no_seconds') : '');
|
||||||
|
csv_row.push(ae_obj_li[i].updated_on ? ae_util.iso_datetime_formatter(ae_obj_li[i].updated_on, 'datetime_iso_12_no_seconds') : '');
|
||||||
|
|
||||||
|
csv_row.push(ae_obj_li[i].event_session_id ? ae_obj_li[i].event_session_id : '');
|
||||||
|
csv_row.push(ae_obj_li[i].event_session_code ? ae_obj_li[i].event_session_code : '');
|
||||||
|
csv_row.push(ae_obj_li[i].event_session_name ?? '');
|
||||||
|
csv_row.push(ae_obj_li[i].event_session_start_datetime ? ae_util.iso_datetime_formatter(ae_obj_li[i].event_session_start_datetime, 'datetime_iso_12_no_seconds') : '');
|
||||||
|
|
||||||
|
csv_row.push(ae_obj_li[i].event_presentation_id ? ae_obj_li[i].event_presentation_id : '');
|
||||||
|
csv_row.push(ae_obj_li[i].event_presentation_name ?? '');
|
||||||
|
csv_row.push(ae_obj_li[i].event_presentation_start_datetime ? ae_util.iso_datetime_formatter(ae_obj_li[i].event_presentation_start_datetime, 'datetime_iso_12_no_seconds') : '');
|
||||||
|
|
||||||
|
csv_row.push(ae_obj_li[i].event_presenter_id ? ae_obj_li[i].event_presenter_id : '');
|
||||||
|
csv_row.push(ae_obj_li[i].event_presenter_full_name ?? '');
|
||||||
|
csv_row.push(ae_obj_li[i].event_presenter_email ? ae_obj_li[i].event_presenter_email : '');
|
||||||
|
|
||||||
|
csv_row.push(encodeURI(`${$ae_api.base_url}/event/file/${ae_obj_li[i]?.event_file_id_random}/download?filename=${ae_util.clean_filename(ae_obj_li[i]?.filename)}&x_no_account_id_token=direct-download`));
|
||||||
|
|
||||||
|
csv_row.push(encodeURI(`${$ae_api.base_url}/event/file/${ae_obj_li[i]?.event_file_id_random}/download?filename=${ae_obj_li[i]?.event_session_code}-${ae_util.clean_filename(ae_obj_li[i]?.filename)}&x_no_account_id_token=direct-download`));
|
||||||
|
|
||||||
|
csv_data.push(csv_row);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('CSV Data:', csv_data);
|
||||||
|
|
||||||
|
let csv_content_str = '';
|
||||||
|
csv_data.forEach(function(row) {
|
||||||
|
csv_content_str += row.join(';');
|
||||||
|
csv_content_str += '\n';
|
||||||
|
});
|
||||||
|
|
||||||
|
const blob = new Blob([csv_content_str], { type: 'text/csv;charset=utf-8;' });
|
||||||
|
const obj_url = URL.createObjectURL(blob);
|
||||||
|
|
||||||
|
const download_link = document.createElement('a');
|
||||||
|
download_link.setAttribute('href', obj_url);
|
||||||
|
download_link.setAttribute('download', `file_list_${ae_util.iso_datetime_formatter()}.csv`);
|
||||||
|
download_link.setAttribute('style', 'display: none;')
|
||||||
|
download_link.textContent = 'Download CSV';
|
||||||
|
|
||||||
|
// document.querySelector('body').appendChild(download_link);
|
||||||
|
document.getElementById('download_csv_container').appendChild(download_link);
|
||||||
|
|
||||||
|
// Automatically download the file
|
||||||
|
download_link.click();
|
||||||
|
|
||||||
|
return csv_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
@@ -122,7 +195,7 @@ $effect(() => {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<span class="fas fa-file-csv mx-1"></span>
|
<span class="fas fa-file-csv mx-1"></span>
|
||||||
Export Presenters CSV
|
Export Files CSV
|
||||||
</button>
|
</button>
|
||||||
<span id="download_csv_container"></span>
|
<span id="download_csv_container"></span>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user