1- import type { NodesRequiredField } from '../../types/api/nodes' ;
1+ import type { NodesGroupByField , NodesRequiredField , NodesSortValue } from '../../types/api/nodes' ;
22import type { ValueOf } from '../../types/common' ;
33
44import i18n from './i18n' ;
@@ -7,7 +7,6 @@ export const NODES_COLUMNS_WIDTH_LS_KEY = 'nodesTableColumnsWidth';
77
88export const NODES_COLUMNS_IDS = {
99 NodeId : 'NodeId' ,
10- SystemState : 'SystemState' ,
1110 Host : 'Host' ,
1211 Database : 'Database' ,
1312 NodeName : 'NodeName' ,
@@ -22,7 +21,6 @@ export const NODES_COLUMNS_IDS = {
2221 LoadAverage : 'LoadAverage' ,
2322 Load : 'Load' ,
2423 DiskSpaceUsage : 'DiskSpaceUsage' ,
25- SharedCacheUsage : 'SharedCacheUsage' ,
2624 TotalSessions : 'TotalSessions' ,
2725 Missing : 'Missing' ,
2826 Tablets : 'Tablets' ,
@@ -37,9 +35,6 @@ export const NODES_COLUMNS_TITLES = {
3735 get NodeId ( ) {
3836 return i18n ( 'node-id' ) ;
3937 } ,
40- get SystemState ( ) {
41- return i18n ( 'system-state' ) ;
42- } ,
4338 get Host ( ) {
4439 return i18n ( 'host' ) ;
4540 } ,
@@ -82,9 +77,6 @@ export const NODES_COLUMNS_TITLES = {
8277 get DiskSpaceUsage ( ) {
8378 return i18n ( 'disk-usage' ) ;
8479 } ,
85- get SharedCacheUsage ( ) {
86- return i18n ( 'caches' ) ;
87- } ,
8880 get TotalSessions ( ) {
8981 return i18n ( 'sessions' ) ;
9082 } ,
@@ -99,11 +91,62 @@ export const NODES_COLUMNS_TITLES = {
9991 } ,
10092} as const satisfies Record < NodesColumnId , string > ;
10193
94+ const NODES_COLUMNS_GROUP_BY_TITLES = {
95+ get NodeId ( ) {
96+ return i18n ( 'node-id' ) ;
97+ } ,
98+ get Host ( ) {
99+ return i18n ( 'host' ) ;
100+ } ,
101+ get NodeName ( ) {
102+ return i18n ( 'node-name' ) ;
103+ } ,
104+ get Database ( ) {
105+ return i18n ( 'database' ) ;
106+ } ,
107+ get DiskSpaceUsage ( ) {
108+ return i18n ( 'disk-usage' ) ;
109+ } ,
110+ get DC ( ) {
111+ return i18n ( 'dc' ) ;
112+ } ,
113+ get Rack ( ) {
114+ return i18n ( 'rack' ) ;
115+ } ,
116+ get Missing ( ) {
117+ return i18n ( 'missing' ) ;
118+ } ,
119+ get Uptime ( ) {
120+ return i18n ( 'uptime' ) ;
121+ } ,
122+ get Version ( ) {
123+ return i18n ( 'version' ) ;
124+ } ,
125+ get SystemState ( ) {
126+ return i18n ( 'system-state' ) ;
127+ } ,
128+ get ConnectStatus ( ) {
129+ return i18n ( 'connect-status' ) ;
130+ } ,
131+ get NetworkUtilization ( ) {
132+ return i18n ( 'network-utilization' ) ;
133+ } ,
134+ get ClockSkew ( ) {
135+ return i18n ( 'clock-skew' ) ;
136+ } ,
137+ get PingTime ( ) {
138+ return i18n ( 'ping-time' ) ;
139+ } ,
140+ } as const satisfies Record < NodesGroupByField , string > ;
141+
142+ export function getNodesGroupByFieldTitle ( groupByField : NodesGroupByField ) {
143+ return NODES_COLUMNS_GROUP_BY_TITLES [ groupByField ] ;
144+ }
145+
102146// Although columns ids mostly similar to backend fields, there might be some difference
103147// Also for some columns we may use more than one field
104148export const NODES_COLUMNS_TO_DATA_FIELDS : Record < NodesColumnId , NodesRequiredField [ ] > = {
105149 NodeId : [ 'NodeId' ] ,
106- SystemState : [ 'SystemState' ] ,
107150 Host : [ 'Host' , 'Rack' , 'Database' , 'SystemState' ] ,
108151 Database : [ 'Database' ] ,
109152 NodeName : [ 'NodeName' ] ,
@@ -118,9 +161,38 @@ export const NODES_COLUMNS_TO_DATA_FIELDS: Record<NodesColumnId, NodesRequiredFi
118161 LoadAverage : [ 'LoadAverage' ] ,
119162 Load : [ 'LoadAverage' ] ,
120163 DiskSpaceUsage : [ 'DiskSpaceUsage' ] ,
121- SharedCacheUsage : [ 'SystemState' ] ,
122164 TotalSessions : [ 'SystemState' ] ,
123165 Missing : [ 'Missing' ] ,
124166 Tablets : [ 'Tablets' , 'Database' ] ,
125167 PDisks : [ 'PDisks' ] ,
126168} ;
169+
170+ const NODES_COLUMNS_TO_SORT_FIELDS : Record < NodesColumnId , NodesSortValue | undefined > = {
171+ NodeId : 'NodeId' ,
172+ Host : 'Host' ,
173+ Database : 'Database' ,
174+ NodeName : 'NodeName' ,
175+ DC : 'DC' ,
176+ Rack : 'Rack' ,
177+ Version : 'Version' ,
178+ Uptime : 'Uptime' ,
179+ Memory : 'Memory' ,
180+ RAM : 'Memory' ,
181+ CPU : 'CPU' ,
182+ Pools : 'CPU' ,
183+ LoadAverage : 'LoadAverage' ,
184+ Load : 'LoadAverage' ,
185+ DiskSpaceUsage : 'DiskSpaceUsage' ,
186+ TotalSessions : undefined ,
187+ Missing : 'Missing' ,
188+ Tablets : undefined ,
189+ PDisks : undefined ,
190+ } ;
191+
192+ export function getNodesColumnSortField ( columnId ?: string ) {
193+ return NODES_COLUMNS_TO_SORT_FIELDS [ columnId as NodesColumnId ] ;
194+ }
195+
196+ export function isSortableNodesColumn ( columnId : string ) {
197+ return Boolean ( getNodesColumnSortField ( columnId ) ) ;
198+ }
0 commit comments