2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-30 16:41:35 +00:00

Add "duplicate" action for PartParameterTEmplate (#10076)

* Add "duplicate" action for PartParameterTEmplate

* Update src/frontend/src/tables/part/PartParameterTemplateTable.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix style

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Oliver
2025-07-25 16:15:12 +10:00
committed by GitHub
parent 0e0abf2d75
commit 6e81fa2e7b

View File

@@ -5,6 +5,7 @@ import { AddItemButton } from '@lib/components/AddItemButton';
import { import {
type RowAction, type RowAction,
RowDeleteAction, RowDeleteAction,
RowDuplicateAction,
RowEditAction RowEditAction
} from '@lib/components/RowActions'; } from '@lib/components/RowActions';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
@@ -95,13 +96,24 @@ export default function PartParameterTemplateTable() {
) )
}); });
const [selectedTemplate, setSelectedTemplate] = useState<number | undefined>( const [selectedTemplate, setSelectedTemplate] = useState<any | undefined>(
undefined undefined
); );
const duplicateTemplate = useCreateApiFormModal({
url: ApiEndpoints.part_parameter_template_list,
title: t`Duplicate Parameter Template`,
table: table,
fields: useMemo(
() => ({ ...partParameterTemplateFields }),
[partParameterTemplateFields]
),
initialData: selectedTemplate
});
const editTemplate = useEditApiFormModal({ const editTemplate = useEditApiFormModal({
url: ApiEndpoints.part_parameter_template_list, url: ApiEndpoints.part_parameter_template_list,
pk: selectedTemplate, pk: selectedTemplate?.pk,
title: t`Edit Parameter Template`, title: t`Edit Parameter Template`,
table: table, table: table,
fields: useMemo( fields: useMemo(
@@ -112,7 +124,7 @@ export default function PartParameterTemplateTable() {
const deleteTemplate = useDeleteApiFormModal({ const deleteTemplate = useDeleteApiFormModal({
url: ApiEndpoints.part_parameter_template_list, url: ApiEndpoints.part_parameter_template_list,
pk: selectedTemplate, pk: selectedTemplate?.pk,
title: t`Delete Parameter Template`, title: t`Delete Parameter Template`,
table: table table: table
}); });
@@ -124,14 +136,21 @@ export default function PartParameterTemplateTable() {
RowEditAction({ RowEditAction({
hidden: !user.hasChangeRole(UserRoles.part), hidden: !user.hasChangeRole(UserRoles.part),
onClick: () => { onClick: () => {
setSelectedTemplate(record.pk); setSelectedTemplate(record);
editTemplate.open(); editTemplate.open();
} }
}), }),
RowDuplicateAction({
hidden: !user.hasAddRole(UserRoles.part),
onClick: () => {
setSelectedTemplate(record);
duplicateTemplate.open();
}
}),
RowDeleteAction({ RowDeleteAction({
hidden: !user.hasDeleteRole(UserRoles.part), hidden: !user.hasDeleteRole(UserRoles.part),
onClick: () => { onClick: () => {
setSelectedTemplate(record.pk); setSelectedTemplate(record);
deleteTemplate.open(); deleteTemplate.open();
} }
}) })
@@ -155,6 +174,7 @@ export default function PartParameterTemplateTable() {
<> <>
{newTemplate.modal} {newTemplate.modal}
{editTemplate.modal} {editTemplate.modal}
{duplicateTemplate.modal}
{deleteTemplate.modal} {deleteTemplate.modal}
<InvenTreeTable <InvenTreeTable
url={apiUrl(ApiEndpoints.part_parameter_template_list)} url={apiUrl(ApiEndpoints.part_parameter_template_list)}