ydb-embedded-ui 15.5.1 → 15.6.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/README.md +14 -1
- package/dist/components/EntityStatus/EntityStatus.js +5 -2
- package/dist/components/EntityStatus/EntityStatus.js.map +1 -1
- package/dist/components/EntityStatus/EntityStatus.scss +4 -0
- package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
- package/dist/components/InternalLinkButton/InternalLinkButton.d.ts +8 -0
- package/dist/components/InternalLinkButton/InternalLinkButton.js +25 -0
- package/dist/components/InternalLinkButton/InternalLinkButton.js.map +1 -0
- package/dist/components/InternalLinkButton/__test__/InternalLinkButton.test.d.ts +1 -0
- package/dist/components/InternalLinkButton/__test__/InternalLinkButton.test.js +73 -0
- package/dist/components/InternalLinkButton/__test__/InternalLinkButton.test.js.map +1 -0
- package/dist/components/InternalLinkButton/index.d.ts +1 -0
- package/dist/components/InternalLinkButton/index.js +2 -0
- package/dist/components/InternalLinkButton/index.js.map +1 -0
- package/dist/components/LinkWithIcon/LinkWithIcon.d.ts +2 -1
- package/dist/components/LinkWithIcon/LinkWithIcon.js +2 -2
- package/dist/components/LinkWithIcon/LinkWithIcon.js.map +1 -1
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/PDiskPopup/PDiskPopup.js +5 -3
- package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
- package/dist/components/PDiskPopup/i18n/en.json +3 -1
- package/dist/components/PDiskPopup/i18n/index.d.ts +1 -1
- package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
- package/dist/components/TabletNameWrapper/TabletNameWrapper.d.ts +1 -0
- package/dist/components/TabletNameWrapper/TabletNameWrapper.js +4 -1
- package/dist/components/TabletNameWrapper/TabletNameWrapper.js.map +1 -1
- package/dist/components/TabletNameWrapper/TabletNameWrapper.scss +3 -0
- package/dist/components/TenantNameWrapper/TenantNameWrapper.js +29 -20
- package/dist/components/TenantNameWrapper/TenantNameWrapper.js.map +1 -1
- package/dist/components/TenantNameWrapper/i18n/en.json +3 -2
- package/dist/components/TenantNameWrapper/i18n/index.d.ts +1 -1
- package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js +12 -11
- package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js.map +1 -1
- package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/i18n/en.json +1 -2
- package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/i18n/index.d.ts +1 -1
- package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/VDiskPopup/VDiskPopup.js +4 -3
- package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
- package/dist/components/VDiskPopup/i18n/en.json +3 -1
- package/dist/components/VDiskPopup/i18n/index.d.ts +1 -1
- package/dist/components/nodesColumns/i18n/index.d.ts +1 -1
- package/dist/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.js +2 -1
- package/dist/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.js.map +1 -1
- package/dist/containers/Cluster/ClusterOverview/utils.js +16 -3
- package/dist/containers/Cluster/ClusterOverview/utils.js.map +1 -1
- package/dist/containers/Clusters/columns.js +39 -8
- package/dist/containers/Clusters/columns.js.map +1 -1
- package/dist/containers/Clusters/constants.d.ts +1 -1
- package/dist/containers/Header/ClusterRightControls.js +2 -2
- package/dist/containers/Header/ClusterRightControls.js.map +1 -1
- package/dist/containers/Header/DatabaseRightControls.d.ts +3 -2
- package/dist/containers/Header/DatabaseRightControls.js +7 -5
- package/dist/containers/Header/DatabaseRightControls.js.map +1 -1
- package/dist/containers/Header/GlobalRightControls.js +2 -1
- package/dist/containers/Header/GlobalRightControls.js.map +1 -1
- package/dist/containers/Header/Header.js +2 -2
- package/dist/containers/Header/Header.js.map +1 -1
- package/dist/containers/Header/Header.scss +4 -0
- package/dist/containers/Header/HeaderActionsMenu.d.ts +3 -1
- package/dist/containers/Header/HeaderActionsMenu.js +21 -27
- package/dist/containers/Header/HeaderActionsMenu.js.map +1 -1
- package/dist/containers/Header/HeaderLeftControls.js +1 -1
- package/dist/containers/Header/HeaderLeftControls.js.map +1 -1
- package/dist/containers/Header/HeaderRightControls.d.ts +2 -2
- package/dist/containers/Header/HeaderRightControls.js +2 -2
- package/dist/containers/Header/HeaderRightControls.js.map +1 -1
- package/dist/containers/Header/MonitoringControl.d.ts +6 -0
- package/dist/containers/Header/{ClusterMonitoringControl.js → MonitoringControl.js} +2 -2
- package/dist/containers/Header/MonitoringControl.js.map +1 -0
- package/dist/containers/Header/hooks/useHeaderData.d.ts +1 -2
- package/dist/containers/Header/hooks/useHeaderData.js +25 -2
- package/dist/containers/Header/hooks/useHeaderData.js.map +1 -1
- package/dist/containers/Header/i18n/en.json +3 -3
- package/dist/containers/Header/i18n/index.d.ts +1 -1
- package/dist/containers/Operations/columns.js +3 -2
- package/dist/containers/Operations/columns.js.map +1 -1
- package/dist/containers/Operations/constants.d.ts +1 -1
- package/dist/containers/Operations/constants.js +6 -0
- package/dist/containers/Operations/constants.js.map +1 -1
- package/dist/containers/Operations/i18n/en.json +6 -0
- package/dist/containers/Operations/i18n/index.d.ts +1 -1
- package/dist/containers/Operations/useOperationsQueryParams.js +13 -1
- package/dist/containers/Operations/useOperationsQueryParams.js.map +1 -1
- package/dist/containers/Operations/utils.d.ts +8 -5
- package/dist/containers/Operations/utils.js +56 -5
- package/dist/containers/Operations/utils.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.d.ts +8 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js +20 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/__test__/MetricsTabs.test.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/__test__/MetricsTabs.test.js +74 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/__test__/MetricsTabs.test.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +94 -46
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.d.ts +2 -13
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +3 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageMode.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageMode.js +18 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageMode.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.d.ts +3 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js +41 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.scss +50 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.d.ts +29 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.js +102 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.scss +123 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.d.ts +39 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.js +63 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.scss +190 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.d.ts +11 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.js +176 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.scss +3 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageTopUsageTable.d.ts +10 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageTopUsageTable.js +122 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageTopUsageTable.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageTopUsageTable.scss +121 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/displayFormatters.test.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/displayFormatters.test.js +135 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/displayFormatters.test.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/utils.test.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/utils.test.js +855 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/utils.test.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.d.ts +15 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.js +101 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/en.json +56 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.js +6 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/storageDashboardConfig.js +3 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/storageDashboardConfig.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/types.d.ts +16 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/types.js +2 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/types.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/useTenantStorageNewData.d.ts +89 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/useTenantStorageNewData.js +18 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/useTenantStorageNewData.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/utils.d.ts +109 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/utils.js +508 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/utils.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +0 -8
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssues.js +2 -2
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssues.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/utils/schemaActions.js +4 -3
- package/dist/containers/Tenant/utils/schemaActions.js.map +1 -1
- package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
- package/dist/lib.d.ts +1 -0
- package/dist/lib.js +1 -0
- package/dist/lib.js.map +1 -1
- package/dist/store/reducers/cluster/__test__/parseFields.test.js +35 -1
- package/dist/store/reducers/cluster/__test__/parseFields.test.js.map +1 -1
- package/dist/store/reducers/cluster/cluster.d.ts +1 -1
- package/dist/store/reducers/cluster/parseFields.d.ts +10 -0
- package/dist/store/reducers/cluster/parseFields.js +41 -0
- package/dist/store/reducers/cluster/parseFields.js.map +1 -1
- package/dist/store/reducers/clusters/types.d.ts +10 -3
- package/dist/store/reducers/clusters/utils.js +8 -3
- package/dist/store/reducers/clusters/utils.js.map +1 -1
- package/dist/store/reducers/storageUsage/StorageUsage.d.ts +1 -1
- package/dist/store/reducers/storageUsage/__test__/storageUsage.test.js +3 -0
- package/dist/store/reducers/storageUsage/__test__/storageUsage.test.js.map +1 -1
- package/dist/store/reducers/tenantOverview/storage/__test__/tenantOverviewStorage.test.d.ts +1 -0
- package/dist/store/reducers/tenantOverview/storage/__test__/tenantOverviewStorage.test.js +333 -0
- package/dist/store/reducers/tenantOverview/storage/__test__/tenantOverviewStorage.test.js.map +1 -0
- package/dist/store/reducers/tenantOverview/storage/tenantOverviewStorage.d.ts +42 -0
- package/dist/store/reducers/tenantOverview/storage/tenantOverviewStorage.js +289 -0
- package/dist/store/reducers/tenantOverview/storage/tenantOverviewStorage.js.map +1 -0
- package/dist/store/reducers/tenants/__test__/utils.test.d.ts +1 -0
- package/dist/store/reducers/tenants/__test__/utils.test.js +151 -0
- package/dist/store/reducers/tenants/__test__/utils.test.js.map +1 -0
- package/dist/store/reducers/tenants/utils.d.ts +19 -4
- package/dist/store/reducers/tenants/utils.js +149 -42
- package/dist/store/reducers/tenants/utils.js.map +1 -1
- package/dist/styles/mixins.scss +4 -0
- package/dist/types/additionalProps.d.ts +1 -4
- package/dist/types/api/operations.d.ts +92 -2
- package/dist/types/api/operations.js +25 -0
- package/dist/types/api/operations.js.map +1 -1
- package/dist/types/api/storage.d.ts +1 -1
- package/dist/types/api/tenant.d.ts +14 -1
- package/dist/types/api/tenant.js.map +1 -1
- package/dist/uiFactory/types.d.ts +5 -0
- package/dist/utils/__test__/storageMetrics.test.js +7 -0
- package/dist/utils/__test__/storageMetrics.test.js.map +1 -1
- package/dist/utils/__test__/utils.test.d.ts +1 -0
- package/dist/utils/__test__/utils.test.js +30 -0
- package/dist/utils/__test__/utils.test.js.map +1 -0
- package/dist/utils/additionalProps.js +17 -4
- package/dist/utils/additionalProps.js.map +1 -1
- package/dist/utils/clusterLinks/__test__/resolveClusterLinks.test.js +647 -5
- package/dist/utils/clusterLinks/__test__/resolveClusterLinks.test.js.map +1 -1
- package/dist/utils/clusterLinks/clusterLinkConstants.js +3 -5
- package/dist/utils/clusterLinks/clusterLinkConstants.js.map +1 -1
- package/dist/utils/clusterLinks/i18n/en.json +1 -1
- package/dist/utils/clusterLinks/resolveClusterLinks.d.ts +32 -12
- package/dist/utils/clusterLinks/resolveClusterLinks.js +182 -29
- package/dist/utils/clusterLinks/resolveClusterLinks.js.map +1 -1
- package/dist/utils/clusterLinks/useDatabaseLinks.d.ts +3 -0
- package/dist/utils/clusterLinks/useDatabaseLinks.js +13 -0
- package/dist/utils/clusterLinks/useDatabaseLinks.js.map +1 -0
- package/dist/utils/disks/normalizeMediaType.js +4 -1
- package/dist/utils/disks/normalizeMediaType.js.map +1 -1
- package/dist/utils/monitoring.d.ts +4 -1
- package/dist/utils/monitoring.js +45 -45
- package/dist/utils/monitoring.js.map +1 -1
- package/dist/utils/query.d.ts +1 -1
- package/dist/utils/storageMetrics.d.ts +7 -1
- package/dist/utils/storageMetrics.js +9 -6
- package/dist/utils/storageMetrics.js.map +1 -1
- package/dist/utils/utils.d.ts +6 -0
- package/dist/utils/utils.js +11 -0
- package/dist/utils/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/containers/Header/ClusterMonitoringControl.d.ts +0 -6
- package/dist/containers/Header/ClusterMonitoringControl.js.map +0 -1
package/README.md
CHANGED
|
@@ -21,12 +21,25 @@ Open http://localhost:8765 to view it in the browser.
|
|
|
21
21
|
## Development
|
|
22
22
|
|
|
23
23
|
1. Run on a machine with Docker installed:
|
|
24
|
+
|
|
24
25
|
```
|
|
25
26
|
docker run --rm -ti --name ydb-local -h localhost \
|
|
26
27
|
-p 8765:8765 \
|
|
27
28
|
-e MON_PORT=8765 \
|
|
28
29
|
ghcr.io/ydb-platform/local-ydb:nightly
|
|
29
30
|
```
|
|
31
|
+
|
|
32
|
+
On macOS with Colima on Apple Silicon, `ghcr.io/ydb-platform/local-ydb:nightly` can require `linux/amd64` emulation. Start Colima with Rosetta and run the container with an explicit platform:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
colima start --vm-type vz --vz-rosetta --cpu 4 --memory 8
|
|
36
|
+
docker context use colima
|
|
37
|
+
docker run --rm -ti --name ydb-local -h localhost --platform linux/amd64 \
|
|
38
|
+
-p 8765:8765 \
|
|
39
|
+
-e MON_PORT=8765 \
|
|
40
|
+
ghcr.io/ydb-platform/local-ydb:nightly
|
|
41
|
+
```
|
|
42
|
+
|
|
30
43
|
2. Install dependencies with `npm ci`
|
|
31
44
|
3. Run the frontend app in the development mode, via invoking `npm run dev`
|
|
32
45
|
4. Open [localhost:3000](http://localhost:3000) to view it in the browser. The page will reload if you make edits.\
|
|
@@ -114,7 +127,7 @@ npm run test:e2e:docker:report
|
|
|
114
127
|
|
|
115
128
|
### CI
|
|
116
129
|
|
|
117
|
-
E2E tests are run in CI in `e2e_tests` job. Tests run on Playwright `webServer` (it is started with `npm run dev`),
|
|
130
|
+
E2E tests are run in CI in `e2e_tests` job. Tests run on Playwright `webServer` (it is started with `npm run dev`), and the Docker test flow uses `ghcr.io/ydb-platform/local-ydb:nightly` as backend.
|
|
118
131
|
|
|
119
132
|
## Making a production bundle.
|
|
120
133
|
|
|
@@ -12,7 +12,6 @@ const b = cn('entity-status');
|
|
|
12
12
|
function defaultRenderName(name) {
|
|
13
13
|
return name !== null && name !== void 0 ? name : '';
|
|
14
14
|
}
|
|
15
|
-
// eslint-disable-next-line complexity
|
|
16
15
|
export function EntityStatus({ status = EFlag.Grey, name = '', renderName = defaultRenderName, path, size = 's', mode = 'color', showStatus = true, externalLink = false, withLeftTrim = false, hasClipboardButton, infoPopoverContent, clipboardButtonAlwaysVisible = false, className, }) {
|
|
17
16
|
const [infoIconHovered, setInfoIconHovered] = React.useState(false);
|
|
18
17
|
const renderIcon = () => {
|
|
@@ -33,7 +32,11 @@ export function EntityStatus({ status = EFlag.Grey, name = '', renderName = defa
|
|
|
33
32
|
return (_jsxs("div", { className: b(null, className), children: [renderIcon(), (path || name) && (_jsxs("div", { className: b('wrapper', {
|
|
34
33
|
'with-clipboard-button': hasClipboardButton,
|
|
35
34
|
'with-info-button': Boolean(infoPopoverContent),
|
|
36
|
-
|
|
35
|
+
'with-link': Boolean(path),
|
|
36
|
+
}), children: [_jsx("span", { className: b('link', {
|
|
37
|
+
'with-left-trim': withLeftTrim,
|
|
38
|
+
'with-path': Boolean(path),
|
|
39
|
+
}), title: name, children: renderLink() }), (hasClipboardButton || infoPopoverContent) && (_jsxs("div", { className: b('controls-wrapper', {
|
|
37
40
|
visible: clipboardButtonAlwaysVisible || infoIconHovered,
|
|
38
41
|
}), onClick: (e) => e.stopPropagation(), children: [infoPopoverContent && (_jsx(Popover, { className: YDB_POPOVER_CLASS_NAME, content: infoPopoverContent, placement: ['top-start', 'bottom-start'], onOpenChange: (visible) => setInfoIconHovered(visible), children: _jsx(Button, { view: "normal", size: "xs", className: b('info-icon', {
|
|
39
42
|
visible: clipboardButtonAlwaysVisible || infoIconHovered,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityStatus.js","sourceRoot":"","sources":["../../../src/components/EntityStatus/EntityStatus.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE5F,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAGpD,OAAO,qBAAqB,CAAC;AAE7B,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;AAsB9B,SAAS,iBAAiB,CAAC,IAAa;IACpC,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;AACtB,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"EntityStatus.js","sourceRoot":"","sources":["../../../src/components/EntityStatus/EntityStatus.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (key: "version" | "database" | "links" | "dc" | "uptime" | "rack" | "no-data" | "
|
|
1
|
+
declare const _default: (key: "version" | "database" | "links" | "dc" | "uptime" | "rack" | "no-data" | "la-interval-1m" | "la-interval-5m" | "la-interval-15m" | "developer-ui" | "title.common-info" | "title.endpoints" | "title.roles" | "title.pools" | "title.load-average", params?: import("@gravity-ui/i18n").Params) => string;
|
|
2
2
|
export default _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ButtonProps } from '@gravity-ui/uikit';
|
|
3
|
+
type InternalLinkButtonProps = ButtonProps & {
|
|
4
|
+
href: string;
|
|
5
|
+
onClick?: React.MouseEventHandler<HTMLAnchorElement>;
|
|
6
|
+
};
|
|
7
|
+
export declare function InternalLinkButton({ href, onClick, target, ...props }: InternalLinkButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Button } from '@gravity-ui/uikit';
|
|
4
|
+
import { useHistory } from 'react-router-dom';
|
|
5
|
+
import { getLocationObjectFromHref } from '../../routes';
|
|
6
|
+
export function InternalLinkButton({ href, onClick, target, ...props }) {
|
|
7
|
+
const history = useHistory();
|
|
8
|
+
const linkHref = React.useMemo(() => history.createHref(getLocationObjectFromHref(href)), [history, href]);
|
|
9
|
+
const navigate = React.useCallback((path) => history.push(path), [history]);
|
|
10
|
+
const handleClick = React.useCallback((event) => {
|
|
11
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
12
|
+
const isModifiedEvent = event.metaKey || event.altKey || event.ctrlKey || event.shiftKey;
|
|
13
|
+
const shouldHandleInternally = !event.defaultPrevented &&
|
|
14
|
+
event.button === 0 &&
|
|
15
|
+
!isModifiedEvent &&
|
|
16
|
+
(!target || target === '_self');
|
|
17
|
+
if (!shouldHandleInternally) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
event.preventDefault();
|
|
21
|
+
navigate(href);
|
|
22
|
+
}, [href, navigate, onClick, target]);
|
|
23
|
+
return _jsx(Button, { ...props, href: linkHref, target: target, onClick: handleClick });
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=InternalLinkButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalLinkButton.js","sourceRoot":"","sources":["../../../src/components/InternalLinkButton/InternalLinkButton.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAC,yBAAyB,EAAC,MAAM,cAAc,CAAC;AAOvD,MAAM,UAAU,kBAAkB,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,EAA0B;IACzF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC1B,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,EACzD,CAAC,OAAO,EAAE,IAAI,CAAC,CAClB,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,KAAK,EAAE,EAAE;QACN,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;QAEjB,MAAM,eAAe,GACjB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC;QACrE,MAAM,sBAAsB,GACxB,CAAC,KAAK,CAAC,gBAAgB;YACvB,KAAK,CAAC,MAAM,KAAK,CAAC;YAClB,CAAC,eAAe;YAChB,CAAC,CAAC,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC;QAEpC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,EACD,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CACpC,CAAC;IAEF,OAAO,KAAC,MAAM,OAAK,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAI,CAAC;AACvF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { fireEvent, render, screen } from '@testing-library/react';
|
|
3
|
+
import { InternalLinkButton } from '../InternalLinkButton';
|
|
4
|
+
const mockPush = jest.fn();
|
|
5
|
+
const mockCreateHref = jest.fn(({ pathname, search, hash }) => `${pathname}${search}${hash}`);
|
|
6
|
+
jest.mock('react-router-dom', () => ({
|
|
7
|
+
useHistory: () => ({
|
|
8
|
+
push: mockPush,
|
|
9
|
+
createHref: mockCreateHref,
|
|
10
|
+
}),
|
|
11
|
+
}));
|
|
12
|
+
describe('InternalLinkButton', () => {
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
mockPush.mockClear();
|
|
15
|
+
mockCreateHref.mockClear();
|
|
16
|
+
mockCreateHref.mockImplementation(({ pathname, search, hash }) => `/base${pathname}${search}${hash}`);
|
|
17
|
+
});
|
|
18
|
+
test('renders browser href created by history.createHref', () => {
|
|
19
|
+
render(_jsx(InternalLinkButton, { href: "/vDisk?nodeId=4&vDiskId=0-1-0-3-0", children: "VDisk" }));
|
|
20
|
+
const link = screen.getByRole('link', { name: 'VDisk' });
|
|
21
|
+
expect(mockCreateHref).toHaveBeenCalledWith({
|
|
22
|
+
pathname: '/vDisk',
|
|
23
|
+
search: '?nodeId=4&vDiskId=0-1-0-3-0',
|
|
24
|
+
hash: '',
|
|
25
|
+
});
|
|
26
|
+
expect(link.getAttribute('href')).toBe('/base/vDisk?nodeId=4&vDiskId=0-1-0-3-0');
|
|
27
|
+
});
|
|
28
|
+
test('navigates internally on unmodified left click', () => {
|
|
29
|
+
const onClick = jest.fn();
|
|
30
|
+
render(_jsx(InternalLinkButton, { href: "/pDisk?nodeId=4&pDiskId=1001", onClick: onClick, children: "PDisk" }));
|
|
31
|
+
const link = screen.getByRole('link', { name: 'PDisk' });
|
|
32
|
+
const wasNotPrevented = fireEvent.click(link, { button: 0 });
|
|
33
|
+
expect(wasNotPrevented).toBe(false);
|
|
34
|
+
expect(onClick).toHaveBeenCalledTimes(1);
|
|
35
|
+
expect(mockPush).toHaveBeenCalledTimes(1);
|
|
36
|
+
expect(mockPush).toHaveBeenCalledWith('/pDisk?nodeId=4&pDiskId=1001');
|
|
37
|
+
});
|
|
38
|
+
test('does not navigate internally when onClick prevents default', () => {
|
|
39
|
+
const onClick = jest.fn((event) => {
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
});
|
|
42
|
+
render(_jsx(InternalLinkButton, { href: "/pDisk?nodeId=4&pDiskId=1001", onClick: onClick, children: "PDisk" }));
|
|
43
|
+
const link = screen.getByRole('link', { name: 'PDisk' });
|
|
44
|
+
const wasNotPrevented = fireEvent.click(link, { button: 0 });
|
|
45
|
+
expect(wasNotPrevented).toBe(false);
|
|
46
|
+
expect(onClick).toHaveBeenCalledTimes(1);
|
|
47
|
+
expect(mockPush).not.toHaveBeenCalled();
|
|
48
|
+
});
|
|
49
|
+
test.each([
|
|
50
|
+
['meta click', { button: 0, metaKey: true }],
|
|
51
|
+
['ctrl click', { button: 0, ctrlKey: true }],
|
|
52
|
+
['shift click', { button: 0, shiftKey: true }],
|
|
53
|
+
['alt click', { button: 0, altKey: true }],
|
|
54
|
+
['middle click', { button: 1 }],
|
|
55
|
+
])('lets browser handle %s', (_name, eventInit) => {
|
|
56
|
+
const onClick = jest.fn();
|
|
57
|
+
render(_jsx(InternalLinkButton, { href: "/vDisk?nodeId=4&vDiskId=0-1-0-3-0", onClick: onClick, children: "VDisk" }));
|
|
58
|
+
const link = screen.getByRole('link', { name: 'VDisk' });
|
|
59
|
+
const wasNotPrevented = fireEvent.click(link, eventInit);
|
|
60
|
+
expect(wasNotPrevented).toBe(true);
|
|
61
|
+
expect(onClick).toHaveBeenCalledTimes(1);
|
|
62
|
+
expect(mockPush).not.toHaveBeenCalled();
|
|
63
|
+
});
|
|
64
|
+
test('lets browser handle links with non-self target', () => {
|
|
65
|
+
render(_jsx(InternalLinkButton, { href: "/vDisk?nodeId=4&vDiskId=0-1-0-3-0", target: "_blank", children: "VDisk" }));
|
|
66
|
+
const link = screen.getByRole('link', { name: 'VDisk' });
|
|
67
|
+
const wasNotPrevented = fireEvent.click(link, { button: 0 });
|
|
68
|
+
expect(wasNotPrevented).toBe(true);
|
|
69
|
+
expect(link.getAttribute('target')).toBe('_blank');
|
|
70
|
+
expect(mockPush).not.toHaveBeenCalled();
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=InternalLinkButton.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalLinkButton.test.js","sourceRoot":"","sources":["../../../../src/components/InternalLinkButton/__test__/InternalLinkButton.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './InternalLinkButton';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/InternalLinkButton/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -7,6 +7,7 @@ interface ExternalLinkWithIconProps {
|
|
|
7
7
|
className?: string;
|
|
8
8
|
icon?: IconData;
|
|
9
9
|
description?: string;
|
|
10
|
+
hideEndIcon?: boolean;
|
|
10
11
|
}
|
|
11
|
-
export declare const LinkWithIcon: ({ title, url, external, className, icon, description, }: ExternalLinkWithIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare const LinkWithIcon: ({ title, url, external, className, icon, description, hideEndIcon, }: ExternalLinkWithIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
13
|
export {};
|
|
@@ -6,8 +6,8 @@ import { cn } from '../../utils/cn';
|
|
|
6
6
|
import { InternalLink } from '../InternalLink';
|
|
7
7
|
import './LinkWithIcon.scss';
|
|
8
8
|
const b = cn('ydb-link-with-icon');
|
|
9
|
-
export const LinkWithIcon = ({ title, url, external = true, className, icon, description, }) => {
|
|
10
|
-
const linkContent = (_jsxs(React.Fragment, { children: [icon ? _jsx(Icon, { data: icon, size: 16 }) : null, icon ? '\u00a0' : null, title, '\u00a0', _jsx(ArrowUpRightFromSquare, {})] }));
|
|
9
|
+
export const LinkWithIcon = ({ title, url, external = true, className, icon, description, hideEndIcon, }) => {
|
|
10
|
+
const linkContent = (_jsxs(React.Fragment, { children: [icon ? _jsx(Icon, { data: icon, size: 16 }) : null, icon ? '\u00a0' : null, title, hideEndIcon ? null : (_jsxs(React.Fragment, { children: ['\u00a0', _jsx(ArrowUpRightFromSquare, {})] }))] }));
|
|
11
11
|
const link = external ? (_jsx(Link, { href: url, target: "_blank", className: b(null, className), children: linkContent })) : (_jsx(InternalLink, { to: url, className: b(null, className), children: linkContent }));
|
|
12
12
|
if (description) {
|
|
13
13
|
return (_jsx(ActionTooltip, { title: description, placement: ['top', 'bottom'], children: link }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkWithIcon.js","sourceRoot":"","sources":["../../../src/components/LinkWithIcon/LinkWithIcon.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,OAAO,qBAAqB,CAAC;AAE7B,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"LinkWithIcon.js","sourceRoot":"","sources":["../../../src/components/LinkWithIcon/LinkWithIcon.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,OAAO,qBAAqB,CAAC;AAE7B,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC;AAYnC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EACzB,KAAK,EACL,GAAG,EACH,QAAQ,GAAG,IAAI,EACf,SAAS,EACT,IAAI,EACJ,WAAW,EACX,WAAW,GACa,EAAE,EAAE;IAC5B,MAAM,WAAW,GAAG,CAChB,MAAC,KAAK,CAAC,QAAQ,eACV,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,EAC5C,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EACtB,KAAK,EACL,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,MAAC,KAAK,CAAC,QAAQ,eACV,QAAQ,EACT,KAAC,sBAAsB,KAAG,IACb,CACpB,IACY,CACpB,CAAC;IAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CACpB,KAAC,IAAI,IAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,YACzD,WAAW,GACT,CACV,CAAC,CAAC,CAAC,CACA,KAAC,YAAY,IAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,YAC/C,WAAW,GACD,CAClB,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,CACH,KAAC,aAAa,IAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,YAC1D,IAAI,GACO,CACnB,CAAC;IACN,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pDiskInfoKeyset: (key: "space" | "path" | "type" | "links" | "state" | "yes" | "guid" | "serial-number" | "shared-with-os" | "drive-status" | "device" | "realtime" | "
|
|
1
|
+
export declare const pDiskInfoKeyset: (key: "space" | "path" | "type" | "links" | "state" | "yes" | "usage" | "developer-ui" | "guid" | "serial-number" | "shared-with-os" | "drive-status" | "device" | "realtime" | "slots" | "log-size" | "system-size", params?: import("@gravity-ui/i18n").Params) => string;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { Wrench } from '@gravity-ui/icons';
|
|
3
4
|
import { Flex, Label } from '@gravity-ui/uikit';
|
|
4
5
|
import { isNil } from 'lodash';
|
|
6
|
+
import { getPDiskPagePath } from '../../routes';
|
|
5
7
|
import { selectNodesMap } from '../../store/reducers/nodesList';
|
|
6
8
|
import { EFlag } from '../../types/api/enums';
|
|
7
9
|
import { EMPTY_DATA_PLACEHOLDER } from '../../utils/constants';
|
|
@@ -11,9 +13,8 @@ import { NUMERIC_SEVERITY_TO_LABEL_VIEW } from '../../utils/disks/constants';
|
|
|
11
13
|
import { useTypedSelector } from '../../utils/hooks';
|
|
12
14
|
import { useDatabaseFromQuery } from '../../utils/hooks/useDatabaseFromQuery';
|
|
13
15
|
import { bytesToGB, isNumeric } from '../../utils/utils';
|
|
16
|
+
import { InternalLinkButton } from '../InternalLinkButton';
|
|
14
17
|
import { LinkWithIcon } from '../LinkWithIcon/LinkWithIcon';
|
|
15
|
-
import { pDiskInfoKeyset } from '../PDiskInfo/i18n';
|
|
16
|
-
import { PDiskPageLink } from '../PDiskPageLink/PDiskPageLink';
|
|
17
18
|
import { StatusIcon } from '../StatusIcon/StatusIcon';
|
|
18
19
|
import { YDBDefinitionList } from '../YDBDefinitionList/YDBDefinitionList';
|
|
19
20
|
import { pDiskPopupKeyset } from './i18n';
|
|
@@ -96,7 +97,8 @@ export const buildPDiskFooter = (data, withDeveloperUILink) => {
|
|
|
96
97
|
pDiskId: PDiskId,
|
|
97
98
|
})
|
|
98
99
|
: undefined;
|
|
99
|
-
|
|
100
|
+
const pDiskPagePath = getPDiskPagePath(PDiskId, NodeId);
|
|
101
|
+
return (_jsxs(Flex, { direction: "column", gap: 5, alignItems: "flex-start", children: [pDiskInternalViewerPath && (_jsx(LinkWithIcon, { title: pDiskPopupKeyset('action_open-in-developer-ui'), url: pDiskInternalViewerPath, icon: Wrench, hideEndIcon: true })), _jsx(InternalLinkButton, { href: pDiskPagePath, view: "action", size: "m", children: pDiskPopupKeyset('action_go-to-pdisk') })] }));
|
|
100
102
|
};
|
|
101
103
|
export const PDiskPopup = ({ data }) => {
|
|
102
104
|
const database = useDatabaseFromQuery();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PDiskPopup.js","sourceRoot":"","sources":["../../../src/components/PDiskPopup/PDiskPopup.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAC,KAAK,EAAC,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAC,0BAA0B,EAAE,iBAAiB,EAAC,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAC,gBAAgB,EAAC,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAC,8BAA8B,EAAC,MAAM,6BAA6B,CAAC;AAE3E,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"PDiskPopup.js","sourceRoot":"","sources":["../../../src/components/PDiskPopup/PDiskPopup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pDiskPopupKeyset: (key: "label_node-id" | "context_not-available" | "label_type" | "label_host" | "label_dc" | "label_path" | "label_available" | "label_realtime" | "label_device" | "value_unknown" | "value_of", params?: import("@gravity-ui/i18n").Params) => string;
|
|
1
|
+
export declare const pDiskPopupKeyset: (key: "label_node-id" | "context_not-available" | "label_type" | "label_host" | "label_dc" | "label_path" | "label_available" | "label_realtime" | "label_device" | "value_unknown" | "value_of" | "action_open-in-developer-ui" | "action_go-to-pdisk", params?: import("@gravity-ui/i18n").Params) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const storageGroupInfoKeyset: (key: "state" | "available" | "yes" | "no" | "
|
|
1
|
+
export declare const storageGroupInfoKeyset: (key: "state" | "available" | "yes" | "no" | "encryption" | "missing-disks" | "usage" | "latency" | "allocation-units" | "overall" | "read-throughput" | "write-throughput" | "disk-space" | "media-type" | "erasure-species" | "used-space" | "group-generation" | "latency-put-tablet-log" | "latency-put-user-data" | "latency-get-fast", params?: import("@gravity-ui/i18n").Params) => string;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useTabletPagePath } from '../../routes';
|
|
3
|
+
import { cn } from '../../utils/cn';
|
|
3
4
|
import { EntityStatus } from '../EntityStatus/EntityStatus';
|
|
5
|
+
import './TabletNameWrapper.scss';
|
|
6
|
+
const b = cn('ydb-tablet-name-wrapper');
|
|
4
7
|
export function TabletNameWrapper({ tabletId, followerId }) {
|
|
5
8
|
const getTabletPagePath = useTabletPagePath();
|
|
6
9
|
const tabletPath = getTabletPagePath(tabletId, { followerId: followerId === null || followerId === void 0 ? void 0 : followerId.toString() });
|
|
7
10
|
const tabletName = `${tabletId}${followerId ? `.${followerId}` : ''}`;
|
|
8
|
-
return (_jsx(EntityStatus, { name: tabletName, path: tabletPath, hasClipboardButton: true, showStatus: false }));
|
|
11
|
+
return (_jsx(EntityStatus, { name: tabletName, path: tabletPath, hasClipboardButton: true, showStatus: false, className: b() }));
|
|
9
12
|
}
|
|
10
13
|
//# sourceMappingURL=TabletNameWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabletNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TabletNameWrapper/TabletNameWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"TabletNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TabletNameWrapper/TabletNameWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAE1D,OAAO,0BAA0B,CAAC;AAElC,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC;AAOxC,MAAM,UAAU,iBAAiB,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAyB;IAC5E,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAC,UAAU,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,EAAC,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEtE,OAAO,CACH,KAAC,YAAY,IACT,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,kBAAkB,QAClB,UAAU,EAAE,KAAK,EACjB,SAAS,EAAE,CAAC,EAAE,GAChB,CACL,CAAC;AACN,CAAC"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import { ClipboardButton,
|
|
3
|
+
import { Pencil, PlugConnection, TrashBin } from '@gravity-ui/icons';
|
|
4
|
+
import { ClipboardButton, Flex, Link, Text } from '@gravity-ui/uikit';
|
|
5
5
|
import { getTenantPath } from '../../routes';
|
|
6
6
|
import { useEmMetaAvailable } from '../../store/reducers/capabilities/hooks';
|
|
7
7
|
import { useClusterBaseInfo } from '../../store/reducers/cluster/cluster';
|
|
8
8
|
import { EFlag } from '../../types/api/enums';
|
|
9
9
|
import { uiFactory } from '../../uiFactory/uiFactory';
|
|
10
10
|
import { getDatabaseLinks } from '../../utils/additionalProps';
|
|
11
|
+
import { CLUSTER_LINK_CONTEXT } from '../../utils/clusterLinks/clusterLinkConstants';
|
|
12
|
+
import { useDatabaseLinks } from '../../utils/clusterLinks/useDatabaseLinks';
|
|
11
13
|
import { cn } from '../../utils/cn';
|
|
12
14
|
import { useIsUserAllowedToMakeChanges } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
|
|
13
15
|
import { canShowTenantMonitoring } from '../../utils/monitoringVisibility';
|
|
16
|
+
import { getConnectToDBDialog } from '../ConnectToDB/ConnectToDBDialog';
|
|
17
|
+
import { DropdownMenu } from '../DropdownMenu';
|
|
14
18
|
import { EntityStatus } from '../EntityStatusNew/EntityStatus';
|
|
15
19
|
import { InternalLink } from '../InternalLink/InternalLink';
|
|
16
20
|
import i18n from './i18n';
|
|
@@ -26,12 +30,13 @@ export function TenantNameWrapper({ tenant, clusterName, additionalTenantsProps,
|
|
|
26
30
|
const { settings } = useClusterBaseInfo();
|
|
27
31
|
const backend = getTenantBackend(tenant, additionalTenantsProps);
|
|
28
32
|
const isExternalLink = externalLink || Boolean(backend);
|
|
29
|
-
const
|
|
33
|
+
const legacyLinks = React.useMemo(() => getDatabaseLinks(additionalTenantsProps, tenant === null || tenant === void 0 ? void 0 : tenant.Name, tenant === null || tenant === void 0 ? void 0 : tenant.Type), [additionalTenantsProps, tenant === null || tenant === void 0 ? void 0 : tenant.Name, tenant === null || tenant === void 0 ? void 0 : tenant.Type]);
|
|
30
34
|
const { monitoring: clusterMonitoring } = useClusterBaseInfo();
|
|
31
35
|
const showMonitoring = canShowTenantMonitoring(tenant === null || tenant === void 0 ? void 0 : tenant.ControlPlane, clusterMonitoring);
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
const allResolvedLinks = useDatabaseLinks(tenant, legacyLinks);
|
|
37
|
+
const resolvedLinks = React.useMemo(() => showMonitoring
|
|
38
|
+
? allResolvedLinks
|
|
39
|
+
: allResolvedLinks.filter(({ context }) => context !== CLUSTER_LINK_CONTEXT.MONITORING), [allResolvedLinks, showMonitoring]);
|
|
35
40
|
const useDatabaseId = uiFactory.useDatabaseId && (settings === null || settings === void 0 ? void 0 : settings.use_meta_proxy) !== false;
|
|
36
41
|
const dbUrl = getTenantPath({
|
|
37
42
|
clusterName: tenant.Cluster,
|
|
@@ -43,28 +48,32 @@ export function TenantNameWrapper({ tenant, clusterName, additionalTenantsProps,
|
|
|
43
48
|
const dbStatus = tenant.Overall;
|
|
44
49
|
const dbActions = React.useMemo(() => {
|
|
45
50
|
const menuItems = [];
|
|
46
|
-
if (!isUserAllowedToMakeChanges) {
|
|
47
|
-
return [];
|
|
48
|
-
}
|
|
49
51
|
const linksItems = [];
|
|
50
|
-
for (const link of
|
|
52
|
+
for (const link of resolvedLinks) {
|
|
51
53
|
linksItems.push({
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
title: link.title,
|
|
55
|
+
description: link.description,
|
|
56
|
+
iconStart: link.icon,
|
|
55
57
|
href: link.url,
|
|
56
58
|
});
|
|
57
59
|
}
|
|
58
60
|
if (linksItems.length > 0) {
|
|
59
61
|
menuItems.push(linksItems);
|
|
60
62
|
}
|
|
63
|
+
menuItems.push([
|
|
64
|
+
{
|
|
65
|
+
title: i18n('action_connect-to-db'),
|
|
66
|
+
iconStart: PlugConnection,
|
|
67
|
+
action: () => getConnectToDBDialog({ database: tenant.Name }),
|
|
68
|
+
},
|
|
69
|
+
]);
|
|
61
70
|
// Do not show edit and delete actions for domain
|
|
62
71
|
if (tenant.Type !== 'Domain' && clusterName) {
|
|
63
72
|
const manageDbItems = [];
|
|
64
|
-
if (isEditDBAvailable) {
|
|
73
|
+
if (isEditDBAvailable && isUserAllowedToMakeChanges) {
|
|
65
74
|
manageDbItems.push({
|
|
66
|
-
|
|
67
|
-
iconStart:
|
|
75
|
+
title: i18n('action_edit'),
|
|
76
|
+
iconStart: Pencil,
|
|
68
77
|
action: () => {
|
|
69
78
|
var _a;
|
|
70
79
|
(_a = uiFactory.onEditDB) === null || _a === void 0 ? void 0 : _a.call(uiFactory, {
|
|
@@ -74,10 +83,10 @@ export function TenantNameWrapper({ tenant, clusterName, additionalTenantsProps,
|
|
|
74
83
|
},
|
|
75
84
|
});
|
|
76
85
|
}
|
|
77
|
-
if (isDeleteDBAvailable) {
|
|
86
|
+
if (isDeleteDBAvailable && isUserAllowedToMakeChanges) {
|
|
78
87
|
manageDbItems.push({
|
|
79
|
-
|
|
80
|
-
iconStart:
|
|
88
|
+
title: i18n('action_remove'),
|
|
89
|
+
iconStart: TrashBin,
|
|
81
90
|
action: () => {
|
|
82
91
|
var _a;
|
|
83
92
|
(_a = uiFactory.onDeleteDB) === null || _a === void 0 ? void 0 : _a.call(uiFactory, {
|
|
@@ -95,7 +104,7 @@ export function TenantNameWrapper({ tenant, clusterName, additionalTenantsProps,
|
|
|
95
104
|
return menuItems;
|
|
96
105
|
}, [
|
|
97
106
|
isUserAllowedToMakeChanges,
|
|
98
|
-
|
|
107
|
+
resolvedLinks,
|
|
99
108
|
clusterName,
|
|
100
109
|
isEditDBAvailable,
|
|
101
110
|
isDeleteDBAvailable,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenantNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TenantNameWrapper/TenantNameWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"TenantNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TenantNameWrapper/TenantNameWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"field_monitoring-link": "Monitoring",
|
|
4
4
|
"field_logs-link": "Logs",
|
|
5
5
|
"context_unknown": "unknown database",
|
|
6
|
-
"action_edit": "Edit",
|
|
7
|
-
"action_remove": "Remove"
|
|
6
|
+
"action_edit": "Edit Database",
|
|
7
|
+
"action_remove": "Remove Database",
|
|
8
|
+
"action_connect-to-db": "Connect to database"
|
|
8
9
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (key: "field_links" | "field_monitoring-link" | "field_logs-link" | "context_unknown" | "action_edit" | "action_remove", params?: import("@gravity-ui/i18n").Params) => string;
|
|
1
|
+
declare const _default: (key: "action_connect-to-db" | "field_links" | "field_monitoring-link" | "field_logs-link" | "context_unknown" | "action_edit" | "action_remove", params?: import("@gravity-ui/i18n").Params) => string;
|
|
2
2
|
export default _default;
|
package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { Wrench } from '@gravity-ui/icons';
|
|
4
|
+
import { uiFactory } from '../../../uiFactory/uiFactory';
|
|
3
5
|
import { useNodeDeveloperUIHref } from '../../../utils/hooks/useNodeDeveloperUIHref';
|
|
4
6
|
import { LinkWithIcon } from '../../LinkWithIcon/LinkWithIcon';
|
|
5
7
|
import { YDBDefinitionList } from '../../YDBDefinitionList/YDBDefinitionList';
|
|
@@ -44,17 +46,16 @@ const prepareNodeEndpointsData = (data) => {
|
|
|
44
46
|
return info;
|
|
45
47
|
};
|
|
46
48
|
export const NodeEndpointsTooltipContent = ({ data }) => {
|
|
49
|
+
var _a;
|
|
47
50
|
const developerUIInternalHref = useNodeDeveloperUIHref(data);
|
|
48
|
-
const info = React.useMemo(() =>
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
content: (_jsx(LinkWithIcon, { title: i18n('context_developer-ui'), url: developerUIInternalHref })),
|
|
54
|
-
});
|
|
51
|
+
const info = React.useMemo(() => prepareNodeEndpointsData(data), [data]);
|
|
52
|
+
const nodeActions = (_a = uiFactory.renderNodeTooltipActions) === null || _a === void 0 ? void 0 : _a.call(uiFactory, { data });
|
|
53
|
+
const footer = React.useMemo(() => {
|
|
54
|
+
if (!developerUIInternalHref && !nodeActions) {
|
|
55
|
+
return undefined;
|
|
55
56
|
}
|
|
56
|
-
return
|
|
57
|
-
}, [
|
|
58
|
-
return _jsx(YDBDefinitionList, { items: info, compact: true, responsive: true, nameMaxWidth: "auto" });
|
|
57
|
+
return (_jsxs(React.Fragment, { children: [developerUIInternalHref ? (_jsx(LinkWithIcon, { title: i18n('context_developer-ui'), url: developerUIInternalHref, icon: Wrench, hideEndIcon: true })) : null, nodeActions] }));
|
|
58
|
+
}, [developerUIInternalHref, nodeActions]);
|
|
59
|
+
return (_jsx(YDBDefinitionList, { items: info, footer: footer, compact: true, responsive: true, nameMaxWidth: "auto" }));
|
|
59
60
|
};
|
|
60
61
|
//# sourceMappingURL=NodeEndpointsTooltipContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeEndpointsTooltipContent.js","sourceRoot":"","sources":["../../../../src/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeEndpointsTooltipContent.js","sourceRoot":"","sources":["../../../../src/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAC,sBAAsB,EAAC,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAC,iBAAiB,EAAC,MAAM,2CAA2C,CAAC;AAE5E,OAAO,IAAI,MAAM,QAAQ,CAAC;AAM1B,MAAM,wBAAwB,GAAG,CAAC,IAA0B,EAA2B,EAAE;;IACrF,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,IAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC;YACN,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACjC,CAAC,CAAC;IACP,CAAC;IACD,MAAM,QAAQ,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,0CAAG,CAAC,CAAC,CAAC;IAEpC,IAAI,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,CAAC;YACN,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC;YAC5B,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC;YACN,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC;YACN,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,IAAI,CAAC,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,KAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,EAAE,EAAE;YACvC,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC;YACjE,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAAC,IAAI,EAA2B,EAAE,EAAE;;IAC5E,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAE7D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzE,MAAM,WAAW,GAAG,MAAA,SAAS,CAAC,wBAAwB,0DAAG,EAAC,IAAI,EAAC,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC9B,IAAI,CAAC,uBAAuB,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,CACH,MAAC,KAAK,CAAC,QAAQ,eACV,uBAAuB,CAAC,CAAC,CAAC,CACvB,KAAC,YAAY,IACT,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,EACnC,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,MAAM,EACZ,WAAW,SACb,CACL,CAAC,CAAC,CAAC,IAAI,EACP,WAAW,IACC,CACpB,CAAC;IACN,CAAC,EAAE,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC,CAAC;IAE3C,OAAO,CACH,KAAC,iBAAiB,IAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,QAAC,UAAU,QAAC,YAAY,EAAC,MAAM,GAAG,CAC5F,CAAC;AACN,CAAC,CAAC"}
|