From 172763bc2645fc24850a2e68dfa4edf1c1677a6e Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 17 Oct 2024 18:26:56 -0400 Subject: [PATCH] Working on device status and alerts. --- package.json | 2 +- src/lib/ae_events__event_device.ts | 4 + src/lib/ae_events_functions.ts | 7 + src/lib/db_events.ts | 3 + .../ae_comp__event_device_obj_li.svelte | 327 ++++++++++++------ ...e_comp__event_device_obj_li_wrapper.svelte | 3 + .../ae_comp__event_location_obj_li.svelte | 2 + 7 files changed, 241 insertions(+), 107 deletions(-) diff --git a/package.json b/package.json index de92e5b0..37ce670f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ae-app-svelte4-tailwind-skeleton", - "version": "0.1.5", + "version": "0.1.10", "private": true, "scripts": { "dev": "vite dev", diff --git a/src/lib/ae_events__event_device.ts b/src/lib/ae_events__event_device.ts index 8d4d2282..06594bd6 100644 --- a/src/lib/ae_events__event_device.ts +++ b/src/lib/ae_events__event_device.ts @@ -297,6 +297,7 @@ export async function update_ae_obj__event_device( } +// Not yet used or tested fully! // Updated 2024-10-16 export async function search__event_device( { @@ -475,10 +476,13 @@ export function db_save_ae_obj_li__event_device( alert: obj.alert, alert_msg: obj.alert_msg, + alert_on: obj.alert_on, status: obj.status, status_msg: obj.status_msg, + status_on: obj.status_on, record_status: obj.record_status, record_status_msg: obj.record_status_msg, + record_status_on: obj.record_status_on, info_hostname: obj.info_hostname, info_ip_list: obj.info_ip_list, diff --git a/src/lib/ae_events_functions.ts b/src/lib/ae_events_functions.ts index e34f92f3..14738fbd 100644 --- a/src/lib/ae_events_functions.ts +++ b/src/lib/ae_events_functions.ts @@ -2,6 +2,7 @@ // Import all the functions from this library: import * as events from "$lib/ae_events__event"; +import * as events_device from "$lib/ae_events__event_device"; import { load_ae_obj_id__event_file, @@ -80,6 +81,12 @@ let export_obj = { db_save_ae_obj_li__event: events.db_save_ae_obj_li__event, sync_config__event_pres_mgmt: events.sync_config__event_pres_mgmt, + load_ae_obj_id__event_device: events_device.load_ae_obj_id__event_device, + load_ae_obj_li__event_device: events_device.load_ae_obj_li__event_device, + create_ae_obj__event_device: events_device.create_ae_obj__event_device, + update_ae_obj__event_device: events_device.update_ae_obj__event_device, + db_save_ae_obj_li__event_device: events_device.db_save_ae_obj_li__event_device, + load_ae_obj_id__event_file: load_ae_obj_id__event_file, load_ae_obj_li__event_file: load_ae_obj_li__event_file, delete_ae_obj_id__event_file: delete_ae_obj_id__event_file, diff --git a/src/lib/db_events.ts b/src/lib/db_events.ts index 64c25fe7..8d5a5fb1 100644 --- a/src/lib/db_events.ts +++ b/src/lib/db_events.ts @@ -167,10 +167,13 @@ export interface Device { alert?: null|boolean; alert_msg?: null|string; + alert_on?: null|string; status?: null|string; status_msg?: null|string; + status_on?: null|Date; record_status?: null|string; record_status_msg?: null|string; + record_status_on?: null|Date; info_hostname?: null|string; info_ip_list?: null|string; // Semi-colon separated list of IP addresses diff --git a/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li.svelte b/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li.svelte index 6c3e56b2..cedb4324 100644 --- a/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li.svelte +++ b/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li.svelte @@ -1,5 +1,7 @@ @@ -61,134 +93,217 @@ if (!$events_loc.pres_mgmt?.device_kv) { class="space-y-4 p-4 m-2 bg-gray-100 rounded-md" > {#each $lq__event_device_obj_li as event_device_obj} +
  • - { - console.log(`ae_crud_updated:`, e.detail); + { + 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 - }) - .then(function (load_results) { - }) - .then(function (load_results) { - // $events_trigger = 'load__event_device_obj_id'; - // $events_trig_kv['event_device_id'] = event_device_obj.event_device_id_random; - }); - }} - > - - "{event_device_obj?.name}" - - - {#if event_device_obj?.code && !$events_loc.pres_mgmt?.hide__device_code} - - - {event_device_obj?.code ?? ''} - - {/if} - - - {#if event_device_obj?.alert} - - - + + + "{event_device_obj?.name}" + + + {#if event_device_obj?.code && !$events_loc.pres_mgmt?.hide__device_code} + + + {event_device_obj?.code ?? ''} - {/if} - + + + + + {#if event_device_obj?.alert} + + + + + {/if} + {#if event_device_obj?.status} + + + + + {/if} + {#if event_device_obj?.record_status} + + + + + {/if} + + + + + +

    -
    +
    - - {event_device_obj?.alert ? 'Alert' : 'No Alert'} - -
    - {event_device_obj?.alert_msg ?? 'No message'} +
    + + + {event_device_obj?.alert ? 'Alert' : 'No Alert'} + + +
    +
    + {@html event_device_obj?.alert_msg ?? 'No message'} +
    + {#if event_device_obj?.alert_on} +
    + Datetime: {ae_util.iso_datetime_formatter(event_device_obj?.alert_on, 'time_iso_12_tz')} +
    + {/if}
    - - {event_device_obj?.status ? 'Status' : 'No Status'} - -
    - {event_device_obj?.status_msg ?? 'No message'} +
    + + + {event_device_obj?.status ? event_device_obj?.status : 'No Status'} + + +
    +
    + {@html event_device_obj?.status_msg ?? 'No message'} +
    + {#if event_device_obj?.status_on} +
    + Datetime: {ae_util.iso_datetime_formatter(event_device_obj?.status_on, 'time_iso_12_tz')} +
    + {/if}
    - - {event_device_obj?.record_status ? 'Recording Status' : 'No Recording Status'} - -
    - {event_device_obj?.record_status_msg ?? 'No message'} +
    + + + {#if event_device_obj?.record_status && event_device_obj?.record_status.length > 10} + {ae_util.iso_datetime_formatter(event_device_obj?.record_status, 'time_iso_12_tz')} + + + {:else if event_device_obj?.record_status} + {event_device_obj?.record_status} + {:else} + No Recording Status + {/if} + +
    +
    + {@html event_device_obj?.record_status_msg ?? 'No message'} +
    + {#if event_device_obj?.record_status_on} +
    + Datetime: {ae_util.iso_datetime_formatter(event_device_obj?.record_status_on, 'time_iso_12_tz')} +
    + {/if}
    @@ -232,7 +347,7 @@ if (!$events_loc.pres_mgmt?.device_kv) { { 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}); + events_func.load_ae_obj_id__event_device({api_cfg: $ae_api, event_device_id: event_device_obj.event_device_id, log_lvl: 1}); }} > @@ -259,21 +374,21 @@ if (!$events_loc.pres_mgmt?.device_kv) { 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) { + if ($events_sess.pres_mgmt.show_content__device_description == event_device_obj.event_device_id) { $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; + $events_sess.pres_mgmt.show_content__device_description = event_device_obj.event_device_id; // Was testing with LiveQuery - $events_slct.event_device_id = event_device_obj.event_device_id_random; + $events_slct.event_device_id = event_device_obj.event_device_id; } }} 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} + {#if $events_sess.pres_mgmt.show_content__device_description == event_device_obj.event_device_id} Hide Description {:else} @@ -284,7 +399,7 @@ if (!$events_loc.pres_mgmt?.device_kv) {
    {event_device_obj.description}
    {:else} diff --git a/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li_wrapper.svelte b/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li_wrapper.svelte index 3dd5cf7b..182b8080 100644 --- a/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li_wrapper.svelte +++ b/src/routes/events/[event_id]/device/ae_comp__event_device_obj_li_wrapper.svelte @@ -14,6 +14,8 @@ export let event_device_id_random_li: Array = []; export let link_to_type: string; export let link_to_id: string; +export let auto_refresh: boolean|number = false; + if (log_lvl) { console.log(`Event Device List Wrapper: link_to_type: ${link_to_type}; link_to_id: ${link_to_id}`); } @@ -52,6 +54,7 @@ $: lq__event_device_obj_li = liveQuery(async () => { link_to_type={link_to_type} link_to_id={link_to_id} lq__event_device_obj_li={lq__event_device_obj_li} + auto_refresh={auto_refresh} log_lvl={log_lvl} > diff --git a/src/routes/events/[event_id]/locations/ae_comp__event_location_obj_li.svelte b/src/routes/events/[event_id]/locations/ae_comp__event_location_obj_li.svelte index b6b481b2..db60eefc 100644 --- a/src/routes/events/[event_id]/locations/ae_comp__event_location_obj_li.svelte +++ b/src/routes/events/[event_id]/locations/ae_comp__event_location_obj_li.svelte @@ -143,6 +143,7 @@ if (!$events_loc.pres_mgmt?.location_kv) { }} > + "{event_location_obj?.name}"
    @@ -316,6 +317,7 @@ if (!$events_loc.pres_mgmt?.location_kv) { link_to_type={'event_location'} link_to_id={event_location_obj?.event_location_id_random} event_device_id_random_li={[]} + auto_refresh={$events_loc.pres_mgmt.refresh_interval ?? 90000} log_lvl={log_lvl} >