2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-03-15 08:33:42 +00:00

Allow disable edit for ParameterTable

This commit is contained in:
Oliver Walters
2025-12-01 06:08:07 +00:00
parent 89908560c9
commit 9dd20702e2
3 changed files with 42 additions and 13 deletions

View File

@@ -7,10 +7,12 @@ import type { PanelType } from './Panel';
export default function ParametersPanel({
model_type,
model_id
model_id,
allowEdit = true
}: {
model_type: ModelType;
model_id: number | undefined;
allowEdit?: boolean;
}): PanelType {
return {
name: 'parameters',
@@ -18,7 +20,11 @@ export default function ParametersPanel({
icon: <IconListDetails />,
content:
model_type && model_id ? (
<ParameterTable modelType={model_type} modelId={model_id} />
<ParameterTable
allowEdit={allowEdit}
modelType={model_type}
modelId={model_id}
/>
) : (
<Skeleton />
)

View File

@@ -23,6 +23,7 @@ import {
IconInfoCircle,
IconLayersLinked,
IconListCheck,
IconListDetails,
IconListTree,
IconLock,
IconPackages,
@@ -73,7 +74,6 @@ import AttachmentPanel from '../../components/panels/AttachmentPanel';
import NotesPanel from '../../components/panels/NotesPanel';
import type { PanelType } from '../../components/panels/Panel';
import { PanelGroup } from '../../components/panels/PanelGroup';
import ParametersPanel from '../../components/panels/ParametersPanel';
import { RenderPart } from '../../components/render/Part';
import { RenderUser } from '../../components/render/User';
import OrderPartsWizard from '../../components/wizards/OrderPartsWizard';
@@ -97,6 +97,7 @@ import { useUserState } from '../../states/UserState';
import { BomTable } from '../../tables/bom/BomTable';
import { UsedInTable } from '../../tables/bom/UsedInTable';
import { BuildOrderTable } from '../../tables/build/BuildOrderTable';
import { ParameterTable } from '../../tables/general/ParameterTable';
import PartPurchaseOrdersTable from '../../tables/part/PartPurchaseOrdersTable';
import PartTestResultTable from '../../tables/part/PartTestResultTable';
import PartTestTemplateTable from '../../tables/part/PartTestTemplateTable';
@@ -937,10 +938,30 @@ export default function PartDetail() {
icon: <IconLayersLinked />,
content: <RelatedPartTable partId={part.pk} />
},
ParametersPanel({
model_type: ModelType.part,
model_id: part?.pk
}),
{
name: 'parameters',
label: t`Parameters`,
icon: <IconListDetails />,
content: (
<>
{part.locked && (
<Alert
title={t`Part is Locked`}
color='orange'
icon={<IconLock />}
p='xs'
>
<Text>{t`Part parameters cannot be edited, as the part is locked`}</Text>
</Alert>
)}
<ParameterTable
modelType={ModelType.part}
modelId={part?.pk}
allowEdit={part?.locked != true}
/>
</>
)
},
AttachmentPanel({
model_type: ModelType.part,
model_id: part?.pk

View File

@@ -38,10 +38,12 @@ import { TableHoverCard } from '../TableHoverCard';
*/
export function ParameterTable({
modelType,
modelId
modelId,
allowEdit = true
}: {
modelType: ModelType;
modelId: number;
allowEdit?: boolean;
}) {
const table = useTable('parameters');
const user = useUserState();
@@ -211,7 +213,7 @@ export function ParameterTable({
]}
/>
];
}, [user]);
}, [allowEdit, user]);
const rowActions = useCallback(
(record: any) => {
@@ -249,10 +251,10 @@ export function ParameterTable({
columns={tableColumns}
props={{
enableDownload: true,
enableBulkDelete: true,
enableSelection: true,
rowActions: rowActions,
tableActions: tableActions,
enableBulkDelete: allowEdit != false,
enableSelection: allowEdit != false,
rowActions: allowEdit == false ? undefined : rowActions,
tableActions: allowEdit == false ? undefined : tableActions,
tableFilters: tableFilters,
params: {
model_type: modelType,