@@ -3,7 +3,6 @@ import PropTypes from 'prop-types';
33import { connect } from 'react-redux' ;
44import cn from 'bem-cn-lite' ;
55import DataTable from '@gravity-ui/react-data-table' ;
6- import { RadioButton } from '@gravity-ui/uikit' ;
76
87import { Search } from '../../components/Search' ;
98import { UsageFilter } from './UsageFilter' ;
@@ -18,33 +17,29 @@ import {
1817 getStorageInfo ,
1918 setInitialState ,
2019 getFilteredEntities ,
21- VisibleEntities ,
2220 setVisibleEntities ,
2321 setStorageFilter ,
2422 setUsageFilter ,
25- StorageTypes ,
2623 setStorageType ,
2724 setNodesUptimeFilter ,
2825 setDataWasNotLoaded ,
29- VisibleEntitiesTitles ,
3026 getStoragePoolsGroupsCount ,
3127 getStorageNodesCount ,
3228 getUsageFilterOptions ,
33- } from '../../store/reducers/storage' ;
29+ } from '../../store/reducers/storage/storage' ;
30+ import { VISIBLE_ENTITIES , STORAGE_TYPES } from '../../store/reducers/storage/constants' ;
3431import { getNodesList , selectNodesMap } from '../../store/reducers/nodesList' ;
3532import StorageGroups from './StorageGroups/StorageGroups' ;
3633import StorageNodes from './StorageNodes/StorageNodes' ;
3734import { DEFAULT_TABLE_SETTINGS } from '../../utils/constants' ;
3835
36+ import { StorageTypeFilter } from './StorageTypeFilter/StorageTypeFilter' ;
37+ import { StorageVisibleEntityFilter } from './StorageVisibleEntityFilter/StorageVisibleEntityFilter' ;
38+
3939import './Storage.scss' ;
4040
4141const b = cn ( 'global-storage' ) ;
4242
43- const FILTER_OPTIONS = {
44- Missing : 'missing' ,
45- Space : 'space' ,
46- } ;
47-
4843const tableSettings = {
4944 ...DEFAULT_TABLE_SETTINGS ,
5045 defaultOrder : DataTable . DESCENDING ,
@@ -74,25 +69,23 @@ class Storage extends React.Component {
7469 } ;
7570
7671 componentDidMount ( ) {
77- const { tenant, nodeId, setVisibleEntities, storageType, getNodesList} =
78- this . props ;
72+ const { tenant, nodeId, setVisibleEntities, storageType, getNodesList} = this . props ;
7973
8074 this . autofetcher = new AutoFetcher ( ) ;
8175 getNodesList ( ) ;
8276 if ( tenant || nodeId ) {
83- setVisibleEntities ( VisibleEntities . All ) ;
77+ setVisibleEntities ( VISIBLE_ENTITIES . all ) ;
8478 this . getStorageInfo ( {
85- filter : FILTER_OPTIONS . All ,
8679 type : storageType ,
8780 } ) ;
8881 } else {
8982 this . getStorageInfo ( {
90- filter : FILTER_OPTIONS . Missing ,
83+ visibleEntities : VISIBLE_ENTITIES . missing ,
9184 type : storageType ,
9285 } ) ;
9386 this . autofetcher . fetch ( ( ) =>
9487 this . getStorageInfo ( {
95- filter : FILTER_OPTIONS . Missing ,
88+ visibleEntities : VISIBLE_ENTITIES . missing ,
9689 type : storageType ,
9790 } ) ,
9891 ) ;
@@ -105,7 +98,7 @@ class Storage extends React.Component {
10598
10699 const startFetch = ( ) => {
107100 this . getStorageInfo ( {
108- filter : FILTER_OPTIONS [ visibleEntities ] ,
101+ visibleEntities,
109102 type : storageType ,
110103 } ) ;
111104 } ;
@@ -115,7 +108,7 @@ class Storage extends React.Component {
115108 this . autofetcher . start ( ) ;
116109 this . autofetcher . fetch ( ( ) =>
117110 this . getStorageInfo ( {
118- filter : FILTER_OPTIONS [ visibleEntities ] ,
111+ visibleEntities,
119112 type : storageType ,
120113 } ) ,
121114 ) ;
@@ -183,16 +176,16 @@ class Storage extends React.Component {
183176
184177 return (
185178 < div className = { b ( 'table-wrapper' ) } >
186- { storageType === StorageTypes . groups && (
179+ { storageType === STORAGE_TYPES . groups && (
187180 < StorageGroups
188181 visibleEntities = { visibleEntities }
189182 data = { flatListStorageEntities }
190183 tableSettings = { tableSettings }
191184 nodes = { nodes }
192- onShowAll = { ( ) => this . onGroupVisibilityChange ( VisibleEntities . All ) }
185+ onShowAll = { ( ) => this . onGroupVisibilityChange ( VISIBLE_ENTITIES . all ) }
193186 />
194187 ) }
195- { storageType === StorageTypes . nodes && (
188+ { storageType === STORAGE_TYPES . nodes && (
196189 < StorageNodes
197190 visibleEntities = { visibleEntities }
198191 nodesUptimeFilter = { nodesUptimeFilter }
@@ -221,16 +214,16 @@ class Storage extends React.Component {
221214 } ;
222215
223216 onShowAllNodes = ( ) => {
224- this . onGroupVisibilityChange ( VisibleEntities . All ) ;
217+ this . onGroupVisibilityChange ( VISIBLE_ENTITIES . all ) ;
225218 this . onUptimeFilterChange ( NodesUptimeFilterValues . All ) ;
226219 } ;
227220
228221 renderEntitiesCount ( ) {
229222 const { storageType, groupsCount, nodesCount, flatListStorageEntities, loading, wasLoaded} =
230223 this . props ;
231224
232- const entityName = storageType === StorageTypes . groups ? 'Groups' : 'Nodes' ;
233- const count = storageType === StorageTypes . groups ? groupsCount : nodesCount ;
225+ const entityName = storageType === STORAGE_TYPES . groups ? 'Groups' : 'Nodes' ;
226+ const count = storageType === STORAGE_TYPES . groups ? groupsCount : nodesCount ;
234227
235228 return (
236229 < EntitiesCount
@@ -259,7 +252,7 @@ class Storage extends React.Component {
259252 < div className = { b ( 'search' ) } >
260253 < Search
261254 placeholder = {
262- storageType === StorageTypes . groups
255+ storageType === STORAGE_TYPES . groups
263256 ? 'Group ID, Pool name'
264257 : 'Node ID, FQDN'
265258 }
@@ -268,32 +261,17 @@ class Storage extends React.Component {
268261 />
269262 </ div >
270263
271- < RadioButton value = { storageType } onUpdate = { this . onStorageTypeChange } >
272- < RadioButton . Option value = { StorageTypes . groups } >
273- { StorageTypes . groups }
274- </ RadioButton . Option >
275- < RadioButton . Option value = { StorageTypes . nodes } >
276- { StorageTypes . nodes }
277- </ RadioButton . Option >
278- </ RadioButton >
279-
280- < RadioButton value = { visibleEntities } onUpdate = { this . onGroupVisibilityChange } >
281- < RadioButton . Option value = { VisibleEntities . Missing } >
282- { VisibleEntitiesTitles [ VisibleEntities . Missing ] }
283- </ RadioButton . Option >
284- < RadioButton . Option value = { VisibleEntities . Space } >
285- { VisibleEntitiesTitles [ VisibleEntities . Space ] }
286- </ RadioButton . Option >
287- < RadioButton . Option value = { VisibleEntities . All } >
288- { VisibleEntitiesTitles [ VisibleEntities . All ] }
289- </ RadioButton . Option >
290- </ RadioButton >
291-
292- { storageType === StorageTypes . nodes && (
264+ < StorageTypeFilter value = { storageType } onChange = { this . onStorageTypeChange } />
265+ < StorageVisibleEntityFilter
266+ value = { visibleEntities }
267+ onChange = { this . onGroupVisibilityChange }
268+ />
269+
270+ { storageType === STORAGE_TYPES . nodes && (
293271 < UptimeFilter value = { nodesUptimeFilter } onChange = { this . onUptimeFilterChange } />
294272 ) }
295273
296- { storageType === StorageTypes . groups && (
274+ { storageType === STORAGE_TYPES . groups && (
297275 < UsageFilter
298276 value = { usageFilter }
299277 onChange = { setUsageFilter }
0 commit comments