Added new auto reload for most object types with new v2 function and element.

This commit is contained in:
Scott Idem
2025-09-30 03:43:29 -04:00
parent 0c01eed5c8
commit 53a03f971f
3 changed files with 288 additions and 63 deletions

View File

@@ -292,23 +292,25 @@ async function handle_load_ae_obj_code__data_store(
// Updated 2024-03-27
async function handle_update_ae_obj_id_crud(
{
api_cfg,
object_type,
object_id,
field_name,
new_field_value,
params={},
try_cache=false,
log_lvl=0
api_cfg,
object_type,
object_id,
object_reload = false,
field_name,
new_field_value,
params = {},
try_cache = false,
log_lvl = 0
}: {
api_cfg: any,
object_type: string,
object_id: string,
field_name: string,
new_field_value: any,
params: any|key_val,
try_cache: boolean,
log_lvl: number
api_cfg: any,
object_type: string,
object_id: string,
object_reload?: boolean,
field_name: string,
new_field_value: any,
params: any|key_val,
try_cache: boolean,
log_lvl: number
}) {
let patch_result: any = null;
@@ -352,6 +354,232 @@ async function handle_update_ae_obj_id_crud(
}
// Core - Already imported above
// import { load_ae_obj_id__person } from "$lib/ae_core/core__person";
// import { load_ae_obj_id__user } from "$lib/ae_core/core__user";
// Additional Modules
import { load_ae_obj_id__archive } from "$lib/ae_archives/ae_archives__archive";
import { load_ae_obj_id__archive_content } from "$lib/ae_archives/ae_archives__archive_content";
import { load_ae_obj_id__event } from "$lib/ae_events/ae_events__event";
// import { load_ae_obj_id__event_badge } from "$lib/ae_events/ae_events__event_badge";
import { load_ae_obj_id__event_device } from "$lib/ae_events/ae_events__event_device";
// import { load_ae_obj_id__event_exhibit } from "$lib/ae_events/ae_events__event_exhibit";
import { load_ae_obj_id__event_file } from "$lib/ae_events/ae_events__event_file";
import { load_ae_obj_id__event_location } from "$lib/ae_events/ae_events__event_location";
import { load_ae_obj_id__event_presentation } from "$lib/ae_events/ae_events__event_presentation";
import { load_ae_obj_id__event_presenter } from "$lib/ae_events/ae_events__event_presenter";
import { load_ae_obj_id__event_session } from "$lib/ae_events/ae_events__event_session";
import { load_ae_obj_id__journal } from "$lib/ae_journals/ae_journals__journal";
import { load_ae_obj_id__journal_entry } from "$lib/ae_journals/ae_journals__journal_entry";
import { load_ae_obj_id__post } from "$lib/ae_posts/ae_posts__post";
import { load_ae_obj_id__post_comment } from "$lib/ae_posts/ae_posts__post_comment";
// Updated 2025-09-30
async function update_ae_obj_id_crud_v2(
{
api_cfg,
object_type,
object_id,
object_reload = false,
field_name,
new_field_value,
params = {},
try_cache = false,
log_lvl = 0
}: {
api_cfg: any,
object_type: string,
object_id: string,
object_reload?: boolean,
field_name: string,
new_field_value: any,
params?: any|key_val,
try_cache?: boolean,
log_lvl?: number
}) {
if (log_lvl) {
console.log(`*** update_ae_obj_id_crud_v2() *** object_type=${object_type}, object_id=${object_id}, object_reload=${object_reload}, field_name=${field_name}, new_field_value=`, new_field_value);
}
let patch_result: any = null;
ae_promises.api_update__ae_obj = await api.update_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: object_type,
obj_id: object_id,
field_name: field_name,
field_value: new_field_value,
// fields: data,
key: api_cfg.api_crud_super_key,
// jwt: null,
// params: params,
// data: patch_data,
log_lvl: log_lvl
})
.then(function (results) {
console.log('PATCH Promise', results);
if (results) {
console.log(`Patched - Field Name: ${field_name} with new Field Value: ${new_field_value}`);
patch_result = 'PATCH complete';
if (object_reload) {
if (log_lvl) {
console.log(`Reloading the object after patching...`);
}
// Reload the object to get the latest data. There is a special case for each type.
if (object_type == 'person') {
let load_person_obj = load_ae_obj_id__person({
api_cfg: api_cfg,
person_id: object_id,
log_lvl: log_lvl
});
return load_person_obj;
}
// if (object_type == 'user') {
// let load_user_obj = load_ae_obj_id__user({
// api_cfg: api_cfg,
// user_id: object_id,
// log_lvl: log_lvl
// });
// return load_user_obj;
// }
if (object_type == 'archive') {
let load_archive_obj = load_ae_obj_id__archive({
api_cfg: api_cfg,
archive_id: object_id,
log_lvl: log_lvl
});
return load_archive_obj;
}
if (object_type == 'archive_content') {
let load_archive_content_obj = load_ae_obj_id__archive_content({
api_cfg: api_cfg,
archive_content_id: object_id,
log_lvl: log_lvl
});
return load_archive_content_obj;
}
if (object_type == 'journal') {
let load_journal_obj = load_ae_obj_id__journal({
api_cfg: api_cfg,
journal_id: object_id,
log_lvl: log_lvl
});
return load_journal_obj;
}
if (object_type == 'journal_entry') {
let load_journal_entry_obj = load_ae_obj_id__journal_entry({
api_cfg: api_cfg,
journal_entry_id: object_id,
log_lvl: log_lvl
});
return load_journal_entry_obj;
}
if (object_type == 'event') {
let load_event_obj = load_ae_obj_id__event({
api_cfg: api_cfg,
event_id: object_id,
log_lvl: log_lvl
});
return load_event_obj;
}
if (object_type == 'event_device') {
let load_event_device_obj = load_ae_obj_id__event_device({
api_cfg: api_cfg,
event_device_id: object_id,
log_lvl: log_lvl
});
return load_event_device_obj;
}
if (object_type == 'event_file') {
let load_event_file_obj = load_ae_obj_id__event_file({
api_cfg: api_cfg,
event_file_id: object_id,
log_lvl: log_lvl
});
return load_event_file_obj;
}
if (object_type == 'event_location') {
let load_event_location_obj = load_ae_obj_id__event_location({
api_cfg: api_cfg,
event_location_id: object_id,
log_lvl: log_lvl
});
return load_event_location_obj;
}
if (object_type == 'event_presentation') {
let load_event_presentation_obj = load_ae_obj_id__event_presentation({
api_cfg: api_cfg,
event_presentation_id: object_id,
log_lvl: log_lvl
});
return load_event_presentation_obj;
}
if (object_type == 'event_presenter') {
let load_event_presenter_obj = load_ae_obj_id__event_presenter({
api_cfg: api_cfg,
event_presenter_id: object_id,
log_lvl: log_lvl
});
return load_event_presenter_obj;
}
if (object_type == 'event_session') {
let load_event_session_obj = load_ae_obj_id__event_session({
api_cfg: api_cfg,
event_session_id: object_id,
log_lvl: log_lvl
});
return load_event_session_obj;
}
if (object_type == 'post') {
let load_post_obj = load_ae_obj_id__post({
api_cfg: api_cfg,
post_id: object_id,
log_lvl: log_lvl
});
return load_post_obj;
}
if (object_type == 'post_comment') {
let load_post_comment_obj = load_ae_obj_id__post_comment({
api_cfg: api_cfg,
post_comment_id: object_id,
log_lvl: log_lvl
});
return load_post_comment_obj;
}
}
} else {
console.log(`Not Patched - Field Name: ${field_name} with new Field Value: ${new_field_value}; Account ID: ${api_cfg.account_id}`);
patch_result = 'PATCH failed';
return false;
}
return true;
})
.catch(function (error) {
console.log('Something went wrong patching the record.');
console.log(error);
return false;
})
.finally(function () {
console.log('PATCH Promise finally');
});
return ae_promises.api_update__ae_obj;
}
async function handle_download_export__obj_type(
{
@@ -467,6 +695,7 @@ let export_obj = {
auth_ae_obj__user_id_change_password: auth_ae_obj__user_id_change_password,
handle_update_ae_obj_id_crud: handle_update_ae_obj_id_crud,
update_ae_obj_id_crud_v2: update_ae_obj_id_crud_v2,
handle_download_export__obj_type: handle_download_export__obj_type,
generate_qr_code: generate_qr_code
};

View File

@@ -11,6 +11,7 @@ interface Props {
object_type: string;
object_id: string;
object_reload?: boolean;
field_name: string;
field_type?: string; // button, text, textarea, template (older method), select (in progress method)
@@ -33,10 +34,10 @@ interface Props {
// export let input_field_template: null|object = null;
hide_element?: boolean;
hide_edit_btn?: boolean;
hide_element?: boolean; // This hides the entire custom element.
hide_edit_btn?: boolean; // This only hides the edit button.
// hide_edit_form?: boolean;
show_edit_form?: boolean;
show_edit_form?: boolean; // This is used if the parent needs to make the edit form visible.
outline_element?: boolean;
@@ -57,6 +58,7 @@ let {
object_type,
object_id,
object_reload = false,
field_name,
field_type = 'text',
@@ -119,13 +121,11 @@ $effect(() => {
// ; Super Key: ${api_crud_super_key}
}
}
if (select_option_kv) {
console.log(select_option_kv);
}
// if (select_option_kv) {
// console.log(select_option_kv);
// }
if (trigger_patch === true) {
if (log_lvl) {
@@ -174,21 +174,20 @@ async function handle_obj_field_patch(new_field_value: any) {
// let params = {};
ae_promises.api_update__ae_obj = core_func.handle_update_ae_obj_id_crud({
ae_promises.api_update__ae_obj = core_func.update_ae_obj_id_crud_v2({
api_cfg: api_cfg,
object_type: object_type,
object_id: object_id,
object_reload: object_reload,
field_name: field_name,
new_field_value: new_field_value,
params: {},
try_cache: false,
log_lvl: 0
log_lvl: 1
})
.then(function (results) {
console.log('Field PATCH Promise', results);
// console.log('Field PATCH Promise', results);
if (results) {
console.log(`Patched - Field Name: ${field_name} with New Field Value: ${new_field_value}; Original Field Value: ${current_field_value}`);
// console.log(`Patched - Field Name: ${field_name} with New Field Value: ${new_field_value}; Original Field Value: ${current_field_value}`);
patch_status = 'PATCH complete';
current_field_value = new_field_value;
} else {
@@ -205,7 +204,7 @@ async function handle_obj_field_patch(new_field_value: any) {
return false;
})
.finally(function () {
console.log('Field PATCH Promise finally');
// console.log('Field PATCH Promise finally');
if (patch_status != 'PATCH complete') {
patch_status = 'Error during PATCH';
patch_complete = false;

View File

@@ -64,34 +64,34 @@ let trigger_reload_session_id: string = $state('');
// *** Functions and Logic
$effect(() => {
// if (ae_triggers.session_obj_id_reload) {
// console.log(`ae_triggers.session_obj_id_reload changed: ${ae_triggers.session_obj_id_reload}`);
// $effect(() => {
// // if (ae_triggers.session_obj_id_reload) {
// // console.log(`ae_triggers.session_obj_id_reload changed: ${ae_triggers.session_obj_id_reload}`);
// reload_session_id(ae_triggers.session_obj_id_reload);
// }
// // reload_session_id(ae_triggers.session_obj_id_reload);
// // }
if (trigger_reload_session_id) {
console.log(`trigger_reload_session_id changed: ${trigger_reload_session_id}`);
// if (trigger_reload_session_id) {
// console.log(`trigger_reload_session_id changed: ${trigger_reload_session_id}`);
reload_event_session_id(trigger_reload_session_id);
trigger_reload_session_id = '';
}
// reload_event_session_id(trigger_reload_session_id);
// trigger_reload_session_id = '';
// }
});
// });
function reload_event_session_id(event_session_id_random: string) {
console.log(`Reloading session ID: ${event_session_id_random}`);
// function reload_event_session_id(event_session_id_random: string) {
// console.log(`Reloading session ID: ${event_session_id_random}`);
events_func.load_ae_obj_id__event_session({
api_cfg: $ae_api,
event_session_id: event_session_id_random,
log_lvl: log_lvl
})
.then(function (load_results) {
console.log(`Loaded session:`, load_results);
});
}
// events_func.load_ae_obj_id__event_session({
// api_cfg: $ae_api,
// event_session_id: event_session_id_random,
// log_lvl: log_lvl
// })
// .then(function (load_results) {
// console.log(`Loaded session:`, load_results);
// });
// }
</script>
@@ -300,14 +300,17 @@ function reload_event_session_id(event_session_id_random: string) {
{#if $ae_loc.edit_mode}
<!-- $slct.location_obj_kv -->
<!-- bind:patch_complete={trigger_reload_session_id} -->
<Element_ae_crud_v2
api_cfg={$ae_api}
trigger_patch={ae_triggers.update_location}
bind:patch_complete={trigger_reload_session_id}
object_type={'event_session'}
object_id={session_obj?.event_session_id_random}
object_reload={true}
field_name={'event_location_id_random'}
field_type={'select'}
@@ -356,19 +359,13 @@ function reload_event_session_id(event_session_id_random: string) {
<button
type="button"
ondblclick={() => {
console.log('Edit the location for the session.');
let params = {
qry__limit: 50,
}
// $slct.event_location_obj_li = await core_func.load_ae_obj_li__event_location({api_cfg: $ae_api, account_id: $slct.account_id, params: params});
console.log('Edit the location for the session. Get the list of locations first.');
$slct.event_location_obj_li = events_func.load_ae_obj_li__event_location({
api_cfg: $ae_api,
for_obj_type: 'event',
for_obj_id: session_obj?.event_id_random,
params: params,
limit: 50,
log_lvl: log_lvl
})
.then(function (load_results) {
@@ -377,7 +374,7 @@ function reload_event_session_id(event_session_id_random: string) {
// We need to make this ready for the select option list. Convert the list to a key value pair with the event_location_id_random as the key. We also need to set the option text value to: name (room)
if (load_results) {
let event_location_obj_li = load_results;
let event_location_obj_kv = {}; //: key_val = {};
let event_location_obj_kv: key_val = {};
event_location_obj_kv[''] = '-- Select a location --';
event_location_obj_li.forEach((event_location_obj) => {
let option_text = `${event_location_obj.name} (${event_location_obj.code})`;