Got the screen saver mostly working now. Now config options yet though.
This commit is contained in:
12
package-lock.json
generated
12
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "ae-app-svelte4-tailwind-skeleton",
|
"name": "ae-app-svelte4-tailwind-skeleton",
|
||||||
"version": "0.1.5",
|
"version": "0.1.10",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ae-app-svelte4-tailwind-skeleton",
|
"name": "ae-app-svelte4-tailwind-skeleton",
|
||||||
"version": "0.1.5",
|
"version": "0.1.10",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@floating-ui/dom": "^1.6.0",
|
"@floating-ui/dom": "^1.6.0",
|
||||||
"@popperjs/core": "^2.11.0",
|
"@popperjs/core": "^2.11.0",
|
||||||
@@ -49,6 +49,7 @@
|
|||||||
"svelte": "^4.2.0",
|
"svelte": "^4.2.0",
|
||||||
"svelte-check": "^4.0.0",
|
"svelte-check": "^4.0.0",
|
||||||
"svelte-highlight": "^7.7.0",
|
"svelte-highlight": "^7.7.0",
|
||||||
|
"svelte-idle": "^3.0.1",
|
||||||
"tailwindcss": "^3.4.10",
|
"tailwindcss": "^3.4.10",
|
||||||
"tslib": "^2.4.1",
|
"tslib": "^2.4.1",
|
||||||
"typescript": "^5.0.0",
|
"typescript": "^5.0.0",
|
||||||
@@ -5876,6 +5877,13 @@
|
|||||||
"svelte": "^3.19.0 || ^4.0.0"
|
"svelte": "^3.19.0 || ^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/svelte-idle": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/svelte-idle/-/svelte-idle-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-B0OfHwcwxuAVcKQSybToIry6g06e9CBZqxBiAU8FhOXILngtXvi1HwzUvEwpZelDrw1hVLJdfDcwBxTFZQNruw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/svelte/node_modules/estree-walker": {
|
"node_modules/svelte/node_modules/estree-walker": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
"svelte": "^4.2.0",
|
"svelte": "^4.2.0",
|
||||||
"svelte-check": "^4.0.0",
|
"svelte-check": "^4.0.0",
|
||||||
"svelte-highlight": "^7.7.0",
|
"svelte-highlight": "^7.7.0",
|
||||||
|
"svelte-idle": "^3.0.1",
|
||||||
"tailwindcss": "^3.4.10",
|
"tailwindcss": "^3.4.10",
|
||||||
"tslib": "^2.4.1",
|
"tslib": "^2.4.1",
|
||||||
"typescript": "^5.0.0",
|
"typescript": "^5.0.0",
|
||||||
|
|||||||
@@ -140,7 +140,12 @@ let events_local_data_struct: key_val = {
|
|||||||
'host_file_config_path': 'device_configs/ae_native_app_config.default.json',
|
'host_file_config_path': 'device_configs/ae_native_app_config.default.json',
|
||||||
},
|
},
|
||||||
|
|
||||||
screen_saver_img_list: [],
|
idle_timer: 5*60*1000, // How many seconds until idle
|
||||||
|
idle_cycle: 2*1000, // How frequently the idle status is checked
|
||||||
|
idle_loop_period: 1*60*1000, // How frequently the loop runs for the screen saver and similar
|
||||||
|
|
||||||
|
screen_saver_img_kv: {},
|
||||||
|
// screen_saver_img_li: [],
|
||||||
modal__title: '-- Not Set --',
|
modal__title: '-- Not Set --',
|
||||||
modal__open: null,
|
modal__open: null,
|
||||||
modal__open_filename: null,
|
modal__open_filename: null,
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import { goto } from '$app/navigation';
|
|||||||
import { sineIn } from 'svelte/easing';
|
import { sineIn } from 'svelte/easing';
|
||||||
import { liveQuery } from "dexie";
|
import { liveQuery } from "dexie";
|
||||||
import { Drawer, Footer, Modal } from 'flowbite-svelte';
|
import { Drawer, Footer, Modal } from 'flowbite-svelte';
|
||||||
|
import { listen, idle, onIdle } from 'svelte-idle'
|
||||||
|
|
||||||
import type { key_val } from '$lib/ae_stores';
|
import type { key_val } from '$lib/ae_stores';
|
||||||
import { ae_util } from '$lib/ae_utils/ae_utils';
|
import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||||
@@ -160,6 +161,7 @@ function handle_ws_conn(event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// This client received a WebSocket message.
|
||||||
// When this is called something seems to go wrong. It creates a loop when connected.
|
// When this is called something seems to go wrong. It creates a loop when connected.
|
||||||
function handle_ws_recv(event) {
|
function handle_ws_recv(event) {
|
||||||
if (log_lvl) {
|
if (log_lvl) {
|
||||||
@@ -265,6 +267,7 @@ function handle_ws_recv(event) {
|
|||||||
|
|
||||||
// NOTE: This is not finished yet.
|
// NOTE: This is not finished yet.
|
||||||
if (obj_type == 'event_file') {
|
if (obj_type == 'event_file') {
|
||||||
|
clearInterval(idle_timer_interval);
|
||||||
$events_slct.event_file_id = obj_id;
|
$events_slct.event_file_id = obj_id;
|
||||||
|
|
||||||
$events_sess.launcher.modal__open = $events_slct.event_file_id;
|
$events_sess.launcher.modal__open = $events_slct.event_file_id;
|
||||||
@@ -333,6 +336,7 @@ function handle_ws_recv(event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// This client sent a WebSocket message.
|
||||||
function handle_ws_sent(event) {
|
function handle_ws_sent(event) {
|
||||||
console.log('*** handle_ws_sent() ***');
|
console.log('*** handle_ws_sent() ***');
|
||||||
console.log(event);
|
console.log(event);
|
||||||
@@ -431,6 +435,87 @@ export let close_event_file_as_modal = function close_event_file_as_modal({}) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (!$events_loc.launcher.idle_timer) {
|
||||||
|
$events_loc.launcher.idle_timer = 4 * 60 * 1000;
|
||||||
|
}
|
||||||
|
if (!$events_loc.launcher.idle_cycle) {
|
||||||
|
$events_loc.launcher.idle_cycle = 5 * 1000;
|
||||||
|
}
|
||||||
|
if (!$events_loc.launcher.idle_loop_period) {
|
||||||
|
$events_loc.launcher.idle_loop_period = 1 * 60 * 1000;
|
||||||
|
}
|
||||||
|
// Safer to run this once the component has mounted and initialized???
|
||||||
|
listen({
|
||||||
|
timer: $events_loc.launcher.idle_timer, // $events_loc.launcher.idle_timer ?? 30 * 60 * 1000,
|
||||||
|
cycle: $events_loc.launcher.idle_cycle ?? 5 * 1000, // How frequently the idle status is checked
|
||||||
|
});
|
||||||
|
|
||||||
|
let idle_timer_interval: any;
|
||||||
|
clearInterval(idle_timer_interval);
|
||||||
|
|
||||||
|
function handle_idle_client() {
|
||||||
|
// Start the digital poster screen saver after additional idle time.
|
||||||
|
|
||||||
|
if ($events_slct?.event_session_obj && $events_slct.event_session_obj?.type_code == 'poster') {
|
||||||
|
console.log('Open poster file in poster session...');
|
||||||
|
|
||||||
|
idle_timer_interval = setInterval(() => {
|
||||||
|
if (log_lvl) {
|
||||||
|
console.log('Screen saver tick!');
|
||||||
|
// console.log($events_loc.launcher.screen_saver_img_kv);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// console.log($events_loc.launcher.screen_saver_img_kv.length());
|
||||||
|
|
||||||
|
if ($events_loc.launcher.screen_saver_img_kv) {
|
||||||
|
console.log($events_loc.launcher.screen_saver_img_kv);
|
||||||
|
|
||||||
|
let modal_title: string = '';
|
||||||
|
|
||||||
|
const rand_index = Math.floor(Math.random() * Object.keys($events_loc.launcher.screen_saver_img_kv).length);
|
||||||
|
console.log(rand_index);
|
||||||
|
|
||||||
|
let event_file_obj = $events_loc.launcher.screen_saver_img_kv[Object.keys($events_loc.launcher.screen_saver_img_kv)[rand_index]];
|
||||||
|
|
||||||
|
$events_slct.event_file_id = event_file_obj.event_file_id_random;
|
||||||
|
$events_slct.event_file_obj = event_file_obj;
|
||||||
|
// $slct_trigger = 'event_file';
|
||||||
|
// $events_loc.launcher.event_file_open.open_status = 'open';
|
||||||
|
|
||||||
|
$events_sess.launcher.modal__open = event_file_obj.event_file_id_random;
|
||||||
|
if (!modal_title) {
|
||||||
|
modal_title = event_file_obj.filename;
|
||||||
|
}
|
||||||
|
$events_sess.launcher.modal__title = modal_title;
|
||||||
|
// $events_sess.launcher.modal__img_src = `/event/file/${event_file_obj.event_file_id_random}/download`;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
console.log('No screen saver images found.');
|
||||||
|
return false;
|
||||||
|
}, $events_loc.launcher.idle_loop_period ?? 2 * 60 * 1000);
|
||||||
|
// console.log('User is no longer idle???');
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$: {
|
||||||
|
if ($idle) {
|
||||||
|
log_lvl = 1;
|
||||||
|
console.log(`User is idle after ${$events_loc.launcher?.idle_timer} milliseconds.`);
|
||||||
|
handle_idle_client();
|
||||||
|
} else {
|
||||||
|
console.log('User is no longer idle.');
|
||||||
|
log_lvl = 0;
|
||||||
|
clearInterval(idle_timer_interval);
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import Element_ae_crud from '$lib/element_ae_crud.svelte';
|
|||||||
// import { ae } from 'aether_npm_lib';
|
// import { ae } from 'aether_npm_lib';
|
||||||
|
|
||||||
// import { } from '../../mods/electron.js';
|
// import { } from '../../mods/electron.js';
|
||||||
// import { ae_event_launcher, event_file_obj_def, open_event_file_as_modal, screen_saver_img_list } from '../../stores_mod_events';
|
// import { ae_event_launcher, event_file_obj_def, open_event_file_as_modal, screen_saver_img_kv } from '../../stores_mod_events';
|
||||||
|
|
||||||
// *** Import Aether core components
|
// *** Import Aether core components
|
||||||
|
|
||||||
@@ -56,21 +56,21 @@ let open_file_clicked: null|boolean = null;
|
|||||||
let open_file_status: null|string = null; // null, 'checking_cache', 'checking_cache_failed', 'downloading_file', 'downloading_file_failed', 'opening_file', 'opening_file_failed', 'opening_file_success'
|
let open_file_status: null|string = null; // null, 'checking_cache', 'checking_cache_failed', 'downloading_file', 'downloading_file_failed', 'opening_file', 'opening_file_failed', 'opening_file_success'
|
||||||
let open_file_status_message: null|string = null;
|
let open_file_status_message: null|string = null;
|
||||||
|
|
||||||
if (!$events_loc.launcher.screen_saver_img_list) {
|
if (!$events_loc.launcher.screen_saver_img_kv) {
|
||||||
$events_loc.launcher.screen_saver_img_list = {};
|
$events_loc.launcher.screen_saver_img_kv = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
let screen_saver_exts = ['jpg', 'png', 'PNG', 'webp'];
|
let screen_saver_exts = ['jpg', 'png', 'PNG', 'webp'];
|
||||||
|
|
||||||
if (screen_saver_exts.includes(event_file_obj.extension)) {
|
if (screen_saver_exts.includes(event_file_obj.extension)) {
|
||||||
// $events_loc.launcher.screen_saver_img_list.push(event_file_obj);
|
// $events_loc.launcher.screen_saver_img_kv.push(event_file_obj);
|
||||||
// $events_loc.launcher.screen_saver_img_list[event_file_obj.event_file_id_random] = event_file_obj;
|
// $events_loc.launcher.screen_saver_img_kv[event_file_obj.event_file_id_random] = event_file_obj;
|
||||||
|
|
||||||
$events_loc.launcher.screen_saver_img_list[event_file_obj.event_file_id_random] = Object.create(event_file_obj);
|
$events_loc.launcher.screen_saver_img_kv[event_file_obj.event_file_id_random] = Object.create(event_file_obj);
|
||||||
|
|
||||||
// let temp_obj = Object.create(event_file_obj)
|
// let temp_obj = Object.create(event_file_obj)
|
||||||
|
|
||||||
// $events_loc.launcher.screen_saver_img_list[temp_obj.event_file_id_random] = Object.create(temp_obj);
|
// $events_loc.launcher.screen_saver_img_kv[temp_obj.event_file_id_random] = Object.create(temp_obj);
|
||||||
|
|
||||||
// $ae_event_launcher = $ae_event_launcher;
|
// $ae_event_launcher = $ae_event_launcher;
|
||||||
}
|
}
|
||||||
@@ -80,11 +80,11 @@ onMount(() => {
|
|||||||
console.log(`Session Type: ${session_type}; Open Method: ${open_method}`);
|
console.log(`Session Type: ${session_type}; Open Method: ${open_method}`);
|
||||||
|
|
||||||
if (screen_saver_exts.includes(event_file_obj.extension)) {
|
if (screen_saver_exts.includes(event_file_obj.extension)) {
|
||||||
// $events_loc.launcher.screen_saver_img_list[event_file_obj.event_file_id_random] = event_file_obj;
|
// $events_loc.launcher.screen_saver_img_kv[event_file_obj.event_file_id_random] = event_file_obj;
|
||||||
|
|
||||||
let temp_obj = Object.create(event_file_obj)
|
let temp_obj = Object.create(event_file_obj)
|
||||||
|
|
||||||
$events_loc.launcher.screen_saver_img_list[temp_obj.event_file_id_random] = Object.create(temp_obj);
|
$events_loc.launcher.screen_saver_img_kv[temp_obj.event_file_id_random] = Object.create(temp_obj);
|
||||||
|
|
||||||
// $ae_event_launcher = $ae_event_launcher;
|
// $ae_event_launcher = $ae_event_launcher;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,10 +60,9 @@ let hover_timer: any = null;
|
|||||||
$events_slct.event_session_id = null;
|
$events_slct.event_session_id = null;
|
||||||
await tick();
|
await tick();
|
||||||
|
|
||||||
|
// $events_slct.event_session_id = event_session_obj?.id;
|
||||||
$events_slct.event_session_id = event_session_obj?.id;
|
$events_slct.event_session_id = event_session_obj?.id;
|
||||||
data_url.searchParams.set('session_id', event_session_obj?.id);
|
data_url.searchParams.set('session_id', event_session_obj?.id);
|
||||||
|
|
||||||
$events_slct.event_session_id = event_session_obj?.id;
|
|
||||||
$events_slct.event_session_obj = event_session_obj;
|
$events_slct.event_session_obj = event_session_obj;
|
||||||
|
|
||||||
ae_promises.slct_event_session_id = events_func.load_ae_obj_id__event_session({
|
ae_promises.slct_event_session_id = events_func.load_ae_obj_id__event_session({
|
||||||
|
|||||||
Reference in New Issue
Block a user