Tagesupdate nicht auf Richtigkeit geprüft
This commit is contained in:
@@ -27,35 +27,6 @@
|
|||||||
Verschaffe Dir einen Überblick über alle gespeicherten Tatorte.
|
Verschaffe Dir einen Überblick über alle gespeicherten Tatorte.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
|
||||||
<!--{#if data.user.admin}
|
|
||||||
<div class="group relative rounded-lg p-6 text-sm leading-6 hover:bg-gray-50 w-1/4">
|
|
||||||
<div
|
|
||||||
class="flex h-11 w-11 items-center justify-center rounded-lg bg-gray-50 group-hover:bg-white"
|
|
||||||
>
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
fill="none"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
stroke-width="1.5"
|
|
||||||
stroke="currentColor"
|
|
||||||
class="w-6 h-6"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<a href="/tatorte" class="mt-6 block font-semibold text-gray-900">
|
|
||||||
Neueer Vorgang
|
|
||||||
<span class="absolute inset-0"></span>
|
|
||||||
</a>
|
|
||||||
<p class="mt-1 text-gray-600">Stelle einen weiteren Tatort für die Anwendung bereit.</p>
|
|
||||||
</div>
|
|
||||||
{/if}-->
|
|
||||||
{#if data.user.admin}
|
|
||||||
<div class="group relative rounded-lg p-6 text-sm leading-6 hover:bg-gray-50 w-1/4">
|
<div class="group relative rounded-lg p-6 text-sm leading-6 hover:bg-gray-50 w-1/4">
|
||||||
<div
|
<div
|
||||||
class="flex h-11 w-11 items-center justify-center rounded-lg bg-gray-50 group-hover:bg-white"
|
class="flex h-11 w-11 items-center justify-center rounded-lg bg-gray-50 group-hover:bg-white"
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onMount, tick } from 'svelte';
|
import { onMount, tick } from 'svelte';
|
||||||
import shortenFileSize from '$lib/helper/shortenFileSize';
|
import shortenFileSize from '$lib/helper/shortenFileSize';
|
||||||
import { page } from '$app/stores';
|
import { getContext } from 'svelte';
|
||||||
|
|
||||||
import timeElapsed from '$lib/helper/timeElapsed';
|
import timeElapsed from '$lib/helper/timeElapsed';
|
||||||
|
|
||||||
import Alert from '$lib/components/ui/Alert.svelte';
|
import Alert from '$lib/components/ui/Alert.svelte';
|
||||||
@@ -15,6 +14,8 @@
|
|||||||
import Edit from '$lib/icons/Edit.svelte';
|
import Edit from '$lib/icons/Edit.svelte';
|
||||||
import Trash from '$lib/icons/Trash.svelte';
|
import Trash from '$lib/icons/Trash.svelte';
|
||||||
|
|
||||||
|
const page = getContext('page');
|
||||||
|
|
||||||
/** @type {import('./$types').PageData} */
|
/** @type {import('./$types').PageData} */
|
||||||
export let data;
|
export let data;
|
||||||
|
|
||||||
@@ -42,7 +43,7 @@
|
|||||||
$: rename_input;
|
$: rename_input;
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
const response = await fetch('/api/list/' + $page.params.vorgang);
|
const response = await fetch('/api/list/' + page.params.vorgang);
|
||||||
const stream = response.body;
|
const stream = response.body;
|
||||||
if (!stream) return;
|
if (!stream) return;
|
||||||
|
|
||||||
@@ -160,6 +161,58 @@
|
|||||||
return;
|
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: <vorgang>/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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="-z-10 bg-white">
|
<div class="-z-10 bg-white">
|
||||||
@@ -207,7 +260,7 @@
|
|||||||
handle_input(ev, i);
|
handle_input(ev, i);
|
||||||
}}
|
}}
|
||||||
bind:value={item.name}
|
bind:value={item.name}
|
||||||
id="label__{item.name}"
|
id="label-i__{item.name}"
|
||||||
/>
|
/>
|
||||||
<!-- disabled={item.show_button} -->
|
<!-- disabled={item.show_button} -->
|
||||||
<!-- https://iconduck.com/icons/192863/edit-rename -->
|
<!-- https://iconduck.com/icons/192863/edit-rename -->
|
||||||
@@ -218,17 +271,7 @@
|
|||||||
id="edit__{item.name}"
|
id="edit__{item.name}"
|
||||||
aria-label="Datei umbenennen"
|
aria-label="Datei umbenennen"
|
||||||
on:click|preventDefault={(ev) => {
|
on:click|preventDefault={(ev) => {
|
||||||
let text_field_id = `label__${item.name}`;
|
clickEdit(item);
|
||||||
|
|
||||||
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;
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Edit />
|
<Edit />
|
||||||
@@ -238,38 +281,7 @@
|
|||||||
style="padding: 2px"
|
style="padding: 2px"
|
||||||
id="del__{item.name}"
|
id="del__{item.name}"
|
||||||
on:click|preventDefault={async (ev) => {
|
on:click|preventDefault={async (ev) => {
|
||||||
let delete_item = window.confirm('Bist du sicher?');
|
clickDelete(item, ev);
|
||||||
|
|
||||||
if (delete_item) {
|
|
||||||
// bucket: tatort, name: <vorgang>/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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}}
|
}}
|
||||||
aria-label="Datei löschen"
|
aria-label="Datei löschen"
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user