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 });