mirror of
https://github.com/inventree/InvenTree.git
synced 2025-07-31 17:11:34 +00:00
Handle date type fields
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
|||||||
TextInput
|
TextInput
|
||||||
} from '@mantine/core';
|
} from '@mantine/core';
|
||||||
import { Button, Center, Group, Loader, Stack, Text } 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 { UseFormReturnType, useForm } from '@mantine/form';
|
||||||
import { useDebouncedValue } from '@mantine/hooks';
|
import { useDebouncedValue } from '@mantine/hooks';
|
||||||
import { IconAlertCircle } from '@tabler/icons-react';
|
import { IconAlertCircle } from '@tabler/icons-react';
|
||||||
@@ -77,6 +78,17 @@ function constructField({
|
|||||||
def.value = value;
|
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;
|
return def;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,6 +201,15 @@ function ApiFormField({
|
|||||||
onChange={(event) => onChange(event.currentTarget.checked)}
|
onChange={(event) => onChange(event.currentTarget.checked)}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
case 'date':
|
||||||
|
return (
|
||||||
|
<DateInput
|
||||||
|
radius="sm"
|
||||||
|
{...definition}
|
||||||
|
date={undefined}
|
||||||
|
onChange={(value) => onChange(value)}
|
||||||
|
/>
|
||||||
|
);
|
||||||
case 'integer':
|
case 'integer':
|
||||||
case 'decimal':
|
case 'decimal':
|
||||||
case 'float':
|
case 'float':
|
||||||
|
@@ -8,9 +8,10 @@ import { PlaceholderPill } from '../../components/items/Placeholder';
|
|||||||
import { StylishText } from '../../components/items/StylishText';
|
import { StylishText } from '../../components/items/StylishText';
|
||||||
|
|
||||||
export default function Home() {
|
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'
|
name: 'name'
|
||||||
},
|
},
|
||||||
@@ -37,6 +38,18 @@ export default function Home() {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const poFields: ApiFormFieldType[] = [
|
||||||
|
{
|
||||||
|
name: 'reference'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'supplier'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'target_date'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Group>
|
<Group>
|
||||||
@@ -47,21 +60,40 @@ export default function Home() {
|
|||||||
</Group>
|
</Group>
|
||||||
<ApiForm
|
<ApiForm
|
||||||
name="part-edit"
|
name="part-edit"
|
||||||
url="/part/1/"
|
url="/part/"
|
||||||
fields={fields}
|
pk={1}
|
||||||
|
fields={partFields}
|
||||||
method="PUT"
|
method="PUT"
|
||||||
title="Edit Part"
|
title="Edit Part"
|
||||||
opened={formOpened}
|
opened={partFormOpened}
|
||||||
onClose={() => setFormOpened(false)}
|
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}
|
fetchInitialData={true}
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
onClick={() => setFormOpened(true)}
|
onClick={() => setPartFormOpened(true)}
|
||||||
variant="outline"
|
variant="outline"
|
||||||
color="blue"
|
color="blue"
|
||||||
>
|
>
|
||||||
Edit Part Form
|
Edit Part Form
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button
|
||||||
|
variant="outline"
|
||||||
|
color="blue"
|
||||||
|
onClick={() => setPoFormOpened(true)}
|
||||||
|
>
|
||||||
|
Edit Purchase Order Form
|
||||||
|
</Button>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user