diff --git a/client/src/components/grid/Grid.tsx b/client/src/components/grid/Grid.tsx index 6082ea87..c2259e19 100644 --- a/client/src/components/grid/Grid.tsx +++ b/client/src/components/grid/Grid.tsx @@ -24,6 +24,7 @@ import type { AttuGridType } from './Types'; * @param title Render breadcrumbs * @param openCheckBox control checkbox display. default is true * @param disableSelect disable table row select. default false + * @param enableSelectAll control select all checkbox display. default true * @param noData when table is empty, what tip we need to show. * @param showHoverStyle control table row hover style display * @param headEditable if true, user can edit header. @@ -65,6 +66,7 @@ const AttuGrid: FC = props => { title, openCheckBox = true, disableSelect = false, + enableSelectAll = true, noData = commonTrans('grid.noData'), showHoverStyle = true, headEditable = false, @@ -229,6 +231,7 @@ const AttuGrid: FC = props => { rowHeight={rowHeight} rowDecorator={rowDecorator} addSpacerColumn={addSpacerColumn} + enableSelectAll={enableSelectAll} > {rowCount && showPagination ? ( = props => { // set true as default openCheckBox = true, disableSelect, + enableSelectAll = true, noData, // whether change table row background color when mouse hover // set true as default @@ -119,6 +120,7 @@ const EnhancedTable: FC = props => { rowCount={rows.length} openCheckBox={openCheckBox} disableSelect={disableSelect} + enableSelectAll={enableSelectAll} /> ) : ( diff --git a/client/src/components/grid/TableHead.tsx b/client/src/components/grid/TableHead.tsx index b9098b65..7e02e40c 100644 --- a/client/src/components/grid/TableHead.tsx +++ b/client/src/components/grid/TableHead.tsx @@ -54,6 +54,7 @@ const EnhancedTableHead: FC = props => { handleSort, openCheckBox, disableSelect, + enableSelectAll = true, } = props; const createSortHandler = (property: string) => (event: React.MouseEvent) => { @@ -76,7 +77,7 @@ const EnhancedTableHead: FC = props => { indeterminate={numSelected > 0 && numSelected < rowCount} checked={rowCount > 0 && numSelected === rowCount} onChange={onSelectAllClick} - disabled={disableSelect} + disabled={disableSelect || !enableSelectAll} inputProps={{ 'aria-label': 'select all desserts', role: 'checkbox', diff --git a/client/src/components/grid/Types.ts b/client/src/components/grid/Types.ts index 7ea70d7c..b77e36d4 100644 --- a/client/src/components/grid/Types.ts +++ b/client/src/components/grid/Types.ts @@ -65,6 +65,7 @@ export type TableHeadType = { handleSort?: (e: any, p: string, col?: ColDefinitionsType) => void; openCheckBox?: boolean; disableSelect?: boolean; + enableSelectAll?: boolean; }; export type TableEditableHeadType = { @@ -87,6 +88,7 @@ export type TableType = { primaryKey: string; openCheckBox?: boolean; disableSelect?: boolean; + enableSelectAll?: boolean; rowDecorator?: (row: any) => SxProps | React.CSSProperties; noData?: string; showHoverStyle?: boolean; @@ -146,6 +148,7 @@ export type AttuGridType = ToolBarType & { title?: string[]; openCheckBox?: boolean; disableSelect?: boolean; + enableSelectAll?: boolean; noData?: string; showHoverStyle?: boolean; headEditable?: boolean; diff --git a/client/src/pages/databases/collections/properties/Properties.tsx b/client/src/pages/databases/collections/properties/Properties.tsx index b0647a88..0e70b8f4 100644 --- a/client/src/pages/databases/collections/properties/Properties.tsx +++ b/client/src/pages/databases/collections/properties/Properties.tsx @@ -203,6 +203,7 @@ const Properties = (props: PropertiesProps) => { order={order} orderBy={orderBy} handleSort={handleGridSort} + enableSelectAll={false} labelDisplayedRows={getLabelDisplayedRows( commonTrans(data.length > 1 ? 'grid.properties' : 'grid.property') )}