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) {
|
.then(function (event_file_obj_update_result) {
|
||||||
if (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;
|
return event_file_obj_update_result;
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
@@ -480,3 +482,86 @@ export function handle_db_save_ae_obj_li__event_file(
|
|||||||
}
|
}
|
||||||
return false;
|
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__presenters_agree: false,
|
||||||
show_report__recent_files: false,
|
show_report__recent_files: false,
|
||||||
|
|
||||||
|
show_field_edit__filename: false, // For file rename
|
||||||
|
|
||||||
new_upload_list: null,
|
new_upload_list: null,
|
||||||
files_uploading_count: null,
|
files_uploading_count: null,
|
||||||
|
|
||||||
@@ -291,8 +293,11 @@ let events_session_data_struct: key_val = {
|
|||||||
qry_max__presentations: 25,
|
qry_max__presentations: 25,
|
||||||
qry_max__presenters: 75,
|
qry_max__presenters: 75,
|
||||||
qry_max__files: 25,
|
qry_max__files: 25,
|
||||||
|
|
||||||
show_fields__presentation: true,
|
show_fields__presentation: true,
|
||||||
show_fields__session: true,
|
show_fields__session: true,
|
||||||
|
|
||||||
|
tmp_val__filename_no_ext: null, // For file rename
|
||||||
},
|
},
|
||||||
|
|
||||||
// Speakers Management (Collection)
|
// Speakers Management (Collection)
|
||||||
|
|||||||
@@ -121,9 +121,7 @@ onMount(() => {
|
|||||||
{#each $lq__event_file_obj_li as event_file_obj}
|
{#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">
|
<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">
|
<td class="event_file__file align-middle">
|
||||||
<!-- <div
|
{#if !$events_sess.pres_mgmt?.show_field_edit__filename}
|
||||||
class="min-w-full"
|
|
||||||
> -->
|
|
||||||
<button
|
<button
|
||||||
disabled={!allow_basic && !allow_moderator && !$ae_loc.trusted_access}
|
disabled={!allow_basic && !allow_moderator && !$ae_loc.trusted_access}
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
@@ -171,7 +169,53 @@ onMount(() => {
|
|||||||
</span>
|
</span>
|
||||||
|
|
||||||
</button>
|
</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>
|
</td>
|
||||||
|
|
||||||
{#if display_mode === 'default'}
|
{#if display_mode === 'default'}
|
||||||
@@ -181,12 +225,21 @@ onMount(() => {
|
|||||||
>
|
>
|
||||||
<div class="flex flex-col gap-1 text-sm">
|
<div class="flex flex-col gap-1 text-sm">
|
||||||
<button
|
<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"
|
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>
|
<span class="fas fa-edit mx-1"></span>
|
||||||
Rename
|
{#if $events_sess.pres_mgmt.show_field_edit__filename}
|
||||||
|
Cancel?
|
||||||
|
{:else}
|
||||||
|
Rename
|
||||||
|
{/if}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
disabled={!allow_basic || !allow_moderator || !$ae_loc.administrator_access}
|
disabled={!allow_basic || !allow_moderator || !$ae_loc.administrator_access}
|
||||||
|
|||||||
Reference in New Issue
Block a user