From a731afc4feb62f048e2b3285efaa9870d290a12e Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sat, 28 Dec 2024 16:39:19 +1100 Subject: [PATCH] Refactor detail pages which display status --- src/frontend/src/pages/build/BuildDetail.tsx | 11 ++++++++++- .../src/pages/purchasing/PurchaseOrderDetail.tsx | 11 ++++++++++- src/frontend/src/pages/sales/ReturnOrderDetail.tsx | 9 +++++++++ src/frontend/src/pages/sales/SalesOrderDetail.tsx | 12 ++++++++++-- src/frontend/src/pages/stock/StockDetail.tsx | 3 +-- src/frontend/tests/pages/pui_build.spec.ts | 1 + 6 files changed, 41 insertions(+), 6 deletions(-) diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index 63115f676b..a3cd447de0 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -103,10 +103,19 @@ export default function BuildDetail() { }, { type: 'status', - name: 'status_custom_key', + name: 'status', label: t`Status`, model: ModelType.build }, + { + type: 'status', + name: 'status_custom_key', + label: t`Custom Status`, + model: ModelType.build, + icon: 'status', + hidden: + !build.status_custom_key || build.status_custom_key == build.status + }, { type: 'text', name: 'reference', diff --git a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx index da5ee34461..f557b0886d 100644 --- a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx +++ b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx @@ -141,9 +141,18 @@ export default function PurchaseOrderDetail() { }, { type: 'status', - name: 'status_custom_key', + name: 'status', label: t`Status`, model: ModelType.purchaseorder + }, + { + type: 'status', + name: 'status_custom_key', + label: t`Custom Status`, + model: ModelType.purchaseorder, + icon: 'status', + hidden: + !order.status_custom_key || order.status_custom_key == order.status } ]; diff --git a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx index bd68d5d3e9..0320c949d7 100644 --- a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx +++ b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx @@ -115,6 +115,15 @@ export default function ReturnOrderDetail() { name: 'status', label: t`Status`, model: ModelType.returnorder + }, + { + type: 'status', + name: 'status_custom_key', + label: t`Custom Status`, + model: ModelType.returnorder, + icon: 'status', + hidden: + !order.status_custom_key || order.status_custom_key == order.status } ]; diff --git a/src/frontend/src/pages/sales/SalesOrderDetail.tsx b/src/frontend/src/pages/sales/SalesOrderDetail.tsx index d98dbe4427..7484d9be0f 100644 --- a/src/frontend/src/pages/sales/SalesOrderDetail.tsx +++ b/src/frontend/src/pages/sales/SalesOrderDetail.tsx @@ -120,11 +120,19 @@ export default function SalesOrderDetail() { copy: true }, { - icon: 'status', type: 'status', - name: 'status_custom_key', + name: 'status', label: t`Status`, model: ModelType.salesorder + }, + { + type: 'status', + name: 'status_custom_key', + label: t`Custom Status`, + model: ModelType.salesorder, + icon: 'status', + hidden: + !order.status_custom_key || order.status_custom_key == order.status } ]; diff --git a/src/frontend/src/pages/stock/StockDetail.tsx b/src/frontend/src/pages/stock/StockDetail.tsx index abfc815486..2168e856b9 100644 --- a/src/frontend/src/pages/stock/StockDetail.tsx +++ b/src/frontend/src/pages/stock/StockDetail.tsx @@ -137,8 +137,7 @@ export default function StockDetail() { name: 'status', type: 'status', label: t`Status`, - model: ModelType.stockitem, - icon: 'status' + model: ModelType.stockitem }, { name: 'status_custom_key', diff --git a/src/frontend/tests/pages/pui_build.spec.ts b/src/frontend/tests/pages/pui_build.spec.ts index 32e7a61b2e..61475b738f 100644 --- a/src/frontend/tests/pages/pui_build.spec.ts +++ b/src/frontend/tests/pages/pui_build.spec.ts @@ -284,5 +284,6 @@ test('Build Order - Filters', async ({ page }) => { await page.getByText('1 - 1 / 1').waitFor(); await page.getByRole('cell', { name: 'BO0023' }).click(); + await page.getByText('On Hold').first().waitFor(); await page.getByText('Pending Approval').first().waitFor(); });