From 0bfe6371fdbfad84c36b3c0d2a9e70ae8f03a5c6 Mon Sep 17 00:00:00 2001 From: E44 <129310925+programmer-44@users.noreply.github.com> Date: Fri, 7 Nov 2025 12:15:58 +0100 Subject: [PATCH] add Keyboard Input, improve PopUp, improve general code --- .../src/components/ControlView.svelte | 64 ++++++++-- .../src/components/DisplayObject.svelte | 2 + .../src/components/DisplayView.svelte | 2 +- .../src/components/FolderElementObject.svelte | 15 ++- .../frontend/src/components/KeyInput.svelte | 70 +++++++++++ control/frontend/src/components/PopUp.svelte | 14 ++- control/frontend/src/routes/+page.svelte | 7 +- control/frontend/src/ts/api_handler.ts | 17 ++- control/frontend/src/ts/stores/displays.ts | 12 ++ .../frontend/src/ts/stores/notification.ts | 2 +- shared/keys.json | 114 ++++++++++++++++++ 11 files changed, 286 insertions(+), 33 deletions(-) create mode 100644 control/frontend/src/components/KeyInput.svelte create mode 100644 shared/keys.json diff --git a/control/frontend/src/components/ControlView.svelte b/control/frontend/src/components/ControlView.svelte index 3805bc3..e718e63 100644 --- a/control/frontend/src/components/ControlView.svelte +++ b/control/frontend/src/components/ControlView.svelte @@ -12,50 +12,90 @@ TrafficCone } from 'lucide-svelte'; import Button from './Button.svelte'; + import PopUp from './PopUp.svelte'; + import type { PopupContent } from '../ts/types'; + import KeyInput from './KeyInput.svelte'; + + let popup_content: PopupContent = $state({ + open: false, + snippet: null, + title: '', + closable: true + }); + + function popup_close_function() { + popup_content.open = false; + } + + const show_send_keys_popup = () => { + popup_content = { + open: true, + snippet: send_keys_popup, + title: 'Tastatur-Eingaben durchgeben', + title_icon: Keyboard, + closable: true + }; + }; +{#snippet send_keys_popup()} +
+ +
+
+ +
+{/snippet} +
Bildschirme steuern
-
+
-
- -
- - +
-
- Tastatur-Eingaben durchgeben
- -
-
+
diff --git a/control/frontend/src/components/DisplayObject.svelte b/control/frontend/src/components/DisplayObject.svelte index 02470a5..e42224d 100644 --- a/control/frontend/src/components/DisplayObject.svelte +++ b/control/frontend/src/components/DisplayObject.svelte @@ -10,6 +10,7 @@ import OnlineState from './OnlineState.svelte'; import type { Display, MenuOption } from '../ts/types'; import { is_selected, select, selected_display_ids } from '../ts/stores/select'; + import { update_screenshot } from '../ts/stores/displays'; let { display, get_display_menu_options } = $props<{ display: Display; @@ -29,6 +30,7 @@ } else { $pinned_display_id = display.id; } + update_screenshot(display.id); e.stopPropagation(); } diff --git a/control/frontend/src/components/DisplayView.svelte b/control/frontend/src/components/DisplayView.svelte index 64a6b02..b72452d 100644 --- a/control/frontend/src/components/DisplayView.svelte +++ b/control/frontend/src/components/DisplayView.svelte @@ -102,7 +102,7 @@