Work on auto reload and related single property updates. Also bug fix for saving searched sessions.

This commit is contained in:
Scott Idem
2025-09-30 12:05:55 -04:00
parent 53a03f971f
commit 99fe486842
6 changed files with 186 additions and 13 deletions

View File

@@ -914,7 +914,7 @@ export async function search__event_session(
}
await db_save_ae_obj_li__ae_obj({
db_instance: db_events,
table_name: 'presenters',
table_name: 'sessions',
obj_li: processed_obj_li,
properties_to_save: properties_to_save,
log_lvl: log_lvl,

View File

@@ -79,6 +79,7 @@ const ae_app_local_data_defaults: key_val = {
// debug_menu: false, // Flag show debug menu.
debug_mode: false, // Flag to know if we should be in debug mode and show show debug options.
edit_mode: false, // Flag to know if we should be in edit mode and show edit options.
adv_mode: false, // Flag to know if we should be in advanced mode and show advanced options.
// sys_menu: true, // Flag show system menu.
sync_local_config: true, // Flag to know if we should sync local config with the remote API server.

View File

@@ -181,7 +181,7 @@ async function handle_obj_field_patch(new_field_value: any) {
object_reload: object_reload,
field_name: field_name,
new_field_value: new_field_value,
log_lvl: 1
log_lvl: log_lvl
})
.then(function (results) {
// console.log('Field PATCH Promise', results);
@@ -235,8 +235,6 @@ async function handle_obj_field_patch(new_field_value: any) {
font-normal
transition-all duration-300 ease-in-out
relative
z-20
"
class:hidden={hide_element}
class:block={display_block}
@@ -321,6 +319,10 @@ async function handle_obj_field_patch(new_field_value: any) {
</button>
</span>
<span>
New value: {new_field_value}
</span>
<span
class="field_value
grow
@@ -348,7 +350,7 @@ async function handle_obj_field_patch(new_field_value: any) {
<option value="">-- not set --</option>
{:else if select_option_kv && Object.keys(select_option_kv).length > 0}
{#each Object.keys(select_option_kv) as option}
<option value={option}>{select_option_kv[option]}</option>
<option value={option}>{select_option_kv[option]} {option}</option>
{/each}
{:else}
<option value="">-- no list --</option>

View File

@@ -298,7 +298,7 @@ async function handle_search__event_session(
search_delay += 50+random_delay;
}
// log_lvl = 1;
log_lvl = 1;
let count = 0;
let request_loop = setInterval(() => {

View File

@@ -9,6 +9,7 @@ interface Props {
lq__event_session_obj_li: any;
hide__session_location?: boolean;
hide__session_poc?: boolean;
hide__admin?: boolean;
show__launcher_link?: boolean;
show__launcher_link_legacy?: boolean;
show__location_link?: boolean;
@@ -24,6 +25,7 @@ let {
lq__event_session_obj_li,
hide__session_location = false,
hide__session_poc = false,
hide__admin = false,
show__launcher_link = false,
show__launcher_link_legacy = false,
show__location_link = false,
@@ -57,7 +59,7 @@ import { events_func } from '$lib/ae_events_functions';
// }
// Variables
// let ae_promises: key_val = {};
let ae_promises: key_val = {};
let ae_tmp: key_val = $state({});
let ae_triggers: key_val = $state({});
let trigger_reload_session_id: string = $state('');
@@ -148,10 +150,19 @@ let trigger_reload_session_id: string = $state('');
</th>
<th
class:hidden={hide__session_location}
>Location</th>
>
Location
</th>
<th
class:hidden={hide__session_poc}
>POC</th>
>
POC
</th>
<th
class:hidden={ !$ae_loc.edit_mode || !$ae_loc.adv_mode || hide__admin }
>
Admin
</th>
</tr>
</thead>
<tbody>
@@ -306,7 +317,6 @@ let trigger_reload_session_id: string = $state('');
trigger_patch={ae_triggers.update_location}
object_type={'event_session'}
object_id={session_obj?.event_session_id_random}
object_reload={true}
@@ -326,6 +336,7 @@ let trigger_reload_session_id: string = $state('');
outline_element={false}
display_block={false}
display_absolute_edit={true}
class_li={'m-1'}
>
@@ -580,6 +591,139 @@ let trigger_reload_session_id: string = $state('');
</span> <!-- flex flex-col items-center md:flex-row md:items-start -->
</td>
<td
class:hidden={ !$ae_loc.edit_mode || !$ae_loc.adv_mode || hide__admin }
>
<!-- Hide session from all lists: session_obj.hide -->
<!-- <Element_ae_crud_v2
api_cfg={$ae_api}
trigger_patch={ae_triggers.update_session_hide}
object_type={'event_session'}
object_id={session_obj?.event_session_id_random}
object_reload={true}
field_name={'hide'}
field_type={'select'}
current_field_value={session_obj?.hide}
allow_null={true}
select_option_kv={{null:'NULL', false:'Show', true:'Hide'}}
hide_element={!$ae_loc.edit_mode}
hide_edit_btn={false}
outline_element={false}
display_block={false}
display_absolute_edit={true}
class_li={'m-1'}
>
{#if session_obj?.hide}
<span class="" title="This session is hidden from all lists.">
<span class="fas fa-eye-slash mx-1"></span>
Hidden
</span>
{:else}
<span class="" title="This session is visible in all lists.">
<span class="fas fa-eye mx-1"></span>
Visible
</span>
{/if}
</Element_ae_crud_v2> -->
<button
type="button"
onclick={() => {
console.log('Toggle hide from all lists for the session.');
let new_hide_value = !session_obj?.hide;
console.log('New hide value:', new_hide_value);
ae_promises.api_update__ae_obj = core_func.update_ae_obj_id_crud_v2({
api_cfg: $ae_api,
object_type: 'event_session',
object_id: session_obj?.event_session_id_random,
object_reload: true,
field_name: 'hide',
new_field_value: new_hide_value,
log_lvl: 1
})
.then(function (results) {
})
.finally(function () {
});
}}
class="
btn btn-icon
text-xs
m-0 px-0.5
preset-tonal-secondary hover:preset-filled-secondary-500
preset-outlined-secondary-100-900 hover:preset-outlined-secondary-600-400
opacity-50 hover:opacity-100
transition-all
"
title={session_obj?.hide ? 'Show in all lists' : 'Hide from all lists'}
>
{#if session_obj?.hide}
<span class="fas fa-eye-slash m-0.75"></span>
{:else}
<span class="fas fa-eye m-0.75"></span>
{/if}
<span class="hidden">Toggle Hide</span>
</button>
<!-- group-hover:inline -->
<!-- Hide from Event Launcher: session_obj.hide_event_launcher -->
<button
type="button"
onclick={() => {
console.log('Toggle hide from event launcher for the session.');
let new_hide_event_launcher_value = !session_obj?.hide_event_launcher;
console.log('New hide_event_launcher value:', new_hide_event_launcher_value);
ae_promises.api_update__ae_obj = core_func.update_ae_obj_id_crud_v2({
api_cfg: $ae_api,
object_type: 'event_session',
object_id: session_obj?.event_session_id_random,
object_reload: true,
field_name: 'hide_event_launcher',
new_field_value: new_hide_event_launcher_value,
log_lvl: 1
})
.then(function (results) {
})
.finally(function () {
});
}}
class="
btn btn-icon
text-xs
m-0 px-0.5
preset-tonal-secondary hover:preset-filled-secondary-500
preset-outlined-secondary-100-900 hover:preset-outlined-secondary-600-400
opacity-50 hover:opacity-100
transition-all
"
title={session_obj?.hide_event_launcher ? 'Show in event launcher' : 'Hide from event launcher'}
>
<!-- <Rocket /> -->
{#if session_obj?.hide_event_launcher}
<span class="fas fa-ban m-0.75"></span>
{:else}
<span class="fas fa-paper-plane m-0.75"></span>
<!-- <span class="fas fa-rocket m-0.75"></span> -->
{/if}
</button>
</td>
</tr>
{/each}
</tbody>

View File

@@ -478,9 +478,9 @@ export let hide: boolean = true;
{/if}
<div class="flex flex-row gap-1 items-center justify-evenly">
{#if $ae_loc.trusted_access}
{#if $ae_loc.edit_mode}
<div class="flex flex-row flex-wrap gap-1 items-center justify-evenly">
{#if $ae_loc?.trusted_access}
{#if $ae_loc?.edit_mode}
<button
type="button"
on:click={() => {
@@ -505,6 +505,32 @@ export let hide: boolean = true;
Edit Mode?
</button>
{/if}
{#if $ae_loc?.adv_mode}
<button
type="button"
on:click={() => {
$ae_loc.adv_mode = false;
}}
class="btn btn-sm w-full ae_btn_warning"
>
<!-- <span class="fas fa-toggle-on m-1"></span> -->
<span class="fas fa-magic m-1"></span>
Advanced Mode On
</button>
{:else}
<button
type="button"
on:click={() => {
$ae_loc.adv_mode = true;
}}
class="btn btn-sm w-full ae_btn_warning_outlined"
>
<span class="fas fa-toggle-off m-1"></span>
<!-- <span class="fas fa-edit m-1"></span> -->
Advanced Mode?
</button>
{/if}
{/if}
</div>