diff --git a/src/routes/(angemeldet)/list/+page.svelte b/src/routes/(angemeldet)/list/+page.svelte
index fff40ab..d2fdc0b 100644
--- a/src/routes/(angemeldet)/list/+page.svelte
+++ b/src/routes/(angemeldet)/list/+page.svelte
@@ -6,6 +6,7 @@
diff --git a/src/routes/(angemeldet)/list/[vorgang]/+page.svelte b/src/routes/(angemeldet)/list/[vorgang]/+page.svelte
index 484ff43..aa1e20f 100644
--- a/src/routes/(angemeldet)/list/[vorgang]/+page.svelte
+++ b/src/routes/(angemeldet)/list/[vorgang]/+page.svelte
@@ -5,11 +5,19 @@
@@ -48,7 +158,7 @@
- {#each list as item}
+ {#each list as item, i}
-
-
{item.name}
+
{
+ defocus_element(i);
+ }}
+ on:keydown|stopPropagation={
+ // event needed to identify ID
+ // TO-DO: check if event is needed or if index is sufficient
+ async (ev) => {handle_input(ev, i)}
+ }
+
+ >{item.name}
+
+
+ {#if item.show_button}
+
+ {/if}
+
+
{shortenFileSize(item.size)}
@@ -89,4 +273,17 @@
{/each}
+
+Umbenennen
+ {#if inProgress}
+ Vorgang läuft...
+ {/if}
+ {#if err}
+ Fehler beim Umbenennen
+ {/if}
+
+
+
+
diff --git a/src/routes/(angemeldet)/list/[vorgang]/+server.js b/src/routes/(angemeldet)/list/[vorgang]/+server.js
new file mode 100644
index 0000000..d090407
--- /dev/null
+++ b/src/routes/(angemeldet)/list/[vorgang]/+server.js
@@ -0,0 +1,36 @@
+import { client } from '$lib/minio';
+import { json } from '@sveltejs/kit';
+
+
+// rename operation
+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)
+
+ // prepare copy, incl. check if new name exists already
+ let old_name = data["old_name"]
+ let src_full_path = `/tatort/${vorgang}/${old_name}`
+ let new_name = `${vorgang}/${data["new_name"]}`
+
+ try {
+ let file_stats = await client.statObject('tatort', new_name)
+ return json({ msg: 'Die Datei existiert bereits.' }, { status: 400 })
+ } catch (error) {
+ // continue operation
+ console.log('continue operation')
+ }
+
+ // actual copy operation
+ await client.copyObject('tatort', new_name, src_full_path)
+
+ // delete
+ await client.removeObject('tatort', `${vorgang}/${old_name}`)
+
+ // return success or failure
+
+ return json({ success: 'success' }, { status: 200 });
+};
diff --git a/src/routes/(angemeldet)/list/[vorgang]/[tatort]/+server.js b/src/routes/(angemeldet)/list/[vorgang]/[tatort]/+server.js
new file mode 100644
index 0000000..76dd05d
--- /dev/null
+++ b/src/routes/(angemeldet)/list/[vorgang]/[tatort]/+server.js
@@ -0,0 +1,13 @@
+import { client } from '$lib/minio';
+import { json } from '@sveltejs/kit';
+
+export async function DELETE({ request }) {
+
+ let url_fragments = request.url.split('/')
+ let item = url_fragments.at(-1);
+ let vorgang = url_fragments.at(-2);
+
+ await client.removeObject('tatort', `${vorgang}/${item}`)
+
+ return new Response(null, { status: 204 });
+};
diff --git a/src/routes/api/list/[[vorgang]]/+server.js b/src/routes/api/list/[[vorgang]]/+server.js
index 9115150..c1729fa 100644
--- a/src/routes/api/list/[[vorgang]]/+server.js
+++ b/src/routes/api/list/[[vorgang]]/+server.js
@@ -33,3 +33,31 @@ export async function GET({ params }) {
}
});
}
+
+
+export async function DELETE({ params }) {
+ const vorgang = params.vorgang
+
+ const object_list = await new Promise((resolve, reject) => {
+
+ const res = []
+ const items_str = client.listObjects('tatort', vorgang, true)
+
+ items_str.on('data', (obj) => {
+ res.push(obj.name)
+ })
+
+ items_str.on('error', reject)
+
+ items_str.on('end', async () => {
+ resolve(res)
+ })
+
+ console.log(`+++ ${vorgang}`)
+
+ })
+
+ await client.removeObjects('tatort', object_list)
+
+ return new Response(null, { status: 204 });
+};