diff --git a/src/lib/helper/caseNumberOccupied.js b/src/lib/helper/caseNumberOccupied.js index 50062e8..9f8a96c 100644 --- a/src/lib/helper/caseNumberOccupied.js +++ b/src/lib/helper/caseNumberOccupied.js @@ -1,4 +1,4 @@ -import { client } from '$lib/minio'; +limport { client } from '$lib/minio'; /** * Check if caseNumber is used diff --git a/src/routes/(angemeldet)/list/[vorgang]/+page.svelte b/src/routes/(angemeldet)/list/[vorgang]/+page.svelte index 13551c8..20008e9 100644 --- a/src/routes/(angemeldet)/list/[vorgang]/+page.svelte +++ b/src/routes/(angemeldet)/list/[vorgang]/+page.svelte @@ -19,7 +19,9 @@ import ModalFooter from '$lib/components/ui/Modal/ModalFooter.svelte'; /** @type {import('./$types').PageData} */ - /** export let data; */ + export let data; + + console.log(`--- ${data.user.admin}`) interface ListItem { name: string; diff --git a/src/routes/(angemeldet)/upload/+page.server.js b/src/routes/(angemeldet)/upload/+page.server.js index b63aa7e..73bedd5 100644 --- a/src/routes/(angemeldet)/upload/+page.server.js +++ b/src/routes/(angemeldet)/upload/+page.server.js @@ -42,6 +42,7 @@ export const actions = { const data = Object.fromEntries(requestData); const vorgang = data.vorgang; const name = data.name; + const zugangscode = data.zugangscode; let success = true; let err = {}; @@ -57,6 +58,12 @@ export const actions = { success = false; } + if (isRequiredFieldValid(zugangscode)) err.zugangscode = null; + else { + err.zugangscode = 'Das Feld Zugangscode darf nicht leer bleiben.'; + success = false; + } + if (success) return { success }; return fail(400, err); diff --git a/src/routes/(angemeldet)/upload/+page.svelte b/src/routes/(angemeldet)/upload/+page.svelte index 8a7a674..2ffab96 100644 --- a/src/routes/(angemeldet)/upload/+page.svelte +++ b/src/routes/(angemeldet)/upload/+page.svelte @@ -14,7 +14,9 @@ let open = false; let inProgress = false; let vorgang = ''; - let zugangscode = ''; + const code_len = 8; + let zugangscode = Math.random().toString(36).slice(2, 2+code_len); + let case_existing = undefined; let name = ''; /** @type {?string}*/ let etag = null; @@ -30,6 +32,7 @@ let data = new FormData(); data.append('vorgang', vorgang); data.append('name', name); + data.append('zugangscode', zugangscode) const response = await fetch('?/validate', { method: 'POST', body: data }); /** @type {import('@sveltejs/kit').ActionResult} */ const result = deserialize(await response.text()); @@ -144,6 +147,26 @@ } + // return true or false + async function case_exists(case_no) { + console.log('--- fired') + // ping `/(angemeldet)/view` with caseNumber in POST body + let url = '/view' + let data = new FormData(); + data.append('caseNumber', case_no); + const response = await fetch(url, { method: 'POST', body: data }) + + const code = response.status; + + console.log(`+++ ${response.redirected}`) + + if (code == 303) { + return true; + } + + return false; + } +
@@ -178,6 +201,7 @@ 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)} />
@@ -216,7 +240,9 @@
@@ -232,8 +258,8 @@ />
- {#if formErrors?.vorgang} -

{formErrors.vorgang}

+ {#if formErrors?.code} +

{formErrors.code}

{/if} diff --git a/src/routes/(angemeldet)/view/+page.server.js b/src/routes/(angemeldet)/view/+page.server.js index 337f6e4..3adaae8 100644 --- a/src/routes/(angemeldet)/view/+page.server.js +++ b/src/routes/(angemeldet)/view/+page.server.js @@ -5,9 +5,11 @@ import { fail, redirect } from '@sveltejs/kit'; export const actions = { default: async ({ request }) => { const data = await request.formData(); + console.log(`--- ${Object.keys(data)}`) const caseNumber = data.get('caseNumber'); if (!caseNumber) { + console.log('^^^ here') return fail(400, { success: false, caseNumber, @@ -15,13 +17,20 @@ export const actions = { }); } + let res = (await caseNumberOccupied(caseNumber)) + console.log(`gibt es? ${res} + ${caseNumber}`) if (!(await caseNumberOccupied(caseNumber))) { + console.log('^^^ there') return fail(400, { success: false, caseNumber, error: { caseNumber: 'Die Vorgangsnummer existiert in dieser Anwendung nicht.' } }); } - throw redirect(303, `/list/${caseNumber}`); + else { + throw redirect(303, `/list/${caseNumber}`); + console.log(`---blabla ${caseNumber}`) + } + } };