diff --git a/src/components/DataBrowserHeaderBar/DataBrowserHeaderBar.react.js b/src/components/DataBrowserHeaderBar/DataBrowserHeaderBar.react.js
index 7570f79734..f914421b15 100644
--- a/src/components/DataBrowserHeaderBar/DataBrowserHeaderBar.react.js
+++ b/src/components/DataBrowserHeaderBar/DataBrowserHeaderBar.react.js
@@ -45,6 +45,7 @@ export default class DataBrowserHeaderBar extends React.Component {
readonly,
preventSchemaEdits,
selected,
+ indeterminate,
isDataLoaded,
setSelectedObjectId,
setCurrent,
@@ -61,7 +62,16 @@ export default class DataBrowserHeaderBar extends React.Component {
style={{ position: 'sticky', left: 0, zIndex: 11 }}
>
{readonly ? null : (
- selectAll(e.target.checked)} />
+ {
+ if (input) {
+ input.indeterminate = indeterminate;
+ }
+ }}
+ onChange={e => selectAll(e.target.checked)}
+ />
)}
,
];
diff --git a/src/dashboard/Data/Browser/BrowserTable.react.js b/src/dashboard/Data/Browser/BrowserTable.react.js
index 378d162ff9..bcbed78500 100644
--- a/src/dashboard/Data/Browser/BrowserTable.react.js
+++ b/src/dashboard/Data/Browser/BrowserTable.react.js
@@ -581,7 +581,18 @@ export default class BrowserTable extends React.Component {
selected={
!!this.props.selection &&
!!this.props.data &&
- Object.values(this.props.selection).filter(checked => checked).length ===
+ this.props.data.length > 0 &&
+ (!!this.props.selection['*'] ||
+ Object.values(this.props.selection).filter(checked => checked).length ===
+ this.props.data.length)
+ }
+ indeterminate={
+ !!this.props.selection &&
+ !!this.props.data &&
+ this.props.data.length > 0 &&
+ !this.props.selection['*'] &&
+ Object.values(this.props.selection).filter(checked => checked).length > 0 &&
+ Object.values(this.props.selection).filter(checked => checked).length !==
this.props.data.length
}
selectAll={checked =>