diff --git a/packages/react-sdk-components/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx b/packages/react-sdk-components/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx index ce97e79f..6182dbd6 100644 --- a/packages/react-sdk-components/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +++ b/packages/react-sdk-components/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx @@ -22,6 +22,8 @@ interface SimpleTableProps extends PConnProps { ruleClass?: string; authorContext?: string; name?: string; + allowActions?: any; + editMode?: string; } export default function SimpleTable(props: SimpleTableProps) { @@ -44,7 +46,9 @@ export default function SimpleTable(props: SimpleTableProps) { type, ruleClass, authorContext, - name + name, + allowActions, + editMode } = props; let { contextClass } = props; @@ -117,7 +121,18 @@ export default function SimpleTable(props: SimpleTableProps) { return ; } const simpleTableManualProps: any = { ...props, contextClass }; - if (allowTableEdit === false) { + + const checkIfAllowActionsOrRowEditingExist = newflagobject => { + return (newflagobject && Object.keys(newflagobject).length > 0) || getPConnect().getComponentConfig().allowRowEdit; + }; + + if (checkIfAllowActionsOrRowEditingExist(allowActions) && editMode) { + simpleTableManualProps.hideAddRow = allowActions?.allowAdd === false; + simpleTableManualProps.hideDeleteRow = allowActions?.allowDelete === false; + simpleTableManualProps.hideEditRow = allowActions?.allowEdit === false; + simpleTableManualProps.allowRowEdit = getPConnect().getComponentConfig().allowRowEdit; + simpleTableManualProps.allowEdit = getPConnect().getComponentConfig().allowActions?.allowEdit; + } else if (allowTableEdit === false) { simpleTableManualProps.hideAddRow = true; simpleTableManualProps.hideDeleteRow = true; simpleTableManualProps.disableDragDrop = true; diff --git a/packages/react-sdk-components/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx b/packages/react-sdk-components/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx index 6cfc7854..9ae77b3e 100644 --- a/packages/react-sdk-components/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +++ b/packages/react-sdk-components/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx @@ -57,6 +57,7 @@ interface SimpleTableManualProps extends PConnProps { required?: boolean; targetClassLabel?: string; uniqueField?: string; + hideEditRow?: boolean; } const useStyles = makeStyles((/* theme */) => ({ @@ -117,6 +118,7 @@ export default function SimpleTableManual(props: PropsWithChildren { @@ -235,7 +238,7 @@ export default function SimpleTableManual(props: PropsWithChildren { buildElementsForTable(); - if (readOnlyMode || allowEditingInModal) { + if (readOnlyMode || allowEditingInModal || hideEditRow) { generateRowsData(); } }, [referenceList]); @@ -434,7 +437,10 @@ export default function SimpleTableManual(props: PropsWithChildren { // removing label field from config to hide title in the table cell if (!item.config.hide) { - item = { ...item, config: { ...item.config, label: '', displayMode: readOnlyMode || allowEditingInModal ? 'DISPLAY_ONLY' : undefined } }; + item = { + ...item, + config: { ...item.config, label: '', displayMode: readOnlyMode || allowEditingInModal || hideEditRow ? 'DISPLAY_ONLY' : undefined } + }; const referenceListData = getReferenceList(pConn); const isDatapage = referenceListData.startsWith('D_'); const pageReferenceValue = isDatapage @@ -685,7 +691,7 @@ export default function SimpleTableManual(props: PropsWithChildren - {(readOnlyMode || allowEditingInModal) && field.cellRenderer !== 'DeleteIcon' ? ( + {(readOnlyMode || allowEditingInModal || hideEditRow) && field.cellRenderer !== 'DeleteIcon' ? (
{editableMode && !allowEditingInModal && + !hideEditRow && elements.map((row: any, index) => { const theKey = `row-${index}`; return ( @@ -748,7 +755,7 @@ export default function SimpleTableManual(props: PropsWithChildren ); })} - {(readOnlyMode || allowEditingInModal) && + {(readOnlyMode || allowEditingInModal || hideEditRow) && rowData && rowData.length > 0 && stableSort(rowData, getComparator(order, orderBy)).map((row: any, displayIndex) => { @@ -763,7 +770,7 @@ export default function SimpleTableManual(props: PropsWithChildren ); })} - {showDeleteButton && ( + {(showDeleteButton || showEditButton) && (
- editRecord()}>Edit + {showEditButton && editRecord()}>Edit} {isDeleteAllowedForRow(originalIndex) && deleteRecord()}>Delete}
@@ -786,8 +793,9 @@ export default function SimpleTableManual(props: PropsWithChildren {((readOnlyMode && (!rowData || rowData?.length === 0)) || - (editableMode && (!referenceList || referenceList?.length === 0)) || - (allowEditingInModal && (!rowData || rowData?.length === 0))) && ( + (editableMode && !hideEditRow && (!referenceList || referenceList?.length === 0)) || + (allowEditingInModal && (!rowData || rowData?.length === 0)) || + (hideEditRow && (!rowData || rowData?.length === 0))) && (
{getGenericFieldsLocalizedValue('COSMOSFIELDS.lists', 'No records found.')}