From 74f06d999535efaf955d7572f2acccd0137ece86 Mon Sep 17 00:00:00 2001 From: Chi Cong Tran Date: Tue, 6 May 2025 12:37:26 +0200 Subject: [PATCH] first version finished --- .../(angemeldet)/list/[vorgang]/+page.svelte | 106 +++++++++++++++++- .../(angemeldet)/list/[vorgang]/+server.js | 26 +++++ 2 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 src/routes/(angemeldet)/list/[vorgang]/+server.js diff --git a/src/routes/(angemeldet)/list/[vorgang]/+page.svelte b/src/routes/(angemeldet)/list/[vorgang]/+page.svelte index 484ff43..3f039f4 100644 --- a/src/routes/(angemeldet)/list/[vorgang]/+page.svelte +++ b/src/routes/(angemeldet)/list/[vorgang]/+page.svelte @@ -5,9 +5,10 @@ @@ -70,7 +79,100 @@ />
-

{item.name}

+ { + let text_field_id = item.name + "-label" + + let text_field = document.getElementById(text_field_id) + text_field.setAttribute("contenteditable", false) + text_field.textContent = item.name; + + // reshow button + item.show_button = true + return; + }} + on:keydown|stopPropagation={async (event) => { + if (event.key == "Escape") { + let text_field_id = item.name + "-label" + + let text_field = document.getElementById(text_field_id) + text_field.setAttribute("contenteditable", false) + text_field.textContent = item.name; + + // reshow button + item.show_button = true + return; + } + if (event.key == "Enter") { + console.log('--- hitted') + let name_field = event.currentTarget + let new_name = name_field.textContent || name_field.innerText || ''; + + + if (new_name == '') { + alert('Bitte einen gültigen Namen eingeben.'); + event.preventDefault(); + return; + } + + // actual upload + // ------------- + + // to prevent from item being selected + event.preventDefault(); + + // construct PUT URL + const url = $page.url + console.log(url); + + let data_obj = {} + data_obj["new_name"] = new_name + data_obj["old_name"] = event.currentTarget.id.split('-')[0] + + const response = await fetch(url, + {method: 'PUT', body: JSON.stringify( data_obj ) + }) + + + if (!response.ok) { + throw new Error(`Fehlgeschlagen: ${response.status}`) + } else { + setTimeout(() => {window.location.reload()}, 500) + } + + // --- upload finished --- + + return; + } + }} + + >{item.name} + + + {#if item.show_button} + + {/if}

{shortenFileSize(item.size)}

diff --git a/src/routes/(angemeldet)/list/[vorgang]/+server.js b/src/routes/(angemeldet)/list/[vorgang]/+server.js new file mode 100644 index 0000000..e32d374 --- /dev/null +++ b/src/routes/(angemeldet)/list/[vorgang]/+server.js @@ -0,0 +1,26 @@ +import { client } from '$lib/minio'; +import { json } from '@sveltejs/kit'; + + + +export async function PUT({ request }) { + const data = await request.json(); + + console.log(`--- ${request.url.split('/').at(-1)} +++ ${JSON.stringify(data)}`); + + // Vorgang + let vorgang = request.url.split('/').at(-1) + + // copy + let old_name = data["old_name"] + let src_full_path = `/tatort/${vorgang}/${old_name}` + let new_name = `${vorgang}/${data["new_name"]}` + await client.copyObject('tatort', new_name, src_full_path) + + // delete + await client.removeObject('tatort', `${vorgang}/${old_name}`) + + // return success or failure + + return json({ success: 'SUCKZESS' }, { status: 200 }); +};