4 Commits

Author SHA1 Message Date
a7eb81151f refactor DB access 2025-07-11 11:39:42 +02:00
8408d63f40 add copy button for sharing vorgang 2025-07-11 11:24:25 +02:00
f2bde76969 prefill homepage with token 2025-07-11 10:35:50 +02:00
83bcaca918 remove console.log 2025-07-11 10:25:42 +02:00
7 changed files with 24 additions and 11 deletions

View File

@@ -1,12 +1,9 @@
import jwt from 'jsonwebtoken';
import jsSHA from 'jssha';
import Database from 'better-sqlite3';
import process from 'process';
import db from '$lib/server/dbService';
import config from '$lib/config';
// import db from '../init/init_db';
let db = new Database('./src/lib/data/tatort.db');
const SECRET = config.jwt.secret;
const EXPIRES_IN = config.jwt.expiresIn;

View File

@@ -0,0 +1,3 @@
import Database from 'better-sqlite3';
export const db = new Database('./src/lib/data/tatort.db');

View File

@@ -2,8 +2,7 @@ import { fail } from '@sveltejs/kit';
import { BUCKET, client, CONFIGFILENAME, TOKENFILENAME } from '$lib/minio';
import { checkIfExactDirectoryExists, getContentOfTextObject } from './s3ClientService';
import Database from 'better-sqlite3';
const db = new Database('./src/lib/data/tatort.db');
import { db } from './dbService';
/**
* Get Vorgang and corresponend list of tatorte

View File

@@ -4,7 +4,7 @@ import { client } from '$lib/minio';
import { fail } from '@sveltejs/kit';
import { v4 as uuidv4 } from 'uuid';
import Database from 'better-sqlite3';
import { db } from '$lib/server/dbService';
const isRequiredFieldValid = (value: unknown) => {
if (value == null) return false;
@@ -25,7 +25,6 @@ export const actions = {
// store case in database
let db = new Database('./src/lib/data/tatort.db');
let token = uuidv4();
let insert_stmt = `INSERT INTO cases (token, name, pw) VALUES (?, ?, ?)`;
const stmt = db.prepare(insert_stmt);

View File

@@ -19,7 +19,6 @@ export const load: PageServerLoad = async ({ params, url, locals }) => {
const isVorgangValid = vorgangExists(caseId);
const isTokenValid = tokenValid(caseId, caseToken);
console.log(`--- is valid: ${isTokenValid}`);
if (!isVorgangValid || !isTokenValid) throw redirect(303, `/anmeldung`);
if (!isVorgangValid || !isTokenValid) throw redirect(303, `/anmeldung?vorgang=${caseId}`);
};

View File

@@ -129,11 +129,24 @@
return;
}
}
async function setClipboard(text) {
const type = "text/plain";
const clipboardItemData = {
[type]: text,
};
const clipboardItem = new ClipboardItem(clipboardItemData);
await navigator.clipboard.write([clipboardItem]);
}
</script>
<div class="-z-10 bg-white">
<div class="flex flex-col items-center justify-center w-full">
<h1 class="text-xl">Vorgang {vorg.name}</h1>
{#if data?.user?.admin}
Zugangspasswort: {vorg.pw}
<Button on:click={() => setClipboard($page.url.toString().split('?')[0])}>Copy Link</Button>
{/if}
</div>
<div class="mx-auto flex justify-center max-w-7xl h-full">
<ul class="divide-y divide-gray-100">

View File

@@ -11,6 +11,9 @@
export let form;
export let open = false;
import { page } from '$app/state';
const vorgang_token = page.url.searchParams.get('vorgang');
</script>
<div class="flex min-h-full flex-col justify-center px-6 py-12 lg:px-8">
@@ -30,7 +33,7 @@
name="case-id"
label="Vorgangskennung"
type="text"
value={form?.caseId}
value={vorgang_token}
/>
<div class="mt-5">
<BaseInputField