mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-29 12:06:44 +00:00
[PUI] Improve search panel (#5538)
* Cleanup links in search bar * Add renderer for stockitem model * Add model renderer for build order
This commit is contained in:
parent
004dcd04d5
commit
56fdbc00c9
@ -2,6 +2,7 @@ import { Trans, t } from '@lingui/macro';
|
|||||||
import {
|
import {
|
||||||
ActionIcon,
|
ActionIcon,
|
||||||
Alert,
|
Alert,
|
||||||
|
Anchor,
|
||||||
Center,
|
Center,
|
||||||
Checkbox,
|
Checkbox,
|
||||||
Divider,
|
Divider,
|
||||||
@ -209,13 +210,13 @@ function QueryResultGroup({
|
|||||||
<Divider />
|
<Divider />
|
||||||
<Stack>
|
<Stack>
|
||||||
{query.results.results.map((result: any) => (
|
{query.results.results.map((result: any) => (
|
||||||
<div onClick={() => onResultClick(query.name, result.pk)}>
|
<Anchor onClick={() => onResultClick(query.name, result.pk)}>
|
||||||
<RenderInstance
|
<RenderInstance
|
||||||
key={`${query.name}-${result.pk}`}
|
key={`${query.name}-${result.pk}`}
|
||||||
instance={result}
|
instance={result}
|
||||||
model={query.name}
|
model={query.name}
|
||||||
/>
|
/>
|
||||||
</div>
|
</Anchor>
|
||||||
))}
|
))}
|
||||||
</Stack>
|
</Stack>
|
||||||
<Space />
|
<Space />
|
||||||
@ -340,7 +341,7 @@ export function SearchDrawer({
|
|||||||
return (
|
return (
|
||||||
<Drawer
|
<Drawer
|
||||||
opened={opened}
|
opened={opened}
|
||||||
size="lg"
|
size="md"
|
||||||
onClose={closeDrawer}
|
onClose={closeDrawer}
|
||||||
position="right"
|
position="right"
|
||||||
withCloseButton={false}
|
withCloseButton={false}
|
||||||
|
20
src/frontend/src/components/render/Build.tsx
Normal file
20
src/frontend/src/components/render/Build.tsx
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import { ReactNode } from 'react';
|
||||||
|
|
||||||
|
import { RenderInlineModel } from './Instance';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inline rendering of a single BuildOrder instance
|
||||||
|
*/
|
||||||
|
export function RenderBuildOrder({
|
||||||
|
buildorder
|
||||||
|
}: {
|
||||||
|
buildorder: any;
|
||||||
|
}): ReactNode {
|
||||||
|
return (
|
||||||
|
<RenderInlineModel
|
||||||
|
primary={buildorder.reference}
|
||||||
|
secondary={buildorder.title}
|
||||||
|
image={buildorder.part_detail?.thumbnail || buildorder.part_detail?.image}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
@ -4,6 +4,7 @@ import { Group, Text } from '@mantine/core';
|
|||||||
import { ReactNode } from 'react';
|
import { ReactNode } from 'react';
|
||||||
|
|
||||||
import { Thumbnail } from '../items/Thumbnail';
|
import { Thumbnail } from '../items/Thumbnail';
|
||||||
|
import { RenderBuildOrder } from './Build';
|
||||||
import {
|
import {
|
||||||
RenderAddress,
|
RenderAddress,
|
||||||
RenderCompany,
|
RenderCompany,
|
||||||
@ -17,7 +18,7 @@ import {
|
|||||||
RenderSalesOrderShipment
|
RenderSalesOrderShipment
|
||||||
} from './Order';
|
} from './Order';
|
||||||
import { RenderPart, RenderPartCategory } from './Part';
|
import { RenderPart, RenderPartCategory } from './Part';
|
||||||
import { RenderStockLocation } from './Stock';
|
import { RenderStockItem, RenderStockLocation } from './Stock';
|
||||||
import { RenderOwner, RenderUser } from './User';
|
import { RenderOwner, RenderUser } from './User';
|
||||||
|
|
||||||
// import { ApiFormFieldType } from "../forms/fields/ApiFormField";
|
// import { ApiFormFieldType } from "../forms/fields/ApiFormField";
|
||||||
@ -35,6 +36,8 @@ export function RenderInstance({
|
|||||||
switch (model) {
|
switch (model) {
|
||||||
case 'address':
|
case 'address':
|
||||||
return <RenderAddress address={instance} />;
|
return <RenderAddress address={instance} />;
|
||||||
|
case 'build':
|
||||||
|
return <RenderBuildOrder buildorder={instance} />;
|
||||||
case 'company':
|
case 'company':
|
||||||
return <RenderCompany company={instance} />;
|
return <RenderCompany company={instance} />;
|
||||||
case 'contact':
|
case 'contact':
|
||||||
@ -55,6 +58,8 @@ export function RenderInstance({
|
|||||||
return <RenderSalesOrderShipment shipment={instance} />;
|
return <RenderSalesOrderShipment shipment={instance} />;
|
||||||
case 'stocklocation':
|
case 'stocklocation':
|
||||||
return <RenderStockLocation location={instance} />;
|
return <RenderStockLocation location={instance} />;
|
||||||
|
case 'stockitem':
|
||||||
|
return <RenderStockItem item={instance} />;
|
||||||
case 'supplierpart':
|
case 'supplierpart':
|
||||||
return <RenderSupplierPart supplierpart={instance} />;
|
return <RenderSupplierPart supplierpart={instance} />;
|
||||||
case 'user':
|
case 'user':
|
||||||
|
@ -17,3 +17,13 @@ export function RenderStockLocation({
|
|||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function RenderStockItem({ item }: { item: any }): ReactNode {
|
||||||
|
return (
|
||||||
|
<RenderInlineModel
|
||||||
|
primary={item.part_detail?.full_name}
|
||||||
|
secondary={item.quantity}
|
||||||
|
image={item.part_detail?.thumbnail || item.part_detail?.image}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user