Now with the ability to rename files. Had to add a new Dexie update IDB function.
This commit is contained in:
@@ -250,7 +250,9 @@ export async function handle_update_ae_obj__event_file(
|
||||
})
|
||||
.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]});
|
||||
// handle_db_save_ae_obj_li__event_file({obj_type: 'event_file', obj_li: [event_file_obj_update_result]});
|
||||
// Very important: The results returned from the API does not include fields from the DB views. It is the actual table fields only.
|
||||
handle_db_update_ae_obj_id__event_file({obj_type: 'event_file', obj_id: event_file_id, data_kv: event_file_obj_update_result});
|
||||
return event_file_obj_update_result;
|
||||
} else {
|
||||
return null;
|
||||
@@ -480,3 +482,86 @@ export function handle_db_save_ae_obj_li__event_file(
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
export function handle_db_update_ae_obj_id__event_file(
|
||||
{
|
||||
obj_type,
|
||||
obj_id,
|
||||
data_kv,
|
||||
}: {
|
||||
obj_type: string,
|
||||
obj_id: string,
|
||||
data_kv: key_val
|
||||
}
|
||||
) {
|
||||
console.log(`*** handle_db_update_ae_obj_id__event_file() ***`);
|
||||
|
||||
if (obj_id) {
|
||||
console.log(`ae_obj ${obj_type}:`, obj_id);
|
||||
|
||||
try {
|
||||
// db_events.files.update(obj_id, data_kv);
|
||||
db_events.files.update(obj_id,
|
||||
{
|
||||
// for_type: data_kv.for_type,
|
||||
// for_id: data_kv.for_id_id_random,
|
||||
// for_id_random: data_kv.for_id_random,
|
||||
|
||||
// event_id_random: data_kv.event_id_random,
|
||||
// event_session_id_random: data_kv.event_session_id_random,
|
||||
// event_presentation_id_random: data_kv.event_presentation_id_random,
|
||||
// event_presenter_id_random: data_kv.event_presenter_id_random,
|
||||
// event_location_id_random: data_kv.event_location_id_random,
|
||||
|
||||
filename: data_kv.filename,
|
||||
extension: data_kv.extension,
|
||||
|
||||
open_in_os: data_kv.open_in_os,
|
||||
|
||||
// lu_file_purpose_id: data_kv.lu_file_purpose_id, // Not id_random in this case?
|
||||
// lu_event_file_purpose_name: data_kv.lu_event_file_purpose_name,
|
||||
file_purpose: data_kv.file_purpose,
|
||||
|
||||
// enable: data_kv.enable,
|
||||
// hide: data_kv.hide,
|
||||
// priority: data_kv.priority,
|
||||
// sort: data_kv.sort,
|
||||
// group: data_kv.group,
|
||||
// notes: data_kv.notes,
|
||||
// created_on: data_kv.created_on,
|
||||
// updated_on: data_kv.updated_on,
|
||||
|
||||
filename_no_ext: data_kv.filename_no_ext,
|
||||
filename_w_ext: data_kv.filename_w_ext,
|
||||
// hosted_file_content_type: data_kv.hosted_file_content_type,
|
||||
// file_size: data_kv.file_size,
|
||||
// hosted_file_size: data_kv.hosted_file_size,
|
||||
|
||||
// event_location_code: data_kv.event_location_code,
|
||||
// event_location_name: data_kv.event_location_name,
|
||||
// event_session_code: data_kv.event_session_code,
|
||||
// event_session_name: data_kv.event_session_name,
|
||||
// event_session_start_datetime: data_kv.event_session_start_datetime,
|
||||
// event_presentation_code: data_kv.event_presentation_code,
|
||||
// event_presentation_name: data_kv.event_presentation_name,
|
||||
// event_presentation_start_datetime: data_kv.event_presentation_start_datetime,
|
||||
// event_presenter_given_name: data_kv.event_presenter_given_name,
|
||||
// event_presenter_family_name: data_kv.event_presenter_family_name,
|
||||
// event_presenter_full_name: data_kv.event_presenter_full_name,
|
||||
// event_presenter_email: data_kv.event_presenter_email,
|
||||
}
|
||||
);
|
||||
|
||||
console.log(`Update obj with ID: ${obj_id}`);
|
||||
} catch (error) {
|
||||
let status = `Failed to update ${obj_id}: ${error}`;
|
||||
console.log(status);
|
||||
}
|
||||
|
||||
// const id_random = await db_events.files.put(obj);
|
||||
// console.log(`Put obj with ID: ${data_kv.event_file_id_random}`);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -284,6 +284,8 @@ let events_session_data_struct: key_val = {
|
||||
show_report__presenters_agree: false,
|
||||
show_report__recent_files: false,
|
||||
|
||||
show_field_edit__filename: false, // For file rename
|
||||
|
||||
new_upload_list: null,
|
||||
files_uploading_count: null,
|
||||
|
||||
@@ -291,8 +293,11 @@ let events_session_data_struct: key_val = {
|
||||
qry_max__presentations: 25,
|
||||
qry_max__presenters: 75,
|
||||
qry_max__files: 25,
|
||||
|
||||
show_fields__presentation: true,
|
||||
show_fields__session: true,
|
||||
|
||||
tmp_val__filename_no_ext: null, // For file rename
|
||||
},
|
||||
|
||||
// Speakers Management (Collection)
|
||||
|
||||
@@ -121,9 +121,7 @@ onMount(() => {
|
||||
{#each $lq__event_file_obj_li as event_file_obj}
|
||||
<tr class="ae_obj obj_event_file border-t border-b border-gray-200 hover:bg-gray-50 hover:border-gray-300">
|
||||
<td class="event_file__file align-middle">
|
||||
<!-- <div
|
||||
class="min-w-full"
|
||||
> -->
|
||||
{#if !$events_sess.pres_mgmt?.show_field_edit__filename}
|
||||
<button
|
||||
disabled={!allow_basic && !allow_moderator && !$ae_loc.trusted_access}
|
||||
on:click={() => {
|
||||
@@ -171,7 +169,53 @@ onMount(() => {
|
||||
</span>
|
||||
|
||||
</button>
|
||||
<!-- </div> -->
|
||||
{:else}
|
||||
<!-- Show change filename input field here -->
|
||||
<span
|
||||
class="flex flex-col gap-1 text-sm"
|
||||
>
|
||||
<input
|
||||
type="text"
|
||||
size="12"
|
||||
placeholder="Filename"
|
||||
bind:value="{$events_sess.pres_mgmt.tmp_val__filename_no_ext}"
|
||||
data-original_value="{event_file_obj.filename}"
|
||||
class="input min-w-72 lg:min-w-96 text-sm"
|
||||
>
|
||||
{#if $events_sess.pres_mgmt.tmp_val__filename_no_ext.trim() != event_file_obj.filename_no_ext}
|
||||
<button
|
||||
on:click={async () => {
|
||||
let new_filename = $events_sess.pres_mgmt.tmp_val__filename_no_ext.trim() + '.' + event_file_obj.extension;
|
||||
let event_file_data = {
|
||||
filename: new_filename,
|
||||
};
|
||||
|
||||
ae_promises.update__event_file_obj = events_func.handle_update_ae_obj__event_file({
|
||||
api_cfg: $ae_api,
|
||||
event_file_id: event_file_obj.event_file_id_random,
|
||||
data_kv: event_file_data,
|
||||
log_lvl: 1
|
||||
})
|
||||
.then (function (update_results) {
|
||||
console.log(`Update results:`, update_results);
|
||||
$events_sess.pres_mgmt.show_field_edit__filename = false;
|
||||
});
|
||||
}}
|
||||
class="btn btn-sm variant-glass-tertiary hover:variant-soft-success"
|
||||
title="Save changes"
|
||||
>
|
||||
{#await ae_promises.update__event_file_obj}
|
||||
<span class="fas fa-spinner fa-spin mx-1"></span>
|
||||
<span class="">Saving {event_file_obj.extension}</span>
|
||||
{:then}
|
||||
<span class="fas fa-save mx-1"></span>
|
||||
Save {event_file_obj.extension} filename?
|
||||
{/await}
|
||||
</button>
|
||||
{/if}
|
||||
</span>
|
||||
{/if}
|
||||
|
||||
</td>
|
||||
|
||||
{#if display_mode === 'default'}
|
||||
@@ -181,12 +225,21 @@ onMount(() => {
|
||||
>
|
||||
<div class="flex flex-col gap-1 text-sm">
|
||||
<button
|
||||
disabled={!allow_basic || !$ae_loc.administrator_access}
|
||||
disabled={!allow_basic && !$ae_loc.trusted_access}
|
||||
on:click={() => {
|
||||
$events_sess.pres_mgmt.tmp_val__filename_no_ext = event_file_obj.filename_no_ext;
|
||||
$events_sess.pres_mgmt.show_field_edit__filename = !$events_sess.pres_mgmt.show_field_edit__filename;
|
||||
}}
|
||||
class="btn btn-sm variant-glass-tertiary hover:variant-soft-success"
|
||||
title="The rename function is not ready yet."
|
||||
class:variant-glass-warning={$events_sess.pres_mgmt.show_field_edit__filename}
|
||||
title={`Rename this file? "${event_file_obj.filename}"`}
|
||||
>
|
||||
<span class="fas fa-edit mx-1"></span>
|
||||
Rename
|
||||
{#if $events_sess.pres_mgmt.show_field_edit__filename}
|
||||
Cancel?
|
||||
{:else}
|
||||
Rename
|
||||
{/if}
|
||||
</button>
|
||||
<button
|
||||
disabled={!allow_basic || !allow_moderator || !$ae_loc.administrator_access}
|
||||
|
||||
Reference in New Issue
Block a user