2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-15 19:45:46 +00:00

Handle date type fields

This commit is contained in:
Oliver Walters
2023-07-27 18:39:09 +10:00
parent 6da240e07f
commit a0a9b0c4e6
2 changed files with 60 additions and 7 deletions

View File

@ -10,6 +10,7 @@ import {
TextInput
} from '@mantine/core';
import { Button, Center, Group, Loader, Stack, Text } from '@mantine/core';
import { DateInput } from '@mantine/dates';
import { UseFormReturnType, useForm } from '@mantine/form';
import { useDebouncedValue } from '@mantine/hooks';
import { IconAlertCircle } from '@tabler/icons-react';
@ -77,6 +78,17 @@ function constructField({
def.value = value;
}
// Change value to a date object if required
switch (def.fieldType) {
case 'date':
if (def.value) {
def.value = new Date(def.value);
}
break;
default:
break;
}
return def;
}
@ -189,6 +201,15 @@ function ApiFormField({
onChange={(event) => onChange(event.currentTarget.checked)}
/>
);
case 'date':
return (
<DateInput
radius="sm"
{...definition}
date={undefined}
onChange={(value) => onChange(value)}
/>
);
case 'integer':
case 'decimal':
case 'float':

View File

@ -8,9 +8,10 @@ import { PlaceholderPill } from '../../components/items/Placeholder';
import { StylishText } from '../../components/items/StylishText';
export default function Home() {
const [formOpened, setFormOpened] = useState(false);
const [partFormOpened, setPartFormOpened] = useState(false);
const [poFormOpened, setPoFormOpened] = useState(false);
const fields: ApiFormFieldType[] = [
const partFields: ApiFormFieldType[] = [
{
name: 'name'
},
@ -37,6 +38,18 @@ export default function Home() {
}
];
const poFields: ApiFormFieldType[] = [
{
name: 'reference'
},
{
name: 'supplier'
},
{
name: 'target_date'
}
];
return (
<>
<Group>
@ -47,21 +60,40 @@ export default function Home() {
</Group>
<ApiForm
name="part-edit"
url="/part/1/"
fields={fields}
url="/part/"
pk={1}
fields={partFields}
method="PUT"
title="Edit Part"
opened={formOpened}
onClose={() => setFormOpened(false)}
opened={partFormOpened}
onClose={() => setPartFormOpened(false)}
fetchInitialData={true}
/>
<ApiForm
name="po-edit"
url="/order/po/"
pk={1}
fields={poFields}
method="PUT"
title="Edit Purchase Order"
opened={poFormOpened}
onClose={() => setPoFormOpened(false)}
fetchInitialData={true}
/>
<Button
onClick={() => setFormOpened(true)}
onClick={() => setPartFormOpened(true)}
variant="outline"
color="blue"
>
Edit Part Form
</Button>
<Button
variant="outline"
color="blue"
onClick={() => setPoFormOpened(true)}
>
Edit Purchase Order Form
</Button>
</>
);
}