Merge branch 'dev_v1-admin' into debian12_v1-admin

This commit is contained in:
2025-09-16 11:20:37 +02:00
4 changed files with 115 additions and 4 deletions

View File

@@ -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) => (
<Table.Row key={item.id}>
<Table.Cell>{item.id}</Table.Cell>
<Table.Cell>{item.item_name}</Table.Cell>
<Table.Cell>{item.can_borrow_role}</Table.Cell>
<Table.Cell>
<Input
onChange={(e) =>
handleItemNameChange(item.id, e.target.value)
}
value={item.item_name}
/>
</Table.Cell>
<Table.Cell>
<Input
onChange={(e) =>
handleCanBorrowRoleChange(item.id, e.target.value)
}
value={item.can_borrow_role}
/>
</Table.Cell>
<Table.Cell>
{item.inSafe ? (
<Tag.Root
@@ -235,6 +263,32 @@ const ItemTable: React.FC = () => {
</Table.Cell>
<Table.Cell>{formatDateTime(item.entry_created_at)}</Table.Cell>
<Table.Cell>
<Button
onClick={() =>
handleEditItems(
item.id,
item.item_name,
item.can_borrow_role
).then((response) => {
if (response.success) {
setError(
"success",
"Gegenstand erfolgreich bearbeitet!",
"Gegenstand " +
'"' +
item.item_name +
'" mit ID ' +
item.id +
" bearbeitet."
);
}
})
}
colorPalette="teal"
size="sm"
>
<Save />
</Button>
<Button
onClick={() =>
deleteItem(item.id).then((response) => {