diff --git a/src/lib/components/NameItemEditor.svelte b/src/lib/components/NameItemEditor.svelte index 52668ce..6f34818 100644 --- a/src/lib/components/NameItemEditor.svelte +++ b/src/lib/components/NameItemEditor.svelte @@ -15,7 +15,7 @@ export let currentName: string; export let vorgangToken: string | null; export let onSave: (n: string, o: string, t?: string) => unknown = () => {}; - export let onDelete: (n: string) => unknown = () => {}; + export let onDelete: (n: string) => unknown | null = () => {}; let localName = currentName; let isEditing = false; @@ -98,13 +98,15 @@ > - + {#if onDelete} + + {/if} {/if} diff --git a/src/lib/server/vorgangService.ts b/src/lib/server/vorgangService.ts index 4232739..93d6ed4 100644 --- a/src/lib/server/vorgangService.ts +++ b/src/lib/server/vorgangService.ts @@ -236,13 +236,15 @@ export const vorgangPINValidation = function (vorgangToken: string, vorgangPIN: }; /** - * Rename Vorgang + * Change VorgangName or VorgangPIN * @param vorgangToken * @param newName * @returns {int} number of affected lines */ -export const renameVorgangByToken = function (vorgangToken: string, newName: string) { - const renameSQLStmt = 'UPDATE cases set name = ? WHERE token = ?'; +export const updateVorgangAttrByToken = function (vorgangToken: string, + newName: string, + column: string) { + const renameSQLStmt = `UPDATE cases set ${column} = ? WHERE token = ?`; const statement = db.prepare(renameSQLStmt); let info; diff --git a/src/routes/(token-based)/list/[vorgang]/+page.svelte b/src/routes/(token-based)/list/[vorgang]/+page.svelte index a3762a7..451a82b 100644 --- a/src/routes/(token-based)/list/[vorgang]/+page.svelte +++ b/src/routes/(token-based)/list/[vorgang]/+page.svelte @@ -190,6 +190,34 @@ } } + async function savePIN(newVorgangPIN: string, oldVorgangPIN: string) { + open = true; + inProgress = true; + isError = false; + try { + const res = await fetch(API_ROUTES.VORGANG(vorgangToken), { + method: 'PUT', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ vorgangToken, oldVorgangPIN, newVorgangPIN, + changePIN: true}) + }); + + if (!res.ok) { + throw new Error('Fehler beim Speichern'); + } + await invalidateAll(); + crimesList = data.crimesList; + open = false; + } catch (err) { + console.error('⚠️ Netzwerkfehler beim Speichern', err); + isError = true; + } finally { + inProgress = false; + } + } + async function handleDelete(tatort: string) { open = true; inProgress = true; @@ -251,7 +279,13 @@ Mit freundlichen Grüßen,

{vorgangName}

{#if admin} - Zugangs-PIN: {vorgangPIN} + Zugangs-PIN: + diff --git a/src/routes/api/list/[vorgang]/+server.ts b/src/routes/api/list/[vorgang]/+server.ts index ec274fa..f543069 100644 --- a/src/routes/api/list/[vorgang]/+server.ts +++ b/src/routes/api/list/[vorgang]/+server.ts @@ -4,7 +4,7 @@ import { deleteVorgangByToken, getCrimesListByToken, vorgangNameExists, - renameVorgangByToken + updateVorgangAttrByToken } from '$lib/server/vorgangService'; export async function DELETE({ params }) { @@ -59,14 +59,26 @@ export async function GET({ params }) { } } -// rename vorgang +// change Vorgang properties export async function PUT({ request }) { const data = await request.json(); const vorgangToken = data['vorgangToken']; - const newVorgangName = data['newName']; + + const changePIN = data['changePIN']; + + let attrChanged; + let newValue; - const res = renameVorgangByToken(vorgangToken, newVorgangName); + if (changePIN) { + attrChanged = 'pin'; + newValue = data['newVorgangPIN'] + } else { + attrChanged = 'name'; + newValue = data['newName'] + } + + const res = updateVorgangAttrByToken(vorgangToken, newValue, attrChanged); if (!res) { return json({ msg: 'Fehler beim Umbenennen' }, { status: 400 });