Skip to content

Commit ba86a4e

Browse files
committed
feat(select-all): Implement select all for inventory tables
1 parent 748831f commit ba86a4e

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed

src/SmartComponents/AffectedSystems/AffectedSystems.js

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,39 @@ const AffectedSystems = ({ advisoryName }) => {
9191
setRemediationModalCmp(() => () => <RemediationModal data={data} />);
9292
};
9393

94+
const onSelect = React.useCallback((event) => {
95+
const toSelect = [];
96+
switch (event) {
97+
case 'none': {
98+
Object.keys(selectedRows).forEach(id=>{
99+
toSelect.push(
100+
{
101+
id,
102+
selected: false
103+
}
104+
);
105+
});
106+
break;
107+
}
108+
109+
case 'page': {
110+
rawAffectedSystems.forEach(({ id })=>{
111+
toSelect.push(
112+
{
113+
id,
114+
selected: true
115+
}
116+
);});
117+
break;
118+
}}
119+
120+
dispatch(
121+
{ type: 'SELECT_ENTITY', payload: toSelect }
122+
);}
123+
);
124+
125+
const selectedCount = selectedRows && arrayFromObj(selectedRows).length;
126+
94127
return (
95128
<React.Fragment>
96129
{status === STATUS_REJECTED ? <Error message={error.detail}/> : InventoryCmp && (
@@ -101,6 +134,24 @@ const AffectedSystems = ({ advisoryName }) => {
101134
perPage={perPage}
102135
onRefresh={handleRefresh}
103136
actions={systemsRowActions(showRemediationModal)}
137+
bulkSelect={onSelect && {
138+
count: selectedCount,
139+
items: [{
140+
title: `Select none (0)`,
141+
onClick: () => {
142+
onSelect('none');
143+
}
144+
}, {
145+
title: `Select page (${perPage})`,
146+
onClick: () => {
147+
onSelect('page');
148+
}
149+
}],
150+
onSelect: (value) => {
151+
value ? onSelect('page') : onSelect('none');
152+
},
153+
checked: Boolean(selectedCount)
154+
}}
104155
>
105156
<reactCore.ToolbarGroup>
106157
<reactCore.ToolbarItem>

src/Utilities/DataMappers.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ export const createSystemAdvisoriesRows = (
128128
};
129129

130130
export const createSystemsRows = (rows, selectedRows = {}) => {
131+
console.log(selectedRows);
131132
const data =
132133
rows &&
133134
rows.map(row => {

0 commit comments

Comments
 (0)