Skip to content

Commit 70959ab

Browse files
fix(Storage): add message on empty nodes with small uptime
1 parent bb5fffa commit 70959ab

File tree

4 files changed

+50
-28
lines changed

4 files changed

+50
-28
lines changed

src/containers/Storage/Storage.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,8 @@ class Storage extends React.Component {
171171
}
172172

173173
renderDataTable() {
174-
const {flatListStorageEntities, visibleEntities, nodes, storageType} = this.props;
174+
const {flatListStorageEntities, visibleEntities, nodesUptimeFilter, nodes, storageType} =
175+
this.props;
175176

176177
return (
177178
<div className={b('table-wrapper')}>
@@ -187,9 +188,10 @@ class Storage extends React.Component {
187188
{storageType === StorageTypes.nodes && (
188189
<StorageNodes
189190
visibleEntities={visibleEntities}
191+
nodesUptimeFilter={nodesUptimeFilter}
190192
data={flatListStorageEntities}
191193
tableSettings={tableSettings}
192-
onShowAll={() => this.onGroupVisibilityChange(VisibleEntities.All)}
194+
onShowAll={this.onShowAllNodes}
193195
/>
194196
)}
195197
</div>

src/containers/Storage/StorageNodes/StorageNodes.tsx

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import DataTable, {Column, Settings, SortOrder} from '@yandex-cloud/react-data-t
55
import {Popover, PopoverBehavior} from '@gravity-ui/uikit';
66

77
import {VisibleEntities} from '../../../store/reducers/storage';
8+
import {NodesUptimeFilterValues} from '../../../utils/nodes';
89

910
import {EmptyFilter} from '../EmptyFilter/EmptyFilter';
1011
import Pdisk from '../Pdisk/Pdisk';
@@ -28,6 +29,7 @@ interface StorageNodesProps {
2829
nodes: any;
2930
tableSettings: Settings;
3031
visibleEntities: keyof typeof VisibleEntities;
32+
nodesUptimeFilter: keyof typeof NodesUptimeFilterValues;
3133
onShowAll?: VoidFunction;
3234
}
3335

@@ -61,7 +63,13 @@ function setSortOrder(visibleEntities: keyof typeof VisibleEntities): SortOrder
6163
}
6264
}
6365

64-
function StorageNodes({data, tableSettings, visibleEntities, onShowAll}: StorageNodesProps) {
66+
function StorageNodes({
67+
data,
68+
tableSettings,
69+
visibleEntities,
70+
onShowAll,
71+
nodesUptimeFilter,
72+
}: StorageNodesProps) {
6573
const allColumns: Column<any>[] = [
6674
{
6775
name: TableColumnsIds.NodeId,
@@ -124,25 +132,33 @@ function StorageNodes({data, tableSettings, visibleEntities, onShowAll}: Storage
124132

125133
if (visibleEntities === VisibleEntities.Space) {
126134
columns = allColumns.filter((col) => col.name !== TableColumnsIds.Missing);
135+
}
136+
137+
if (!data.length) {
138+
let message;
127139

128-
if (!data.length) {
129-
return (
130-
<EmptyFilter
131-
title={i18n('empty.out_of_space')}
132-
showAll={i18n('show_all')}
133-
onShowAll={onShowAll}
134-
/>
135-
);
140+
if (visibleEntities === VisibleEntities.Space) {
141+
message = i18n('empty.out_of_space');
142+
}
143+
144+
if (visibleEntities === VisibleEntities.Missing) {
145+
message = i18n('empty.degraded');
146+
}
147+
148+
if (nodesUptimeFilter === NodesUptimeFilterValues.SmallUptime) {
149+
message = i18n('empty.small_uptime');
150+
}
151+
152+
if (
153+
visibleEntities !== VisibleEntities.All &&
154+
nodesUptimeFilter !== NodesUptimeFilterValues.All
155+
) {
156+
message = i18n('empty.several_filters');
157+
}
158+
159+
if (message) {
160+
return <EmptyFilter title={message} showAll={i18n('show_all')} onShowAll={onShowAll} />;
136161
}
137-
}
138-
if (visibleEntities === VisibleEntities.Missing && !data.length) {
139-
return (
140-
<EmptyFilter
141-
title={i18n('empty.degraded')}
142-
showAll={i18n('show_all')}
143-
onShowAll={onShowAll}
144-
/>
145-
);
146162
}
147163

148164
return data ? (
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
2-
"empty.default": "No such nodes",
3-
"empty.out_of_space": "No nodes with out of space errors",
4-
"empty.degraded": "No degraded nodes",
5-
"show_all": "Show all nodes"
2+
"empty.default": "No such nodes",
3+
"empty.out_of_space": "No nodes with out of space errors",
4+
"empty.degraded": "No degraded nodes",
5+
"empty.small_uptime": "No nodes with uptime < 1h",
6+
"empty.several_filters": "No nodes match current filters combination",
7+
"show_all": "Show all nodes"
68
}
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
2-
"empty.default": "Нет узлов",
3-
"empty.out_of_space": "Нет узлов, в которых кончается место",
4-
"empty.degraded": "Нет деградировавших узлов",
5-
"show_all": "Показать все узлы"
2+
"empty.default": "Нет узлов",
3+
"empty.out_of_space": "Нет узлов, в которых кончается место",
4+
"empty.degraded": "Нет деградировавших узлов",
5+
"empty.small_uptime": "Нет узлов с uptime < 1h",
6+
"empty.several_filters": "Нет узлов, подходящих под текущие фильтры",
7+
"show_all": "Показать все узлы"
68
}

0 commit comments

Comments
 (0)