diff --git a/config.json b/config.json index 970af4c..8490de6 100644 --- a/config.json +++ b/config.json @@ -8,7 +8,7 @@ }, "jwt": { "secret": "@S2!q@@wXz$dCQ8JoVsHLpzaJ6JCfB", - "expiresIn": 3600 + "expiresIn": 36000 }, "auth": { "admin": { "password": "A-InnoHUB_2025!", "admin": true }, diff --git a/src/error.html b/src/error.html new file mode 100644 index 0000000..73d0c64 --- /dev/null +++ b/src/error.html @@ -0,0 +1,4 @@ +

Du wurdest automatisch ausgeloggt

+

Lösche deine Cookies aus dem Browser und logge dich neu ein

+

Code %sveltekit.status%

+

%sveltekit.error.message%

diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 4f82972..db05fa8 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -1,7 +1,7 @@ import { decryptToken } from '$lib/auth'; import type { Handle } from '@sveltejs/kit'; -export const handle: Handle = ({ event, resolve }) => { +export const handle: Handle = async ({ event, resolve }) => { const jwt = event.cookies.get('session'); try { if (jwt) { @@ -12,5 +12,5 @@ export const handle: Handle = ({ event, resolve }) => { event.cookies.delete('session', {path: '/'}); event.locals.user = null; } - return resolve(event); + return await resolve(event); } diff --git a/src/lib/helper/caseNumberOccupied.js b/src/lib/helper/caseNumberOccupied.js new file mode 100644 index 0000000..e727abf --- /dev/null +++ b/src/lib/helper/caseNumberOccupied.js @@ -0,0 +1,22 @@ +import { client } from '$lib/minio'; + +/** + * Check if caseNumber is used + * @param {string} caseNumber + * @returns {Promise} + */ +export default async function caseNumberOccupied(caseNumber) { + const prefix = `${caseNumber}`; + const promise = new Promise((resolve) => { + let stream = client.listObjectsV2('tatort', prefix, false, ''); + stream.on('data', () => { + stream.destroy(); + resolve(true); + }); + stream.on('end', () => { + resolve(false); + }); + }); + + return promise; +} diff --git a/src/lib/helper/getCode.js b/src/lib/helper/getCode.js new file mode 100644 index 0000000..74d9262 --- /dev/null +++ b/src/lib/helper/getCode.js @@ -0,0 +1,10 @@ +export default async function get_code(case_no) { + let url = `/api/list/${case_no}/code`; + const response = await fetch(url); + + if (response.status == 200) { + return response.text(); + } else { + return -1; + } +} diff --git a/src/lib/icons/Add-Process.svelte b/src/lib/icons/Add-Process.svelte new file mode 100644 index 0000000..4a5cebc --- /dev/null +++ b/src/lib/icons/Add-Process.svelte @@ -0,0 +1,19 @@ + + + diff --git a/src/lib/icons/Cube.svelte b/src/lib/icons/Cube.svelte new file mode 100644 index 0000000..4992960 --- /dev/null +++ b/src/lib/icons/Cube.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/lib/icons/Edit.svelte b/src/lib/icons/Edit.svelte new file mode 100644 index 0000000..10f6ddc --- /dev/null +++ b/src/lib/icons/Edit.svelte @@ -0,0 +1,7 @@ + diff --git a/src/lib/icons/File-rect.svelte b/src/lib/icons/File-rect.svelte new file mode 100644 index 0000000..f31a268 --- /dev/null +++ b/src/lib/icons/File-rect.svelte @@ -0,0 +1,35 @@ + + +{#if outline} + + + +{:else} + +{/if} diff --git a/src/lib/icons/Folder.svelte b/src/lib/icons/Folder.svelte new file mode 100644 index 0000000..6d20ec4 --- /dev/null +++ b/src/lib/icons/Folder.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/lib/icons/List-icon.svelte b/src/lib/icons/List-icon.svelte new file mode 100644 index 0000000..c851e89 --- /dev/null +++ b/src/lib/icons/List-icon.svelte @@ -0,0 +1,19 @@ + + + + + diff --git a/src/lib/icons/Profile.svelte b/src/lib/icons/Profile.svelte new file mode 100644 index 0000000..b3b6762 --- /dev/null +++ b/src/lib/icons/Profile.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/routes/(angemeldet)/+layout.svelte b/src/routes/(angemeldet)/+layout.svelte index 3894405..00beb40 100644 --- a/src/routes/(angemeldet)/+layout.svelte +++ b/src/routes/(angemeldet)/+layout.svelte @@ -1,5 +1,6 @@ @@ -58,20 +59,9 @@ href="/" class="px-4 py-1 -mr-4 flex items-center justify-center gap-x-2.5 text-sm font-semibold leading-6 text-gray-500 hover:bg-gray-200 hover:text-gray-700" > - - - + + + {data.user.id} diff --git a/src/routes/(angemeldet)/+page.svelte b/src/routes/(angemeldet)/+page.svelte index b0c9d8b..89dd1fa 100644 --- a/src/routes/(angemeldet)/+page.svelte +++ b/src/routes/(angemeldet)/+page.svelte @@ -1,9 +1,11 @@ - -
- - - +
Liste @@ -44,47 +33,7 @@
- - - -
-
- Neueer Vorgang - - -

Stelle einen weiteren Tatort für die Anwendung bereit.

- - {/if} - {#if data.user.admin} - + + \ No newline at end of file diff --git a/src/routes/(angemeldet)/list/+page.svelte b/src/routes/(angemeldet)/list/+page.svelte index 2d2f20f..323bc3e 100644 --- a/src/routes/(angemeldet)/list/+page.svelte +++ b/src/routes/(angemeldet)/list/+page.svelte @@ -1,5 +1,7 @@ @@ -169,18 +232,24 @@ id="vorgang" autocomplete={vorgang} class="block flex-1 border-0 bg-transparent py-1.5 pl-1 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6" + on:input={() => case_exists(vorgang)} /> {#if formErrors?.vorgang}

{formErrors.vorgang}

{/if} + {#if case_existing && vorgang.length > 0} + Datei wird zum existierenden Vorgang hinzugefügt. + {:else if vorgang.length > 0} + Neuer Vorgang wird angelegt. + {/if}
+
+ +
+
+ + +
+ +
+ {#if formErrors?.code} +

{formErrors.code}

+ {/if} +
+
diff --git a/src/routes/(angemeldet)/view/[vorgang]/[tatort]/+page.svelte b/src/routes/(angemeldet)/view/[vorgang]/[tatort]/+page.svelte index d95184e..919b7e1 100644 --- a/src/routes/(angemeldet)/view/[vorgang]/[tatort]/+page.svelte +++ b/src/routes/(angemeldet)/view/[vorgang]/[tatort]/+page.svelte @@ -59,7 +59,10 @@
+ + + +
AR-Prompt
+ +
+ +