From e198fce7913fa0edb582726fb9ece30a59427653 Mon Sep 17 00:00:00 2001 From: Theis Gaedigk Date: Mon, 8 Sep 2025 19:21:31 +0200 Subject: [PATCH 1/3] fixed generated code --- backend/services/database.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/services/database.js b/backend/services/database.js index 8b7d55e..4e541ce 100644 --- a/backend/services/database.js +++ b/backend/services/database.js @@ -229,7 +229,7 @@ export const createLoanInDatabase = async ( // Generate unique loan_code (retry a few times) let loanCode = null; for (let i = 0; i < 6; i++) { - const candidate = Math.floor(1000 + Math.random() * 900000); // 4-6 digits + const candidate = Math.floor(100000 + Math.random() * 899999); // 6 digits const [exists] = await conn.query( "SELECT 1 FROM loans WHERE loan_code = ? LIMIT 1", [candidate] From 755ebfd06b1e2b21d32f7fb9b905c4bdc98b9a9b Mon Sep 17 00:00:00 2001 From: Theis Gaedigk Date: Thu, 11 Sep 2025 16:40:31 +0200 Subject: [PATCH 2/3] added inpu elemts and backend API routes for changing the item table --- admin/src/components/ItemTable.tsx | 55 ++++++++++++++++++++++++++++-- admin/src/utils/userActions.ts | 13 +++++++ backend/routes/api.js | 23 +++++++++++++ backend/services/database.js | 9 +++++ 4 files changed, 97 insertions(+), 3 deletions(-) diff --git a/admin/src/components/ItemTable.tsx b/admin/src/components/ItemTable.tsx index acc83fe..d18123e 100644 --- a/admin/src/components/ItemTable.tsx +++ b/admin/src/components/ItemTable.tsx @@ -10,6 +10,7 @@ import { Heading, Icon, Tag, + Input, } from "@chakra-ui/react"; import { Tooltip } from "@/components/ui/tooltip"; import MyAlert from "./myChakra/MyAlert"; @@ -19,10 +20,11 @@ import { CirclePlus, CheckCircle2, XCircle, + Save, } from "lucide-react"; import Cookies from "js-cookie"; import { useState, useEffect } from "react"; -import { deleteItem } from "@/utils/userActions"; +import { deleteItem, handleEditItems } from "@/utils/userActions"; import AddItemForm from "./AddItemForm"; import { formatDateTime } from "@/utils/userFuncs"; @@ -44,6 +46,18 @@ const ItemTable: React.FC = () => { const [reload, setReload] = useState(false); const [addForm, setAddForm] = useState(false); + const handleItemNameChange = (id: number, value: string) => { + setItems((prev) => + prev.map((it) => (it.id === id ? { ...it, item_name: value } : it)) + ); + }; + + const handleCanBorrowRoleChange = (id: number, value: string) => { + setItems((prev) => + prev.map((it) => (it.id === id ? { ...it, can_borrow_role: value } : it)) + ); + }; + const setError = ( status: "error" | "success", message: string, @@ -180,8 +194,22 @@ const ItemTable: React.FC = () => { {items.map((item) => ( {item.id} - {item.item_name} - {item.can_borrow_role} + + + handleItemNameChange(item.id, e.target.value) + } + value={item.item_name} + /> + + + + handleCanBorrowRoleChange(item.id, e.target.value) + } + value={item.can_borrow_role} + /> + {item.inSafe ? ( { {formatDateTime(item.entry_created_at)} +