From 1f8f6243a6ea1473a9957b7297e2f8a7e6bbe6e5 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 30 Sep 2024 13:56:11 +0000 Subject: [PATCH] Filter StockTrackingTable by user --- .../src/tables/stock/StockTrackingTable.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/frontend/src/tables/stock/StockTrackingTable.tsx b/src/frontend/src/tables/stock/StockTrackingTable.tsx index 58b8d70770cb..07df6e2236df 100644 --- a/src/frontend/src/tables/stock/StockTrackingTable.tsx +++ b/src/frontend/src/tables/stock/StockTrackingTable.tsx @@ -19,10 +19,12 @@ import { import { RenderUser } from '../../components/render/User'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; +import { useUserFilters } from '../../hooks/UseFilter'; import { useTable } from '../../hooks/UseTable'; import { apiUrl } from '../../states/ApiState'; import { TableColumn } from '../Column'; import { DateColumn, DescriptionColumn } from '../ColumnRenderers'; +import { TableFilter } from '../Filter'; import { InvenTreeTable } from '../InvenTreeTable'; type StockTrackingEntry = { @@ -35,6 +37,8 @@ export function StockTrackingTable({ itemId }: Readonly<{ itemId: number }>) { const navigate = useNavigate(); const table = useTable('stock_tracking'); + const userFilters = useUserFilters(); + // Render "details" for a stock tracking record const renderDetails = useCallback( (record: any) => { @@ -170,6 +174,17 @@ export function StockTrackingTable({ itemId }: Readonly<{ itemId: number }>) { [navigate] ); + const filters: TableFilter[] = useMemo(() => { + return [ + { + name: 'user', + label: t`User`, + choices: userFilters.choices, + description: t`Filter by user` + } + ]; + }, [userFilters]); + const tableColumns: TableColumn[] = useMemo(() => { return [ DateColumn({ @@ -214,7 +229,8 @@ export function StockTrackingTable({ itemId }: Readonly<{ itemId: number }>) { item: itemId, user_detail: true }, - enableDownload: true + enableDownload: true, + tableFilters: filters }} /> );