From 12c778c7e2d18ffbc1b21322bd7894bf79dfcdd7 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 27 Jun 2024 18:19:29 -0400 Subject: [PATCH] Now with a better file manager. It still needs work. --- src/lib/ae_events__event_file.ts | 50 +++++ src/lib/ae_events__event_presenter.ts | 1 + src/lib/ae_events_functions.ts | 18 +- src/lib/element_manage_event_file_li.svelte | 184 ++++++++++++++++-- .../session/[slug]/+page.svelte | 68 +------ 5 files changed, 226 insertions(+), 95 deletions(-) diff --git a/src/lib/ae_events__event_file.ts b/src/lib/ae_events__event_file.ts index ad10cd90..21e306ca 100644 --- a/src/lib/ae_events__event_file.ts +++ b/src/lib/ae_events__event_file.ts @@ -211,6 +211,55 @@ export async function create_event_file_obj_from_hosted_file_async( } +// Updated 2024-06-13 +export async function handle_update_ae_obj__event_file( + { + api_cfg, + event_file_id, + data_kv, + params={}, + log_lvl=0 + }: { + api_cfg: any, + event_file_id: string, + data_kv: any, + params?: key_val, + log_lvl?: number + } + ) { + console.log(`*** handle_update_ae_obj__event_file() *** event_file_id=${event_file_id}`); + + ae_promises.update__event_file_obj = await api.update_ae_obj_id_crud({ + api_cfg: api_cfg, + obj_type: 'event_file', + obj_id: event_file_id, // NOTE: This is the FQDN, not normally the ID. + fields: data_kv, + key: api_cfg.api_crud_super_key, + params: params, + return_obj: true, + log_lvl: log_lvl + }) + .then(function (event_file_obj_update_result) { + if (event_file_obj_update_result) { + handle_db_save_ae_obj_li__event_file({obj_type: 'event_file', obj_li: [event_file_obj_update_result]}); + return event_file_obj_update_result; + } else { + return null; + } + }) + .catch(function (error) { + console.log('No results returned or failed.', error); + }) + .finally(function () { + }); + + if (log_lvl) { + console.log('ae_promises.update__event_file_obj:', ae_promises.update__event_file_obj); + } + return ae_promises.update__event_file_obj; +} + + // This function will loop through the event_file_obj_li and save each one to the DB. export function handle_db_save_ae_obj_li__event_file( { @@ -284,4 +333,5 @@ export function handle_db_save_ae_obj_li__event_file( return true; } + return false; } diff --git a/src/lib/ae_events__event_presenter.ts b/src/lib/ae_events__event_presenter.ts index 2429fad0..eaa22b3f 100644 --- a/src/lib/ae_events__event_presenter.ts +++ b/src/lib/ae_events__event_presenter.ts @@ -319,4 +319,5 @@ export function handle_db_save_ae_obj_li__event_presenter( return true; } + return false; } diff --git a/src/lib/ae_events_functions.ts b/src/lib/ae_events_functions.ts index 08b5b271..e7373b2c 100644 --- a/src/lib/ae_events_functions.ts +++ b/src/lib/ae_events_functions.ts @@ -3,7 +3,7 @@ import { handle_load_ae_obj_id__event, handle_load_ae_obj_li__event, - handle_db_save_ae_obj_li__event + handle_db_save_ae_obj_li__event, } from "$lib/ae_events__event"; import { @@ -11,7 +11,8 @@ import { handle_load_ae_obj_li__event_file, handle_delete_ae_obj_id__event_file, create_event_file_obj_from_hosted_file_async, - handle_db_save_ae_obj_li__event_file + handle_update_ae_obj__event_file, + handle_db_save_ae_obj_li__event_file, } from "$lib/ae_events__event_file"; import { @@ -22,28 +23,28 @@ import { handle_create_ae_obj__exhibit_tracking, handle_update_ae_obj__exhibit_tracking, handle_download_export__event_exhibit_tracking, - handle_db_save_ae_obj_li__exhibitor + handle_db_save_ae_obj_li__exhibitor, } from "$lib/ae_events__exhibit"; import { handle_load_ae_obj_id__event_location, handle_load_ae_obj_li__event_location, handle_create_ae_obj__event_location, - handle_db_save_ae_obj_li__event_location + handle_db_save_ae_obj_li__event_location, } from "$lib/ae_events__event_location"; import { handle_load_ae_obj_id__event_session, handle_load_ae_obj_li__event_session, handle_search__event_session, - handle_db_save_ae_obj_li__event_session + handle_db_save_ae_obj_li__event_session, } from "$lib/ae_events__event_session"; import { handle_load_ae_obj_id__event_presentation, handle_load_ae_obj_li__event_presentation, handle_create_ae_obj__event_presentation, - handle_db_save_ae_obj_li__event_presentation + handle_db_save_ae_obj_li__event_presentation, } from "$lib/ae_events__event_presentation"; import { @@ -51,14 +52,14 @@ import { handle_load_ae_obj_li__event_presenter, handle_create_ae_obj__event_presenter, handle_update_ae_obj__event_presenter, - handle_db_save_ae_obj_li__event_presenter + handle_db_save_ae_obj_li__event_presenter, } from "$lib/ae_events__event_presenter"; import { handle_load_ae_obj_id__badge, handle_load_ae_obj_li__badge, handle_search__event_badge, - handle_db_save_ae_obj_li__badge + handle_db_save_ae_obj_li__badge, } from "$lib/ae_events__event_badge"; @@ -69,6 +70,7 @@ let export_obj = { handle_load_ae_obj_id__event_file: handle_load_ae_obj_id__event_file, handle_load_ae_obj_li__event_file: handle_load_ae_obj_li__event_file, handle_delete_ae_obj_id__event_file: handle_delete_ae_obj_id__event_file, + handle_update_ae_obj__event_file: handle_update_ae_obj__event_file, handle_load_ae_obj_id__event_location: handle_load_ae_obj_id__event_location, handle_load_ae_obj_li__event_location: handle_load_ae_obj_li__event_location, diff --git a/src/lib/element_manage_event_file_li.svelte b/src/lib/element_manage_event_file_li.svelte index 14303d9a..e60f6f59 100644 --- a/src/lib/element_manage_event_file_li.svelte +++ b/src/lib/element_manage_event_file_li.svelte @@ -17,10 +17,22 @@ import { db_events } from "$lib/db_events"; import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores'; import { events_func } from '$lib/ae_events_functions'; -export let container_class_li = []; +export let container_class_li: string|Array = []; export let link_to_type: string; export let link_to_id: string; -export let show_convert_btn: boolean = null; +export let allow_basic: boolean = false; +export let allow_moderator: boolean = false; + +export let show_convert_btn: null|boolean = null; + +// This more or less overrides the default access control. Some elements may have their own access control. +if ($ae_loc.administrator_access) { + allow_basic = true; + allow_moderator = true; +} else if ($ae_loc.trusted_access) { + allow_basic = true; + allow_moderator = true; +} let ae_placeholder_li: key_val = {}; let ae_promises: key_val = {}; // Promise; @@ -41,7 +53,6 @@ onMount(() => { $slct_trigger = 'load__event_file_obj_li'; }); - @@ -68,20 +79,33 @@ onMount(() => { {#if $lq__event_file_obj_li && $lq__event_file_obj_li.length} - +
- + + + + + + + + + + {#each $lq__event_file_obj_li as event_file_obj} - - + + - diff --git a/src/routes/events_pres_mgmt/session/[slug]/+page.svelte b/src/routes/events_pres_mgmt/session/[slug]/+page.svelte index eafba864..1c292ff7 100644 --- a/src/routes/events_pres_mgmt/session/[slug]/+page.svelte +++ b/src/routes/events_pres_mgmt/session/[slug]/+page.svelte @@ -1624,76 +1624,12 @@ function send_sign_in_poc_email(

Error: {error.message}

{/await} - {#if $lq__event_file_obj_li && $lq__event_file_obj_li.length > 0} - - Files: -
    - {#each $lq__event_file_obj_li as event_file_obj} - {#if ( - event_file_obj.event_presentation_id_random == event_presentation_obj.event_presentation_id_random - && ( - $ae_loc.trusted_access - || $events_loc.auth__kv.presentation[event_presentation_obj.event_presentation_id_random] - || $events_loc.auth__kv.session[$events_slct.event_session_id] // This is the session ID of the person who signed in. - ) - )} -
  • - -
  • - {/if} - {/each} -
- {/if}
FileOptionsStatusMeta
+
+ + +
+ + + +
+
+
+ +
+ {#if event_file_obj.open_in_os == 'win'} + + MS Windows + + {:else if event_file_obj.open_in_os == 'mac'} + + Apple macOS + + {/if} +
+ + +
+ + +
+ +
-
- {event_file_obj.open_in_os} - {event_file_obj.file_purpose} -
+
+ + Type: {event_file_obj.extension} - {#if event_file_obj.open_in_os == 'win'} + Size: {ae_util.format_bytes(event_file_obj.file_size)} - + + + + Hash: {event_file_obj.hash_sha256.slice(0, 10)}… - + ID: {event_file_obj.hosted_file_id_random} + + - - Uploaded: - {ae_util.iso_datetime_formatter(event_file_obj.created_on, 'date_full')} + + + + + + {ae_util.iso_datetime_formatter(event_file_obj.created_on, 'dddd')} + + {ae_util.iso_datetime_formatter(event_file_obj.created_on, 'date_iso')} at {ae_util.iso_datetime_formatter(event_file_obj.created_on, 'time_short_no_leading')} +