Wrapping up for the day. Lots of improvements. More menu options for location and device related.

This commit is contained in:
Scott Idem
2024-10-16 18:48:14 -04:00
parent 590d274910
commit 63fea17472
13 changed files with 482 additions and 236 deletions

View File

@@ -263,6 +263,13 @@ let events_local_data_struct: key_val = {
disable_submit__opt_out: true, disable_submit__opt_out: true,
submit_status__opt_out: null, submit_status__opt_out: null,
device_kv: {
// 'LNDF-67-89-92': {'collapse': true},
},
location_kv: {
// 'LNDF-67-89-92': {'collapse': true},
},
}, },
// Speakers Management (Collection) // Speakers Management (Collection)

View File

@@ -94,8 +94,9 @@ $slct = {
} }
// console.log(`$slct = `, $slct); // console.log(`$slct = `, $slct);
// Check if the last reload timestamp for $ae_loc.last_idb_reload is no more than 15 minutes ago. // IDB caches - Check if the last reload timestamp for $ae_loc.last_idb_reload is no more than 15 minutes ago.
let default_idb_reload_time = 120 * 60 * 1000; // 120 minutes let default_idb_reload_time = 120 * 60 * 1000; // 15 minutes?
let trusted_idb_reload_time = 4 * 60 * 60 * 1000; // 4 hours or 120 minutes?
if (!$ae_loc.last_idb_reload) { if (!$ae_loc.last_idb_reload) {
console.log(`Last reload not found. Need to reset.`); console.log(`Last reload not found. Need to reset.`);
@@ -116,7 +117,7 @@ if (!$ae_loc.last_idb_reload) {
// window.location.reload(); // window.location.reload();
} }
} else if ($ae_loc.last_idb_reload && (Date.now() - $ae_loc.last_idb_reload) > default_idb_reload_time) { } else if ($ae_loc.last_idb_reload && $ae_loc.trusted_access && (Date.now() - $ae_loc.last_idb_reload) > trusted_idb_reload_time) {
console.log(`Last reload too old:`, $ae_loc.last_idb_reload); console.log(`Last reload too old:`, $ae_loc.last_idb_reload);
if (browser) { if (browser) {
@@ -132,10 +133,25 @@ if (!$ae_loc.last_idb_reload) {
// localStorage.removeItem('ae_loc'); // localStorage.removeItem('ae_loc');
// localStorage.removeItem('events_loc'); // localStorage.removeItem('events_loc');
// window.location.reload(); window.location.reload();
}
} else if ($ae_loc.last_idb_reload && (Date.now() - $ae_loc.last_idb_reload) > default_idb_reload_time) {
console.log(`Last reload too old:`, $ae_loc.last_idb_reload);
if (browser) {
$ae_loc.last_idb_reload = Date.now();
// Clear Indexed DB as well
indexedDB.deleteDatabase('ae_core_db');
indexedDB.deleteDatabase('ae_events_db');
// localStorage.removeItem('ae_loc');
// localStorage.removeItem('events_loc');
window.location.reload();
} }
} else if (browser) { } else if (browser) {
console.log(`Last reload is recent:`, $ae_loc.last_idb_reload); console.log(`Last reload is recent: ${$ae_loc.last_idb_reload}`);
// Clear Indexed DB as well // Clear Indexed DB as well
// indexedDB.deleteDatabase('ae_core_db'); // indexedDB.deleteDatabase('ae_core_db');
// indexedDB.deleteDatabase('ae_events_db'); // indexedDB.deleteDatabase('ae_events_db');

View File

@@ -25,6 +25,10 @@ if (log_lvl) {
// let ae_tmp: key_val = {}; // let ae_tmp: key_val = {};
// let ae_triggers: key_val = {}; // let ae_triggers: key_val = {};
if (!$events_loc.pres_mgmt?.device_kv) {
$events_loc.pres_mgmt.device_kv = {};
}
// Functions and Logic // Functions and Logic
</script> </script>
@@ -38,7 +42,7 @@ if (log_lvl) {
class:hidden={!$lq__event_device_obj_li?.length} class:hidden={!$lq__event_device_obj_li?.length}
title="Devices: {$lq__event_device_obj_li?.length ?? 'None'}" title="Devices: {$lq__event_device_obj_li?.length ?? 'None'}"
> >
<span class="fas fa-chalkboard-teacher m-1"></span> <span class="fas fa-laptop m-1"></span>
{@html ($lq__event_device_obj_li?.length ? `${$lq__event_device_obj_li?.length}&times;` : '')} {@html ($lq__event_device_obj_li?.length ? `${$lq__event_device_obj_li?.length}&times;` : '')}
</span> </span>
@@ -59,9 +63,12 @@ if (log_lvl) {
{#each $lq__event_device_obj_li as event_device_obj} {#each $lq__event_device_obj_li as event_device_obj}
<li <li
class="space-y-2 border border-gray-200 p-2 rounded-md" class="space-y-2 border border-gray-200 p-2 rounded-md"
class:dim={event_device_obj?.hide}
class:hidden={event_device_obj?.hide && !$ae_loc.edit_mode}
> >
<h4 class="h5 rounded-md p-2 bg-gray-200"> <h4 class="h5 rounded-md p-2 bg-gray-200 flex flex-row gap-1 items-center justify-between">
<span>
<Element_ae_crud <Element_ae_crud
api_cfg={$ae_api} api_cfg={$ae_api}
object_type={'event_device'} object_type={'event_device'}
@@ -94,7 +101,7 @@ if (log_lvl) {
"{event_device_obj?.name}" "{event_device_obj?.name}"
</Element_ae_crud> </Element_ae_crud>
<!-- "{event_device_obj.name}" --> <!-- "{event_device_obj.name}" -->
{#if event_device_obj?.code} {#if event_device_obj?.code && !$events_loc.pres_mgmt?.hide__device_code}
<span class="text-sm text-gray-500 bg-yellow-100 p-1 rounded-md border border-yellow-200" <span class="text-sm text-gray-500 bg-yellow-100 p-1 rounded-md border border-yellow-200"
title="Device code {event_device_obj?.code}" title="Device code {event_device_obj?.code}"
> >
@@ -102,128 +109,176 @@ if (log_lvl) {
{event_device_obj?.code ?? ''} {event_device_obj?.code ?? ''}
</span> </span>
{/if} {/if}
</h4> </span>
<div> {#if event_device_obj?.alert}
<div <!-- {event_device_obj.alert} -->
class="text-red-500 bg-red-200 p-1 rounded-md border border-red-200 text-center"
class:hidden={!event_device_obj?.alert && !event_device_obj?.alert_msg}
>
<span class="fas fa-exclamation-triangle mx-1" />
{event_device_obj?.alert ? 'Alert' : 'No Alert'}
<span class="fas fa-exclamation-triangle mx-1" />
<br>
{event_device_obj?.alert_msg ?? 'No Alert Message'}
</div>
<div class="flex flex-col gap-1">
<span>
<strong class="text-sm">hostname:</strong>
{event_device_obj?.info_hostname}
</span>
<span>
<strong class="text-sm">IPs:</strong>
{event_device_obj?.info_ip_list}
</span>
</div>
<div
class="text-sm text-gray-500 bg-gray-100"
>
Last updated:
<span>
<span>
{ae_util.iso_datetime_formatter(event_device_obj?.updated_on, 'dddd')},
</span>
<span>
{ae_util.iso_datetime_formatter(event_device_obj?.updated_on, 'date_long_month_day')}
</span>
</span>
@
<span <span
class="px-1" class="text-red-500 bg-red-200 p-1 rounded-md border border-red-200 text-center"
class:bg-yellow-200={ae_util.is_datetime_recent({datetime: event_device_obj?.updated_on, minutes: 30})} title="{event_device_obj.alert_msg}"
class:bg-green-200={ae_util.is_datetime_recent({datetime: event_device_obj?.updated_on, minutes: 240})}
class:bg-blue-200={ae_util.is_datetime_recent({datetime: event_device_obj?.updated_on, minutes: 2880})}
> >
{ae_util.iso_datetime_formatter(event_device_obj?.updated_on, 'time_iso_12_tz')} <span class="fas fa-exclamation-triangle mx-1" />
</span> </span>
</div> {/if}
</div>
<div
class:hidden={!$events_loc.pres_mgmt.show_content__device_description}
>
<Element_ae_crud
api_cfg={$ae_api}
object_type={'event_device'}
object_id={event_device_obj?.event_device_id_random}
field_name={'description'}
field_type={'textarea'}
field_value={event_device_obj?.description}
allow_null={false}
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={true}
display_block_edit={true}
textarea_rows={15}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.load_ae_obj_id__event_device({api_cfg: $ae_api, event_device_id: event_device_obj.event_device_id_random, log_lvl: 1});
}}
>
<strong class="text-sm">
Description:
</strong>
{#if event_device_obj?.description}
<button <button
type="button" type="button"
on:click={() => { on:click={() => {
console.log('Show/Hide Description'); console.log('Show/Hide Device');
if ($events_sess.pres_mgmt.show_content__device_description == event_device_obj.event_device_id_random) { if (!$events_loc.pres_mgmt.device_kv) {
$events_sess.pres_mgmt.show_content__device_description = null; $events_loc.pres_mgmt.device_kv = {
[event_device_obj.event_device_id]: {collapse: true}
// Was testing with LiveQuery };
$events_slct.event_device_id = null; } else if (!$events_loc.pres_mgmt.device_kv[event_device_obj.event_device_id]) {
$events_loc.pres_mgmt.device_kv[event_device_obj.event_device_id] = {collapse: true};
} else { } else {
$events_sess.pres_mgmt.show_content__device_description = event_device_obj.event_device_id_random; $events_loc.pres_mgmt.device_kv[event_device_obj.event_device_id].collapse = !$events_loc.pres_mgmt.device_kv[event_device_obj.event_device_id].collapse;
// Was testing with LiveQuery
$events_slct.event_device_id = event_device_obj.event_device_id_random;
} }
}} }}
class="btn btn-sm variant-soft-surface hover:variant-filled-surface text-xs" class="btn btn-sm variant-ghost-surface hover:variant-filled-surface transition-all hover:transition-all *:hover:inline text-xs"
class:variant-glass-warning={$events_loc.pres_mgmt?.device_kv[event_device_obj.event_device_id]?.collapse}
> >
{#if $events_sess.pres_mgmt.show_content__device_description == event_device_obj.event_device_id_random} {#if $events_loc.pres_mgmt.device_kv && $events_loc.pres_mgmt.device_kv[event_device_obj.event_device_id]?.collapse}
<span class="fas fa-eye-slash mx-1"></span> <!-- <span class="fas fa-minus mx-1"></span> -->
<span>Hide Description</span> <span class="fas fa-chevron-up m-1"></span>
<span
class="hidden"
>
Show?</span>
{:else} {:else}
<span class="fas fa-eye mx-1"></span> <span class="fas fa-chevron-down m-1"></span>
<span>Show</span> <!-- <span class="fas fa-plus mx-1"></span> -->
<!-- <span>Device</span> -->
{/if} {/if}
</button> </button>
</h4>
<pre <div
class="whitespace-pre-wrap p-2 bg-gray-100 rounded-md" class:hidden={$events_loc.pres_mgmt.device_kv && $events_loc.pres_mgmt.device_kv[event_device_obj.event_device_id]?.collapse}
class:hidden={$events_sess.pres_mgmt.show_content__device_description !== event_device_obj.event_device_id_random} >
>{event_device_obj.description}</pre>
{:else} <div>
{@html ae_snip.html__not_set} <div
{/if} class="text-red-500 bg-red-200 p-1 rounded-md border border-red-200 text-center"
<!-- {:else} class:hidden={!event_device_obj?.alert && !event_device_obj?.alert_msg}
<div class="text-sm text-gray-500 bg-gray-100 p-1 rounded-md border border-gray-200" >
class:hidden={!$ae_loc.administrator_access} <span class="fas fa-exclamation-triangle mx-1" />
> {event_device_obj?.alert ? 'Alert' : 'No Alert'}
<span class="fas fa-exclamation-triangle mx-1"></span> <span class="fas fa-exclamation-triangle mx-1" />
No description provided. <br>
{event_device_obj?.alert_msg ?? 'No Alert Message'}
</div>
<div class="flex flex-col gap-1">
<span>
<strong class="text-sm">hostname:</strong>
{event_device_obj?.info_hostname}
</span>
<span>
<strong class="text-sm">IPs:</strong>
{event_device_obj?.info_ip_list}
</span>
</div>
<div
class="text-sm text-gray-500 bg-gray-100"
>
Last updated:
<span>
<span>
{ae_util.iso_datetime_formatter(event_device_obj?.updated_on, 'dddd')},
</span>
<span>
{ae_util.iso_datetime_formatter(event_device_obj?.updated_on, 'date_long_month_day')}
</span>
</span>
@
<span
class="px-1"
class:bg-yellow-200={ae_util.is_datetime_recent({datetime: event_device_obj?.updated_on, minutes: 30})}
class:bg-green-200={ae_util.is_datetime_recent({datetime: event_device_obj?.updated_on, minutes: 240})}
class:bg-blue-200={ae_util.is_datetime_recent({datetime: event_device_obj?.updated_on, minutes: 2880})}
>
{ae_util.iso_datetime_formatter(event_device_obj?.updated_on, 'time_iso_12_tz')}
</span>
</div>
</div> </div>
{/if} -->
</Element_ae_crud>
</div> <div
class:hidden={!$events_loc.pres_mgmt.show_content__device_description}
>
<Element_ae_crud
api_cfg={$ae_api}
object_type={'event_device'}
object_id={event_device_obj?.event_device_id_random}
field_name={'description'}
field_type={'textarea'}
field_value={event_device_obj?.description}
allow_null={false}
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={true}
display_block_edit={true}
textarea_rows={15}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.load_ae_obj_id__event_device({api_cfg: $ae_api, event_device_id: event_device_obj.event_device_id_random, log_lvl: 1});
}}
>
<strong class="text-sm">
Description:
</strong>
{#if event_device_obj?.description}
<button
type="button"
on:click={() => {
console.log('Show/Hide Description');
if ($events_sess.pres_mgmt.show_content__device_description == event_device_obj.event_device_id_random) {
$events_sess.pres_mgmt.show_content__device_description = null;
// Was testing with LiveQuery
$events_slct.event_device_id = null;
} else {
$events_sess.pres_mgmt.show_content__device_description = event_device_obj.event_device_id_random;
// Was testing with LiveQuery
$events_slct.event_device_id = event_device_obj.event_device_id_random;
}
}}
class="btn btn-sm variant-soft-surface hover:variant-filled-surface text-xs"
>
{#if $events_sess.pres_mgmt.show_content__device_description == event_device_obj.event_device_id_random}
<span class="fas fa-eye-slash mx-1"></span>
<span>Hide Description</span>
{:else}
<span class="fas fa-eye mx-1"></span>
<span>Show</span>
{/if}
</button>
<pre
class="whitespace-pre-wrap p-2 bg-gray-100 rounded-md"
class:hidden={$events_sess.pres_mgmt.show_content__device_description !== event_device_obj.event_device_id_random}
>{event_device_obj.description}</pre>
{:else}
{@html ae_snip.html__not_set}
{/if}
<!-- {:else}
<div class="text-sm text-gray-500 bg-gray-100 p-1 rounded-md border border-gray-200"
class:hidden={!$ae_loc.administrator_access}
>
<span class="fas fa-exclamation-triangle mx-1"></span>
No description provided.
</div>
{/if} -->
</Element_ae_crud>
</div>
</div> <!-- End of device content -->
</li> </li>
{/each} {/each}

View File

@@ -104,7 +104,6 @@ onMount(() => {
<span <span
class="flex flex-row gap-1 items-center" class="flex flex-row gap-1 items-center"
> >
<!-- <span class="fas fa-calendar-day m-1"></span> -->
<span class="fas fa-map-marked m-1"></span> <span class="fas fa-map-marked m-1"></span>
Locations/Rooms Locations/Rooms
<!-- Button to toggle between the regular location view and managing locations??? --> <!-- Button to toggle between the regular location view and managing locations??? -->

View File

@@ -27,6 +27,10 @@ if (log_lvl) {
// let ae_tmp: key_val = {}; // let ae_tmp: key_val = {};
// let ae_triggers: key_val = {}; // let ae_triggers: key_val = {};
if (!$events_loc.pres_mgmt?.location_kv) {
$events_loc.pres_mgmt.location_kv = {};
}
// Functions and Logic // Functions and Logic
</script> </script>
@@ -74,7 +78,7 @@ if (log_lvl) {
class:hidden={!$lq__event_location_obj_li?.length} class:hidden={!$lq__event_location_obj_li?.length}
title="Locations: {$lq__event_location_obj_li?.length ?? 'None'}" title="Locations: {$lq__event_location_obj_li?.length ?? 'None'}"
> >
<span class="fas fa-chalkboard-teacher m-1"></span> <span class="fas fa-map-marked m-1"></span>
{@html ($lq__event_location_obj_li?.length ? `${$lq__event_location_obj_li?.length}&times;` : '')} {@html ($lq__event_location_obj_li?.length ? `${$lq__event_location_obj_li?.length}&times;` : '')}
</span> </span>
@@ -95,9 +99,12 @@ if (log_lvl) {
{#each $lq__event_location_obj_li as event_location_obj} {#each $lq__event_location_obj_li as event_location_obj}
<li <li
class="space-y-2 border border-gray-200 p-2 rounded-md" class="space-y-2 border border-gray-200 p-2 rounded-md"
class:dim={event_location_obj?.hide}
class:hidden={event_location_obj?.hide && !$ae_loc.edit_mode}
> >
<h4 class="h5 rounded-md p-2 bg-gray-200"> <h4 class="h5 rounded-md p-2 bg-gray-200 flex flex-row gap-1 items-center justify-between">
<span>
<Element_ae_crud <Element_ae_crud
api_cfg={$ae_api} api_cfg={$ae_api}
object_type={'event_location'} object_type={'event_location'}
@@ -130,7 +137,7 @@ if (log_lvl) {
"{event_location_obj?.name}" "{event_location_obj?.name}"
</Element_ae_crud> </Element_ae_crud>
<!-- "{event_location_obj.name}" --> <!-- "{event_location_obj.name}" -->
{#if event_location_obj?.code} {#if event_location_obj?.code && !$events_loc.pres_mgmt?.hide__location_code}
<span class="text-sm text-gray-500 bg-yellow-100 p-1 rounded-md border border-yellow-200" <span class="text-sm text-gray-500 bg-yellow-100 p-1 rounded-md border border-yellow-200"
title="Location code {event_location_obj?.code}" title="Location code {event_location_obj?.code}"
> >
@@ -138,114 +145,156 @@ if (log_lvl) {
{event_location_obj?.code ?? ''} {event_location_obj?.code ?? ''}
</span> </span>
{/if} {/if}
</h4> </span>
<div
class:hidden={!$events_loc.pres_mgmt.show_content__location_description}
>
<Element_ae_crud
api_cfg={$ae_api}
object_type={'event_location'}
object_id={event_location_obj?.event_location_id_random}
field_name={'description'}
field_type={'textarea'}
field_value={event_location_obj?.description}
allow_null={false}
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={true}
display_block_edit={true}
textarea_rows={15}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.load_ae_obj_id__event_location({api_cfg: $ae_api, event_location_id: event_location_obj.event_location_id_random, log_lvl: 1});
}}
>
<strong class="text-sm">
Description:
</strong>
{#if event_location_obj?.description}
<button <button
type="button" type="button"
on:click={() => { on:click={() => {
console.log('Show/Hide Description'); console.log('Show/Hide Location');
if ($events_sess.pres_mgmt.show_content__location_description == event_location_obj.event_location_id_random) { if (!$events_loc.pres_mgmt.location_kv) {
$events_sess.pres_mgmt.show_content__location_description = null; $events_loc.pres_mgmt.location_kv = {
[event_location_obj.event_location_id]: {collapse: true}
// Was testing with LiveQuery };
$events_slct.event_location_id = null; } else if (!$events_loc.pres_mgmt.location_kv[event_location_obj.event_location_id]) {
$events_loc.pres_mgmt.location_kv[event_location_obj.event_location_id] = {collapse: true};
} else { } else {
$events_sess.pres_mgmt.show_content__location_description = event_location_obj.event_location_id_random; $events_loc.pres_mgmt.location_kv[event_location_obj.event_location_id].collapse = !$events_loc.pres_mgmt.location_kv[event_location_obj.event_location_id].collapse;
// Was testing with LiveQuery
$events_slct.event_location_id = event_location_obj.event_location_id_random;
} }
}} }}
class="btn btn-sm variant-soft-surface hover:variant-filled-surface text-xs" class="btn btn-sm variant-ghost-surface hover:variant-filled-surface transition-all hover:transition-all *:hover:inline text-xs"
class:variant-glass-warning={$events_loc.pres_mgmt?.location_kv[event_location_obj.event_location_id]?.collapse}
> >
{#if $events_sess.pres_mgmt.show_content__location_description == event_location_obj.event_location_id_random} {#if $events_loc.pres_mgmt.location_kv && $events_loc.pres_mgmt.location_kv[event_location_obj.event_location_id]?.collapse}
<span class="fas fa-eye-slash mx-1"></span> <!-- <span class="fas fa-minus mx-1"></span> -->
<span>Hide Description</span> <span class="fas fa-chevron-up m-1"></span>
<span
class="hidden"
>
Show?</span>
{:else} {:else}
<span class="fas fa-eye mx-1"></span> <span class="fas fa-chevron-down m-1"></span>
<span>Show</span> <!-- <span class="fas fa-plus mx-1"></span> -->
<!-- <span>Location</span> -->
{/if} {/if}
</button> </button>
</h4>
<pre <div
class="whitespace-pre-wrap p-2 bg-gray-100 rounded-md" class:hidden={$events_loc.pres_mgmt.location_kv && $events_loc.pres_mgmt.location_kv[event_location_obj.event_location_id]?.collapse}
class:hidden={$events_sess.pres_mgmt.show_content__location_description !== event_location_obj.event_location_id_random} >
>{event_location_obj.description}</pre>
{:else} <div
{@html ae_snip.html__not_set} class:hidden={!$events_loc.pres_mgmt.show_content__location_description}
{/if}
<!-- {:else}
<div class="text-sm text-gray-500 bg-gray-100 p-1 rounded-md border border-gray-200"
class:hidden={!$ae_loc.administrator_access}
> >
<span class="fas fa-exclamation-triangle mx-1"></span> <Element_ae_crud
No description provided. api_cfg={$ae_api}
object_type={'event_location'}
object_id={event_location_obj?.event_location_id_random}
field_name={'description'}
field_type={'textarea'}
field_value={event_location_obj?.description}
allow_null={false}
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={true}
display_block_edit={true}
textarea_rows={15}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.load_ae_obj_id__event_location({api_cfg: $ae_api, event_location_id: event_location_obj.event_location_id_random, log_lvl: 1});
}}
>
<strong class="text-sm">
Description:
</strong>
{#if event_location_obj?.description}
<button
type="button"
on:click={() => {
console.log('Show/Hide Description');
if ($events_sess.pres_mgmt.show_content__location_description == event_location_obj.event_location_id_random) {
$events_sess.pres_mgmt.show_content__location_description = null;
// Was testing with LiveQuery
$events_slct.event_location_id = null;
} else {
$events_sess.pres_mgmt.show_content__location_description = event_location_obj.event_location_id_random;
// Was testing with LiveQuery
$events_slct.event_location_id = event_location_obj.event_location_id_random;
}
}}
class="btn btn-sm variant-soft-surface hover:variant-filled-surface text-xs"
>
{#if $events_sess.pres_mgmt.show_content__location_description == event_location_obj.event_location_id_random}
<span class="fas fa-eye-slash mx-1"></span>
<span>Hide Description</span>
{:else}
<span class="fas fa-eye mx-1"></span>
<span>Show</span>
{/if}
</button>
<pre
class="whitespace-pre-wrap p-2 bg-gray-100 rounded-md"
class:hidden={$events_sess.pres_mgmt.show_content__location_description !== event_location_obj.event_location_id_random}
>{event_location_obj.description}</pre>
{:else}
{@html ae_snip.html__not_set}
{/if}
<!-- {:else}
<div class="text-sm text-gray-500 bg-gray-100 p-1 rounded-md border border-gray-200"
class:hidden={!$ae_loc.administrator_access}
>
<span class="fas fa-exclamation-triangle mx-1"></span>
No description provided.
</div>
{/if} -->
</Element_ae_crud>
</div> </div>
{/if} -->
</Element_ae_crud> {#if !$events_loc.pres_mgmt.show_content__location_devices_sessions || $events_loc.pres_mgmt.show_content__location_devices_sessions == 'default' || $events_loc.pres_mgmt.show_content__location_devices_sessions == 'sessions'}
<!-- Show sessions for this location -->
{#if event_location_obj?.event_location_id_random}
<Comp_event_session_obj_li
link_to_type={'event_location'}
link_to_id={event_location_obj?.event_location_id_random}
event_session_id_random_li={[]}
log_lvl={log_lvl}
>
</Comp_event_session_obj_li>
{/if}
{:else if $events_loc.pres_mgmt.show_content__location_devices_sessions == 'devices'}
<!-- Show devices for this location -->
{#if event_location_obj?.event_location_id_random}
<Comp_event_device_obj_li
link_to_type={'event_location'}
link_to_id={event_location_obj?.event_location_id_random}
event_device_id_random_li={[]}
log_lvl={log_lvl}
>
</Comp_event_device_obj_li>
{/if}
{/if}
<!-- Show files for this location -->
<!-- <Element_manage_event_file_li_wrap
link_to_type={'event_location'}
link_to_id={event_location_obj?.event_location_id_random}
allow_basic={$events_loc.trusted_access}
allow_moderator={$events_loc.trusted_access}
container_class_li={''}
/> -->
</div> </div>
<!-- Show devices for this location -->
{#if event_location_obj?.event_location_id_random}
<Comp_event_device_obj_li
link_to_type={'event_location'}
link_to_id={event_location_obj?.event_location_id_random}
event_device_id_random_li={[]}
log_lvl={log_lvl}
>
</Comp_event_device_obj_li>
{/if}
<!-- Show sessions for this location -->
<!-- {#if event_location_obj?.event_location_id_random}
<Comp_event_session_obj_li
link_to_type={'event_location'}
link_to_id={event_location_obj?.event_location_id_random}
event_session_id_random_li={[]}
log_lvl={log_lvl}
>
</Comp_event_session_obj_li>
{/if} -->
<!-- Show files for this location -->
<!-- <Element_manage_event_file_li_wrap
link_to_type={'event_location'}
link_to_id={event_location_obj?.event_location_id_random}
allow_basic={$events_loc.trusted_access}
allow_moderator={$events_loc.trusted_access}
container_class_li={''}
/> -->
</li> </li>
{/each} {/each}
</ul> </ul>

View File

@@ -9,13 +9,14 @@ import { events_func } from '$lib/ae_events_functions';
import Element_ae_crud from '$lib/element_ae_crud.svelte'; import Element_ae_crud from '$lib/element_ae_crud.svelte';
import Element_data_store from '$lib/element_data_store_v2.svelte'; import Element_data_store from '$lib/element_data_store_v2.svelte';
import Comp__events_menu_nav from './../../ae_comp__events_menu_nav.svelte';
// export let event_location_id: string; // export let event_location_id: string;
export let lq__event_obj: any; export let lq__event_obj: any;
// export let lq__auth__event_presenter_obj: any; // export let lq__auth__event_presenter_obj: any;
let ae_tmp: key_val = {}; // let ae_tmp: key_val = {};
let ae_triggers: key_val = {}; // let ae_triggers: key_val = {};
</script> </script>
@@ -30,18 +31,18 @@ let ae_triggers: key_val = {};
<div <div
class="flex flex-row flex-wrap gap-1 items-center justify-around w-full"> class="flex flex-row flex-wrap gap-1 items-center justify-around w-full">
<span <Comp__events_menu_nav
class="ae_menu__navigation_options flex flex-row items-center justify-around" hide={!$ae_loc.authenticated_access}
> event_id={$lq__event_obj?.event_id}
<a href="/events/{$lq__event_obj?.event_id}" class="{ae_snip.classes__events_pres_mgmt_menu__button}"> ae_core={$ae_loc.administrator_access}
<span class="fas fa-arrow-left m-1"></span> events__reports={$ae_loc.trusted_access}
Back to Session Search events__session_search={$events_slct.event_id}
</a> />
</span>
<span <span
class="ae_menu__object_options flex flex-row items-center justify-around" class="ae_menu__object_options flex flex-row items-center justify-around"
> >
<!-- Button to toggle between showing and not showing the extended options menu -->
<button <button
type="button" type="button"
on:click={() => { on:click={() => {
@@ -93,11 +94,97 @@ let ae_triggers: key_val = {};
<!-- BEGIN: The expanded menu area for information and options --> <!-- BEGIN: The expanded menu area for information and options -->
<div <div
class="flex flex-row items-center justify-around w-full bg-blue-100 hover:bg-blue-200 border border-blue-200 hover:border-blue-400 p-2 rounded-md" class="flex flex-row items-center justify-around w-full bg-blue-100 hover:bg-blue-200 border border-blue-200 hover:border-blue-400 p-2 rounded-md transition-all duration-1000 ease-in-out overflow-hidden"
class:hidden={$events_loc.pres_mgmt.show_menu__location != 'options'} class:hidden={$events_loc.pres_mgmt.show_menu__location != 'options'}
> >
Not much here yet... <div
class="flex flex-row flex-wrap gap-1 items-center justify-center w-full"
>
<!-- Show the session list or device list -->
<button
type="button"
on:click={() => {
if ($events_loc.pres_mgmt.show_content__location_devices_sessions == 'sessions') {
$events_loc.pres_mgmt.show_content__location_devices_sessions = 'devices';
} else {
$events_loc.pres_mgmt.show_content__location_devices_sessions = 'sessions';
}
}}
class="btn btn-sm"
class:variant-ghost-success={$events_loc.pres_mgmt?.show_content__location_devices_sessions== 'sessions'}
class:variant-ghost-warning={$events_loc.pres_mgmt?.show_content__location_devices_sessions== 'devices'}
title="Show the session list or device list."
>
{#if $events_loc.pres_mgmt.show_content__location_devices_sessions == 'sessions'}
<span class="fas fa-toggle-on m-1"></span>
Session List
{:else}
<span class="fas fa-toggle-off m-1"></span>
Device List
{/if}
</button>
<!-- Show or hide the device code -->
<button
type="button"
on:click={() => {
$events_loc.pres_mgmt.hide__device_code = !$events_loc.pres_mgmt.hide__device_code;
}}
class="btn btn-sm"
class:variant-ghost-success={!$events_loc.pres_mgmt?.hide__device_code}
class:variant-ghost-warning={$events_loc.pres_mgmt?.hide__device_code}
title="Show or hide the device code."
>
{#if !$events_loc.pres_mgmt.hide__device_code}
<span class="fas fa-toggle-on m-1"></span>
Device Code
{:else}
<span class="fas fa-toggle-off m-1"></span>
Device Code
{/if}
</button>
<!-- Show or hide the location code -->
<button
type="button"
on:click={() => {
$events_loc.pres_mgmt.hide__location_code = !$events_loc.pres_mgmt.hide__location_code;
}}
class="btn btn-sm"
class:variant-ghost-success={!$events_loc.pres_mgmt?.hide__location_code}
class:variant-ghost-warning={$events_loc.pres_mgmt?.hide__location_code}
title="Show or hide the location code."
>
{#if !$events_loc.pres_mgmt.hide__location_code}
<span class="fas fa-toggle-on m-1"></span>
Location Code
{:else}
<span class="fas fa-toggle-off m-1"></span>
Location Code
{/if}
</button>
<!-- Show or hide the session code -->
<button
type="button"
on:click={() => {
$events_loc.pres_mgmt.hide__session_code = !$events_loc.pres_mgmt.hide__session_code;
}}
class="btn btn-sm"
class:variant-ghost-success={!$events_loc.pres_mgmt?.hide__session_code}
class:variant-ghost-warning={$events_loc.pres_mgmt?.hide__session_code}
title="Show or hide the session code."
>
{#if !$events_loc.pres_mgmt.hide__session_code}
<span class="fas fa-toggle-on m-1"></span>
Session Code
{:else}
<span class="fas fa-toggle-off m-1"></span>
Session Code
{/if}
</button>
</div>
</div> <!-- END: The expanded menu area for information and options --> </div> <!-- END: The expanded menu area for information and options -->

View File

@@ -503,12 +503,14 @@ async function handle_qry__event_session(
<section <section
class=" class="
ae_events_pres_mgmt_event ae_events_pres_mgmt_event
md:container h-full mx-auto md:container
flex flex-col gap-1 flex flex-col gap-1
py-1 px-2 pb-16
items-center items-center
min-w-100 justify-start
w-3/4 mx-auto
py-1 px-2 pb-16
h-full
min-w-full
max-w-max max-w-max
" "
> >
@@ -516,19 +518,35 @@ async function handle_qry__event_session(
xl:bg-green-200 --> xl:bg-green-200 -->
{#if $lq__event_obj}
<header>
<h2 class="h3 text-center hidden md:block">{$lq__event_obj?.name}</h2>
<h3 class="h4 text-center">Presentations - Reports</h3>
</header>
{/if}
<Event_reports_page_menu <Event_reports_page_menu
data={data} data={data}
lq__event_obj={lq__event_obj} lq__event_obj={lq__event_obj}
/> />
{#if !$lq__event_obj}
<div>
<span class="fas fa-spinner fa-spin m-1"></span>
<span>Loading event information...</span>
</div>
{:else}
<h2 class="h2 text-center rounded-md p-1 px-2 bg-gray-300 flex flex-row gap-0.25 items-center justify-between w-full">
<span
class="flex flex-row gap-1 items-center"
>
<span class="fas fa-chart-line m-1"></span>
Reports
</span>
<!-- Reports for: -->
{#if $lq__event_obj?.cfg_json?.short_name}
{@html $lq__event_obj?.cfg_json.short_name ?? ae_snip.html__not_set}
{:else}
{@html $lq__event_obj?.name ?? ae_snip.html__not_set}
{/if}
</h2>
<div class="variant-ghost-success my-2 p-2 rounded-md flex flex-row flex-wrap gap-1 items-center justify-center"> <div class="variant-ghost-success my-2 p-2 rounded-md flex flex-row flex-wrap gap-1 items-center justify-center">
@@ -933,6 +951,8 @@ async function handle_qry__event_session(
{/if} {/if}
{/if}
</section> </section>

View File

@@ -32,8 +32,7 @@ let ae_triggers: key_val = {};
hide={!$ae_loc.authenticated_access} hide={!$ae_loc.authenticated_access}
event_id={$lq__event_obj?.event_id} event_id={$lq__event_obj?.event_id}
ae_core={$ae_loc.administrator_access} ae_core={$ae_loc.administrator_access}
events__locations={$ae_loc.administrator_access} events__locations={$ae_loc.trusted_access}
events__reports={$ae_loc.trusted_access}
events__session_search={$events_slct.event_id} events__session_search={$events_slct.event_id}
/> />

View File

@@ -49,7 +49,8 @@ export let events__session_search: boolean = false; // event_id
class="{ae_snip.classes__events_pres_mgmt_menu__button}" class="{ae_snip.classes__events_pres_mgmt_menu__button}"
class:hidden={!events__locations} class:hidden={!events__locations}
> >
<span class="fas fa-map-marker-alt m-1"></span> <!-- <span class="fas fa-map-marker-alt m-1"></span> -->
<span class="fas fa-map-marked-alt m-1"></span>
Locations Locations
</a> </a>
</span> </span>

View File

@@ -46,11 +46,13 @@ let ae_triggers: key_val = {};
</script> </script>
<!-- xs:max-w-sm lg:max-w-100 --> <!-- xs:max-w-sm lg:max-w-100 -->
<!-- sm:border-red-200 md:border-yellow-200 lg:border-gray-100 -->
<section <section
class=" class="
ae_comp event_session_obj_li ae_comp event_session_obj_li
sm:bg-red-100 md:bg-yellow-100 lg:bg-white border border-2 border-dashed border-x-red-500 border-y-white
py-2 space-y-2 sm:border-x-red-400 md:border-x-yellow-400 lg:border-x-gray-100
px-0.5 py-2 space-y-2
min-w-full min-w-full
w-full w-full
container overflow-x-scroll {container_class_li} container overflow-x-scroll {container_class_li}

View File

@@ -45,6 +45,15 @@ export let pres_mgmt__session_search: boolean = false; // event_id
<span class="fas fa-chart-line m-1"></span> <span class="fas fa-chart-line m-1"></span>
Pres Mgmt Reports Pres Mgmt Reports
</a> </a>
<a
href="/events/{event_id}/locations"
class="{ae_snip.classes__events_pres_mgmt_menu__button}"
class:hidden={!pres_mgmt__locations}
>
<!-- <span class="fas fa-map-marker-alt m-1"></span> -->
<span class="fas fa-map-marked-alt m-1"></span>
Locations
</a>
</span> </span>
<span <span

View File

@@ -33,6 +33,7 @@ let ae_triggers: key_val = {};
event_id={$lq__event_obj?.event_id} event_id={$lq__event_obj?.event_id}
ae_core={$ae_loc.administrator_access} ae_core={$ae_loc.administrator_access}
pres_mgmt__reports={$ae_loc.trusted_access} pres_mgmt__reports={$ae_loc.trusted_access}
pres_mgmt__locations={$ae_loc.trusted_access}
/> />
<span <span

View File

@@ -39,6 +39,7 @@ let ae_triggers: key_val = {};
hide={false} hide={false}
event_id={$lq__event_session_obj?.event_id} event_id={$lq__event_session_obj?.event_id}
pres_mgmt__session_search={$lq__event_session_obj?.event_id} pres_mgmt__session_search={$lq__event_session_obj?.event_id}
pres_mgmt__locations={$ae_loc.administrator_access}
/> />
<span <span