From 2e14bf7361e7bdc4c95a758771ba5aef12cd98b1 Mon Sep 17 00:00:00 2001 From: mina Date: Mon, 26 May 2025 17:22:51 +0200 Subject: [PATCH] =?UTF-8?q?Tagesupdate=20=20nicht=20auf=20Richtigkeit=20ge?= =?UTF-8?q?pr=C3=BCft?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/(angemeldet)/+page.svelte | 29 ----- .../(angemeldet)/list/[vorgang]/+page.svelte | 106 ++++++++++-------- 2 files changed, 59 insertions(+), 76 deletions(-) diff --git a/src/routes/(angemeldet)/+page.svelte b/src/routes/(angemeldet)/+page.svelte index b9a4519..f0dc309 100644 --- a/src/routes/(angemeldet)/+page.svelte +++ b/src/routes/(angemeldet)/+page.svelte @@ -27,35 +27,6 @@ Verschaffe Dir einen Überblick über alle gespeicherten Tatorte.

- {/if} - - {#if data.user.admin}
import { onMount, tick } from 'svelte'; import shortenFileSize from '$lib/helper/shortenFileSize'; - import { page } from '$app/stores'; - + import { getContext } from 'svelte'; import timeElapsed from '$lib/helper/timeElapsed'; import Alert from '$lib/components/ui/Alert.svelte'; @@ -15,6 +14,8 @@ import Edit from '$lib/icons/Edit.svelte'; import Trash from '$lib/icons/Trash.svelte'; + const page = getContext('page'); + /** @type {import('./$types').PageData} */ export let data; @@ -42,7 +43,7 @@ $: rename_input; onMount(async () => { - const response = await fetch('/api/list/' + $page.params.vorgang); + const response = await fetch('/api/list/' + page.params.vorgang); const stream = response.body; if (!stream) return; @@ -160,6 +161,58 @@ return; } } + + /** + * @param {any} item + */ + function clickEdit(item: any) { + let text_field_id = `label__${item.name}`; + + let text_field = document.getElementById(text_field_id); + if (text_field) { + text_field.setAttribute('contenteditable', 'true'); + text_field.focus(); + text_field.textContent = ''; + } + + // hide button + item.show_button = false; + } + + async function clickDelete(item: any, ev: Event) { + let delete_item = window.confirm('Bist du sicher?'); + + if (delete_item) { + // bucket: tatort, name: /item-name + let vorgang = $page.params.vorgang; + let filename = ''; + if (ev && ev.currentTarget && (ev.currentTarget as HTMLElement).id) { + filename = (ev.currentTarget as HTMLElement).id.split('del__')[1]; + } + + // delete request + // -------------- + + let url = new URL($page.url); + url.pathname += `/${filename}`; + + console.log(`--- ${vorgang} + ${filename} + ${url}`); + try { + const response = await fetch(url, { method: 'DELETE' }); + if (response.status == 204) { + setTimeout(() => { + window.location.reload(); + }, 500); + } + } catch (error) { + if (error instanceof Error) { + console.log(error.message); + } else { + console.log(error); + } + } + } + }
@@ -207,7 +260,7 @@ handle_input(ev, i); }} bind:value={item.name} - id="label__{item.name}" + id="label-i__{item.name}" /> @@ -218,17 +271,7 @@ id="edit__{item.name}" aria-label="Datei umbenennen" on:click|preventDefault={(ev) => { - let text_field_id = `label__${item.name}`; - - let text_field = document.getElementById(text_field_id); - if (text_field) { - text_field.setAttribute('contenteditable', 'true'); - text_field.focus(); - text_field.textContent = ''; - } - - // hide button - item.show_button = false; + clickEdit(item); }} > @@ -238,38 +281,7 @@ style="padding: 2px" id="del__{item.name}" on:click|preventDefault={async (ev) => { - let delete_item = window.confirm('Bist du sicher?'); - - if (delete_item) { - // bucket: tatort, name: /item-name - let vorgang = $page.params.vorgang; - let filename = ''; - if (ev && ev.currentTarget && (ev.currentTarget as HTMLElement).id) { - filename = (ev.currentTarget as HTMLElement).id.split('del__')[1]; - } - - // delete request - // -------------- - - let url = new URL($page.url); - url.pathname += `/${filename}`; - - console.log(`--- ${vorgang} + ${filename} + ${url}`); - try { - const response = await fetch(url, { method: 'DELETE' }); - if (response.status == 204) { - setTimeout(() => { - window.location.reload(); - }, 500); - } - } catch (error) { - if (error instanceof Error) { - console.log(error.message); - } else { - console.log(error); - } - } - } + clickDelete(item, ev); }} aria-label="Datei löschen" >