diff --git a/src/lib/components/ListItem.svelte b/src/lib/components/ListItem.svelte index bc097fe..c89ace2 100644 --- a/src/lib/components/ListItem.svelte +++ b/src/lib/components/ListItem.svelte @@ -1,4 +1,4 @@ - -
+
-
+
{#if data.user.admin} - (item.show_button = true)} - on:focusin={() => (item.show_button = false)} - on:keydown|stopPropagation={(ev) => { - handle_input(ev); - }} - on:click={(ev) => { - handleClick(ev); - }} - /> +
+ (item.show_button = true)} + onfocusin={() => (item.show_button = false)} + onkeydown={(ev) => { + ev.stopPropagation(); + handle_input(ev); + }} + onclick={(ev) => { + handleClick(ev); + }} + /> +
{#if item.show_button} {/if}
@@ -249,148 +225,16 @@

+Umbenennen + {#if inProgress} +

Vorgang läuft...

+ {/if} - - - + +
diff --git a/src/routes/(angemeldet)/+layout.server.js b/src/routes/(angemeldet)/+layout.server.js index c54cfba..b509af2 100644 --- a/src/routes/(angemeldet)/+layout.server.js +++ b/src/routes/(angemeldet)/+layout.server.js @@ -1,6 +1,5 @@ import { redirect } from '@sveltejs/kit'; -/** @type {import('./$types').PageServerLoad} */ export function load(event) { if (!event.locals.user && event.url.pathname !== '/anmeldung') throw redirect(303, '/anmeldung'); return { diff --git a/src/routes/(angemeldet)/list/+page.svelte b/src/routes/(angemeldet)/list/+page.svelte index a6dec78..b7978f5 100644 --- a/src/routes/(angemeldet)/list/+page.svelte +++ b/src/routes/(angemeldet)/list/+page.svelte @@ -39,7 +39,9 @@ const target = ev.currentTarget as HTMLElement | null; if (!target) return; let filename = target.id.split('del__')[1]; - + console.log('Debug Mina', filename); + ev.preventDefault(); + ev.stopPropagation; // delete request // -------------- @@ -51,7 +53,7 @@ if (response.status == 204) { setTimeout(() => { window.location.reload(); - }, 500); + }, 5000); } } catch (error) { if (error instanceof Error) { diff --git a/src/routes/(angemeldet)/list/[vorgang]/+page.svelte b/src/routes/(angemeldet)/list/[vorgang]/+page.svelte index 24bfb03..fea8dd4 100644 --- a/src/routes/(angemeldet)/list/[vorgang]/+page.svelte +++ b/src/routes/(angemeldet)/list/[vorgang]/+page.svelte @@ -3,18 +3,6 @@ import { page } from '$app/stores'; - import Alert from '$lib/components/ui/Alert.svelte'; - - import Button from '$lib/components/ui/Button.svelte'; - - import Modal from '$lib/components/ui/Modal/Modal.svelte'; - - import ModalTitle from '$lib/components/ui/Modal/ModalTitle.svelte'; - - import ModalContent from '$lib/components/ui/Modal/ModalContent.svelte'; - - import ModalFooter from '$lib/components/ui/Modal/ModalFooter.svelte'; - import ListItem from '$lib/components/ListItem.svelte'; let { data } = $props(); @@ -30,11 +18,10 @@ let list: ListItem[] = $state([]); let admin = data.user.admin; - let wert = $state('Hallo'); - $effect: console.log('TEst', wert); + let wert = $state(''); $effect: { - console.log('Liste aktualisiert:', $inspect(list), $inspect(admin), $inspect(wert)); + $inspect(list), $inspect(admin), $inspect(wert); } let open = $state(false); @@ -49,18 +36,10 @@ $inspect(err); - // let rename_input; - - // $effect: rename_input; - - $effect(() => { - console.log('Update-Ereignis erkannt:', wert); - }); - let oldName = $state(''); let nameArray = list.map((obj) => obj.name); - $effect: console.log('Mina Testing oben:', $inspect(nameArray), $inspect(oldName)); + $effect: $inspect(oldName); onMount(async () => { const response = await fetch('/api/list/' + vorgang); @@ -87,7 +66,7 @@ .map((i) => JSON.parse(i)); console.log(objs); - wert = 'Ich kann nicht mehr!'; + wert = 'wert'; list = list.concat(objs); @@ -98,154 +77,10 @@ } }); - console.log('Mina List', list); - - function uploadSuccessful() { - console.log('reset'); - - open = false; - } - - function defocus_element(i: number) { - let item = list[i]; - - let text_field_id = `label__${item.name}`; - - let text_field = document.getElementById(text_field_id); - - if (text_field) { - text_field.setAttribute('contenteditable', 'false'); - - text_field.textContent = item.name; - } - - // reshow button - - list[i].show_button = true; - - return; - } - - async function handle_input(ev: KeyboardEvent, i: number, itemObj: any) { - let item = list[i]; - console.log('Mina item', item, itemObj, oldName); - console.log('input', ev.key); - if (ev.key == 'Escape') { - // ev.stopPropagation(); // Verhindert, dass der Klick weiter nach oben propagiert - // ev.preventDefault(); // Stoppt die Standardaktion - console.log('Escape', ev.key); - itemObj.name = oldName; - itemObj.show_button = true; - } - // if (ev.key == 'Escape') { - // item.name = oldName; - // // reshow button - - // item.show_button = true; - - // return; - // } - - if (ev.key == 'Enter') { - console.log('Enter', ev.key); - ev.stopPropagation(); // Verhindert, dass der Klick weiter nach oben propagiert - ev.preventDefault(); // Stoppt die Standardaktion - } - // if (ev.key == 'Enter') { - // console.log('--- hitted'); - - // let name_field = ev.currentTarget as HTMLElement | null; - - // let new_name = name_field - // ? name_field.textContent || (name_field as any).innerText || '' - // : ''; - - // if (new_name == '') { - // alert('Bitte einen gültigen Namen eingeben.'); - - // ev.preventDefault(); - - // return; - // } - - // // actual upload - - // // ------------- - - // // to prevent from item being selected - - // ev.preventDefault(); - - // // construct PUT URL - - // const url = $page.url; - - // console.log(url); - - // let data_obj: { new_name: string; old_name: string } = { new_name: '', old_name: '' }; - - // data_obj['new_name'] = new_name; - - // data_obj['old_name'] = - // ev.currentTarget && (ev.currentTarget as HTMLElement).id - // ? (ev.currentTarget as HTMLElement).id.split('__')[1] - // : ''; - - // open = true; - - // inProgress = true; - - // const response = await fetch( - // url, - - // { method: 'PUT', body: JSON.stringify(data_obj) } - // ); - - // inProgress = false; - - // if (!response.ok) { - // err = true; - - // if (response.status == 400) { - // let json_res = await response.json(); - - // // alert(json_res['msg']) - - // return; - // } - - // throw new Error(`Fehlgeschlagen: ${response.status}`); - // } else { - // uploadSuccessful(); - - // setTimeout(() => { - // window.location.reload(); - // }, 500); - // } - - // // --- upload finished --- - - // return; - // } - } - - function handleClick(event: MouseEvent, obj: ListItem) { - event.stopPropagation(); // Verhindert, dass der Klick weiter nach oben propagiert - event.preventDefault(); // Stoppt die Standardaktion - console.log('show click', obj.show_button); - oldName = obj.name; - console.log('Button wurde geklickt!', oldName); - } - - function toggleButton(item: ListItem, show: boolean) { - // item.show_button = !item.show_button; - - item.show_button = show; - console.log('show toggle', item, show, item.show_button); - } - - function handleUpdate(ev: CustomEvent) { - console.log('Update erfolgreich', ev.detail.newName); + async function handleUpdate(ev: CustomEvent) { + open = ev.detail.open; + inProgress = ev.detail.inProgress; + err = ev.detail.err; } @@ -258,169 +93,11 @@
- - Umbenennen - {#if inProgress} -

Vorgang läuft...

- {/if} - - {#if err} - Fehler beim Umbenennen - {/if} -
- - -