diff --git a/src/frontend/src/components/render/ModelType.tsx b/src/frontend/src/components/render/ModelType.tsx index 41cc6408d111..da3ef8eb8f06 100644 --- a/src/frontend/src/components/render/ModelType.tsx +++ b/src/frontend/src/components/render/ModelType.tsx @@ -105,8 +105,8 @@ export const ModelInformationDict: ModelDict = { build: { label: () => t`Build`, label_multiple: () => t`Builds`, - url_overview: '/build', - url_detail: '/build/:pk/', + url_overview: '/manufacturing/build-order/', + url_detail: '/manufacturing/build-order/:pk/', cui_detail: '/build/:pk/', api_endpoint: ApiEndpoints.build_order_list, admin_url: '/build/build/' diff --git a/src/frontend/src/defaults/links.tsx b/src/frontend/src/defaults/links.tsx index 51fa80f03e5a..b6f2d7b8cab2 100644 --- a/src/frontend/src/defaults/links.tsx +++ b/src/frontend/src/defaults/links.tsx @@ -28,7 +28,11 @@ export const navTabs = [ { text: Dashboard, name: 'dashboard' }, { text: Parts, name: 'part', role: UserRoles.part }, { text: Stock, name: 'stock', role: UserRoles.stock }, - { text: Build, name: 'build', role: UserRoles.build }, + { + text: Manufacturing, + name: 'manufacturing', + role: UserRoles.build + }, { text: Purchasing, name: 'purchasing', diff --git a/src/frontend/src/defaults/menuItems.tsx b/src/frontend/src/defaults/menuItems.tsx index 5ceaf2458547..d55b95870c11 100644 --- a/src/frontend/src/defaults/menuItems.tsx +++ b/src/frontend/src/defaults/menuItems.tsx @@ -39,9 +39,9 @@ export const menuItems: menuItemsCollection = { link: '/stock' }, build: { - id: 'build', - text: Build, - link: '/build/' + id: 'manufacturing', + text: Manufacturing, + link: '/manufacturing/' }, purchasing: { id: 'purchasing', diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index 00e842b68e0b..5ab47d0749b6 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -522,7 +522,7 @@ export default function BuildDetail() { editEnabled={user.hasChangePermission(ModelType.part)} imageUrl={build.part_detail?.image ?? build.part_detail?.thumbnail} breadcrumbs={[ - { name: t`Build Orders`, url: '/build' }, + { name: t`Manufacturing`, url: '/manufacturing' }, { name: build.reference, url: `/build/${build.pk}` } ]} actions={buildActions} diff --git a/src/frontend/src/pages/build/BuildIndex.tsx b/src/frontend/src/pages/build/BuildIndex.tsx index aae18ff1153d..b5d0197e509f 100644 --- a/src/frontend/src/pages/build/BuildIndex.tsx +++ b/src/frontend/src/pages/build/BuildIndex.tsx @@ -1,8 +1,11 @@ import { t } from '@lingui/macro'; import { Stack } from '@mantine/core'; +import { IconTools } from '@tabler/icons-react'; +import { useMemo } from 'react'; import PermissionDenied from '../../components/errors/PermissionDenied'; import { PageDetail } from '../../components/nav/PageDetail'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { UserRoles } from '../../enums/Roles'; import { useUserState } from '../../states/UserState'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; @@ -17,10 +20,26 @@ export default function BuildIndex() { return ; } + const panels = useMemo(() => { + return [ + { + name: 'buildorders', + label: t`Build Orders`, + content: , + icon: + } + ]; + }, []); + return ( - - + + ); } diff --git a/src/frontend/src/router.tsx b/src/frontend/src/router.tsx index d606a6ade203..303789cea637 100644 --- a/src/frontend/src/router.tsx +++ b/src/frontend/src/router.tsx @@ -51,6 +51,7 @@ export const StockDetail = Loadable( export const BuildIndex = Loadable( lazy(() => import('./pages/build/BuildIndex')) ); + export const BuildDetail = Loadable( lazy(() => import('./pages/build/BuildDetail')) ); @@ -139,9 +140,10 @@ export const routes = ( } /> } /> - - } /> - } /> + + } /> + } /> + } /> } /> diff --git a/src/frontend/tests/pages/pui_build.spec.ts b/src/frontend/tests/pages/pui_build.spec.ts index 0239e50a70e2..faaea12fbcad 100644 --- a/src/frontend/tests/pages/pui_build.spec.ts +++ b/src/frontend/tests/pages/pui_build.spec.ts @@ -8,7 +8,7 @@ test('Pages - Build Order', async ({ page }) => { await page.goto(`${baseUrl}/part/`); // Navigate to the correct build order - await page.getByRole('tab', { name: 'Build', exact: true }).click(); + await page.getByRole('tab', { name: 'Manufacturing', exact: true }).click(); // We have now loaded the "Build Order" table. Check for some expected texts await page.getByText('On Hold').first().waitFor(); @@ -30,7 +30,7 @@ test('Pages - Build Order', async ({ page }) => { await page.getByRole('button', { name: 'Cancel' }).click(); // Back to the build list - await page.getByLabel('breadcrumb-0-build-orders').click(); + await page.getByLabel('breadcrumb-0-manufacturing').click(); // Load a different build order await page.getByRole('cell', { name: 'BO0011' }).click(); @@ -88,7 +88,7 @@ test('Pages - Build Order - Build Outputs', async ({ page }) => { await page.goto(`${baseUrl}/part/`); // Navigate to the correct build order - await page.getByRole('tab', { name: 'Build', exact: true }).click(); + await page.getByRole('tab', { name: 'Manufacturing', exact: true }).click(); // We have now loaded the "Build Order" table. Check for some expected texts await page.getByText('On Hold').first().waitFor(); diff --git a/src/frontend/tests/pui_tables.spec.ts b/src/frontend/tests/pui_tables.spec.ts index 3d62974e5d9d..7c5bbaa41aa9 100644 --- a/src/frontend/tests/pui_tables.spec.ts +++ b/src/frontend/tests/pui_tables.spec.ts @@ -24,7 +24,7 @@ test('Tables - Filters', async ({ page }) => { await doQuickLogin(page); // Head to the "build order list" page - await page.goto(`${baseUrl}/build/`); + await page.goto(`${baseUrl}/manufacturing/index/`); await setFilter(page, 'Status', 'Complete'); await setFilter(page, 'Responsible', 'allaccess');