ydb-embedded-ui 6.6.0 → 6.7.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/package.json +4 -3
- package/dist/src/containers/App/App.d.ts +1 -1
- package/dist/{containers → src/containers}/App/App.scss +5 -0
- package/dist/src/containers/App/Content.js +1 -1
- package/dist/src/containers/App/appSlots.d.ts +1 -1
- package/dist/src/containers/AsideNavigation/Navigation.js +1 -3
- package/dist/src/containers/AsideNavigation/i18n/en.json +0 -2
- package/dist/src/containers/AsideNavigation/i18n/index.d.ts +1 -1
- package/dist/src/containers/AsideNavigation/i18n/index.js +1 -2
- package/dist/src/containers/Cluster/i18n/index.d.ts +1 -1
- package/dist/src/containers/Clusters/constants.d.ts +1 -1
- package/dist/src/containers/Header/Header.js +17 -21
- package/dist/{containers → src/containers}/Header/Header.scss +14 -5
- package/dist/src/containers/Header/breadcrumbs.js +65 -71
- package/dist/src/containers/Heatmap/Heatmap.js +3 -3
- package/dist/src/containers/Nodes/Nodes.js +4 -4
- package/dist/src/containers/Nodes/VirtualNodes.js +2 -2
- package/dist/src/containers/Storage/Storage.js +2 -2
- package/dist/src/containers/Tablets/Tablets.js +8 -8
- package/dist/src/containers/TabletsFilters/TabletsFilters.d.ts +2 -57
- package/dist/src/containers/TabletsFilters/TabletsFilters.js +70 -180
- package/dist/src/containers/Tenant/Acl/Acl.d.ts +3 -1
- package/dist/src/containers/Tenant/Acl/Acl.js +7 -17
- package/dist/src/containers/Tenant/Diagnostics/Autorefresh/AutorefreshControl.js +4 -5
- package/dist/src/containers/Tenant/Diagnostics/Consumers/Consumers.js +3 -3
- package/dist/src/containers/Tenant/Diagnostics/Describe/Describe.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/Describe/Describe.js +5 -6
- package/dist/src/containers/Tenant/Diagnostics/DetailedOverview/DetailedOverview.d.ts +1 -0
- package/dist/src/containers/Tenant/Diagnostics/DetailedOverview/DetailedOverview.js +3 -5
- package/dist/src/containers/Tenant/Diagnostics/Diagnostics.d.ts +2 -0
- package/dist/src/containers/Tenant/Diagnostics/Diagnostics.js +26 -50
- package/dist/{containers → src/containers}/Tenant/Diagnostics/Diagnostics.scss +1 -1
- package/dist/src/containers/Tenant/Diagnostics/HotKeys/HotKeys.js +19 -58
- package/dist/src/containers/Tenant/Diagnostics/Network/Network.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/Network/Network.js +5 -5
- package/dist/src/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/AsyncReplicationInfo.js +1 -6
- package/dist/src/containers/Tenant/Diagnostics/Overview/ChangefeedInfo/ChangefeedInfo.d.ts +2 -1
- package/dist/src/containers/Tenant/Diagnostics/Overview/ChangefeedInfo/ChangefeedInfo.js +3 -8
- package/dist/src/containers/Tenant/Diagnostics/Overview/Overview.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/Overview/Overview.js +19 -21
- package/dist/{containers → src/containers}/Tenant/Diagnostics/Overview/TableInfo/TableInfo.scss +0 -2
- package/dist/src/containers/Tenant/Diagnostics/Overview/TopicInfo/TopicInfo.d.ts +2 -1
- package/dist/src/containers/Tenant/Diagnostics/Overview/TopicInfo/TopicInfo.js +3 -8
- package/dist/src/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.d.ts +3 -1
- package/dist/src/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.js +5 -5
- package/dist/src/containers/Tenant/Diagnostics/Partitions/Partitions.js +4 -12
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/Healthcheck.scss +100 -0
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckDetails.d.ts +2 -5
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckDetails.js +7 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.d.ts +1 -6
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.js +22 -16
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricsCards.d.ts +2 -8
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricsCards.js +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByCpu.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByCpu.js +4 -4
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByLoad.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByLoad.js +4 -4
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopQueries.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopQueries.js +4 -4
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.d.ts +2 -1
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.js +5 -5
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantDashboard/TenantDashboard.js +3 -3
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.js +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TopNodesByMemory.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TopNodesByMemory.js +4 -4
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +7 -9
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js +3 -3
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopTables.js +3 -3
- package/dist/src/containers/Tenant/Diagnostics/TenantOverview/useHealthcheck.js +1 -1
- package/dist/src/containers/Tenant/Diagnostics/TopQueries/TopQueries.d.ts +2 -2
- package/dist/src/containers/Tenant/Diagnostics/TopQueries/TopQueries.js +5 -5
- package/dist/src/containers/Tenant/Diagnostics/TopShards/TopShards.d.ts +3 -2
- package/dist/src/containers/Tenant/Diagnostics/TopShards/TopShards.js +8 -8
- package/dist/src/containers/Tenant/Info/ExternalDataSource/ExternalDataSource.js +0 -6
- package/dist/src/containers/Tenant/Info/ExternalTable/ExternalTable.js +0 -6
- package/dist/src/containers/Tenant/Info/View/View.js +0 -6
- package/dist/src/containers/Tenant/ObjectGeneral/ObjectGeneral.d.ts +2 -1
- package/dist/src/containers/Tenant/ObjectGeneral/ObjectGeneral.js +7 -13
- package/dist/src/containers/Tenant/ObjectSummary/ObjectSummary.d.ts +4 -4
- package/dist/src/containers/Tenant/ObjectSummary/ObjectSummary.js +159 -63
- package/dist/src/containers/Tenant/Query/Issues/Issues.js +6 -5
- package/dist/src/containers/Tenant/Query/Preview/Preview.d.ts +2 -1
- package/dist/src/containers/Tenant/Query/Preview/Preview.js +6 -6
- package/dist/src/containers/Tenant/Query/Query.d.ts +1 -0
- package/dist/{containers → src/containers}/Tenant/Query/Query.scss +1 -1
- package/dist/src/containers/Tenant/Query/QueryEditor/QueryEditor.d.ts +2 -0
- package/dist/src/containers/Tenant/Query/QueryEditor/QueryEditor.js +9 -22
- package/dist/src/containers/Tenant/Query/i18n/en.json +1 -1
- package/dist/src/containers/Tenant/Schema/SchemaTree/SchemaTree.d.ts +1 -0
- package/dist/src/containers/Tenant/Schema/SchemaTree/SchemaTree.js +11 -19
- package/dist/src/containers/Tenant/Schema/SchemaViewer/SchemaViewer.d.ts +2 -2
- package/dist/src/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js +13 -8
- package/dist/src/containers/Tenant/Schema/SchemaViewer/columns.d.ts +2 -1
- package/dist/src/containers/Tenant/Schema/SchemaViewer/columns.js +21 -2
- package/dist/src/containers/Tenant/Schema/SchemaViewer/i18n/en.json +1 -0
- package/dist/src/containers/Tenant/Schema/SchemaViewer/i18n/index.d.ts +1 -1
- package/dist/src/containers/Tenant/Schema/SchemaViewer/prepareData.js +2 -1
- package/dist/src/containers/Tenant/Schema/SchemaViewer/types.d.ts +1 -0
- package/dist/src/containers/Tenant/Tenant.js +20 -36
- package/dist/{containers → src/containers}/Tenant/Tenant.scss +4 -0
- package/dist/src/containers/Tenant/TenantNavigation/TenantNavigation.d.ts +2 -0
- package/dist/src/containers/Tenant/TenantNavigation/TenantNavigation.js +19 -0
- package/dist/src/containers/Tenant/TenantNavigation/TenantNavigation.scss +18 -0
- package/dist/src/containers/Tenant/TenantNavigation/useTenantNavigation.d.ts +9 -0
- package/dist/src/containers/Tenant/TenantNavigation/useTenantNavigation.js +44 -0
- package/dist/src/containers/Tenant/i18n/en.json +17 -0
- package/dist/src/containers/Tenant/i18n/index.d.ts +1 -1
- package/dist/src/containers/Tenant/utils/queryTemplates.d.ts +1 -0
- package/dist/src/containers/Tenant/utils/queryTemplates.js +12 -0
- package/dist/src/containers/Tenant/utils/schema.d.ts +1 -1
- package/dist/src/containers/Tenant/utils/schema.js +5 -6
- package/dist/src/containers/Tenant/utils/schemaActions.js +3 -1
- package/dist/src/lib.d.ts +3 -2
- package/dist/src/lib.js +2 -2
- package/dist/src/routes.d.ts +1 -1
- package/dist/src/routes.js +3 -1
- package/dist/src/services/api.d.ts +6 -1
- package/dist/src/services/api.js +23 -3
- package/dist/src/services/settings.d.ts +1 -0
- package/dist/src/services/settings.js +3 -2
- package/dist/src/store/configureStore.d.ts +36 -134
- package/dist/src/store/configureStore.js +2 -15
- package/dist/src/store/defaultStore.d.ts +17 -81
- package/dist/src/store/reducers/api.js +0 -1
- package/dist/src/store/reducers/authentication/authentication.d.ts +51 -243
- package/dist/src/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +196 -849
- package/dist/src/store/reducers/healthcheckInfo/healthcheckInfo.js +3 -3
- package/dist/src/store/reducers/hotKeys/hotKeys.d.ts +6 -25
- package/dist/src/store/reducers/hotKeys/hotKeys.js +36 -49
- package/dist/src/store/reducers/index.d.ts +23 -100
- package/dist/src/store/reducers/index.js +0 -8
- package/dist/src/store/reducers/node/selectors.d.ts +0 -40
- package/dist/src/store/reducers/nodesList.d.ts +0 -40
- package/dist/src/store/reducers/schema/schema.d.ts +13 -149
- package/dist/src/store/reducers/schema/schema.js +45 -90
- package/dist/src/store/reducers/schema/types.d.ts +2 -21
- package/dist/src/store/reducers/schemaAcl/schemaAcl.d.ts +8 -135
- package/dist/src/store/reducers/schemaAcl/schemaAcl.js +18 -44
- package/dist/src/store/reducers/settings/settings.d.ts +17 -23
- package/dist/src/store/reducers/settings/settings.js +40 -33
- package/dist/src/store/reducers/settings/types.d.ts +1 -12
- package/dist/src/store/reducers/tablets.d.ts +288 -41
- package/dist/src/store/reducers/tablets.js +8 -4
- package/dist/src/store/reducers/tabletsFilters.d.ts +11 -164
- package/dist/src/store/reducers/tabletsFilters.js +14 -76
- package/dist/src/store/reducers/tenants/selectors.d.ts +8 -362
- package/dist/src/store/reducers/topic.d.ts +0 -600
- package/dist/src/store/state-url-mapping.js +0 -3
- package/dist/src/types/api/tenant.d.ts +1 -7
- package/dist/src/types/api/tenant.js +0 -8
- package/dist/src/utils/__test__/monitoring.test.js +1 -1
- package/dist/src/utils/constants.d.ts +1 -1
- package/dist/src/utils/constants.js +1 -1
- package/dist/src/utils/dataFormatters/dataFormatters.d.ts +2 -1
- package/dist/src/utils/dataFormatters/dataFormatters.js +7 -3
- package/dist/src/utils/hooks/index.d.ts +1 -0
- package/dist/src/utils/hooks/index.js +1 -0
- package/dist/src/utils/hooks/useAutoRefreshInterval.d.ts +1 -0
- package/dist/src/utils/hooks/useAutoRefreshInterval.js +5 -0
- package/dist/src/utils/monitoring.d.ts +2 -1
- package/dist/src/utils/monitoring.js +1 -4
- package/dist/src/utils/utils.js +2 -1
- package/package.json +4 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/Healthcheck.scss +0 -109
- package/dist/src/components/InfoViewer/schemaOverview/CDCStreamOverview.d.ts +0 -6
- package/dist/src/components/InfoViewer/schemaOverview/CDCStreamOverview.js +0 -17
- package/dist/src/components/InfoViewer/schemaOverview/PersQueueGroupOverview.d.ts +0 -6
- package/dist/src/components/InfoViewer/schemaOverview/PersQueueGroupOverview.js +0 -20
- package/dist/src/components/InfoViewer/schemaOverview/index.d.ts +0 -2
- package/dist/src/components/InfoViewer/schemaOverview/index.js +0 -2
- package/dist/src/containers/AsideNavigation/i18n/ru.json +0 -10
- package/dist/src/containers/AsideNavigation/useNavigationMenuItems.d.ts +0 -2
- package/dist/src/containers/AsideNavigation/useNavigationMenuItems.js +0 -54
- package/dist/src/store/reducers/host.d.ts +0 -130
- package/dist/src/store/reducers/host.js +0 -26
- package/dist/src/store/reducers/hotKeys/types.d.ts +0 -10
- package/dist/src/store/reducers/hotKeys/types.js +0 -1
- package/dist/src/store/reducers/schemaAcl/types.d.ts +0 -12
- package/dist/src/store/reducers/schemaAcl/types.js +0 -1
- package/dist/src/types/store/host.d.ts +0 -15
- package/dist/src/types/store/host.js +0 -1
- package/dist/styles/constants.scss +0 -9
- /package/dist/{assets → src/assets}/icons/cluster.svg +0 -0
- /package/dist/{assets → src/assets}/icons/databases.svg +0 -0
- /package/dist/{assets → src/assets}/icons/disableFullscreen.svg +0 -0
- /package/dist/{assets → src/assets}/icons/emptyState.svg +0 -0
- /package/dist/{assets → src/assets}/icons/key.svg +0 -0
- /package/dist/{assets → src/assets}/icons/monitoring.svg +0 -0
- /package/dist/{assets → src/assets}/icons/network.svg +0 -0
- /package/dist/{assets → src/assets}/icons/user-check.svg +0 -0
- /package/dist/{assets → src/assets}/icons/user-secret.svg +0 -0
- /package/dist/{assets → src/assets}/icons/ydb.svg +0 -0
- /package/dist/{assets → src/assets}/illustrations/dark/403.svg +0 -0
- /package/dist/{assets → src/assets}/illustrations/dark/error.svg +0 -0
- /package/dist/{assets → src/assets}/illustrations/dark/thumbsUp.svg +0 -0
- /package/dist/{assets → src/assets}/illustrations/light/403.svg +0 -0
- /package/dist/{assets → src/assets}/illustrations/light/error.svg +0 -0
- /package/dist/{assets → src/assets}/illustrations/light/thumbsUp.svg +0 -0
- /package/dist/{components → src/components}/BasicNodeViewer/BasicNodeViewer.scss +0 -0
- /package/dist/{components → src/components}/CellWithPopover/CellWithPopover.scss +0 -0
- /package/dist/{components → src/components}/CircularProgressBar/CircularProgressBar.scss +0 -0
- /package/dist/{components → src/components}/CriticalActionDialog/CriticalActionDialog.scss +0 -0
- /package/dist/{components → src/components}/DateRange/DateRange.scss +0 -0
- /package/dist/{components → src/components}/DiagnosticCard/DiagnosticCard.scss +0 -0
- /package/dist/{components → src/components}/DiskPageTitle/DiskPageTitle.scss +0 -0
- /package/dist/{components → src/components}/DiskStateProgressBar/DiskStateProgressBar.scss +0 -0
- /package/dist/{components → src/components}/Divider/Divider.scss +0 -0
- /package/dist/{components → src/components}/EmptyState/EmptyState.scss +0 -0
- /package/dist/{components → src/components}/EntityStatus/EntityStatus.scss +0 -0
- /package/dist/{components → src/components}/ErrorBoundary/ErrorBoundary.scss +0 -0
- /package/dist/{components → src/components}/FullNodeViewer/FullNodeViewer.scss +0 -0
- /package/dist/{components → src/components}/Fullscreen/Fullscreen.scss +0 -0
- /package/dist/{components → src/components}/InfoViewer/InfoViewer.scss +0 -0
- /package/dist/{components → src/components}/InfoViewerSkeleton/InfoViewerSkeleton.scss +0 -0
- /package/dist/{components → src/components}/LagPopoverContent/LagPopoverContent.scss +0 -0
- /package/dist/{components → src/components}/LinkWithIcon/LinkWithIcon.scss +0 -0
- /package/dist/{components → src/components}/Loader/Loader.scss +0 -0
- /package/dist/{components → src/components}/MetricChart/MetricChart.scss +0 -0
- /package/dist/{components → src/components}/MonitoringButton/MonitoringButton.scss +0 -0
- /package/dist/{components → src/components}/NodeHostWrapper/NodeHostWrapper.scss +0 -0
- /package/dist/{components → src/components}/PDiskInfo/PDiskInfo.scss +0 -0
- /package/dist/{components → src/components}/PDiskPopup/PDiskPopup.scss +0 -0
- /package/dist/{components → src/components}/PageMeta/PageMeta.scss +0 -0
- /package/dist/{components → src/components}/PoolBar/PoolBar.scss +0 -0
- /package/dist/{components → src/components}/PoolUsage/PoolUsage.scss +0 -0
- /package/dist/{components → src/components}/PoolsGraph/PoolsGraph.scss +0 -0
- /package/dist/{components → src/components}/ProgressViewer/ProgressViewer.scss +0 -0
- /package/dist/{components → src/components}/QueryExecutionStatus/QueryExecutionStatus.scss +0 -0
- /package/dist/{components → src/components}/QueryResultTable/QueryResultTable.scss +0 -0
- /package/dist/{components → src/components}/ResizeableDataTable/ResizeableDataTable.scss +0 -0
- /package/dist/{components → src/components}/Search/Search.scss +0 -0
- /package/dist/{components → src/components}/ShortyString/ShortyString.scss +0 -0
- /package/dist/{components → src/components}/SpeedMultiMeter/SpeedMultiMeter.scss +0 -0
- /package/dist/{components → src/components}/SplitPane/SplitPane.scss +0 -0
- /package/dist/{components → src/components}/Stack/Stack.scss +0 -0
- /package/dist/{components → src/components}/StatusIcon/StatusIcon.scss +0 -0
- /package/dist/{components → src/components}/TableSkeleton/TableSkeleton.scss +0 -0
- /package/dist/{components → src/components}/TableWithControlsLayout/TableWithControlsLayout.scss +0 -0
- /package/dist/{components → src/components}/Tablet/Tablet.scss +0 -0
- /package/dist/{components → src/components}/TabletIcon/TabletIcon.scss +0 -0
- /package/dist/{components → src/components}/TabletsOverall/TabletsOverall.scss +0 -0
- /package/dist/{components → src/components}/TabletsStatistic/TabletsStatistic.scss +0 -0
- /package/dist/{components → src/components}/Tag/Tag.scss +0 -0
- /package/dist/{components → src/components}/Tags/Tags.scss +0 -0
- /package/dist/{components → src/components}/TimeFrameSelector/TimeFrameSelector.scss +0 -0
- /package/dist/{components → src/components}/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.scss +0 -0
- /package/dist/{components → src/components}/TruncatedQuery/TruncatedQuery.scss +0 -0
- /package/dist/{components → src/components}/UsageLabel/UsageLabel.scss +0 -0
- /package/dist/{components → src/components}/User/User.scss +0 -0
- /package/dist/{components → src/components}/VDisk/VDisk.scss +0 -0
- /package/dist/{components → src/components}/VDiskInfo/VDiskInfo.scss +0 -0
- /package/dist/{components → src/components}/VDiskPopup/VDiskPopup.scss +0 -0
- /package/dist/{components → src/components}/VirtualTable/VirtualTable.scss +0 -0
- /package/dist/{containers → src/containers}/AppWithClusters/ExtendedCluster/ExtendedCluster.scss +0 -0
- /package/dist/{containers → src/containers}/AsideNavigation/AsideNavigation.scss +0 -0
- /package/dist/{containers → src/containers}/AsideNavigation/YdbInternalUser/YdbInternalUser.scss +0 -0
- /package/dist/{containers → src/containers}/Authentication/Authentication.scss +0 -0
- /package/dist/{containers → src/containers}/Cluster/Cluster.scss +0 -0
- /package/dist/{containers → src/containers}/Cluster/ClusterInfo/ClusterInfo.scss +0 -0
- /package/dist/{containers → src/containers}/Cluster/VersionsBar/VersionsBar.scss +0 -0
- /package/dist/{containers → src/containers}/Clusters/Clusters.scss +0 -0
- /package/dist/{containers → src/containers}/Heatmap/Heatmap.scss +0 -0
- /package/dist/{containers → src/containers}/Heatmap/Histogram/Histogram.scss +0 -0
- /package/dist/{containers → src/containers}/Node/Node.scss +0 -0
- /package/dist/{containers → src/containers}/Node/NodeStructure/NodeStructure.scss +0 -0
- /package/dist/{containers → src/containers}/Nodes/Nodes.scss +0 -0
- /package/dist/{containers → src/containers}/PDiskPage/PDiskPage.scss +0 -0
- /package/dist/{containers → src/containers}/ReduxTooltip/ReduxTooltip.scss +0 -0
- /package/dist/{containers → src/containers}/Storage/PDisk/PDisk.scss +0 -0
- /package/dist/{containers → src/containers}/Storage/Storage.scss +0 -0
- /package/dist/{containers → src/containers}/Storage/StorageGroups/StorageGroups.scss +0 -0
- /package/dist/{containers → src/containers}/Storage/StorageNodes/StorageNodes.scss +0 -0
- /package/dist/{containers → src/containers}/Storage/UsageFilter/UsageFilter.scss +0 -0
- /package/dist/{containers → src/containers}/Tablet/Tablet.scss +0 -0
- /package/dist/{containers → src/containers}/TabletsFilters/TabletsFilters.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Acl/Acl.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Autorefresh/AutorefreshControl.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Consumers/Consumers.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Consumers/Headers/Headers.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Consumers/TopicStats/ConsumersTopicStats.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Consumers/columns/Columns.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Describe/Describe.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/DetailedOverview/DetailedOverview.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/HotKeys/HotKeys.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Network/Network.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Network/NodeNetwork/NodeNetwork.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Overview/AsyncReplicationPaths/AsyncReplicationPaths.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Overview/TopicStats/TopicStats.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Partitions/Headers/Headers.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Partitions/Partitions.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/Partitions/columns/Columns.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/TenantOverview/Healthcheck/IssuesViewer/IssueTree.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/TenantOverview/Healthcheck/IssuesViewer/IssueTreeItem/IssueTreeItem.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricCard/MetricCard.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricsCards.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/TenantOverview/TenantDashboard/TenantDashboard.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/TenantOverview/TenantOverview.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/TopQueries/TopQueries.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Diagnostics/TopShards/TopShards.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Info/ExternalDataSource/ExternalDataSource.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Info/ExternalTable/ExternalTable.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Info/View/View.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/ObjectGeneral/ObjectGeneral.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/ObjectSummary/ObjectSummary.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Query/ExecuteResult/ExecuteResult.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Query/ExplainResult/ExplainResult.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Query/Issues/Issues.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Query/Preview/Preview.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Query/QueriesHistory/QueriesHistory.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Query/QueryDuration/QueryDuration.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Query/QueryEditor/QueryEditor.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Query/QueryEditorControls/QueryEditorControls.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Query/SaveQuery/SaveQuery.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Query/SavedQueries/SavedQueries.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/Schema/SchemaViewer/SchemaViewer.scss +0 -0
- /package/dist/{containers → src/containers}/Tenant/utils/ToggleButton.scss +0 -0
- /package/dist/{containers → src/containers}/Tenants/Tenants.scss +0 -0
- /package/dist/{containers → src/containers}/UserSettings/UserSettings.scss +0 -0
- /package/dist/{containers → src/containers}/VDiskPage/VDiskPage.scss +0 -0
- /package/dist/{containers → src/containers}/Versions/GroupedNodesTree/GroupedNodesTree.scss +0 -0
- /package/dist/{containers → src/containers}/Versions/NodesTreeTitle/NodesTreeTitle.scss +0 -0
- /package/dist/{containers → src/containers}/Versions/Versions.scss +0 -0
- /package/dist/{index.css → src/index.css} +0 -0
- /package/dist/{styles → src/styles}/mixins.scss +0 -0
- /package/dist/{styles → src/styles}/themes/dark-hc.scss +0 -0
- /package/dist/{styles → src/styles}/themes/dark.scss +0 -0
- /package/dist/{styles → src/styles}/themes/light-hc.scss +0 -0
- /package/dist/{styles → src/styles}/themes/light.scss +0 -0
- /package/dist/{styles → src/styles}/themes.scss +0 -0
package/dist/package.json
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"name": "ydb-embedded-ui",
|
3
|
-
"version": "6.
|
3
|
+
"version": "6.7.0",
|
4
4
|
"files": [
|
5
5
|
"dist"
|
6
6
|
],
|
7
|
-
"main": "dist/lib.js",
|
7
|
+
"main": "dist/src/lib.js",
|
8
8
|
"repository": {
|
9
9
|
"type": "git",
|
10
10
|
"url": "git@github.com:ydb-platform/ydb-embedded-ui.git"
|
@@ -24,6 +24,7 @@
|
|
24
24
|
"@gravity-ui/websql-autocomplete": "^9.1.0",
|
25
25
|
"@reduxjs/toolkit": "^2.2.3",
|
26
26
|
"axios": "^1.6.8",
|
27
|
+
"axios-retry": "^4.4.0",
|
27
28
|
"colord": "^2.9.3",
|
28
29
|
"copy-to-clipboard": "^3.3.3",
|
29
30
|
"crc-32": "^1.2.2",
|
@@ -65,7 +66,7 @@
|
|
65
66
|
"lint:other": "npm run prettier -- --check",
|
66
67
|
"prettier": "prettier '**/*.{json,yaml,yml,md}'",
|
67
68
|
"unimported": "npx unimported --no-cache",
|
68
|
-
"package": "rm -rf dist && tsc -p tsconfig.package.json && copyfiles -u 1 'src/**/*.{css,scss,svg}' dist",
|
69
|
+
"package": "rm -rf dist && tsc -p tsconfig.package.json && copyfiles -u 1 'src/**/*.{css,scss,svg}' dist/src",
|
69
70
|
"test": "react-app-rewired test",
|
70
71
|
"eject": "react-scripts eject",
|
71
72
|
"prepublishOnly": "npm run package",
|
@@ -13,9 +13,9 @@ export interface AppProps {
|
|
13
13
|
declare function App({ store, history, singleClusterMode, children, userSettings }: AppProps): import("react/jsx-runtime").JSX.Element;
|
14
14
|
declare const _default: import("react-redux").ConnectedComponent<typeof App, {
|
15
15
|
history: History<unknown>;
|
16
|
+
userSettings?: YDBEmbeddedUISettings | undefined;
|
16
17
|
store: Store<any, import("redux").UnknownAction, unknown>;
|
17
18
|
children?: React.ReactNode;
|
18
|
-
userSettings?: YDBEmbeddedUISettings | undefined;
|
19
19
|
context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").UnknownAction> | null> | undefined;
|
20
20
|
}>;
|
21
21
|
export default _default;
|
@@ -28,6 +28,11 @@ body,
|
|
28
28
|
:root {
|
29
29
|
--g-color-base-yellow-light: rgba(255, 199, 0, 0.15);
|
30
30
|
--g-color-base-yellow-medium: rgba(255, 219, 77, 0.4);
|
31
|
+
|
32
|
+
--tenant-object-info-max-value-width: 300px;
|
33
|
+
--diagnostics-section-title-margin: 20px;
|
34
|
+
--diagnostics-section-margin: 30px;
|
35
|
+
--diagnostics-section-table-width: 872px;
|
31
36
|
}
|
32
37
|
|
33
38
|
.g-root {
|
@@ -16,7 +16,7 @@ import Header from '../Header/Header';
|
|
16
16
|
import Node from '../Node/Node';
|
17
17
|
import { PDiskPage } from '../PDiskPage/PDiskPage';
|
18
18
|
import { Tablet } from '../Tablet';
|
19
|
-
import TabletsFilters from '../TabletsFilters/TabletsFilters';
|
19
|
+
import { TabletsFilters } from '../TabletsFilters/TabletsFilters';
|
20
20
|
import Tenant from '../Tenant/Tenant';
|
21
21
|
import { VDiskPage } from '../VDiskPage/VDiskPage';
|
22
22
|
import { ClusterSlot, ClustersSlot, NodeSlot, PDiskPageSlot, RedirectSlot, RoutesSlot, TabletSlot, TabletsFiltersSlot, TenantSlot, VDiskPageSlot, } from './appSlots';
|
@@ -5,7 +5,7 @@ import type { Clusters } from '../Clusters/Clusters';
|
|
5
5
|
import type Node from '../Node/Node';
|
6
6
|
import type { PDiskPage } from '../PDiskPage/PDiskPage';
|
7
7
|
import type { Tablet } from '../Tablet';
|
8
|
-
import type TabletsFilters from '../TabletsFilters/TabletsFilters';
|
8
|
+
import type { TabletsFilters } from '../TabletsFilters/TabletsFilters';
|
9
9
|
import type Tenant from '../Tenant/Tenant';
|
10
10
|
import type { VDiskPage } from '../VDiskPage/VDiskPage';
|
11
11
|
export declare const ClustersSlot: import("../../components/slots/types").SlotComponent<{
|
@@ -2,9 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useComponent } from '../../components/ComponentsProvider/ComponentsProvider';
|
3
3
|
import { UserSettings } from '../UserSettings/UserSettings';
|
4
4
|
import { YdbInternalUser } from './YdbInternalUser/YdbInternalUser';
|
5
|
-
import { useNavigationMenuItems } from './useNavigationMenuItems';
|
6
5
|
export function Navigation({ children, userSettings }) {
|
7
6
|
const AsideNavigation = useComponent('AsideNavigation');
|
8
|
-
|
9
|
-
return (_jsx(AsideNavigation, { settings: _jsx(UserSettings, { settings: userSettings }), menuItems: menuItems, ydbInternalUser: _jsx(YdbInternalUser, {}), content: children }));
|
7
|
+
return (_jsx(AsideNavigation, { settings: _jsx(UserSettings, { settings: userSettings }), ydbInternalUser: _jsx(YdbInternalUser, {}), content: children }));
|
10
8
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
declare const _default: (key: "
|
1
|
+
declare const _default: (key: "navigation-item.documentation" | "navigation-item.settings" | "navigation-item.account" | "account.user" | "account.login" | "account.logout", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
2
2
|
export default _default;
|
@@ -1,2 +1,2 @@
|
|
1
|
-
declare const _default: (key: "nodes" | "tablets" | "versions" | "
|
1
|
+
declare const _default: (key: "nodes" | "tablets" | "versions" | "load" | "links" | "disk-type" | "erasure" | "allocated" | "available" | "usage" | "dc" | "databases" | "storage-size" | "storage-groups", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
2
2
|
export default _default;
|
@@ -14,7 +14,7 @@ export declare const COLUMNS_NAMES: {
|
|
14
14
|
readonly DESCRIPTION: "description";
|
15
15
|
readonly BALANCER: "balancer";
|
16
16
|
};
|
17
|
-
export declare const DEFAULT_COLUMNS: ("nodes" | "storage" | "status" | "tenants" | "versions" | "service" | "
|
17
|
+
export declare const DEFAULT_COLUMNS: ("nodes" | "storage" | "status" | "tenants" | "versions" | "service" | "load" | "hosts" | "balancer" | "title" | "owner")[];
|
18
18
|
export declare const COLUMNS_TITLES: {
|
19
19
|
readonly title: "Cluster";
|
20
20
|
readonly versions: "Versions";
|
@@ -1,7 +1,9 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
2
|
import React from 'react';
|
3
3
|
import { Breadcrumbs } from '@gravity-ui/uikit';
|
4
|
+
import { get } from 'lodash';
|
4
5
|
import { useHistory, useLocation } from 'react-router';
|
6
|
+
import { InternalLink } from '../../components/InternalLink';
|
5
7
|
import { LinkWithIcon } from '../../components/LinkWithIcon/LinkWithIcon';
|
6
8
|
import { parseQuery } from '../../routes';
|
7
9
|
import { backend, customBackend } from '../../store';
|
@@ -19,41 +21,35 @@ const getInternalLink = (singleClusterMode) => {
|
|
19
21
|
return backend + '/internal';
|
20
22
|
};
|
21
23
|
function Header({ mainPage }) {
|
22
|
-
var _a;
|
23
24
|
const history = useHistory();
|
24
25
|
const location = useLocation();
|
26
|
+
const queryParams = parseQuery(location);
|
25
27
|
const singleClusterMode = useTypedSelector((state) => state.singleClusterMode);
|
26
28
|
const { page, pageBreadcrumbsOptions } = useTypedSelector((state) => state.header);
|
27
|
-
const
|
28
|
-
const
|
29
|
-
const { currentData: { clusterData: data } = {} } = clusterApi.useGetClusterInfoQuery(clusterNameFromQuery);
|
30
|
-
const clusterNameFinal = (data === null || data === void 0 ? void 0 : data.Name) || clusterNameFromQuery;
|
29
|
+
const clusterInfo = clusterApi.useGetClusterInfoQuery(queryParams.clusterName);
|
30
|
+
const clusterName = get(clusterInfo, ['currentData', 'clusterData', 'Name'], queryParams.clusterName);
|
31
31
|
const breadcrumbItems = React.useMemo(() => {
|
32
32
|
const rawBreadcrumbs = [];
|
33
|
-
|
33
|
+
const options = pageBreadcrumbsOptions;
|
34
34
|
if (mainPage) {
|
35
35
|
rawBreadcrumbs.push(mainPage);
|
36
36
|
}
|
37
|
-
if (
|
38
|
-
options =
|
37
|
+
if (clusterName) {
|
38
|
+
options.clusterName = clusterName;
|
39
39
|
}
|
40
40
|
const breadcrumbs = getBreadcrumbs(page, options, rawBreadcrumbs, queryParams);
|
41
41
|
return breadcrumbs.map((item) => {
|
42
|
-
|
43
|
-
if (item.link) {
|
44
|
-
history.push(item.link);
|
45
|
-
}
|
46
|
-
};
|
47
|
-
return Object.assign(Object.assign({}, item), { action });
|
42
|
+
return Object.assign(Object.assign({}, item), { action: () => { } });
|
48
43
|
});
|
49
|
-
}, [
|
44
|
+
}, [clusterName, mainPage, history, queryParams, page, pageBreadcrumbsOptions]);
|
50
45
|
const renderHeader = () => {
|
51
|
-
return (_jsxs("header", { className: b(), children: [_jsx(
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
46
|
+
return (_jsxs("header", { className: b(), children: [_jsx(Breadcrumbs, { items: breadcrumbItems, lastDisplayedItemsCount: 1, firstDisplayedItemsCount: 1, className: b('breadcrumbs'), renderItem: ({ item, isCurrent }) => {
|
47
|
+
const { icon, text, link } = item;
|
48
|
+
return (_jsxs(InternalLink, { className: b('breadcrumbs-item', {
|
49
|
+
active: isCurrent,
|
50
|
+
link: !isCurrent,
|
51
|
+
}), to: isCurrent ? undefined : link, children: [icon ? (_jsx("span", { className: b('breadcrumbs-icon'), children: icon })) : null, _jsx("span", { children: text })] }));
|
52
|
+
} }), _jsx(LinkWithIcon, { title: DEVELOPER_UI_TITLE, url: getInternalLink(singleClusterMode) })] }));
|
57
53
|
};
|
58
54
|
return renderHeader();
|
59
55
|
}
|
@@ -10,14 +10,23 @@
|
|
10
10
|
|
11
11
|
border-bottom: 1px solid var(--g-color-line-generic);
|
12
12
|
|
13
|
-
&
|
13
|
+
&__breadcrumbs-item {
|
14
14
|
display: flex;
|
15
|
-
|
15
|
+
gap: 3px;
|
16
|
+
|
17
|
+
color: var(--g-color-text-secondary);
|
16
18
|
|
17
|
-
&
|
18
|
-
|
19
|
+
&_link:hover {
|
20
|
+
color: var(--g-color-text-complementary);
|
21
|
+
}
|
19
22
|
|
20
|
-
|
23
|
+
&_active {
|
24
|
+
color: var(--g-color-text-primary);
|
21
25
|
}
|
22
26
|
}
|
27
|
+
|
28
|
+
&__breadcrumbs-icon {
|
29
|
+
display: flex;
|
30
|
+
align-items: center;
|
31
|
+
}
|
23
32
|
}
|
@@ -11,6 +11,10 @@ import { headerKeyset } from './i18n';
|
|
11
11
|
const prepareTenantName = (tenantName) => {
|
12
12
|
return tenantName.startsWith('/') ? tenantName.slice(1) : tenantName;
|
13
13
|
};
|
14
|
+
const getQueryForTenant = (type) => ({
|
15
|
+
[TENANT_PAGE]: TENANT_PAGES_IDS.diagnostics,
|
16
|
+
[TenantTabsGroups.diagnosticsTab]: TENANT_DIAGNOSTICS_TABS_IDS[type],
|
17
|
+
});
|
14
18
|
const getClusterBreadcrumbs = (options, query = {}) => {
|
15
19
|
const { clusterName, clusterTab } = options;
|
16
20
|
return [
|
@@ -23,109 +27,99 @@ const getClusterBreadcrumbs = (options, query = {}) => {
|
|
23
27
|
};
|
24
28
|
const getTenantBreadcrumbs = (options, query = {}) => {
|
25
29
|
const { tenantName } = options;
|
30
|
+
const breadcrumbs = getClusterBreadcrumbs(options, query);
|
26
31
|
const text = tenantName ? prepareTenantName(tenantName) : headerKeyset('breadcrumbs.tenant');
|
27
32
|
const link = tenantName ? getTenantPath(Object.assign(Object.assign({}, query), { name: tenantName })) : undefined;
|
28
|
-
|
33
|
+
const lastItem = { text, link, icon: _jsx(DatabaseIcon, {}) };
|
34
|
+
breadcrumbs.push(lastItem);
|
35
|
+
return breadcrumbs;
|
29
36
|
};
|
30
37
|
const getNodeBreadcrumbs = (options, query = {}) => {
|
31
38
|
const { tenantName, nodeId } = options;
|
32
|
-
let breadcrumbs;
|
33
39
|
// Compute nodes have tenantName, storage nodes doesn't
|
34
|
-
const
|
35
|
-
const
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
40
|
+
const isStorage = !tenantName;
|
41
|
+
const tenantQuery = getQueryForTenant('nodes');
|
42
|
+
const breadcrumbs = isStorage
|
43
|
+
? getClusterBreadcrumbs(options, query)
|
44
|
+
: getTenantBreadcrumbs(options, Object.assign(Object.assign({}, query), tenantQuery));
|
45
|
+
let text = headerKeyset('breadcrumbs.node');
|
46
|
+
if (nodeId) {
|
47
|
+
text += ` ${nodeId}`;
|
41
48
|
}
|
42
|
-
const
|
43
|
-
? `${headerKeyset('breadcrumbs.node')} ${nodeId}`
|
44
|
-
: headerKeyset('breadcrumbs.node');
|
45
|
-
const link = nodeId ? getDefaultNodePath(nodeId, query) : undefined;
|
46
|
-
const icon = isStorageNode ? _jsx(StorageNodeIcon, {}) : _jsx(ComputeNodeIcon, {});
|
47
|
-
breadcrumbs.push({
|
49
|
+
const lastItem = {
|
48
50
|
text,
|
49
|
-
link,
|
50
|
-
icon,
|
51
|
-
}
|
51
|
+
link: nodeId ? getDefaultNodePath(nodeId, query) : undefined,
|
52
|
+
icon: isStorage ? _jsx(StorageNodeIcon, {}) : _jsx(ComputeNodeIcon, {}),
|
53
|
+
};
|
54
|
+
breadcrumbs.push(lastItem);
|
52
55
|
return breadcrumbs;
|
53
56
|
};
|
54
57
|
const getPDiskBreadcrumbs = (options, query = {}) => {
|
55
58
|
const { nodeId, pDiskId } = options;
|
56
59
|
const breadcrumbs = getNodeBreadcrumbs({
|
57
|
-
|
58
|
-
tenantName: undefined,
|
59
|
-
nodeId: nodeId,
|
60
|
+
nodeId,
|
60
61
|
});
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
62
|
+
let text = headerKeyset('breadcrumbs.pDisk');
|
63
|
+
if (pDiskId) {
|
64
|
+
text += ` ${pDiskId}`;
|
65
|
+
}
|
66
|
+
const hasLink = pDiskId && nodeId;
|
67
|
+
const link = hasLink ? getPDiskPagePath(pDiskId, nodeId, query) : undefined;
|
68
|
+
const lastItem = {
|
66
69
|
text,
|
67
70
|
link,
|
68
|
-
}
|
71
|
+
};
|
72
|
+
breadcrumbs.push(lastItem);
|
69
73
|
return breadcrumbs;
|
70
74
|
};
|
71
75
|
const getVDiskBreadcrumbs = (options, query = {}) => {
|
72
76
|
const { vDiskSlotId } = options;
|
73
77
|
const breadcrumbs = getPDiskBreadcrumbs(options, query);
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
+
let text = headerKeyset('breadcrumbs.vDisk');
|
79
|
+
if (vDiskSlotId) {
|
80
|
+
text += ` ${vDiskSlotId}`;
|
81
|
+
}
|
82
|
+
const lastItem = {
|
83
|
+
text,
|
84
|
+
};
|
85
|
+
breadcrumbs.push(lastItem);
|
78
86
|
return breadcrumbs;
|
79
87
|
};
|
80
|
-
const
|
88
|
+
const getTabletsBreadcrumbs = (options, query = {}) => {
|
81
89
|
const { tenantName, nodeIds } = options;
|
82
|
-
const
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
breadcrumbs = getTenantBreadcrumbs(options, newQuery);
|
87
|
-
}
|
88
|
-
else {
|
89
|
-
breadcrumbs = getClusterBreadcrumbs(options, query);
|
90
|
-
}
|
90
|
+
const tenantQuery = getQueryForTenant('tablets');
|
91
|
+
const breadcrumbs = tenantName
|
92
|
+
? getTenantBreadcrumbs(options, Object.assign(Object.assign({}, query), tenantQuery))
|
93
|
+
: getClusterBreadcrumbs(options, query);
|
91
94
|
const link = createHref(routes.tabletsFilters, undefined, Object.assign(Object.assign({}, query), { nodeIds, path: tenantName }));
|
92
|
-
|
95
|
+
const lastItem = { text: headerKeyset('breadcrumbs.tablets'), link };
|
96
|
+
breadcrumbs.push(lastItem);
|
93
97
|
return breadcrumbs;
|
94
98
|
};
|
95
|
-
const
|
99
|
+
const getTabletBreadcrumbs = (options, query = {}) => {
|
96
100
|
const { tabletId, tabletType } = options;
|
97
|
-
const breadcrumbs =
|
98
|
-
|
101
|
+
const breadcrumbs = getTabletsBreadcrumbs(options, query);
|
102
|
+
const lastItem = {
|
99
103
|
text: tabletId || headerKeyset('breadcrumbs.tablet'),
|
100
104
|
icon: _jsx(TabletIcon, { text: getTabletLabel(tabletType) }),
|
101
|
-
}
|
105
|
+
};
|
106
|
+
breadcrumbs.push(lastItem);
|
102
107
|
return breadcrumbs;
|
103
108
|
};
|
109
|
+
const mapPageToGetter = {
|
110
|
+
cluster: getClusterBreadcrumbs,
|
111
|
+
node: getNodeBreadcrumbs,
|
112
|
+
pDisk: getPDiskBreadcrumbs,
|
113
|
+
tablet: getTabletBreadcrumbs,
|
114
|
+
tablets: getTabletsBreadcrumbs,
|
115
|
+
tenant: getTenantBreadcrumbs,
|
116
|
+
vDisk: getVDiskBreadcrumbs,
|
117
|
+
};
|
104
118
|
export const getBreadcrumbs = (page, options, rawBreadcrumbs = [], query = {}) => {
|
105
|
-
|
106
|
-
|
107
|
-
return [...rawBreadcrumbs, ...getClusterBreadcrumbs(options, query)];
|
108
|
-
}
|
109
|
-
case 'tenant': {
|
110
|
-
return [...rawBreadcrumbs, ...getTenantBreadcrumbs(options, query)];
|
111
|
-
}
|
112
|
-
case 'node': {
|
113
|
-
return [...rawBreadcrumbs, ...getNodeBreadcrumbs(options, query)];
|
114
|
-
}
|
115
|
-
case 'pDisk': {
|
116
|
-
return [...rawBreadcrumbs, ...getPDiskBreadcrumbs(options, query)];
|
117
|
-
}
|
118
|
-
case 'vDisk': {
|
119
|
-
return [...rawBreadcrumbs, ...getVDiskBreadcrumbs(options, query)];
|
120
|
-
}
|
121
|
-
case 'tablets': {
|
122
|
-
return [...rawBreadcrumbs, ...getTabletsBreadcrubms(options, query)];
|
123
|
-
}
|
124
|
-
case 'tablet': {
|
125
|
-
return [...rawBreadcrumbs, ...getTabletBreadcrubms(options, query)];
|
126
|
-
}
|
127
|
-
default: {
|
128
|
-
return rawBreadcrumbs;
|
129
|
-
}
|
119
|
+
if (!page) {
|
120
|
+
return rawBreadcrumbs;
|
130
121
|
}
|
122
|
+
const getter = mapPageToGetter[page];
|
123
|
+
const pageBreadcrumbs = getter(options, query);
|
124
|
+
return [...rawBreadcrumbs, ...pageBreadcrumbs];
|
131
125
|
};
|
@@ -7,7 +7,7 @@ import { heatmapApi, setHeatmapOptions } from '../../store/reducers/heatmap';
|
|
7
7
|
import { hideTooltip, showTooltip } from '../../store/reducers/tooltip';
|
8
8
|
import { cn } from '../../utils/cn';
|
9
9
|
import { formatNumber } from '../../utils/dataFormatters/dataFormatters';
|
10
|
-
import { useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
10
|
+
import { useAutoRefreshInterval, useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
11
11
|
import { HeatmapCanvas } from './HeatmapCanvas/HeatmapCanvas';
|
12
12
|
import { Histogram } from './Histogram/Histogram';
|
13
13
|
import { COLORS_RANGE_SIZE, getColorIndex, getColorRange, getCurrentMetricLimits } from './util';
|
@@ -17,8 +17,8 @@ const COLORS_RANGE = getColorRange(COLORS_RANGE_SIZE);
|
|
17
17
|
export const Heatmap = ({ path }) => {
|
18
18
|
const dispatch = useTypedDispatch();
|
19
19
|
const itemsContainer = React.createRef();
|
20
|
-
const
|
21
|
-
const { currentData, isFetching, error } = heatmapApi.useGetHeatmapTabletsInfoQuery({ path }, { pollingInterval:
|
20
|
+
const [autoRefreshInterval] = useAutoRefreshInterval();
|
21
|
+
const { currentData, isFetching, error } = heatmapApi.useGetHeatmapTabletsInfoQuery({ path }, { pollingInterval: autoRefreshInterval });
|
22
22
|
const loading = isFetching && currentData === undefined;
|
23
23
|
const { tablets = [], metrics } = currentData || {};
|
24
24
|
const { sort, heatmap, currentMetric } = useTypedSelector((state) => state.heatmap);
|
@@ -14,10 +14,10 @@ import { TableWithControlsLayout } from '../../components/TableWithControlsLayou
|
|
14
14
|
import { UptimeFilter } from '../../components/UptimeFIlter';
|
15
15
|
import { nodesApi } from '../../store/reducers/nodes/nodes';
|
16
16
|
import { filterNodes } from '../../store/reducers/nodes/selectors';
|
17
|
-
import { ProblemFilterValues, changeFilter } from '../../store/reducers/settings/settings';
|
17
|
+
import { ProblemFilterValues, changeFilter, selectProblemFilter, } from '../../store/reducers/settings/settings';
|
18
18
|
import { cn } from '../../utils/cn';
|
19
19
|
import { DEFAULT_POLLING_INTERVAL, DEFAULT_TABLE_SETTINGS, USE_NODES_ENDPOINT_IN_DIAGNOSTICS_KEY, } from '../../utils/constants';
|
20
|
-
import { useSetting, useTableSort, useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
20
|
+
import { useAutoRefreshInterval, useSetting, useTableSort, useTypedDispatch, useTypedSelector, } from '../../utils/hooks';
|
21
21
|
import { NodesUptimeFilterValues, isSortableNodesProperty, isUnavailableNode, nodesUptimeFilterValuesSchema, } from '../../utils/nodes';
|
22
22
|
import { NODES_COLUMNS_WIDTH_LS_KEY, getNodesColumns } from './getNodesColumns';
|
23
23
|
import i18n from './i18n';
|
@@ -33,8 +33,8 @@ export const Nodes = ({ path, additionalNodesProps = {} }) => {
|
|
33
33
|
const searchValue = (_a = queryParams.search) !== null && _a !== void 0 ? _a : '';
|
34
34
|
const dispatch = useTypedDispatch();
|
35
35
|
const isClusterNodes = !path;
|
36
|
-
const problemFilter = useTypedSelector(
|
37
|
-
const
|
36
|
+
const problemFilter = useTypedSelector(selectProblemFilter);
|
37
|
+
const [autorefresh] = useAutoRefreshInterval();
|
38
38
|
const [useNodesEndpoint] = useSetting(USE_NODES_ENDPOINT_IN_DIAGNOSTICS_KEY);
|
39
39
|
const autoRefreshInterval = isClusterNodes ? DEFAULT_POLLING_INTERVAL : autorefresh;
|
40
40
|
// If there is no path, it's cluster Nodes tab
|
@@ -9,7 +9,7 @@ import { ProblemFilter } from '../../components/ProblemFilter';
|
|
9
9
|
import { Search } from '../../components/Search';
|
10
10
|
import { UptimeFilter } from '../../components/UptimeFIlter';
|
11
11
|
import { ResizeableVirtualTable } from '../../components/VirtualTable/ResizeableVirtualTable';
|
12
|
-
import { ProblemFilterValues, changeFilter } from '../../store/reducers/settings/settings';
|
12
|
+
import { ProblemFilterValues, changeFilter, selectProblemFilter, } from '../../store/reducers/settings/settings';
|
13
13
|
import { cn } from '../../utils/cn';
|
14
14
|
import { useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
15
15
|
import { NodesUptimeFilterValues, getProblemParamValue, getUptimeParamValue, isSortableNodesProperty, isUnavailableNode, nodesUptimeFilterValuesSchema, } from '../../utils/nodes';
|
@@ -27,7 +27,7 @@ export const VirtualNodes = ({ path, parentContainer, additionalNodesProps }) =>
|
|
27
27
|
const uptimeFilter = nodesUptimeFilterValuesSchema.parse(queryParams.uptimeFilter);
|
28
28
|
const searchValue = (_a = queryParams.search) !== null && _a !== void 0 ? _a : '';
|
29
29
|
const dispatch = useTypedDispatch();
|
30
|
-
const problemFilter = useTypedSelector(
|
30
|
+
const problemFilter = useTypedSelector(selectProblemFilter);
|
31
31
|
const filters = React.useMemo(() => {
|
32
32
|
return [path, searchValue, problemFilter, uptimeFilter];
|
33
33
|
}, [path, searchValue, problemFilter, uptimeFilter]);
|
@@ -11,7 +11,7 @@ import { filterGroups, filterNodes, getUsageFilterOptions, } from '../../store/r
|
|
11
11
|
import { storageApi } from '../../store/reducers/storage/storage';
|
12
12
|
import { storageTypeSchema, visibleEntitiesSchema } from '../../store/reducers/storage/types';
|
13
13
|
import { DEFAULT_POLLING_INTERVAL, DEFAULT_TABLE_SETTINGS } from '../../utils/constants';
|
14
|
-
import { useNodesRequestParams, useStorageRequestParams, useTableSort, useTypedSelector, } from '../../utils/hooks';
|
14
|
+
import { useAutoRefreshInterval, useNodesRequestParams, useStorageRequestParams, useTableSort, useTypedSelector, } from '../../utils/hooks';
|
15
15
|
import { NodesUptimeFilterValues, nodesUptimeFilterValuesSchema } from '../../utils/nodes';
|
16
16
|
import { StorageControls } from './StorageControls/StorageControls';
|
17
17
|
import { StorageGroups } from './StorageGroups/StorageGroups';
|
@@ -33,7 +33,7 @@ const UsageFilterParam = withDefault({
|
|
33
33
|
}, []);
|
34
34
|
export const Storage = ({ additionalNodesProps, tenant, nodeId }) => {
|
35
35
|
var _a;
|
36
|
-
const
|
36
|
+
const [autorefresh] = useAutoRefreshInterval();
|
37
37
|
const [queryParams, setQueryParams] = useQueryParams({
|
38
38
|
type: StringParam,
|
39
39
|
visible: StringParam,
|
@@ -14,7 +14,7 @@ import { ETabletState } from '../../types/api/tablet';
|
|
14
14
|
import { cn } from '../../utils/cn';
|
15
15
|
import { DEFAULT_TABLE_SETTINGS } from '../../utils/constants';
|
16
16
|
import { calcUptime } from '../../utils/dataFormatters/dataFormatters';
|
17
|
-
import { useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
17
|
+
import { useAutoRefreshInterval, useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
18
18
|
import { mapTabletStateToLabelTheme } from '../../utils/tablet';
|
19
19
|
import { getDefaultNodePath } from '../Node/NodePages';
|
20
20
|
import i18n from './i18n';
|
@@ -26,7 +26,7 @@ const columns = [
|
|
26
26
|
return i18n('Type');
|
27
27
|
},
|
28
28
|
render: ({ row }) => {
|
29
|
-
return (_jsxs("span", { children: [row.Type, " ", row.Leader ? _jsx(Text, { color: "secondary", children: "
|
29
|
+
return (_jsxs("span", { children: [row.Type, " ", row.Leader ? '' : _jsx(Text, { color: "secondary", children: "follower" })] }));
|
30
30
|
},
|
31
31
|
},
|
32
32
|
{
|
@@ -61,7 +61,7 @@ const columns = [
|
|
61
61
|
align: 'right',
|
62
62
|
},
|
63
63
|
{
|
64
|
-
name: '
|
64
|
+
name: 'fqdn',
|
65
65
|
get header() {
|
66
66
|
return i18n('Node FQDN');
|
67
67
|
},
|
@@ -111,8 +111,8 @@ function TabletActions(tablet) {
|
|
111
111
|
}, buttonDisabled: isDisabledRestart || !isUserAllowedToMakeChanges, withPopover: true, popoverContent: i18n('controls.kill-not-allowed'), popoverDisabled: isUserAllowedToMakeChanges, children: _jsx(Icon, { data: ArrowsRotateRight }) }));
|
112
112
|
}
|
113
113
|
export function Tablets({ nodeId, path, className }) {
|
114
|
-
const
|
115
|
-
let params =
|
114
|
+
const [autoRefreshInterval] = useAutoRefreshInterval();
|
115
|
+
let params = {};
|
116
116
|
const node = nodeId === undefined ? undefined : String(nodeId);
|
117
117
|
if (node !== undefined) {
|
118
118
|
params = { nodes: [String(node)] };
|
@@ -120,11 +120,11 @@ export function Tablets({ nodeId, path, className }) {
|
|
120
120
|
else if (path) {
|
121
121
|
params = { path };
|
122
122
|
}
|
123
|
-
const { currentData, isFetching, error } = tabletsApi.useGetTabletsInfoQuery(params, {
|
124
|
-
pollingInterval:
|
123
|
+
const { currentData, isFetching, error } = tabletsApi.useGetTabletsInfoQuery(Object.keys(params).length === 0 ? skipToken : params, {
|
124
|
+
pollingInterval: autoRefreshInterval,
|
125
125
|
});
|
126
126
|
const loading = isFetching && currentData === undefined;
|
127
|
-
const tablets = useTypedSelector((state) => selectTabletsWithFqdn(state,
|
127
|
+
const tablets = useTypedSelector((state) => selectTabletsWithFqdn(state, params));
|
128
128
|
if (loading) {
|
129
129
|
return _jsx(TableSkeleton, {});
|
130
130
|
}
|
@@ -1,57 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
wasLoaded: PropTypes.Requireable<boolean>;
|
4
|
-
loading: PropTypes.Requireable<boolean>;
|
5
|
-
getTabletsInfo: PropTypes.Requireable<(...args: any[]) => any>;
|
6
|
-
timeoutForRequest: PropTypes.Requireable<number>;
|
7
|
-
path: PropTypes.Requireable<string>;
|
8
|
-
clearWasLoadingFlag: PropTypes.Requireable<(...args: any[]) => any>;
|
9
|
-
nodes: PropTypes.Requireable<any[]>;
|
10
|
-
tablets: PropTypes.Requireable<any[]>;
|
11
|
-
filteredTablets: PropTypes.Requireable<any[]>;
|
12
|
-
setStateFilter: PropTypes.Requireable<(...args: any[]) => any>;
|
13
|
-
setTypeFilter: PropTypes.Requireable<(...args: any[]) => any>;
|
14
|
-
stateFilter: PropTypes.Requireable<any[]>;
|
15
|
-
typeFilter: PropTypes.Requireable<any[]>;
|
16
|
-
error: PropTypes.Requireable<PropTypes.Requireable<string> | PropTypes.Requireable<object>>;
|
17
|
-
setHeader: PropTypes.Requireable<(...args: any[]) => any>;
|
18
|
-
};
|
19
|
-
static renderLoader(): import("react/jsx-runtime").JSX.Element;
|
20
|
-
static parseNodes: (nodes: any) => number[] | undefined;
|
21
|
-
static getStateFiltersFromColor: (color: any) => any;
|
22
|
-
static CONTROL_WIDTH: number;
|
23
|
-
static POPUP_WIDTH: number;
|
24
|
-
constructor(props: any);
|
25
|
-
constructor(props: any, context: any);
|
26
|
-
state: {
|
27
|
-
nodeFilter: never[];
|
28
|
-
tenantPath: string;
|
29
|
-
clusterName: string;
|
30
|
-
};
|
31
|
-
reloadDescriptor: number;
|
32
|
-
componentDidMount(): void;
|
33
|
-
componentDidUpdate(prevProps: any): void;
|
34
|
-
componentWillUnmount(): void;
|
35
|
-
makeRequest: () => void;
|
36
|
-
getTablets: () => void;
|
37
|
-
handleNodeFilterChange: (nodeFilter: any) => void;
|
38
|
-
handleStateFilterChange: (stateFilter: any) => void;
|
39
|
-
handleTypeFilterChange: (typeFilter: any) => void;
|
40
|
-
renderTablet: (index: any, key: any) => import("react/jsx-runtime").JSX.Element;
|
41
|
-
renderContent: () => import("react/jsx-runtime").JSX.Element;
|
42
|
-
renderView: () => import("react/jsx-runtime").JSX.Element;
|
43
|
-
render(): import("react/jsx-runtime").JSX.Element;
|
44
|
-
}
|
45
|
-
declare const _default: import("react-redux").ConnectedComponent<typeof TabletsFilters, {
|
46
|
-
path?: string | null | undefined;
|
47
|
-
setHeader?: ((...args: any[]) => any) | null | undefined;
|
48
|
-
context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").UnknownAction> | null> | undefined;
|
49
|
-
store?: import("redux").Store<any, import("redux").UnknownAction, unknown> | undefined;
|
50
|
-
} | {
|
51
|
-
path?: string | null | undefined;
|
52
|
-
setHeader?: ((...args: any[]) => any) | null | undefined;
|
53
|
-
store?: import("redux").Store<any, import("redux").UnknownAction, unknown> | undefined;
|
54
|
-
}>;
|
55
|
-
export default _default;
|
56
|
-
import React from 'react';
|
57
|
-
import PropTypes from 'prop-types';
|
1
|
+
import './TabletsFilters.scss';
|
2
|
+
export declare function TabletsFilters(): import("react/jsx-runtime").JSX.Element;
|