From b85d2ee98c3abb9bebd9193fae5b3b633e6a32d6 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 2 Oct 2025 12:57:37 -0400 Subject: [PATCH] The new event files reports has been cleaned up and more configurable. --- package.json | 2 +- src/lib/ae_events_stores.ts | 1 + src/routes/events/[event_id]/+layout.ts | 5 +- .../events/[event_id]/reports/+page.svelte | 49 +++- .../[event_id]/reports/reports_files.svelte | 256 ++++++++++++++---- .../reports/reports_presenters.svelte | 2 +- 6 files changed, 254 insertions(+), 61 deletions(-) diff --git a/package.json b/package.json index e20d7703..1a85995d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "osit-aether-app-svelte", - "version": "3.5.0", + "version": "3.5.1", "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/", "private": true, diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index de5d5b9c..a7cc046b 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -221,6 +221,7 @@ let events_local_data_struct: key_val = { qry_limit__sessions: 100, qry_max: 500, // This is the max number the limit is allowed to be set to. qry__files_offset_seconds: null, + qry__files_sort: 'created_on', qry_and__file_count: true, // Essentially it should be greater than 0 diff --git a/src/routes/events/[event_id]/+layout.ts b/src/routes/events/[event_id]/+layout.ts index da057e03..d9fa7c82 100644 --- a/src/routes/events/[event_id]/+layout.ts +++ b/src/routes/events/[event_id]/+layout.ts @@ -6,7 +6,7 @@ import { browser } from '$app/environment'; import { events_func } from '$lib/ae_events_functions'; -export async function load({ params, parent }) { // route +export async function load({ params, parent, url }) { // route let log_lvl: number = 0; let data = await parent(); @@ -27,6 +27,9 @@ export async function load({ params, parent }) { // route ae_acct.slct.event_id = event_id; if (browser) { + // console.log(`TEST URL Params`, params); + // console.log(`TEST URL`, url); + let load_event_obj = await events_func.load_ae_obj_id__event({ api_cfg: ae_acct.api, event_id: event_id, diff --git a/src/routes/events/[event_id]/reports/+page.svelte b/src/routes/events/[event_id]/reports/+page.svelte index 7bebb164..6be20aeb 100644 --- a/src/routes/events/[event_id]/reports/+page.svelte +++ b/src/routes/events/[event_id]/reports/+page.svelte @@ -3,12 +3,13 @@ interface Props { /** @type {import('./$types').PageData} */ data: any; } - let { data }: Props = $props(); let log_lvl: number = $state(0); // console.log(`ae_events_pres_mgmt event [slug] +page.svelte data:`, data); +import { page } from '$app/stores'; + import type { key_val } from '$lib/ae_stores'; import { ae_util } from '$lib/ae_utils/ae_utils'; @@ -32,6 +33,12 @@ console.log(`$slct.account_id = `, $slct.account_id); let ae_acct = data[$slct.account_id]; console.log(`ae_acct = `, ae_acct); +// console.log(`TEST data`, data); +// console.log(`TEST data.url`, data?.url); +// console.log(`TEST data.url.hash`, data?.url?.hash); +// console.log(`TEST $page.url`, $page?.url); +console.log(`TEST $page.url.hash`, $page?.url?.hash); + $events_slct.event_id = ae_acct.slct.event_id; $events_slct.event_obj = ae_acct.slct.event_obj; $events_slct.event_session_obj_li = ae_acct.slct.event_session_obj_li; @@ -59,6 +66,18 @@ let ae_triggers: key_val = $state({ rpt__event_presenters: true, }); +let url_hash: string = $state($page?.url?.hash); + +$effect(() => { + if (url_hash) { + url_hash = url_hash.replace('#', ''); + if (log_lvl) { + console.log(`URL hash changed: ${url_hash}`); + } + $events_loc.pres_mgmt.show_report = url_hash; + } +}); + // 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, @@ -734,7 +753,7 @@ async function handle_qry__event_session( - + --> - --> + + @@ -826,13 +863,13 @@ async function handle_qry__event_session( -{#if $events_loc.pres_mgmt.show_report == 'recent_files' || $events_loc.pres_mgmt.show_report == 'large_files'} +{#if $events_loc.pres_mgmt.show_report == 'event_files' ||$events_loc.pres_mgmt.show_report == 'recent_files' || $events_loc.pres_mgmt.show_report == 'large_files'} { @@ -120,6 +168,9 @@ $effect(() => { console.log(`Report: ${rpt__name}; Triggered query for event files.`); } qry__trigger = false; + + rpt__order_by_li = sort_option_kv[$events_loc.pres_mgmt.qry__files_sort]?.field_kv ?? sort_option_kv['created_on'].field_kv; + if (rpt__name == 'recent_files') { handle_qry__event_file({ created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds, @@ -141,6 +192,17 @@ $effect(() => { order_by_li: rpt__order_by_li, log_lvl: log_lvl, }); + } else if (rpt__name == 'event_files') { + handle_qry__event_file({ + created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds, + min_file_size: $events_loc.pres_mgmt.qry__files_min_size, + file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null, + limit: rpt__limit, + order_by_li: rpt__order_by_li, + log_lvl: log_lvl, + }); + } else { + console.log(`Unknown report name: ${rpt__name}`); } } }); @@ -155,7 +217,7 @@ async function handle_qry__event_file( enabled = rpt__hidden, hidden = rpt__enabled, limit = rpt__limit, - order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'created_on': 'DESC', 'updated_on': 'DESC', 'filename': 'ASC', 'extension': 'ASC', 'hosted_file_size': 'ASC'}, + order_by_li = rpt__order_by_li, log_lvl = 0, }: { created_on_offset?: string | null, @@ -306,7 +368,7 @@ async function handle_qry__event_file(
- { - // 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, - // }); - qry__trigger = true; - $events_loc.pres_mgmt.show_report = 'recent_files'; - }} - > - - - - - - - - +
@@ -419,7 +481,7 @@ async function handle_qry__event_file( -{#if rpt__name == 'large_files'} +{#if rpt__name == 'event_files' || rpt__name == 'large_files'}

{#if qry__status == 'loading'} @@ -428,11 +490,57 @@ async function handle_qry__event_file( {:else} {/if} - Large File Uploads + File Uploads

+ + + { + if (event.target.value) { + // rpt__sort = event.target.value; + $events_loc.pres_mgmt.qry__files_sort = event.target.value; + } else { + // rpt__sort = 'created_on'; + $events_loc.pres_mgmt.qry__files_sort = 'created_on'; + } + + // rpt__order_by_li = sort_option_kv[rpt__sort]?.field_kv ?? sort_option_kv['created_on'].field_kv; + rpt__order_by_li = sort_option_kv[$events_loc.pres_mgmt.qry__files_sort]?.field_kv ?? sort_option_kv['created_on'].field_kv; + + // 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, + // }); + qry__trigger = true; + $events_loc.pres_mgmt.show_report = 'event_files'; + }} + > + + + + + + + + + + + + + +
{/if} diff --git a/src/routes/events/[event_id]/reports/reports_presenters.svelte b/src/routes/events/[event_id]/reports/reports_presenters.svelte index 7d30c4c4..fad93c13 100644 --- a/src/routes/events/[event_id]/reports/reports_presenters.svelte +++ b/src/routes/events/[event_id]/reports/reports_presenters.svelte @@ -166,7 +166,7 @@ async function handle_search__event_presenter( enabled = rpt__hidden, hidden = rpt__enabled, limit = rpt__limit, - order_by_li = {'updated_on': 'DESC', 'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'email': 'ASC', 'created_on': 'DESC'}, + order_by_li = rpt__order_by_li, // params = { // 'qry__enabled': $events_loc.pres_mgmt.qry_enabled ?? 'enabled', // 'qry__hidden': $events_loc.pres_mgmt.qry_hidden ?? 'not_hidden',