ydb-embedded-ui 15.8.0 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/EvictVDiskButton/i18n/en.json +2 -2
- package/dist/components/PDiskInfo/PDiskInfo.js +4 -1
- package/dist/components/PDiskInfo/PDiskInfo.js.map +1 -1
- package/dist/components/PDiskInfo/i18n/en.json +1 -0
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/StorageGroupInfo/StorageGroupInfo.js +6 -2
- package/dist/components/StorageGroupInfo/StorageGroupInfo.js.map +1 -1
- package/dist/components/StorageGroupInfo/i18n/en.json +1 -0
- package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
- package/dist/components/VDiskInfo/VDiskInfo.js +2 -2
- package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
- package/dist/containers/App/NavigationWrapper.js +4 -2
- package/dist/containers/App/NavigationWrapper.js.map +1 -1
- package/dist/containers/Clusters/Clusters.js +17 -5
- package/dist/containers/Clusters/Clusters.js.map +1 -1
- package/dist/containers/Clusters/i18n/en.json +1 -0
- package/dist/containers/Clusters/i18n/index.d.ts +1 -1
- package/dist/containers/Header/hooks/useClusterData.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js +16 -5
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.d.ts +4 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.js +8 -5
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.d.ts +4 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.js +23 -15
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.scss +6 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.d.ts +9 -4
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.js +15 -10
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/en.json +2 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Healthcheck/Healthcheck.d.ts +3 -8
- package/dist/containers/Tenant/Healthcheck/Healthcheck.js +10 -10
- package/dist/containers/Tenant/Healthcheck/Healthcheck.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssues.js +1 -14
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssues.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckView.d.ts +2 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckView.js +11 -27
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckView.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/shared.d.ts +9 -4
- package/dist/containers/Tenant/Healthcheck/shared.js +15 -26
- package/dist/containers/Tenant/Healthcheck/shared.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/utils.d.ts +3 -0
- package/dist/containers/Tenant/Healthcheck/utils.js +16 -0
- package/dist/containers/Tenant/Healthcheck/utils.js.map +1 -0
- package/dist/containers/UserSettings/Setting.d.ts +7 -1
- package/dist/containers/UserSettings/Setting.js +4 -3
- package/dist/containers/UserSettings/Setting.js.map +1 -1
- package/dist/containers/UserSettings/UserSettings.js +3 -1
- package/dist/containers/UserSettings/UserSettings.js.map +1 -1
- package/dist/containers/UserSettings/settings.d.ts +1 -0
- package/dist/containers/UserSettings/settings.js +17 -6
- package/dist/containers/UserSettings/settings.js.map +1 -1
- package/dist/store/configureStore.d.ts +1 -0
- package/dist/store/configureStore.js +3 -1
- package/dist/store/configureStore.js.map +1 -1
- package/dist/store/reducers/capabilities/hooks.d.ts +2 -1
- package/dist/store/reducers/capabilities/hooks.js +8 -1
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/cluster/cluster.d.ts +1 -0
- package/dist/store/reducers/clusters/clusters.js +1 -0
- package/dist/store/reducers/clusters/clusters.js.map +1 -1
- package/dist/store/reducers/clusters/selectors.d.ts +1 -0
- package/dist/store/reducers/clusters/selectors.js +7 -1
- package/dist/store/reducers/clusters/selectors.js.map +1 -1
- package/dist/store/reducers/clusters/types.d.ts +1 -0
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +8 -8
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.js.map +1 -1
- package/dist/store/reducers/healthcheckInfo/types.d.ts +1 -1
- package/dist/store/reducers/healthcheckInfo/utils.js +18 -12
- package/dist/store/reducers/healthcheckInfo/utils.js.map +1 -1
- package/dist/store/reducers/tenantOverview/storage/tenantOverviewStorage.d.ts +2 -0
- package/dist/store/reducers/tenantOverview/storage/tenantOverviewStorage.js +28 -5
- package/dist/store/reducers/tenantOverview/storage/tenantOverviewStorage.js.map +1 -1
- package/dist/types/api/meta.d.ts +1 -0
- package/dist/types/api/storage.d.ts +4 -0
- package/dist/types/api/storage.js +4 -1
- package/dist/types/api/storage.js.map +1 -1
- package/dist/uiFactory/types.d.ts +8 -4
- package/dist/uiFactory/uiFactory.d.ts +6 -2
- package/dist/uiFactory/uiFactory.js +17 -3
- package/dist/uiFactory/uiFactory.js.map +1 -1
- package/package.json +2 -2
|
@@ -5,6 +5,7 @@ export interface SummaryMetricProps {
|
|
|
5
5
|
note?: string;
|
|
6
6
|
notePlacement?: 'label' | 'value';
|
|
7
7
|
noteTitle?: string;
|
|
8
|
+
noData?: boolean;
|
|
8
9
|
value: string;
|
|
9
10
|
emphasize?: boolean;
|
|
10
11
|
hideDivider?: boolean;
|
|
@@ -25,6 +26,7 @@ interface SummaryCardProps {
|
|
|
25
26
|
description: string;
|
|
26
27
|
descriptionHelpText?: string;
|
|
27
28
|
position?: 'first' | 'last';
|
|
29
|
+
qa?: string;
|
|
28
30
|
}
|
|
29
31
|
type SummaryCardPropsWithRow = SummaryCardProps & SummaryCardRowBaseProps;
|
|
30
32
|
export interface GroupedSummaryCardRow extends SummaryCardRowBaseProps {
|
|
@@ -34,6 +36,6 @@ export interface GroupedSummaryCardRow extends SummaryCardRowBaseProps {
|
|
|
34
36
|
interface GroupedSummaryCardProps extends SummaryCardProps {
|
|
35
37
|
rows: GroupedSummaryCardRow[];
|
|
36
38
|
}
|
|
37
|
-
export declare function SummaryCard({ title, description, descriptionHelpText, position, ...rowProps }: SummaryCardPropsWithRow): import("react/jsx-runtime").JSX.Element;
|
|
38
|
-
export declare function GroupedSummaryCard({ title, description, descriptionHelpText, position, rows, }: GroupedSummaryCardProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export declare function SummaryCard({ title, description, descriptionHelpText, position, qa, ...rowProps }: SummaryCardPropsWithRow): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export declare function GroupedSummaryCard({ title, description, descriptionHelpText, position, qa, rows, }: GroupedSummaryCardProps): import("react/jsx-runtime").JSX.Element;
|
|
39
41
|
export {};
|
package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { CloudSlash } from '@gravity-ui/icons';
|
|
4
|
+
import { Flex, HelpMark, Icon, Label, Progress, Text } from '@gravity-ui/uikit';
|
|
4
5
|
import { cn } from '../../../../../utils/cn';
|
|
5
6
|
import { formatNumber } from '../../../../../utils/dataFormatters/dataFormatters';
|
|
6
7
|
import { LegendItems, SegmentedProgressBar } from './TenantStorageSegments';
|
|
@@ -15,16 +16,20 @@ function SummaryMetricNote({ note, noteTitle }) {
|
|
|
15
16
|
const content = noteTitle ? (_jsxs("div", { className: b('metric-note'), children: [_jsx(Text, { variant: "subheader-2", children: noteTitle }), note ? _jsx(Text, { children: note }) : null] })) : (note);
|
|
16
17
|
return _jsx(HelpMark, { iconSize: "s", children: content });
|
|
17
18
|
}
|
|
18
|
-
function
|
|
19
|
+
function NoDataLabel({ label }) {
|
|
20
|
+
const content = label ? `${label}: ${i18n('value_no-data')}` : i18n('value_no-data');
|
|
21
|
+
return (_jsx(Label, { theme: "unknown", size: "xs", icon: _jsx(Icon, { data: CloudSlash }), children: content }));
|
|
22
|
+
}
|
|
23
|
+
function SummaryMetric({ label, note, notePlacement = 'label', noteTitle, noData, value, emphasize, hideDivider, }) {
|
|
19
24
|
const noteElement = _jsx(SummaryMetricNote, { note: note, noteTitle: noteTitle });
|
|
20
|
-
return (_jsxs("div", { className: b('metric', { emphasize, 'hide-divider': hideDivider }), children: [_jsxs(Flex, { alignItems: "center", gap: "1", children: [_jsx(Text, { variant: "subheader-2", className: b('metric-value'), children: value }), notePlacement === 'value' ? noteElement : null] }), _jsxs(Flex, { alignItems: "center", gap: "1", className: b('metric-label'), children: [_jsx(Text, { color: "secondary", children: label }), notePlacement === 'label' ? noteElement : null] })] }));
|
|
25
|
+
return (_jsxs("div", { className: b('metric', { emphasize, 'hide-divider': hideDivider, 'no-data': noData }), children: [_jsxs(Flex, { alignItems: "center", gap: "1", children: [noData ? (_jsx(NoDataLabel, {})) : (_jsx(Text, { variant: "subheader-2", className: b('metric-value'), children: value })), notePlacement === 'value' ? noteElement : null] }), _jsxs(Flex, { alignItems: "center", gap: "1", className: b('metric-label'), children: [_jsx(Text, { color: "secondary", children: label }), notePlacement === 'label' ? noteElement : null] })] }));
|
|
21
26
|
}
|
|
22
|
-
function GroupedSummaryMetric({ label, note, notePlacement = 'label', noteTitle, value, emphasize, hideDivider, }) {
|
|
27
|
+
function GroupedSummaryMetric({ label, note, notePlacement = 'label', noteTitle, noData, value, emphasize, hideDivider, }) {
|
|
23
28
|
const noteElement = _jsx(SummaryMetricNote, { note: note, noteTitle: noteTitle });
|
|
24
29
|
if (emphasize) {
|
|
25
|
-
return (_jsxs("div", { className: b('metric', { emphasize, grouped: true, 'hide-divider': hideDivider }), children: [_jsx(Label, { theme: "normal", size: "xs", value: value, children: label }), noteElement] }));
|
|
30
|
+
return (_jsxs("div", { className: b('metric', { emphasize, grouped: true, 'hide-divider': hideDivider }), children: [noData ? (_jsx(NoDataLabel, { label: label })) : (_jsx(Label, { theme: "normal", size: "xs", value: value, children: label })), noteElement] }));
|
|
26
31
|
}
|
|
27
|
-
return (_jsxs("div", { className: b('metric', { grouped: true, 'hide-divider': hideDivider }), children: [_jsxs(Flex, { alignItems: "center", gap: "1", className: b('metric-label'), children: [_jsx(Text, { color: "secondary", children: label }), notePlacement === 'label' ? noteElement : null] }), _jsxs(Flex, { alignItems: "center", gap: "1", children: [_jsx(Text, { variant: "subheader-1", className: b('metric-value'), children: value }), notePlacement === 'value' ? noteElement : null] })] }));
|
|
32
|
+
return (_jsxs("div", { className: b('metric', { grouped: true, 'hide-divider': hideDivider }), children: [_jsxs(Flex, { alignItems: "center", gap: "1", className: b('metric-label'), children: [_jsx(Text, { color: "secondary", children: label }), notePlacement === 'label' ? noteElement : null] }), _jsxs(Flex, { alignItems: "center", gap: "1", children: [noData ? (_jsx(NoDataLabel, {})) : (_jsx(Text, { variant: "subheader-1", className: b('metric-value'), children: value })), notePlacement === 'value' ? noteElement : null] })] }));
|
|
28
33
|
}
|
|
29
34
|
function SummaryCardCopy({ description, descriptionHelpText, title, }) {
|
|
30
35
|
return (_jsxs("div", { className: b('copy'), children: [_jsx(Text, { variant: "subheader-3", children: title }), _jsxs(Flex, { alignItems: "center", gap: "1", children: [_jsx(Text, { color: "secondary", children: description }), descriptionHelpText ? (_jsx(HelpMark, { iconSize: "s", children: descriptionHelpText })) : null] })] }));
|
|
@@ -34,13 +39,16 @@ function SummaryCardRow({ displayNoLimit, formatLegendValue, formatSystemDetailV
|
|
|
34
39
|
const total = (_a = summary.quota) !== null && _a !== void 0 ? _a : summary.total;
|
|
35
40
|
const activeSegments = (segments !== null && segments !== void 0 ? segments : []).filter((s) => s.value > 0);
|
|
36
41
|
const hasSegments = activeSegments.length > 0;
|
|
37
|
-
const [
|
|
38
|
-
const
|
|
39
|
-
|
|
42
|
+
const [activeSegment, setActiveSegment] = React.useState();
|
|
43
|
+
const activeSegmentKey = activeSegment === null || activeSegment === void 0 ? void 0 : activeSegment.key;
|
|
44
|
+
const handleSegmentOpenChange = React.useCallback((segmentKey, open, source) => {
|
|
45
|
+
setActiveSegment((currentSegment) => {
|
|
40
46
|
if (open) {
|
|
41
|
-
return segmentKey;
|
|
47
|
+
return { key: segmentKey, source };
|
|
42
48
|
}
|
|
43
|
-
return
|
|
49
|
+
return (currentSegment === null || currentSegment === void 0 ? void 0 : currentSegment.key) === segmentKey && currentSegment.source === source
|
|
50
|
+
? undefined
|
|
51
|
+
: currentSegment;
|
|
44
52
|
});
|
|
45
53
|
}, []);
|
|
46
54
|
let percent = 0;
|
|
@@ -54,10 +62,10 @@ function SummaryCardRow({ displayNoLimit, formatLegendValue, formatSystemDetailV
|
|
|
54
62
|
? i18n('value_no-limit')
|
|
55
63
|
: formatSummaryPercent(summary.usedPercent) })] })] }));
|
|
56
64
|
}
|
|
57
|
-
export function SummaryCard({ title, description, descriptionHelpText, position, ...rowProps }) {
|
|
58
|
-
return (_jsx("div", { className: b({ first: position === 'first', last: position === 'last' }), children: _jsx(SummaryCardRow, { ...rowProps, header: _jsx(SummaryCardCopy, { title: title, description: description, descriptionHelpText: descriptionHelpText }) }) }));
|
|
65
|
+
export function SummaryCard({ title, description, descriptionHelpText, position, qa, ...rowProps }) {
|
|
66
|
+
return (_jsx("div", { className: b({ first: position === 'first', last: position === 'last' }), "data-qa": qa, children: _jsx(SummaryCardRow, { ...rowProps, header: _jsx(SummaryCardCopy, { title: title, description: description, descriptionHelpText: descriptionHelpText }) }) }));
|
|
59
67
|
}
|
|
60
|
-
export function GroupedSummaryCard({ title, description, descriptionHelpText, position, rows, }) {
|
|
61
|
-
return (_jsxs("div", { className: b({ first: position === 'first', grouped: true, last: position === 'last' }), children: [_jsx(SummaryCardCopy, { title: title, description: description, descriptionHelpText: descriptionHelpText }), _jsx("div", { className: b('rows'), children: rows.map(({ id, mediaLabel, ...rowProps }) => (_jsx(SummaryCardRow, { ...rowProps, grouped: true, header: _jsx(Text, { variant: "subheader-2", className: b('row-label'), children: mediaLabel }) }, id))) })] }));
|
|
68
|
+
export function GroupedSummaryCard({ title, description, descriptionHelpText, position, qa, rows, }) {
|
|
69
|
+
return (_jsxs("div", { className: b({ first: position === 'first', grouped: true, last: position === 'last' }), "data-qa": qa, children: [_jsx(SummaryCardCopy, { title: title, description: description, descriptionHelpText: descriptionHelpText }), _jsx("div", { className: b('rows'), children: rows.map(({ id, mediaLabel, ...rowProps }) => (_jsx(SummaryCardRow, { ...rowProps, grouped: true, header: _jsx(Text, { variant: "subheader-2", className: b('row-label'), children: mediaLabel }) }, id))) })] }));
|
|
62
70
|
}
|
|
63
71
|
//# sourceMappingURL=TenantStorageSummaryCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenantStorageSummaryCard.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"TenantStorageSummaryCard.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -77,8 +77,7 @@
|
|
|
77
77
|
flex-direction: column;
|
|
78
78
|
justify-content: center;
|
|
79
79
|
|
|
80
|
-
width: 101px;
|
|
81
|
-
min-width: 0;
|
|
80
|
+
min-width: 101px;
|
|
82
81
|
padding-left: var(--g-spacing-10);
|
|
83
82
|
|
|
84
83
|
border-left: 1px solid var(--g-color-line-generic);
|
|
@@ -94,8 +93,12 @@
|
|
|
94
93
|
background: var(--g-color-base-generic-accent);
|
|
95
94
|
}
|
|
96
95
|
|
|
96
|
+
&_no-data {
|
|
97
|
+
background: transparent;
|
|
98
|
+
}
|
|
99
|
+
|
|
97
100
|
&_hide-divider {
|
|
98
|
-
width: 70px;
|
|
101
|
+
min-width: 70px;
|
|
99
102
|
padding-left: 0;
|
|
100
103
|
|
|
101
104
|
border-left: 0;
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import type { TenantStorageData, TenantStorageMediaSection } from './utils';
|
|
2
2
|
import './TenantStorageSummarySections.scss';
|
|
3
|
-
|
|
3
|
+
interface TenantStorageMediaSectionViewProps {
|
|
4
4
|
section: TenantStorageMediaSection;
|
|
5
5
|
showMediaTypeLabel: boolean;
|
|
6
6
|
data: TenantStorageData;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
showPhysicalDiskUsage?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function TenantStorageMediaSectionView({ section, showMediaTypeLabel, data, showPhysicalDiskUsage, }: TenantStorageMediaSectionViewProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
interface TenantStorageGroupedMediaSectionsViewProps {
|
|
9
11
|
data: TenantStorageData;
|
|
10
12
|
sections: TenantStorageMediaSection[];
|
|
11
|
-
|
|
13
|
+
showPhysicalDiskUsage?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function TenantStorageGroupedMediaSectionsView({ data, sections, showPhysicalDiskUsage, }: TenantStorageGroupedMediaSectionsViewProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Flex, Text } from '@gravity-ui/uikit';
|
|
3
|
+
import { isNil } from 'lodash';
|
|
3
4
|
import { EType } from '../../../../../types/api/tenant';
|
|
4
5
|
import { cn } from '../../../../../utils/cn';
|
|
5
|
-
import { EMPTY_DATA_PLACEHOLDER } from '../../../../../utils/constants';
|
|
6
6
|
import { GroupedSummaryCard, SummaryCard } from './TenantStorageSummaryCard';
|
|
7
7
|
import { formatOverheadValue, formatTenantStorageApproximateMetric, formatTenantStorageSummaryMetric, getTenantStorageLegendValueFormatter, getTenantStorageSegmentValueFormatters, getTenantStorageSummaryMetricUnit, } from './displayFormatters';
|
|
8
8
|
import i18n from './i18n';
|
|
@@ -41,6 +41,7 @@ function getUserSummaryRow({ id, mediaLabel, segments, summary, }) {
|
|
|
41
41
|
note: summary.availableApproximate
|
|
42
42
|
? i18n('context_available-approximate')
|
|
43
43
|
: undefined,
|
|
44
|
+
noData: isNil(summary.available),
|
|
44
45
|
value: formattedAvailableValue,
|
|
45
46
|
},
|
|
46
47
|
{
|
|
@@ -52,16 +53,15 @@ function getUserSummaryRow({ id, mediaLabel, segments, summary, }) {
|
|
|
52
53
|
note: hasQuota ? undefined : i18n('alert_missing-quota-description'),
|
|
53
54
|
notePlacement: 'value',
|
|
54
55
|
noteTitle: hasQuota ? undefined : i18n('alert_missing-quota-title'),
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
: EMPTY_DATA_PLACEHOLDER,
|
|
56
|
+
noData: isNil(summary.quota),
|
|
57
|
+
value: formatTenantStorageSummaryMetric(summary.quota, metricsSize),
|
|
58
58
|
},
|
|
59
59
|
],
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
function renderUserSummary(summary, segments) {
|
|
63
63
|
const row = getUserSummaryRow({ id: 'user-data', summary, segments });
|
|
64
|
-
return (_jsx(SummaryCard, { title: i18n('title_user-data'), description: i18n('context_user-data-by-type'), descriptionHelpText: i18n('context_user-data-tooltip'), position: "first", ...row }));
|
|
64
|
+
return (_jsx(SummaryCard, { title: i18n('title_user-data'), description: i18n('context_user-data-by-type'), descriptionHelpText: i18n('context_user-data-tooltip'), position: "first", qa: "tenant-storage-user-data-summary-card", ...row }));
|
|
65
65
|
}
|
|
66
66
|
function getPhysicalSummaryRow({ id, mediaLabel, segments, summary, systemDetails, }) {
|
|
67
67
|
const metricsSize = getTenantStorageSummaryMetricUnit([
|
|
@@ -87,11 +87,13 @@ function getPhysicalSummaryRow({ id, mediaLabel, segments, summary, systemDetail
|
|
|
87
87
|
emphasize: true,
|
|
88
88
|
label: i18n('field_overhead'),
|
|
89
89
|
note: i18n('context_overhead-description'),
|
|
90
|
+
noData: isNil(summary.overhead),
|
|
90
91
|
value: formatOverheadValue(summary.overhead),
|
|
91
92
|
},
|
|
92
93
|
{
|
|
93
94
|
hideDivider: true,
|
|
94
95
|
label: i18n('field_available'),
|
|
96
|
+
noData: isNil(summary.available),
|
|
95
97
|
value: formatTenantStorageSummaryMetric(summary.available, metricsSize),
|
|
96
98
|
},
|
|
97
99
|
{
|
|
@@ -100,6 +102,7 @@ function getPhysicalSummaryRow({ id, mediaLabel, segments, summary, systemDetail
|
|
|
100
102
|
},
|
|
101
103
|
{
|
|
102
104
|
label: i18n('field_total'),
|
|
105
|
+
noData: isNil(summary.total),
|
|
103
106
|
value: formatTenantStorageSummaryMetric(summary.total, metricsSize),
|
|
104
107
|
},
|
|
105
108
|
],
|
|
@@ -107,7 +110,7 @@ function getPhysicalSummaryRow({ id, mediaLabel, segments, summary, systemDetail
|
|
|
107
110
|
}
|
|
108
111
|
function renderPhysicalSummary(summary, segments, systemDetails) {
|
|
109
112
|
const row = getPhysicalSummaryRow({ id: 'physical', summary, segments, systemDetails });
|
|
110
|
-
return (_jsx(SummaryCard, { title: i18n('title_physical-disk-usage'), description: i18n('context_physical-disk-usage-description'), position: "last", ...row }));
|
|
113
|
+
return (_jsx(SummaryCard, { title: i18n('title_physical-disk-usage'), description: i18n('context_physical-disk-usage-description'), position: "last", qa: "tenant-storage-physical-summary-card", ...row }));
|
|
111
114
|
}
|
|
112
115
|
function getMediaSectionRows({ data, index = 0, section, showMediaTypeLabel, }) {
|
|
113
116
|
const mediaLabel = getMediaSectionLabel(section.mediaType);
|
|
@@ -154,15 +157,17 @@ function getMediaSectionRows({ data, index = 0, section, showMediaTypeLabel, })
|
|
|
154
157
|
}),
|
|
155
158
|
};
|
|
156
159
|
}
|
|
157
|
-
export function TenantStorageMediaSectionView({ section, showMediaTypeLabel, data, }) {
|
|
160
|
+
export function TenantStorageMediaSectionView({ section, showMediaTypeLabel, data, showPhysicalDiskUsage, }) {
|
|
158
161
|
const { mediaLabel, physical, user } = getMediaSectionRows({
|
|
159
162
|
data,
|
|
160
163
|
section,
|
|
161
164
|
showMediaTypeLabel,
|
|
162
165
|
});
|
|
163
|
-
return (_jsxs(Flex, { direction: "column", gap: 1, className: b(), children: [showMediaTypeLabel && mediaLabel ? (_jsx(Text, { variant: "subheader-2", className: b('media-title'), children: mediaLabel })) : null, renderUserSummary(user.summary, user.segments),
|
|
166
|
+
return (_jsxs(Flex, { direction: "column", gap: 1, className: b(), children: [showMediaTypeLabel && mediaLabel ? (_jsx(Text, { variant: "subheader-2", className: b('media-title'), children: mediaLabel })) : null, renderUserSummary(user.summary, user.segments), showPhysicalDiskUsage
|
|
167
|
+
? renderPhysicalSummary(physical.summary, physical.segments, physical.systemDetails)
|
|
168
|
+
: null] }));
|
|
164
169
|
}
|
|
165
|
-
export function TenantStorageGroupedMediaSectionsView({ data, sections, }) {
|
|
170
|
+
export function TenantStorageGroupedMediaSectionsView({ data, sections, showPhysicalDiskUsage, }) {
|
|
166
171
|
const rows = sections.map((section, index) => {
|
|
167
172
|
return getMediaSectionRows({
|
|
168
173
|
data,
|
|
@@ -171,6 +176,6 @@ export function TenantStorageGroupedMediaSectionsView({ data, sections, }) {
|
|
|
171
176
|
showMediaTypeLabel: true,
|
|
172
177
|
});
|
|
173
178
|
});
|
|
174
|
-
return (_jsxs(Flex, { direction: "column", gap: 1, className: b({ grouped: true }), children: [_jsx(GroupedSummaryCard, { title: i18n('title_user-data'), description: i18n('context_user-data-by-type'), descriptionHelpText: i18n('context_user-data-tooltip'), position: "first", rows: rows.map((row) => row.user) }), _jsx(GroupedSummaryCard, { title: i18n('title_physical-disk-usage'), description: i18n('context_physical-disk-usage-description'), position: "last", rows: rows.map((row) => row.physical) })] }));
|
|
179
|
+
return (_jsxs(Flex, { direction: "column", gap: 1, className: b({ grouped: true }), children: [_jsx(GroupedSummaryCard, { title: i18n('title_user-data'), description: i18n('context_user-data-by-type'), descriptionHelpText: i18n('context_user-data-tooltip'), position: "first", qa: "tenant-storage-grouped-user-data-summary-card", rows: rows.map((row) => row.user) }), showPhysicalDiskUsage ? (_jsx(GroupedSummaryCard, { title: i18n('title_physical-disk-usage'), description: i18n('context_physical-disk-usage-description'), position: "last", qa: "tenant-storage-grouped-physical-summary-card", rows: rows.map((row) => row.physical) })) : null] }));
|
|
175
180
|
}
|
|
176
181
|
//# sourceMappingURL=TenantStorageSummarySections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenantStorageSummarySections.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"TenantStorageSummarySections.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
"field_overhead": "Overhead",
|
|
21
21
|
"alert_missing-quota-title": "No quota? This is wrong.",
|
|
22
22
|
"alert_missing-quota-description": "This mode lets your database consume shared storage and is only for dev/test. Set a quota for stability.",
|
|
23
|
+
"alert_data-incomplete": "Some disks are currently unavailable. Storage statistics may be incomplete.",
|
|
24
|
+
"value_no-data": "No data",
|
|
23
25
|
"value_no-limit": "no limit",
|
|
24
26
|
"value_row-tables": "Row tables",
|
|
25
27
|
"value_column-tables": "Column tables",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (key: "value_unknown" | "value_no-limit" | "title_tablet-storage-usage" | "title_storage-details" | "title_top-tables-by-size" | "title_top-groups-by-usage" | "title_tablet-storage" | "context_tablet-storage-description" | "title_database-storage" | "context_database-storage-description" | "title_user-data" | "context_user-data-by-type" | "context_user-data-tooltip" | "title_physical-disk-usage" | "context_physical-disk-usage-description" | "context_available-approximate" | "field_available" | "field_used" | "field_quota" | "field_total" | "field_overhead" | "alert_missing-quota-title" | "alert_missing-quota-description" | "value_row-tables" | "value_column-tables" | "value_topics" | "value_system" | "value_system-detail-hive" | "value_system-detail-coordinator" | "value_system-detail-mediator" | "value_system-detail-scheme-shard" | "value_system-detail-sys-view-processor" | "value_system-detail-graph-shard" | "value_system-detail-statistics-aggregator" | "value_system-detail-bs-controller" | "value_system-detail-cms" | "value_system-detail-node-broker" | "value_system-detail-tenant-slot-broker" | "value_system-detail-console" | "context_used-percent" | "context_segment-share" | "value_total-user-data" | "value_total-physical-disk-usage" | "title_top-space-usage-main" | "title_top-space-usage-suffix" | "field_type" | "field_object-path" | "field_database-space" | "field_user-data" | "field_physical-disk" | "context_overhead-description" | "value_row-table" | "value_system-table" | "value_object", params?: import("@gravity-ui/i18n").Params) => string;
|
|
1
|
+
declare const _default: (key: "value_unknown" | "value_no-data" | "value_no-limit" | "title_tablet-storage-usage" | "title_storage-details" | "title_top-tables-by-size" | "title_top-groups-by-usage" | "title_tablet-storage" | "context_tablet-storage-description" | "title_database-storage" | "context_database-storage-description" | "title_user-data" | "context_user-data-by-type" | "context_user-data-tooltip" | "title_physical-disk-usage" | "context_physical-disk-usage-description" | "context_available-approximate" | "field_available" | "field_used" | "field_quota" | "field_total" | "field_overhead" | "alert_missing-quota-title" | "alert_missing-quota-description" | "alert_data-incomplete" | "value_row-tables" | "value_column-tables" | "value_topics" | "value_system" | "value_system-detail-hive" | "value_system-detail-coordinator" | "value_system-detail-mediator" | "value_system-detail-scheme-shard" | "value_system-detail-sys-view-processor" | "value_system-detail-graph-shard" | "value_system-detail-statistics-aggregator" | "value_system-detail-bs-controller" | "value_system-detail-cms" | "value_system-detail-node-broker" | "value_system-detail-tenant-slot-broker" | "value_system-detail-console" | "context_used-percent" | "context_segment-share" | "value_total-user-data" | "value_total-physical-disk-usage" | "title_top-space-usage-main" | "title_top-space-usage-suffix" | "field_type" | "field_object-path" | "field_database-space" | "field_user-data" | "field_physical-disk" | "context_overhead-description" | "value_row-table" | "value_system-table" | "value_object", params?: import("@gravity-ui/i18n").Params) => string;
|
|
2
2
|
export default _default;
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import type { IssuesTree } from '../../../store/reducers/healthcheckInfo/types';
|
|
2
|
-
import type { CommonIssueType } from './shared';
|
|
3
1
|
import './Healthcheck.scss';
|
|
4
|
-
|
|
5
|
-
countIssueTypes?: (issueTrees: IssuesTree[]) => Record<CommonIssueType, number> & Record<string, number>;
|
|
6
|
-
}
|
|
7
|
-
type HealthcheckDetailsProps = HealthcheckBaseProps & ({
|
|
2
|
+
type HealthcheckDetailsProps = {
|
|
8
3
|
database: string;
|
|
9
4
|
clusterName?: undefined;
|
|
10
5
|
} | {
|
|
11
6
|
clusterName: string;
|
|
12
7
|
database?: undefined;
|
|
13
|
-
}
|
|
14
|
-
export declare function Healthcheck({ database, clusterName
|
|
8
|
+
};
|
|
9
|
+
export declare function Healthcheck({ database, clusterName }: HealthcheckDetailsProps): import("react/jsx-runtime").JSX.Element;
|
|
15
10
|
export {};
|
|
@@ -6,7 +6,6 @@ import { Fullscreen } from '../../../components/Fullscreen/Fullscreen';
|
|
|
6
6
|
import { HealthcheckStatus } from '../../../components/HealthcheckStatus/HealthcheckStatus';
|
|
7
7
|
import { Loader } from '../../../components/Loader';
|
|
8
8
|
import { SelfCheckResult } from '../../../types/api/healthcheck';
|
|
9
|
-
import { uiFactory } from '../../../uiFactory/uiFactory';
|
|
10
9
|
import { useTypedSelector } from '../../../utils/hooks';
|
|
11
10
|
import { getIllustration } from '../../../utils/illustrations';
|
|
12
11
|
import { HEALTHCHECK_RESULT_TO_TEXT } from '../constants';
|
|
@@ -18,27 +17,28 @@ import { HealthcheckView } from './components/HealthcheckView';
|
|
|
18
17
|
import i18n from './i18n';
|
|
19
18
|
import { b } from './shared';
|
|
20
19
|
import { useClusterHealthcheck, useHealthcheck } from './useHealthcheck';
|
|
20
|
+
import { countHealthcheckIssuesByCategory } from './utils';
|
|
21
21
|
import cryCatIcon from '../../../assets/icons/cry-cat.svg';
|
|
22
22
|
import './Healthcheck.scss';
|
|
23
|
-
export function Healthcheck({ database, clusterName
|
|
23
|
+
export function Healthcheck({ database, clusterName }) {
|
|
24
24
|
if (clusterName) {
|
|
25
|
-
return (_jsx(HealthcheckContext.Provider, { value: { clusterName }, children: _jsx(ClusterHealthcheckInner, { clusterName: clusterName
|
|
25
|
+
return (_jsx(HealthcheckContext.Provider, { value: { clusterName }, children: _jsx(ClusterHealthcheckInner, { clusterName: clusterName }) }));
|
|
26
26
|
}
|
|
27
|
-
return
|
|
27
|
+
return _jsx(DatabaseHealthcheckInner, { database: database });
|
|
28
28
|
}
|
|
29
|
-
function DatabaseHealthcheckInner({ database
|
|
29
|
+
function DatabaseHealthcheckInner({ database }) {
|
|
30
30
|
const healthcheck = useHealthcheck(database);
|
|
31
|
-
return _jsx(HealthcheckContent, { healthcheck: healthcheck
|
|
31
|
+
return _jsx(HealthcheckContent, { healthcheck: healthcheck });
|
|
32
32
|
}
|
|
33
|
-
function ClusterHealthcheckInner({ clusterName
|
|
33
|
+
function ClusterHealthcheckInner({ clusterName }) {
|
|
34
34
|
const healthcheck = useClusterHealthcheck(clusterName);
|
|
35
|
-
return _jsx(HealthcheckContent, { healthcheck: healthcheck
|
|
35
|
+
return _jsx(HealthcheckContent, { healthcheck: healthcheck });
|
|
36
36
|
}
|
|
37
|
-
function HealthcheckContent({ healthcheck
|
|
37
|
+
function HealthcheckContent({ healthcheck }) {
|
|
38
38
|
const SuccessImage = getIllustration('SuccessOperation');
|
|
39
39
|
const fullscreen = useTypedSelector((state) => state.fullscreen);
|
|
40
40
|
const { loading, error, selfCheckResult, fulfilledTimeStamp, leavesIssues, refetch } = healthcheck;
|
|
41
|
-
const issuesCount = React.useMemo(() =>
|
|
41
|
+
const issuesCount = React.useMemo(() => countHealthcheckIssuesByCategory(leavesIssues), [leavesIssues]);
|
|
42
42
|
const renderControls = () => {
|
|
43
43
|
return (_jsxs(Flex, { direction: "column", gap: 3, className: b('controls', { fullscreen }), children: [_jsxs(Flex, { justifyContent: "space-between", gap: 2, children: [_jsx(HealthcheckStatus, { status: selfCheckResult }), _jsx(HealthcheckRefresh, { lastFullfiled: fulfilledTimeStamp, refresh: refetch })] }), _jsx(HealthcheckView, { issuesCount: issuesCount }), _jsx(HealthcheckFilter, {})] }));
|
|
44
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Healthcheck.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/Healthcheck/Healthcheck.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAC,UAAU,EAAC,MAAM,2CAA2C,CAAC;AACrE,OAAO,EAAC,iBAAiB,EAAC,MAAM,yDAAyD,CAAC;AAC1F,OAAO,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAC;AAElD,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"Healthcheck.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/Healthcheck/Healthcheck.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAC,UAAU,EAAC,MAAM,2CAA2C,CAAC;AACrE,OAAO,EAAC,iBAAiB,EAAC,MAAM,yDAAyD,CAAC;AAC1F,OAAO,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAC;AAElD,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,0BAA0B,EAAC,MAAM,cAAc,CAAC;AAExD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAC,CAAC,EAAC,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAC,qBAAqB,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAC,gCAAgC,EAAC,MAAM,SAAS,CAAC;AAEzD,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAE3D,OAAO,oBAAoB,CAAC;AAM5B,MAAM,UAAU,WAAW,CAAC,EAAC,QAAQ,EAAE,WAAW,EAA0B;IACxE,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,CACH,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,WAAW,EAAC,YAC7C,KAAC,uBAAuB,IAAC,WAAW,EAAE,WAAW,GAAI,GAC3B,CACjC,CAAC;IACN,CAAC;IACD,OAAO,KAAC,wBAAwB,IAAC,QAAQ,EAAE,QAAkB,GAAI,CAAC;AACtE,CAAC;AAED,SAAS,wBAAwB,CAAC,EAAC,QAAQ,EAAqB;IAC5D,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO,KAAC,kBAAkB,IAAC,WAAW,EAAE,WAAW,GAAI,CAAC;AAC5D,CAAC;AAED,SAAS,uBAAuB,CAAC,EAAC,WAAW,EAAwB;IACjE,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACvD,OAAO,KAAC,kBAAkB,IAAC,WAAW,EAAE,WAAW,GAAI,CAAC;AAC5D,CAAC;AAWD,SAAS,kBAAkB,CAAC,EAAC,WAAW,EAAmC;IACvE,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjE,MAAM,EAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,OAAO,EAAC,GAC9E,WAAW,CAAC;IAEhB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAC7B,GAAG,EAAE,CAAC,gCAAgC,CAAC,YAAY,CAAC,EACpD,CAAC,YAAY,CAAC,CACjB,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,EAAC,UAAU,EAAC,CAAC,aACnE,MAAC,IAAI,IAAC,cAAc,EAAC,eAAe,EAAC,GAAG,EAAE,CAAC,aACvC,KAAC,iBAAiB,IAAC,MAAM,EAAE,eAAe,GAAI,EAC9C,KAAC,kBAAkB,IAAC,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAI,IACxE,EACP,KAAC,eAAe,IAAC,WAAW,EAAE,WAAW,GAAI,EAC7C,KAAC,iBAAiB,KAAG,IAClB,CACV,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,aACzD,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAI,EAC5E,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,GAAI,IAClC,CACV,CAAC;QACN,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,KAAC,MAAM,IAAC,IAAI,EAAC,GAAG,GAAG,CAAC;QAC/B,CAAC;QAED,IAAI,eAAe,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACtF,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,aACzD,KAAC,YAAY,IAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAI,EACxC,0BAA0B,CAAC,eAAe,CAAC,IACzC,CACV,CAAC;QACN,CAAC;QAED,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAE,CAAC,aAC3B,cAAc,EAAE,EACjB,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,YAC5D,KAAC,MAAM,IAAC,MAAM,EAAE,YAAY,GAAI,GAC7B,IACJ,CACV,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,UAAU,cACP,KAAC,IAAI,IAAC,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,YACxB,aAAa,EAAE,GACb,GACE,CAChB,CAAC;AACN,CAAC"}
|
|
@@ -2,7 +2,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { Flex } from '@gravity-ui/uikit';
|
|
4
4
|
import { EmptyState } from '../../../../components/EmptyState';
|
|
5
|
-
import { isComputeRelatedType, isStorageRelatedType, } from '../../../../store/reducers/healthcheckInfo/utils';
|
|
6
5
|
import { getIllustration } from '../../../../utils/illustrations';
|
|
7
6
|
import { useTenantQueryParams } from '../../useTenantQueryParams';
|
|
8
7
|
import i18n from '../i18n';
|
|
@@ -29,19 +28,7 @@ export function Issues({ issues }) {
|
|
|
29
28
|
return false;
|
|
30
29
|
});
|
|
31
30
|
}, [issues, issuesFilter]);
|
|
32
|
-
const filteredIssuesCurrentView = React.useMemo(() => view
|
|
33
|
-
? filteredIssues.filter((issue) => {
|
|
34
|
-
var _a;
|
|
35
|
-
const type = (_a = issue.rootTypeForUI) !== null && _a !== void 0 ? _a : issue.type;
|
|
36
|
-
if (view === 'storage') {
|
|
37
|
-
return isStorageRelatedType(type);
|
|
38
|
-
}
|
|
39
|
-
if (view === 'compute') {
|
|
40
|
-
return isComputeRelatedType(type);
|
|
41
|
-
}
|
|
42
|
-
return type === null || type === void 0 ? void 0 : type.toLowerCase().startsWith(view);
|
|
43
|
-
})
|
|
44
|
-
: [], [filteredIssues, view]);
|
|
31
|
+
const filteredIssuesCurrentView = React.useMemo(() => (view ? filteredIssues.filter((issue) => issue.categoryForUI === view) : []), [filteredIssues, view]);
|
|
45
32
|
if (filteredIssuesCurrentView.length === 0) {
|
|
46
33
|
return (_jsx(Flex, { grow: 1, justifyContent: "center", alignItems: "center", children: _jsx(EmptyState, { image: _jsx(SuccessImage, { width: 100, height: 100 }), position: "center", size: "xs", title: i18n('label_no-issues'), description: i18n('description_no-issues') }) }));
|
|
47
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HealthcheckIssues.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Healthcheck/components/HealthcheckIssues.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,UAAU,EAAC,MAAM,mCAAmC,CAAC;AAE7D,OAAO,
|
|
1
|
+
{"version":3,"file":"HealthcheckIssues.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Healthcheck/components/HealthcheckIssues.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,UAAU,EAAC,MAAM,mCAAmC,CAAC;AAE7D,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AAChE,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAMpD,MAAM,UAAU,MAAM,CAAC,EAAC,MAAM,EAAc;IACxC,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEzD,MAAM,EAAC,IAAI,EAAE,YAAY,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEpD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,MAAM,gBAAgB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,WAAW,GAAG,IAAI,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxC,CAAC;qBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAChE,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3B,MAAM,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAC3C,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAClF,CAAC,cAAc,EAAE,IAAI,CAAC,CACzB,CAAC;IAEF,IAAI,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,CACH,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,EAAE,cAAc,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,YACtD,KAAC,UAAU,IACP,KAAK,EAAE,KAAC,YAAY,IAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAI,EAChD,QAAQ,EAAC,QAAQ,EACjB,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAC9B,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,GAC5C,GACC,CACV,CAAC;IACN,CAAC;IAED,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5C,KAAC,gBAAgB,IACb,KAAK,EAAE,KAAK,EAEZ,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,IAD1B,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAEvC,CACL,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { uiFactory } from '../../../../uiFactory/uiFactory';
|
|
2
|
+
import type { countHealthcheckIssuesByCategory } from '../utils';
|
|
2
3
|
interface HealthcheckViewProps {
|
|
3
|
-
issuesCount: ReturnType<typeof
|
|
4
|
+
issuesCount: ReturnType<typeof countHealthcheckIssuesByCategory>;
|
|
4
5
|
viewTitles?: ReturnType<typeof uiFactory.healthcheck.getHealthckechViewTitles>;
|
|
5
6
|
sortOrder?: ReturnType<typeof uiFactory.healthcheck.getHealthcheckViewsOrder>;
|
|
6
7
|
}
|
|
@@ -3,40 +3,24 @@ import React from 'react';
|
|
|
3
3
|
import { SegmentedRadioGroup, Text } from '@gravity-ui/uikit';
|
|
4
4
|
import { uiFactory } from '../../../../uiFactory/uiFactory';
|
|
5
5
|
import { useTenantQueryParams } from '../../useTenantQueryParams';
|
|
6
|
-
import { b } from '../shared';
|
|
7
|
-
const HealthcheckViewValues = {
|
|
8
|
-
storage: 'storage',
|
|
9
|
-
compute: 'compute',
|
|
10
|
-
};
|
|
6
|
+
import { HealthcheckViewTitles, b } from '../shared';
|
|
11
7
|
export function HealthcheckView({ issuesCount, viewTitles = uiFactory.healthcheck.getHealthckechViewTitles(), sortOrder = uiFactory.healthcheck.getHealthcheckViewsOrder(), }) {
|
|
12
8
|
const { view, handleHealthcheckViewChange, handleIssuesFilterChange } = useTenantQueryParams();
|
|
13
|
-
const
|
|
14
|
-
const normalizedSortOrder = React.useMemo(() => sortOrder.filter((type) => {
|
|
15
|
-
// only "Unknown" option should be hidden if no such issues are presented. Otherwise option should be shown with count 0
|
|
16
|
-
return type !== 'unknown' || (type === 'unknown' && issuesCount[type] > 0);
|
|
17
|
-
}), [issuesCount, sortOrder]);
|
|
9
|
+
const normalizedSortOrder = React.useMemo(() => (issuesCount.unknown > 0 ? [...sortOrder, 'unknown'] : sortOrder), [issuesCount, sortOrder]);
|
|
18
10
|
React.useEffect(() => {
|
|
19
|
-
if (view) {
|
|
11
|
+
if (view && normalizedSortOrder.includes(view)) {
|
|
20
12
|
return;
|
|
21
13
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
handleHealthcheckViewChange(HealthcheckViewValues.compute);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
const firstIssueTypeWithIssues = sortOrder.find((issueType) => issuesCount[issueType] > 0);
|
|
30
|
-
handleHealthcheckViewChange(firstIssueTypeWithIssues);
|
|
31
|
-
}
|
|
32
|
-
}, [view, handleHealthcheckViewChange, issuesCount, issuesTypes, sortOrder]);
|
|
33
|
-
const renderCount = (view) => {
|
|
14
|
+
const firstIssueTypeWithIssues = normalizedSortOrder.find((issueType) => issuesCount[issueType] > 0);
|
|
15
|
+
handleHealthcheckViewChange(firstIssueTypeWithIssues);
|
|
16
|
+
}, [view, handleHealthcheckViewChange, issuesCount, normalizedSortOrder]);
|
|
17
|
+
const renderCount = (category) => {
|
|
34
18
|
var _a;
|
|
35
|
-
return _jsx(Text, { color: "secondary", children: (_a = issuesCount[
|
|
19
|
+
return _jsx(Text, { color: "secondary", children: (_a = issuesCount[category]) !== null && _a !== void 0 ? _a : 0 });
|
|
36
20
|
};
|
|
37
|
-
const renderHealthcheckViewOption = (
|
|
38
|
-
var _a;
|
|
39
|
-
return (_jsxs(SegmentedRadioGroup.Option, { value:
|
|
21
|
+
const renderHealthcheckViewOption = (category) => {
|
|
22
|
+
var _a, _b;
|
|
23
|
+
return (_jsxs(SegmentedRadioGroup.Option, { value: category, children: [(_b = (_a = viewTitles[category]) !== null && _a !== void 0 ? _a : HealthcheckViewTitles[category]) !== null && _b !== void 0 ? _b : category, "\u00A0", renderCount(category)] }, category));
|
|
40
24
|
};
|
|
41
25
|
return (_jsx(SegmentedRadioGroup, { value: view !== null && view !== void 0 ? view : normalizedSortOrder[0], onUpdate: (newView) => {
|
|
42
26
|
handleHealthcheckViewChange(newView);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HealthcheckView.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Healthcheck/components/HealthcheckView.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,mBAAmB,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAC,SAAS,EAAC,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"HealthcheckView.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Healthcheck/components/HealthcheckView.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,mBAAmB,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAC,SAAS,EAAC,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAC,qBAAqB,EAAE,CAAC,EAAC,MAAM,WAAW,CAAC;AASnD,MAAM,UAAU,eAAe,CAAC,EAC5B,WAAW,EACX,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,wBAAwB,EAAE,EAC7D,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,wBAAwB,EAAE,GACzC;IACnB,MAAM,EAAC,IAAI,EAAE,2BAA2B,EAAE,wBAAwB,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAK7F,MAAM,mBAAmB,GAAwB,KAAK,CAAC,OAAO,CAC1D,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EACvE,CAAC,WAAW,EAAE,SAAS,CAAC,CAC3B,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,IAAI,IAAI,mBAAmB,CAAC,QAAQ,CAAC,IAAyB,CAAC,EAAE,CAAC;YAClE,OAAO;QACX,CAAC;QACD,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,IAAI,CACrD,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAC5C,CAAC;QACF,2BAA2B,CAAC,wBAAwB,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,IAAI,EAAE,2BAA2B,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE1E,MAAM,WAAW,GAAG,CAAC,QAA2B,EAAE,EAAE;;QAChD,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,WAAW,YAAE,MAAA,WAAW,CAAC,QAAQ,CAAC,mCAAI,CAAC,GAAQ,CAAC;IACvE,CAAC,CAAC;IAEF,MAAM,2BAA2B,GAAG,CAAC,QAA2B,EAAE,EAAE;;QAChE,OAAO,CACH,MAAC,mBAAmB,CAAC,MAAM,IAAC,KAAK,EAAE,QAAQ,aACtC,MAAA,MAAA,UAAU,CAAC,QAAqB,CAAC,mCAAI,qBAAqB,CAAC,QAAQ,CAAC,mCAAI,QAAQ,YAEhF,WAAW,CAAC,QAAQ,CAAC,KAHwB,QAAQ,CAI7B,CAChC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,mBAAmB,IAChB,KAAK,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,mBAAmB,CAAC,CAAC,CAAC,EACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YAClB,2BAA2B,CAAC,OAAO,CAAC,CAAC;YACrC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC,YAE9B,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,GACnD,CACzB,CAAC;AACN,CAAC"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import type { IssuesTree } from '../../../store/reducers/healthcheckInfo/types';
|
|
2
1
|
export declare const b: import("@bem-react/classname").ClassNameFormatter;
|
|
3
|
-
export type
|
|
2
|
+
export type CommonIssueCategory = 'compute' | 'storage';
|
|
3
|
+
export declare const HealthcheckViewTitles: {
|
|
4
|
+
readonly storage: string;
|
|
5
|
+
readonly compute: string;
|
|
6
|
+
readonly unknown: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const issueCategories: ("compute" | "storage")[];
|
|
9
|
+
export declare function isIssueTypeOfCategory(issueType: string, category: string): boolean;
|
|
4
10
|
export declare function getHealthckechViewTitles(): {
|
|
5
11
|
readonly storage: string;
|
|
6
12
|
readonly compute: string;
|
|
7
13
|
readonly unknown: string;
|
|
8
14
|
};
|
|
9
|
-
export declare function getHealthcheckViewsOrder():
|
|
10
|
-
export declare function countHealthcheckIssuesByType(issueTrees: IssuesTree[]): Record<CommonIssueType, number>;
|
|
15
|
+
export declare function getHealthcheckViewsOrder(): CommonIssueCategory[];
|
|
11
16
|
export type GetHealthcheckViewTitles<T extends string> = () => Record<T, string>;
|
|
12
17
|
export type GetHealthcheckViewsOrder<T> = () => T[];
|