From f5fd93b1fff39b68e6f085489b76414336ed1a16 Mon Sep 17 00:00:00 2001 From: E44 <129310925+programmer-44@users.noreply.github.com> Date: Mon, 20 Oct 2025 17:47:17 +0200 Subject: [PATCH] developement of right control side started --- control/frontend/src/components/Button.svelte | 164 +++++++++++++++++- .../src/components/DisplayGroupObject.svelte | 1 + .../src/components/DisplayObject.svelte | 25 +-- control/frontend/src/components/PopUp.svelte | 51 ++++++ control/frontend/src/routes/+page.svelte | 82 ++++++++- control/frontend/src/ts/types.ts | 5 +- 6 files changed, 299 insertions(+), 29 deletions(-) create mode 100644 control/frontend/src/components/PopUp.svelte diff --git a/control/frontend/src/components/Button.svelte b/control/frontend/src/components/Button.svelte index 4399505..408046e 100644 --- a/control/frontend/src/components/Button.svelte +++ b/control/frontend/src/components/Button.svelte @@ -1,6 +1,8 @@ - +
+ + {#if menu_shown} + + +
{ + e.stopPropagation(); + }} + > + {#each menu_options as option} + + {/each} +
+ {/if} +
diff --git a/control/frontend/src/components/DisplayGroupObject.svelte b/control/frontend/src/components/DisplayGroupObject.svelte index ee1ce4a..95a91b3 100644 --- a/control/frontend/src/components/DisplayGroupObject.svelte +++ b/control/frontend/src/components/DisplayGroupObject.svelte @@ -16,6 +16,7 @@ } from '../ts/stores/displays'; import DNDGrip from './DNDGrip.svelte'; import { fade } from 'svelte/transition'; + import type { DisplayGroup } from '../ts/types'; let { display_group } = $props<{ display_group: DisplayGroup; diff --git a/control/frontend/src/components/DisplayObject.svelte b/control/frontend/src/components/DisplayObject.svelte index c69c01e..3e8cdd9 100644 --- a/control/frontend/src/components/DisplayObject.svelte +++ b/control/frontend/src/components/DisplayObject.svelte @@ -7,18 +7,10 @@ pinned_display_id } from '../ts/stores/ui_behavior'; import DNDGrip from './DNDGrip.svelte'; - import { - ArrowUpFromLine, - Eye, - Menu, - Pin, - PinOff, - SquareArrowOutDownLeft, - SquareArrowOutUpRight, - VideoOff - } from 'lucide-svelte'; + import { Menu, Pencil, Pin, PinOff, Trash2, VideoOff, X } from 'lucide-svelte'; import { fade } from 'svelte/transition'; import OnlineState from './OnlineState.svelte'; + import type { Display } from '../ts/types'; let { display } = $props<{ display: Display; @@ -53,7 +45,7 @@ hover: true, active: !hovering_unselectable, text: true - })} rounded-xl flex flex-row justify-between h-{$display_screen_height} overflow-hidde transition-colors duration-100 gap-2 cursor-pointer w-full overflow-hidden text-stone-200" + })} rounded-xl flex flex-row justify-between h-{$display_screen_height} transition-colors duration-100 gap-2 cursor-pointer w-full text-stone-200" >
@@ -128,6 +120,17 @@ click_function={(e) => { e.stopPropagation(); }} + menu_options={[ + { + icon: Pencil, + name: 'Bildschirm bearbeiten' + }, + { + icon: Trash2, + name: 'Bildschirm löschen', + class: 'text-red-400 hover:text-stone-200 hover:!bg-red-400' + } + ]} > diff --git a/control/frontend/src/components/PopUp.svelte b/control/frontend/src/components/PopUp.svelte new file mode 100644 index 0000000..c91b34b --- /dev/null +++ b/control/frontend/src/components/PopUp.svelte @@ -0,0 +1,51 @@ + + +
+
+
+
+ {title} +
+
+ {#if title_icon} + {@const Icon = title_icon} + + {/if} +
+
+
+ {@render children()} +
+
+
diff --git a/control/frontend/src/routes/+page.svelte b/control/frontend/src/routes/+page.svelte index 82faf58..1b31bd5 100644 --- a/control/frontend/src/routes/+page.svelte +++ b/control/frontend/src/routes/+page.svelte @@ -1,5 +1,27 @@