From 5da209ee1c75ae99d85541ecb286d220b6423bc2 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 18 Oct 2024 15:51:52 -0400 Subject: [PATCH] Now with more download and copy link options. --- src/lib/ae_utils/ae_utils.ts | 3 +- src/lib/ae_utils/ae_utils__files.ts | 14 ++ src/lib/element_manage_event_file_li.svelte | 105 ++++++++++++--- .../ae_comp__event_location_obj_li.svelte | 1 - .../events/[event_id]/reports/+page.svelte | 1 + .../reports/event_reports_page_menu.svelte | 27 ++++ .../ae_comp__event_file_obj_tbl.svelte | 120 +++++++++++++++--- 7 files changed, 228 insertions(+), 43 deletions(-) diff --git a/src/lib/ae_utils/ae_utils.ts b/src/lib/ae_utils/ae_utils.ts index f711c6eb..445da06e 100644 --- a/src/lib/ae_utils/ae_utils.ts +++ b/src/lib/ae_utils/ae_utils.ts @@ -2,7 +2,7 @@ import { process_permission_checks } from './ae_utils__perm_checks'; import { iso_datetime_formatter } from './ae_utils__datetime_format'; import { is_datetime_recent } from './ae_utils__is_datetime_recent'; -import { format_bytes, guess_file_name, guess_file_extension, get_file_hash } from './ae_utils__files'; +import { clean_filename, format_bytes, guess_file_name, guess_file_extension, get_file_hash } from './ae_utils__files'; type key_str = { [key: string]: string; @@ -710,6 +710,7 @@ export let ae_util = { is_datetime_recent: is_datetime_recent, process_permission_checks: process_permission_checks, iso_datetime_formatter: iso_datetime_formatter, + clean_filename: clean_filename, format_bytes: format_bytes, number_w_commas: number_w_commas, guess_file_name: guess_file_name, diff --git a/src/lib/ae_utils/ae_utils__files.ts b/src/lib/ae_utils/ae_utils__files.ts index 71551fea..65e1a24d 100644 --- a/src/lib/ae_utils/ae_utils__files.ts +++ b/src/lib/ae_utils/ae_utils__files.ts @@ -1,5 +1,19 @@ // These are all file related functions. +// Use a defined list of unacceptable characters to remove from a filename. +// Updated 2024-10-18 +export let clean_filename = function clean_filename(filename: any|string, unacceptable_chars: RegExp = /[ <>:"/\\|?*]/g, replacement_char: string = '_') { + // console.log('*** clean_filename() ***'); + if (!filename) { + return ''; + } + + let cleaned_filename = filename.replace(unacceptable_chars, replacement_char); + // console.log(cleaned_filename); + return cleaned_filename; +} + + export let format_bytes = function format_bytes( bytes: number, decimals: number = 2 diff --git a/src/lib/element_manage_event_file_li.svelte b/src/lib/element_manage_event_file_li.svelte index 3d53474f..dc649548 100644 --- a/src/lib/element_manage_event_file_li.svelte +++ b/src/lib/element_manage_event_file_li.svelte @@ -30,7 +30,7 @@ export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', let ae_promises: key_val = {}; let ae_tmp: key_val = {}; ae_tmp.show__file_li = true; -ae_tmp.show__direct_download = false; +ae_tmp.show__direct_download = $events_loc.pres_mgmt.show__direct_download; // let ae_triggers: key_val = {}; onMount(() => { @@ -196,30 +196,95 @@ onMount(() => { {event_file_obj.file_purpose} - - - - + +
+ + Presentation Name: + + + + + + +
+ + {:else} + + + {#if $events_loc.pres_mgmt.show__direct_download} + + {:else} + + {/if} + {#if $events_loc.pres_mgmt.qry_hidden == 'all'} - - + + +
- - - - +
+ +
- - - + + Presentation Name: + + + + + + +
+ {ae_util.format_bytes(event_file_obj?.file_size)}