diff --git a/src/lib/ae_events__event_file.ts b/src/lib/ae_events__event_file.ts index a269678e..ad10cd90 100644 --- a/src/lib/ae_events__event_file.ts +++ b/src/lib/ae_events__event_file.ts @@ -269,6 +269,7 @@ export function handle_db_save_ae_obj_li__event_file( filename_no_ext: obj.filename_no_ext, filename_w_ext: obj.filename_w_ext, hosted_file_content_type: obj.hosted_file_content_type, + file_size: obj.file_size, hosted_file_size: obj.hosted_file_size, }); // console.log(`Put obj with ID: ${obj.event_file_id_random} or ${id_random}`); diff --git a/src/lib/ae_utils.ts b/src/lib/ae_utils.ts index 9d95c595..5bc2def3 100644 --- a/src/lib/ae_utils.ts +++ b/src/lib/ae_utils.ts @@ -137,6 +137,22 @@ export let iso_datetime_formatter = function iso_datetime_formatter( } +function format_bytes( + bytes: number, + decimals: number = 2 + ) { + if (bytes === 0) return '0 Bytes'; + + const k = 1024; + const dm = decimals < 0 ? 0 : decimals; + const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; + + const i = Math.floor(Math.log(bytes) / Math.log(k)); + + return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]; +} + + /* This utility function will add commas to a number. */ function number_w_commas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); @@ -993,6 +1009,7 @@ function return_obj_type_path({obj_type=null, obj_type_prop_name=null}) { export let ae_util = { iso_datetime_formatter: iso_datetime_formatter, + format_bytes: format_bytes, number_w_commas: number_w_commas, extract_prefixed_form_data: extract_prefixed_form_data, process_data_string: process_data_string, diff --git a/src/lib/db_events.ts b/src/lib/db_events.ts index ab11453f..bf84d8af 100644 --- a/src/lib/db_events.ts +++ b/src/lib/db_events.ts @@ -204,39 +204,40 @@ export interface File { hosted_file_id_random: string; hash_sha256: string; - for_type: string; - for_id: string; - for_id_random: string; + for_type?: string; + for_id?: string; + for_id_random?: string; event_id_random: string; - event_session_id_random: string; - event_presentation_id_random: string; - event_presenter_id_random: string; - event_location_id_random: string; + event_session_id_random?: string; + event_presentation_id_random?: string; + event_presenter_id_random?: string; + event_location_id_random?: string; filename: string; extension: string; - open_in_os: null|string; // null, empty, 'mac', or 'win' + open_in_os?: null|string; // null, empty, 'mac', or 'win' lu_file_purpose_id: string; lu_event_file_purpose_name: string; file_purpose: string; enable: null|boolean; - hide: null|boolean; - priority: null|boolean - sort: null|number; - group: null|string; - notes: null|string; + hide?: null|boolean; + priority?: null|boolean + sort?: null|number; + group?: null|string; + notes?: null|string; created_on: Date; - updated_on: null|Date; + updated_on?: null|Date; // Additional fields for convenience (database views) filename_no_ext: string; filename_w_ext: string; hosted_file_content_type: string; - hosted_file_size: number; // In bytes + file_size: number; // In bytes + hosted_file_size?: number; // In bytes } diff --git a/src/routes/events_pres_mgmt/session/[slug]/+page.svelte b/src/routes/events_pres_mgmt/session/[slug]/+page.svelte index 12c79b19..e7848c11 100644 --- a/src/routes/events_pres_mgmt/session/[slug]/+page.svelte +++ b/src/routes/events_pres_mgmt/session/[slug]/+page.svelte @@ -446,7 +446,7 @@ function send_sign_in_poc_email( {:else} Show {/if} - Help + Help? @@ -1675,6 +1675,14 @@ function send_sign_in_poc_email( {ae_util.shorten_filename({filename: event_file_obj.filename, max_length: 25})} + + + {event_file_obj.file_purpose} + + {/if} diff --git a/src/routes/events_pres_mgmt/session/[slug]/presenter_view.svelte b/src/routes/events_pres_mgmt/session/[slug]/presenter_view.svelte index 06e73657..8782fadb 100644 --- a/src/routes/events_pres_mgmt/session/[slug]/presenter_view.svelte +++ b/src/routes/events_pres_mgmt/session/[slug]/presenter_view.svelte @@ -318,10 +318,10 @@ async function handle_delete__event_file({event_file_id}) {

Presenter Details for:
- {$events_slct.presenter_obj.full_name} + {$lq__event_presenter_obj.full_name} - ({$events_slct.presenter_obj.email}) + ({$lq__event_presenter_obj.email}) {#if $ae_loc.trusted_access} @@ -331,7 +331,7 @@ async function handle_delete__event_file({event_file_id}) { type="button" - use:clipboard={encodeURI(`${$ae_loc.url_origin}/events_pres_mgmt/session/${$events_slct.event_session_id}?person_id=${$events_slct.presenter_obj.person_id_random}&person_pass=${$events_slct.presenter_obj.person_passcode}&presentation_id=${$events_slct.presentation_obj.event_presentation_id_random}&presenter_id=${$events_slct.presenter_obj.event_presenter_id_random}`)} + use:clipboard={encodeURI(`${$ae_loc.url_origin}/events_pres_mgmt/session/${$events_slct.event_session_id}?person_id=${$lq__event_presenter_obj.person_id_random}&person_pass=${$lq__event_presenter_obj.person_passcode}&presentation_id=${$events_slct.presentation_obj.event_presentation_id_random}&presenter_id=${$lq__event_presenter_obj.event_presenter_id_random}`)} class="btn btn-sm variant-ghost-warning float-right m-1" title="Copy the presenter access link to the clipboard." > @@ -376,10 +376,10 @@ async function handle_delete__event_file({event_file_id}) { { + console.log(`ae_crud_updated:`, e.detail); + + events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random, log_lvl: 1}) + .then(function (load_results) { + // Maybe reload page? + // window.location.reload(); + }); + }} > - {$events_slct.presenter_obj.given_name} + {$lq__event_presenter_obj.given_name} { + console.log(`ae_crud_updated:`, e.detail); + + events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random, log_lvl: 1}) + .then(function (load_results) { + // Maybe reload page? + // window.location.reload(); + }); + }} > - {$events_slct.presenter_obj.family_name} + {$lq__event_presenter_obj.family_name} @@ -424,48 +442,66 @@ async function handle_delete__event_file({event_file_id}) { { + console.log(`ae_crud_updated:`, e.detail); + + events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random, log_lvl: 1}) + .then(function (load_results) { + // Maybe reload page? + // window.location.reload(); + }); + }} > {$events_slct.presenter_obj.email} + >{$lq__event_presenter_obj.email} - {#if $events_slct.presenter_obj.person_primary_email != $events_slct.presenter_obj.email} + {#if $lq__event_presenter_obj.person_primary_email != $lq__event_presenter_obj.email}
{ + console.log(`ae_crud_updated:`, e.detail); + + events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random, log_lvl: 1}) + .then(function (load_results) { + // Maybe reload page? + // window.location.reload(); + }); + }} > {$events_slct.presenter_obj.person_primary_email} + >{$lq__event_presenter_obj.person_primary_email} @@ -473,10 +509,10 @@ async function handle_delete__event_file({event_file_id}) { trigger_patch={ae_triggers.update_person_primary_email} api_cfg={$ae_api} object_type={'person'} - object_id={$events_slct.presenter_obj.person_id_random} + object_id={$lq__event_presenter_obj.person_id_random} field_name={'primary_email'} field_type={'text'} - field_value={$events_slct.presenter_obj.email} + field_value={$lq__event_presenter_obj.email} allow_null={false} hide_edit_btn={true} outline_element={false} @@ -516,62 +552,89 @@ async function handle_delete__event_file({event_file_id}) { { + console.log(`ae_crud_updated:`, e.detail); + + events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 1}) + .then(function (load_results) { + // Maybe reload page? + // window.location.reload(); + }); + }} > - {$events_slct.presenter_obj.affiliations ?? '-- affiliations not set --'} + {$lq__event_presenter_obj.affiliations ?? '-- affiliations not set --'}
  • { + console.log(`ae_crud_updated:`, e.detail); + + events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 1}) + .then(function (load_results) { + // Maybe reload page? + // window.location.reload(); + }); + }} > - {$events_slct.presenter_obj.professional_title && $events_slct.presenter_obj.professional_title.length ? $events_slct.presenter_obj.professional_title : '-- professional title not set --'} + {$lq__event_presenter_obj.professional_title && $lq__event_presenter_obj.professional_title.length ? $lq__event_presenter_obj.professional_title : '-- professional title not set --'}
  • { + console.log(`ae_crud_updated:`, e.detail); + + events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 1}) + .then(function (load_results) { + // Maybe reload page? + // window.location.reload(); + }); + }} > Passcode: - {$events_slct.presenter_obj.person_passcode ?? '-- passcode not set --'} + {$lq__event_presenter_obj.person_passcode ?? '-- passcode not set --'} Person link - {#if $events_slct.presenter_obj.person_id_random} + {#if $lq__event_presenter_obj.person_id_random} - {$events_slct.presenter_obj.person_id_random} + {$lq__event_presenter_obj.person_id_random} {:else} -- person not set -- @@ -680,7 +743,7 @@ async function handle_delete__event_file({event_file_id}) { return load_results; }); - ae_tmp.person_id = $events_slct.presenter_obj?.person_id_random; + ae_tmp.person_id = $lq__event_presenter_obj?.person_id_random; ae_tmp.show__edit_person = true; }} class="btn btn-sm variant-soft-warning hover:variant-ghost-warning" @@ -697,7 +760,7 @@ async function handle_delete__event_file({event_file_id}) {

    - Files: {$events_slct.presenter_obj.file_count ? `${$events_slct.presenter_obj.file_count}x` : '-- none --'} + Files: {$lq__event_presenter_obj.file_count ? `${$lq__event_presenter_obj.file_count}x` : '-- none --'}

    @@ -851,8 +918,8 @@ WARNING: The file upload and management is a work in progress. You can upload an hide_edit_btn={true} outline_element={false} show_crud={false} - display_inline={true} - class_li={'m-1'} + display_inline={false} + class_li={'grow m-1 flex flex-row items-center'} on:ae_crud_updated={e => { console.log(`ae_crud_updated:`, e.detail); @@ -872,7 +939,10 @@ WARNING: The file upload and management is a work in progress. You can upload an }); }} > - + + +
  • + +
    + + Uploaded: + {ae_util.iso_datetime_formatter(event_file_obj.created_on, 'date_full')} + {ae_util.iso_datetime_formatter(event_file_obj.created_on, 'time_short')} + + + Size: + {ae_util.format_bytes(event_file_obj.file_size)} + +
    {/each}