ydb-embedded-ui 18.5.0 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Drawer/Drawer.js +17 -12
- package/dist/components/Drawer/Drawer.js.map +1 -1
- package/dist/components/Drawer/DrawerContext.d.ts +10 -1
- package/dist/components/Drawer/DrawerContext.js +59 -6
- package/dist/components/Drawer/DrawerContext.js.map +1 -1
- package/dist/components/Drawer/DrawerWidthUtils.d.ts +4 -0
- package/dist/components/Drawer/DrawerWidthUtils.js +4 -0
- package/dist/components/Drawer/DrawerWidthUtils.js.map +1 -1
- package/dist/components/EntityName/EntityName.d.ts +15 -0
- package/dist/components/EntityName/EntityName.js +39 -0
- package/dist/components/EntityName/EntityName.js.map +1 -0
- package/dist/components/EntityName/EntityName.scss +140 -0
- package/dist/components/EntityStatus/EntityStatus.d.ts +17 -14
- package/dist/components/EntityStatus/EntityStatus.js +41 -40
- package/dist/components/EntityStatus/EntityStatus.js.map +1 -1
- package/dist/components/EntityStatus/EntityStatus.scss +5 -132
- package/dist/components/EntityStatus/i18n/index.js.map +1 -0
- package/dist/components/EntityStatus/utils.js.map +1 -0
- package/dist/components/Fullscreen/Fullscreen.d.ts +2 -1
- package/dist/components/Fullscreen/Fullscreen.js +11 -2
- package/dist/components/Fullscreen/Fullscreen.js.map +1 -1
- package/dist/components/LinkToSchemaObject/LinkToSchemaObject.d.ts +2 -1
- package/dist/components/LinkToSchemaObject/LinkToSchemaObject.js +5 -2
- package/dist/components/LinkToSchemaObject/LinkToSchemaObject.js.map +1 -1
- package/dist/components/NodeHostWrapper/NodeHostWrapper.js +3 -2
- package/dist/components/NodeHostWrapper/NodeHostWrapper.js.map +1 -1
- package/dist/components/StatusColor/StatusColor.d.ts +10 -0
- package/dist/components/StatusColor/StatusColor.js +10 -0
- package/dist/components/StatusColor/StatusColor.js.map +1 -0
- package/dist/components/StatusColor/StatusColor.scss +49 -0
- package/dist/components/StatusIcon/StatusIcon.js +2 -1
- package/dist/components/StatusIcon/StatusIcon.js.map +1 -1
- package/dist/components/StatusIcon/StatusIcon.scss +0 -22
- package/dist/components/TabletNameWrapper/TabletNameWrapper.js +2 -2
- package/dist/components/TabletNameWrapper/TabletNameWrapper.js.map +1 -1
- package/dist/components/TenantNameWrapper/TenantNameWrapper.d.ts +2 -1
- package/dist/components/TenantNameWrapper/TenantNameWrapper.js +13 -5
- package/dist/components/TenantNameWrapper/TenantNameWrapper.js.map +1 -1
- package/dist/containers/Cluster/Cluster.js +2 -2
- package/dist/containers/Cluster/Cluster.js.map +1 -1
- package/dist/containers/Cluster/ClusterDrawerHealthcheck.d.ts +2 -1
- package/dist/containers/Cluster/ClusterDrawerHealthcheck.js +5 -5
- package/dist/containers/Cluster/ClusterDrawerHealthcheck.js.map +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js.map +1 -1
- package/dist/containers/Clusters/columns.js +1 -1
- package/dist/containers/Clusters/columns.js.map +1 -1
- package/dist/containers/Node/NodeStructure/NodeStructure.scss +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +2 -2
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
- package/dist/containers/Storage/Storage.scss +1 -1
- package/dist/containers/Tablet/Tablet.js +12 -5
- package/dist/containers/Tablet/Tablet.js.map +1 -1
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.d.ts +3 -1
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js +31 -19
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js.map +1 -1
- package/dist/containers/Tablet/components/TabletInfo/i18n/en.json +2 -0
- package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -1
- package/dist/containers/Tablet/components/TabletTable/TabletTable.js +2 -2
- package/dist/containers/Tablet/components/TabletTable/TabletTable.js.map +1 -1
- package/dist/containers/Tablet/utils.d.ts +3 -0
- package/dist/containers/Tablet/utils.js +12 -0
- package/dist/containers/Tablet/utils.js.map +1 -1
- package/dist/containers/Tablets/TabletsTable.js +2 -2
- package/dist/containers/Tablets/TabletsTable.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RevokeAllRightsDialog.js +6 -11
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RevokeAllRightsDialog.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +13 -2
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo/prepareRowTableInfo.js +9 -5
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo/prepareRowTableInfo.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js +6 -6
- package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/StorageUsage/StorageUsageTable.js +2 -2
- package/dist/containers/Tenant/Diagnostics/StorageUsage/StorageUsageTable.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.scss +4 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +8 -7
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +6 -6
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -1
- package/dist/containers/Tenant/GrantAccess/GrantAccess.js +14 -16
- package/dist/containers/Tenant/GrantAccess/GrantAccess.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/Healthcheck.d.ts +7 -2
- package/dist/containers/Tenant/Healthcheck/Healthcheck.js +34 -13
- package/dist/containers/Tenant/Healthcheck/Healthcheck.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/Healthcheck.scss +28 -0
- package/dist/containers/Tenant/Healthcheck/HealthcheckContext.d.ts +9 -0
- package/dist/containers/Tenant/Healthcheck/HealthcheckContext.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js +24 -2
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/ComputeLocation.js +2 -2
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/ComputeLocation.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/HealthcheckIssueDetails.js +2 -2
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/HealthcheckIssueDetails.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/NodeInfo.js +3 -2
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/NodeInfo.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/StorageLocation.js +7 -4
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/StorageLocation.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/i18n/en.json +4 -0
- package/dist/containers/Tenant/Healthcheck/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Healthcheck/types.d.ts +31 -0
- package/dist/containers/Tenant/Healthcheck/types.js +2 -0
- package/dist/containers/Tenant/Healthcheck/types.js.map +1 -0
- package/dist/containers/Tenant/Healthcheck/useHealthcheck.d.ts +7 -1
- package/dist/containers/Tenant/Healthcheck/useHealthcheck.js +14 -5
- package/dist/containers/Tenant/Healthcheck/useHealthcheck.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/utils.d.ts +21 -0
- package/dist/containers/Tenant/Healthcheck/utils.js +16 -0
- package/dist/containers/Tenant/Healthcheck/utils.js.map +1 -1
- package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js +1 -5
- package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +3 -3
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/utils/queryExecutionManager.d.ts +2 -1
- package/dist/containers/Tenant/Query/QueryEditor/utils/queryExecutionManager.js +13 -9
- package/dist/containers/Tenant/Query/QueryEditor/utils/queryExecutionManager.js.map +1 -1
- package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.js +1 -5
- package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.js.map +1 -1
- package/dist/containers/Tenant/Query/hooks/useExternalQuerySingleTabProtection.d.ts +13 -0
- package/dist/containers/Tenant/Query/hooks/useExternalQuerySingleTabProtection.js +246 -0
- package/dist/containers/Tenant/Query/hooks/useExternalQuerySingleTabProtection.js.map +1 -0
- package/dist/containers/Tenant/Query/hooks/useOpenExternalQueryInEditor.d.ts +1 -1
- package/dist/containers/Tenant/Query/hooks/useOpenExternalQueryInEditor.js +57 -3
- package/dist/containers/Tenant/Query/hooks/useOpenExternalQueryInEditor.js.map +1 -1
- package/dist/containers/Tenant/TenantDrawerHealthcheck.d.ts +3 -2
- package/dist/containers/Tenant/TenantDrawerHealthcheck.js +5 -5
- package/dist/containers/Tenant/TenantDrawerHealthcheck.js.map +1 -1
- package/dist/containers/Tenant/TenantDrawerWrappers.js +3 -1
- package/dist/containers/Tenant/TenantDrawerWrappers.js.map +1 -1
- package/dist/containers/Tenant/utils/diagnosticsNavigation.d.ts +2 -2
- package/dist/containers/Tenant/utils/diagnosticsNavigation.js +13 -1
- package/dist/containers/Tenant/utils/diagnosticsNavigation.js.map +1 -1
- package/dist/containers/Tenants/DatabaseDrawerHealthcheck.d.ts +9 -0
- package/dist/containers/Tenants/DatabaseDrawerHealthcheck.js +39 -0
- package/dist/containers/Tenants/DatabaseDrawerHealthcheck.js.map +1 -0
- package/dist/containers/Tenants/TenantsTable.d.ts +1 -1
- package/dist/containers/Tenants/TenantsTable.js +8 -2
- package/dist/containers/Tenants/TenantsTable.js.map +1 -1
- package/dist/containers/Versions/NodesTreeTitle/NodesTreeTitle.js +10 -1
- package/dist/containers/Versions/NodesTreeTitle/NodesTreeTitle.js.map +1 -1
- package/dist/lib.d.ts +7 -1
- package/dist/lib.js +3 -0
- package/dist/lib.js.map +1 -1
- package/dist/routes.d.ts +2 -2
- package/dist/routes.js +6 -4
- package/dist/routes.js.map +1 -1
- package/dist/services/api/base.d.ts +1 -1
- package/dist/services/api/base.js +10 -4
- package/dist/services/api/base.js.map +1 -1
- package/dist/services/api/viewer.d.ts +7 -2
- package/dist/services/api/viewer.js +9 -2
- package/dist/services/api/viewer.js.map +1 -1
- package/dist/store/getUrlData.js +6 -3
- package/dist/store/getUrlData.js.map +1 -1
- package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
- package/dist/store/reducers/capabilities/hooks.js +4 -0
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +77 -254
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.js +6 -6
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.js.map +1 -1
- package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +78 -12
- package/dist/store/reducers/schemaAcl/schemaAcl.js +13 -7
- package/dist/store/reducers/schemaAcl/schemaAcl.js.map +1 -1
- package/dist/store/reducers/schemaAcl/utils.d.ts +12 -0
- package/dist/store/reducers/schemaAcl/utils.js +86 -0
- package/dist/store/reducers/schemaAcl/utils.js.map +1 -0
- package/dist/store/reducers/tablet/utils.d.ts +2 -0
- package/dist/store/reducers/tablet/utils.js +11 -0
- package/dist/store/reducers/tablet/utils.js.map +1 -0
- package/dist/store/reducers/tablet.d.ts +5 -0
- package/dist/store/reducers/tablet.js +22 -0
- package/dist/store/reducers/tablet.js.map +1 -1
- package/dist/store/reducers/tenant/tenant.d.ts +3 -1
- package/dist/store/reducers/tenant/tenant.js +9 -5
- package/dist/store/reducers/tenant/tenant.js.map +1 -1
- package/dist/types/api/tablet.d.ts +13 -0
- package/dist/types/api/tablet.js.map +1 -1
- package/dist/uiFactory/types.d.ts +3 -0
- package/package.json +1 -1
- package/dist/components/EntityStatusNew/EntityStatus.d.ts +0 -24
- package/dist/components/EntityStatusNew/EntityStatus.js +0 -48
- package/dist/components/EntityStatusNew/EntityStatus.js.map +0 -1
- package/dist/components/EntityStatusNew/EntityStatus.scss +0 -11
- package/dist/components/EntityStatusNew/i18n/index.js.map +0 -1
- package/dist/components/EntityStatusNew/utils.js.map +0 -1
- /package/dist/components/{EntityStatusNew → EntityStatus}/i18n/en.json +0 -0
- /package/dist/components/{EntityStatusNew → EntityStatus}/i18n/index.d.ts +0 -0
- /package/dist/components/{EntityStatusNew → EntityStatus}/i18n/index.js +0 -0
- /package/dist/components/{EntityStatusNew → EntityStatus}/utils.d.ts +0 -0
- /package/dist/components/{EntityStatusNew → EntityStatus}/utils.js +0 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { parseQuery } from '../../../../routes';
|
|
3
|
+
import { cancelQueryApi } from '../../../../store/reducers/cancelQuery';
|
|
4
|
+
import { selectActiveTabId, selectIsDirty, selectResult, selectUserInput, } from '../../../../store/reducers/query/query';
|
|
5
|
+
import { TENANT_PAGE } from '../../../../store/reducers/tenant/constants';
|
|
6
|
+
import { tenantPageSchema } from '../../../../store/reducers/tenant/types';
|
|
7
|
+
import createToast from '../../../../utils/createToast';
|
|
8
|
+
import { useTypedSelector } from '../../../../utils/hooks';
|
|
9
|
+
import { getRunningQueryConfirmation } from '../../../../utils/hooks/withConfirmation/RunningQueryDialog';
|
|
10
|
+
import { changeInputWithConfirmation } from '../../../../utils/hooks/withConfirmation/useChangeInputWithConfirmation';
|
|
11
|
+
import { queryExecutionManagerInstance } from '../QueryEditor/utils/queryExecutionManager';
|
|
12
|
+
import i18n from '../i18n';
|
|
13
|
+
const STOP_QUERY_ERROR_AUTO_HIDE_TIMEOUT = 5000;
|
|
14
|
+
const externalQueryRequestCoordinators = new WeakMap();
|
|
15
|
+
function getExternalQueryRequestCoordinator(history) {
|
|
16
|
+
let coordinator = externalQueryRequestCoordinators.get(history);
|
|
17
|
+
if (!coordinator) {
|
|
18
|
+
coordinator = { requestEpoch: 0 };
|
|
19
|
+
externalQueryRequestCoordinators.set(history, coordinator);
|
|
20
|
+
}
|
|
21
|
+
return coordinator;
|
|
22
|
+
}
|
|
23
|
+
export function getDatabaseFromQueryParams(queryParams) {
|
|
24
|
+
const databaseParam = queryParams.database || queryParams.name;
|
|
25
|
+
return typeof databaseParam === 'string' && databaseParam.trim() ? databaseParam : undefined;
|
|
26
|
+
}
|
|
27
|
+
function isSameExecution(currentExecution, expectedExecution) {
|
|
28
|
+
return ((currentExecution === null || currentExecution === void 0 ? void 0 : currentExecution.activeTabId) === expectedExecution.activeTabId &&
|
|
29
|
+
currentExecution.startTime === expectedExecution.startTime);
|
|
30
|
+
}
|
|
31
|
+
function isEquivalentQueryNormalization(previousLocation, nextLocation) {
|
|
32
|
+
if (previousLocation.pathname !== nextLocation.pathname ||
|
|
33
|
+
previousLocation.hash !== nextLocation.hash) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
const previousParams = new URLSearchParams(previousLocation.search);
|
|
37
|
+
const nextParams = new URLSearchParams(nextLocation.search);
|
|
38
|
+
const legacyDatabase = previousParams.get('name');
|
|
39
|
+
let normalizesDatabase = false;
|
|
40
|
+
if (legacyDatabase && !previousParams.has('database')) {
|
|
41
|
+
normalizesDatabase = true;
|
|
42
|
+
previousParams.delete('name');
|
|
43
|
+
previousParams.set('database', legacyDatabase);
|
|
44
|
+
}
|
|
45
|
+
const legacyTenantPage = previousParams.get('tenantPage');
|
|
46
|
+
const normalizesTenantPage = legacyTenantPage !== null;
|
|
47
|
+
if (normalizesTenantPage) {
|
|
48
|
+
previousParams.delete('tenantPage');
|
|
49
|
+
if (!previousParams.has('databasePage')) {
|
|
50
|
+
previousParams.set('databasePage', legacyTenantPage);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const previousTenantPage = tenantPageSchema.safeParse(previousParams.get(TENANT_PAGE));
|
|
54
|
+
const nextTenantPage = tenantPageSchema.safeParse(nextParams.get(TENANT_PAGE));
|
|
55
|
+
const normalizesFallbackTenantPage = !previousTenantPage.success && nextTenantPage.success;
|
|
56
|
+
if (normalizesFallbackTenantPage) {
|
|
57
|
+
previousParams.set(TENANT_PAGE, nextTenantPage.data);
|
|
58
|
+
}
|
|
59
|
+
if (!normalizesDatabase && !normalizesTenantPage && !normalizesFallbackTenantPage) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
previousParams.sort();
|
|
63
|
+
nextParams.sort();
|
|
64
|
+
return previousParams.toString() === nextParams.toString();
|
|
65
|
+
}
|
|
66
|
+
export function useExternalQueryRequestRegistration(history) {
|
|
67
|
+
const requestCoordinator = React.useMemo(() => getExternalQueryRequestCoordinator(history), [history]);
|
|
68
|
+
const latestLocation = React.useRef(history.location);
|
|
69
|
+
React.useEffect(() => {
|
|
70
|
+
return history.listen((nextLocation, action) => {
|
|
71
|
+
const previousLocation = latestLocation.current;
|
|
72
|
+
latestLocation.current = nextLocation;
|
|
73
|
+
if (action !== 'REPLACE' ||
|
|
74
|
+
!isEquivalentQueryNormalization(previousLocation, nextLocation)) {
|
|
75
|
+
requestCoordinator.requestEpoch += 1;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}, [history, requestCoordinator]);
|
|
79
|
+
return React.useCallback(() => {
|
|
80
|
+
requestCoordinator.requestEpoch += 1;
|
|
81
|
+
}, [requestCoordinator]);
|
|
82
|
+
}
|
|
83
|
+
export function useExternalQuerySingleTabProtection({ database, history, isMultiTabEnabled, openExternalQueryInEditor, }) {
|
|
84
|
+
const [sendCancelQuery] = cancelQueryApi.useCancelQueryMutation();
|
|
85
|
+
const activeTabId = useTypedSelector(selectActiveTabId);
|
|
86
|
+
const currentInput = useTypedSelector(selectUserInput);
|
|
87
|
+
const isCurrentTabDirty = useTypedSelector(selectIsDirty);
|
|
88
|
+
const result = useTypedSelector(selectResult);
|
|
89
|
+
const requestCoordinator = React.useMemo(() => getExternalQueryRequestCoordinator(history), [history]);
|
|
90
|
+
const latestOptions = React.useRef({ isMultiTabEnabled, openExternalQueryInEditor });
|
|
91
|
+
latestOptions.current = { isMultiTabEnabled, openExternalQueryInEditor };
|
|
92
|
+
const latestEditorState = React.useRef({
|
|
93
|
+
activeTabId,
|
|
94
|
+
input: currentInput,
|
|
95
|
+
isDirty: isCurrentTabDirty,
|
|
96
|
+
result,
|
|
97
|
+
});
|
|
98
|
+
latestEditorState.current = {
|
|
99
|
+
activeTabId,
|
|
100
|
+
input: currentInput,
|
|
101
|
+
isDirty: isCurrentTabDirty,
|
|
102
|
+
result,
|
|
103
|
+
};
|
|
104
|
+
const getCurrentExecutionIdentity = React.useCallback(() => {
|
|
105
|
+
var _a;
|
|
106
|
+
const currentEditorState = latestEditorState.current;
|
|
107
|
+
if (!currentEditorState.activeTabId || ((_a = currentEditorState.result) === null || _a === void 0 ? void 0 : _a.startTime) === undefined) {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
activeTabId: currentEditorState.activeTabId,
|
|
112
|
+
startTime: currentEditorState.result.startTime,
|
|
113
|
+
};
|
|
114
|
+
}, []);
|
|
115
|
+
const getCurrentRunningExecutionIdentity = React.useCallback(() => {
|
|
116
|
+
var _a;
|
|
117
|
+
return ((_a = latestEditorState.current.result) === null || _a === void 0 ? void 0 : _a.isLoading)
|
|
118
|
+
? getCurrentExecutionIdentity()
|
|
119
|
+
: undefined;
|
|
120
|
+
}, [getCurrentExecutionIdentity]);
|
|
121
|
+
const isDestinationCurrent = React.useCallback((destination) => {
|
|
122
|
+
const currentQueryParams = parseQuery(history.location);
|
|
123
|
+
return (getDatabaseFromQueryParams(currentQueryParams) === destination.database &&
|
|
124
|
+
requestCoordinator.requestEpoch === destination.requestEpoch);
|
|
125
|
+
}, [history, requestCoordinator]);
|
|
126
|
+
const isRequestContextCurrent = React.useCallback(({ destination, confirmedExecution }) => {
|
|
127
|
+
if (!isDestinationCurrent(destination)) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
if (!confirmedExecution) {
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
return isSameExecution(getCurrentExecutionIdentity(), confirmedExecution);
|
|
134
|
+
}, [getCurrentExecutionIdentity, isDestinationCurrent]);
|
|
135
|
+
const latestOpenExternalQueryInEditorWithConfirmation = React.useRef(() => undefined);
|
|
136
|
+
const stopRunningQueryAndOpen = React.useCallback(async (request) => {
|
|
137
|
+
const { query } = request;
|
|
138
|
+
if (!isRequestContextCurrent(request)) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const runningExecution = latestOptions.current.isMultiTabEnabled
|
|
142
|
+
? undefined
|
|
143
|
+
: getCurrentRunningExecutionIdentity();
|
|
144
|
+
if (runningExecution && !request.confirmedExecution) {
|
|
145
|
+
const confirmed = await getRunningQueryConfirmation();
|
|
146
|
+
const confirmedRequest = {
|
|
147
|
+
...request,
|
|
148
|
+
confirmedExecution: runningExecution,
|
|
149
|
+
};
|
|
150
|
+
if (!confirmed || !isRequestContextCurrent(confirmedRequest)) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
latestOpenExternalQueryInEditorWithConfirmation.current(confirmedRequest);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
if (runningExecution) {
|
|
157
|
+
const editorStateBeforeStop = latestEditorState.current;
|
|
158
|
+
const runningResult = editorStateBeforeStop.result;
|
|
159
|
+
if (runningResult === null || runningResult === void 0 ? void 0 : runningResult.streamingStatus) {
|
|
160
|
+
queryExecutionManagerInstance.abortQuery(runningExecution.activeTabId);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
const executionDatabase = queryExecutionManagerInstance.getQueryDatabase(runningExecution.activeTabId);
|
|
164
|
+
if (!executionDatabase || !(runningResult === null || runningResult === void 0 ? void 0 : runningResult.queryId)) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
await sendCancelQuery({
|
|
169
|
+
queryId: runningResult.queryId,
|
|
170
|
+
database: executionDatabase,
|
|
171
|
+
}).unwrap();
|
|
172
|
+
}
|
|
173
|
+
catch (_a) {
|
|
174
|
+
const currentRunningExecution = getCurrentRunningExecutionIdentity();
|
|
175
|
+
if (isSameExecution(currentRunningExecution, runningExecution)) {
|
|
176
|
+
createToast({
|
|
177
|
+
name: 'stop-error',
|
|
178
|
+
title: '',
|
|
179
|
+
content: i18n('toaster.stop-error'),
|
|
180
|
+
theme: 'danger',
|
|
181
|
+
autoHiding: STOP_QUERY_ERROR_AUTO_HIDE_TIMEOUT,
|
|
182
|
+
});
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
const currentEditorState = latestEditorState.current;
|
|
187
|
+
if (!isSameExecution(getCurrentExecutionIdentity(), runningExecution)) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
queryExecutionManagerInstance.abortQuery(runningExecution.activeTabId);
|
|
191
|
+
if (currentEditorState.input !== editorStateBeforeStop.input ||
|
|
192
|
+
currentEditorState.isDirty !== editorStateBeforeStop.isDirty) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
if (!isRequestContextCurrent(request)) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
latestOptions.current.openExternalQueryInEditor(query);
|
|
201
|
+
}, [
|
|
202
|
+
getCurrentExecutionIdentity,
|
|
203
|
+
getCurrentRunningExecutionIdentity,
|
|
204
|
+
isRequestContextCurrent,
|
|
205
|
+
sendCancelQuery,
|
|
206
|
+
]);
|
|
207
|
+
const latestStopRunningQueryAndOpen = React.useRef(stopRunningQueryAndOpen);
|
|
208
|
+
latestStopRunningQueryAndOpen.current = stopRunningQueryAndOpen;
|
|
209
|
+
const stopLatestRunningQueryAndOpen = React.useCallback((request) => {
|
|
210
|
+
latestStopRunningQueryAndOpen.current(request);
|
|
211
|
+
}, []);
|
|
212
|
+
const stopLatestRunningQueryAndOpenWithConfirmation = React.useMemo(() => changeInputWithConfirmation(stopLatestRunningQueryAndOpen), [stopLatestRunningQueryAndOpen]);
|
|
213
|
+
latestOpenExternalQueryInEditorWithConfirmation.current =
|
|
214
|
+
isMultiTabEnabled || !isCurrentTabDirty
|
|
215
|
+
? stopLatestRunningQueryAndOpen
|
|
216
|
+
: stopLatestRunningQueryAndOpenWithConfirmation;
|
|
217
|
+
return React.useCallback((query) => {
|
|
218
|
+
var _a;
|
|
219
|
+
const currentIsQueryRunning = Boolean((_a = latestEditorState.current.result) === null || _a === void 0 ? void 0 : _a.isLoading);
|
|
220
|
+
const currentIsMultiTabEnabled = latestOptions.current.isMultiTabEnabled;
|
|
221
|
+
const confirmedExecution = !currentIsMultiTabEnabled && currentIsQueryRunning
|
|
222
|
+
? getCurrentRunningExecutionIdentity()
|
|
223
|
+
: undefined;
|
|
224
|
+
if (!currentIsMultiTabEnabled && currentIsQueryRunning && !confirmedExecution) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const request = {
|
|
228
|
+
query,
|
|
229
|
+
destination: {
|
|
230
|
+
database,
|
|
231
|
+
requestEpoch: requestCoordinator.requestEpoch,
|
|
232
|
+
},
|
|
233
|
+
confirmedExecution,
|
|
234
|
+
};
|
|
235
|
+
if (!currentIsMultiTabEnabled && currentIsQueryRunning) {
|
|
236
|
+
getRunningQueryConfirmation().then((confirmed) => {
|
|
237
|
+
if (confirmed) {
|
|
238
|
+
latestOpenExternalQueryInEditorWithConfirmation.current(request);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
latestOpenExternalQueryInEditorWithConfirmation.current(request);
|
|
244
|
+
}, [database, getCurrentRunningExecutionIdentity, requestCoordinator]);
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=useExternalQuerySingleTabProtection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useExternalQuerySingleTabProtection.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/hooks/useExternalQuerySingleTabProtection.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,4 @@ export interface ExternalQueryToOpen {
|
|
|
4
4
|
savedQueryName?: string;
|
|
5
5
|
onAfterOpen?: () => void;
|
|
6
6
|
}
|
|
7
|
-
export declare function useOpenExternalQueryInEditor(): (
|
|
7
|
+
export declare function useOpenExternalQueryInEditor(): (query: ExternalQueryToOpen) => void;
|
|
@@ -1,14 +1,31 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { useHistory, useLocation, useRouteMatch } from 'react-router-dom';
|
|
2
3
|
import { v4 as uuidv4 } from 'uuid';
|
|
4
|
+
import routes, { createHref, getLocationObjectFromHref, parseQuery } from '../../../../routes';
|
|
5
|
+
import { environment as configuredEnvironment } from '../../../../store';
|
|
3
6
|
import { useMultiTabQueryEditorEnabled } from '../../../../store/reducers/capabilities/hooks';
|
|
4
7
|
import { applyExternalQueryToActiveTab, setIsDirty, setQueryTabContent, } from '../../../../store/reducers/query/query';
|
|
5
|
-
import { TENANT_QUERY_TABS_ID } from '../../../../store/reducers/tenant/constants';
|
|
8
|
+
import { TENANT_PAGE, TENANT_PAGES_IDS, TENANT_QUERY_TABS_ID, } from '../../../../store/reducers/tenant/constants';
|
|
6
9
|
import { setQueryTab } from '../../../../store/reducers/tenant/tenant';
|
|
7
10
|
import { useTypedDispatch } from '../../../../utils/hooks';
|
|
11
|
+
import { TenantTabsGroups } from '../../TenantPages';
|
|
12
|
+
import { getDatabaseFromQueryParams, useExternalQueryRequestRegistration, useExternalQuerySingleTabProtection, } from './useExternalQuerySingleTabProtection';
|
|
13
|
+
const ROUTE_PATHS = Object.values(routes);
|
|
8
14
|
export function useOpenExternalQueryInEditor() {
|
|
15
|
+
var _a;
|
|
9
16
|
const dispatch = useTypedDispatch();
|
|
17
|
+
const history = useHistory();
|
|
18
|
+
const location = useLocation();
|
|
19
|
+
const currentRouteMatch = useRouteMatch({
|
|
20
|
+
path: ROUTE_PATHS,
|
|
21
|
+
exact: true,
|
|
22
|
+
});
|
|
23
|
+
const routeEnvironment = (_a = currentRouteMatch === null || currentRouteMatch === void 0 ? void 0 : currentRouteMatch.params.environment) !== null && _a !== void 0 ? _a : configuredEnvironment;
|
|
10
24
|
const isMultiTabEnabled = useMultiTabQueryEditorEnabled();
|
|
11
|
-
|
|
25
|
+
const queryParams = React.useMemo(() => parseQuery(location), [location]);
|
|
26
|
+
const database = getDatabaseFromQueryParams(queryParams);
|
|
27
|
+
const registerExternalQueryRequest = useExternalQueryRequestRegistration(history);
|
|
28
|
+
const openExternalQueryInEditor = React.useCallback(({ title, input, savedQueryName, onAfterOpen }) => {
|
|
12
29
|
if (isMultiTabEnabled) {
|
|
13
30
|
dispatch(setQueryTabContent({
|
|
14
31
|
tabId: uuidv4(),
|
|
@@ -26,7 +43,44 @@ export function useOpenExternalQueryInEditor() {
|
|
|
26
43
|
}
|
|
27
44
|
dispatch(setIsDirty(false));
|
|
28
45
|
dispatch(setQueryTab(TENANT_QUERY_TABS_ID.newQuery));
|
|
46
|
+
const queryPath = createHref(routes.tenant, { environment: routeEnvironment }, {
|
|
47
|
+
...queryParams,
|
|
48
|
+
database,
|
|
49
|
+
name: undefined,
|
|
50
|
+
[TENANT_PAGE]: TENANT_PAGES_IDS.query,
|
|
51
|
+
[TenantTabsGroups.queryTab]: TENANT_QUERY_TABS_ID.newQuery,
|
|
52
|
+
});
|
|
53
|
+
const queryPathname = getLocationObjectFromHref(queryPath).pathname;
|
|
54
|
+
const isQueryEditorLocation = history.location.pathname === queryPathname &&
|
|
55
|
+
queryParams[TENANT_PAGE] === TENANT_PAGES_IDS.query;
|
|
56
|
+
if (!isQueryEditorLocation) {
|
|
57
|
+
history.push(queryPath);
|
|
58
|
+
}
|
|
29
59
|
onAfterOpen === null || onAfterOpen === void 0 ? void 0 : onAfterOpen();
|
|
30
|
-
}, [dispatch, isMultiTabEnabled]);
|
|
60
|
+
}, [database, dispatch, history, isMultiTabEnabled, queryParams, routeEnvironment]);
|
|
61
|
+
const openExternalQueryWithSingleTabProtection = useExternalQuerySingleTabProtection({
|
|
62
|
+
database: database !== null && database !== void 0 ? database : '',
|
|
63
|
+
history,
|
|
64
|
+
isMultiTabEnabled,
|
|
65
|
+
openExternalQueryInEditor,
|
|
66
|
+
});
|
|
67
|
+
return React.useCallback((query) => {
|
|
68
|
+
if (!database) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
registerExternalQueryRequest();
|
|
72
|
+
if (isMultiTabEnabled) {
|
|
73
|
+
openExternalQueryInEditor(query);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
openExternalQueryWithSingleTabProtection(query);
|
|
77
|
+
}
|
|
78
|
+
}, [
|
|
79
|
+
database,
|
|
80
|
+
isMultiTabEnabled,
|
|
81
|
+
openExternalQueryInEditor,
|
|
82
|
+
openExternalQueryWithSingleTabProtection,
|
|
83
|
+
registerExternalQueryRequest,
|
|
84
|
+
]);
|
|
31
85
|
}
|
|
32
86
|
//# sourceMappingURL=useOpenExternalQueryInEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOpenExternalQueryInEditor.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/hooks/useOpenExternalQueryInEditor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,EAAE,IAAI,MAAM,EAAC,MAAM,MAAM,CAAC;AAElC,OAAO,EAAC,6BAA6B,EAAC,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EACH,6BAA6B,EAC7B,UAAU,EACV,kBAAkB,GACrB,MAAM,wCAAwC,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"useOpenExternalQueryInEditor.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Query/hooks/useOpenExternalQueryInEditor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
interface
|
|
2
|
+
interface TenantDrawerHealthcheckProps {
|
|
3
3
|
children: React.ReactNode;
|
|
4
|
+
clusterName?: string;
|
|
4
5
|
}
|
|
5
|
-
export declare function TenantDrawerHealthcheck({ children }:
|
|
6
|
+
export declare function TenantDrawerHealthcheck({ children, clusterName }: TenantDrawerHealthcheckProps): import("react/jsx-runtime").JSX.Element;
|
|
6
7
|
export {};
|
|
@@ -7,19 +7,19 @@ import { HealthcheckDrawer } from './Healthcheck/components/HealthcheckDrawer';
|
|
|
7
7
|
import { useCurrentSchema } from './TenantContext';
|
|
8
8
|
import i18n from './i18n';
|
|
9
9
|
import { useTenantQueryParams } from './useTenantQueryParams';
|
|
10
|
-
export function TenantDrawerHealthcheck({ children }) {
|
|
10
|
+
export function TenantDrawerHealthcheck({ children, clusterName }) {
|
|
11
11
|
const { database } = useCurrentSchema();
|
|
12
12
|
const { handleShowHealthcheckChange, showHealthcheck, handleIssuesFilterChange, handleHealthcheckViewChange, } = useTenantQueryParams();
|
|
13
|
-
const healthcheckStatus = useTypedSelector((state) => selectCheckStatus(state, database || ''));
|
|
14
|
-
const healthcheckData = useTypedSelector((state) => selectAllHealthcheckInfo(state, database || ''));
|
|
13
|
+
const healthcheckStatus = useTypedSelector((state) => selectCheckStatus(state, database || '', clusterName));
|
|
14
|
+
const healthcheckData = useTypedSelector((state) => selectAllHealthcheckInfo(state, database || '', clusterName));
|
|
15
15
|
const handleCloseDrawer = React.useCallback(() => {
|
|
16
16
|
handleShowHealthcheckChange(false);
|
|
17
17
|
handleIssuesFilterChange(undefined);
|
|
18
18
|
handleHealthcheckViewChange(undefined);
|
|
19
19
|
}, [handleShowHealthcheckChange, handleIssuesFilterChange, handleHealthcheckViewChange]);
|
|
20
20
|
const renderDrawerContent = React.useCallback(() => {
|
|
21
|
-
return _jsx(Healthcheck, { database: database });
|
|
22
|
-
}, [database]);
|
|
21
|
+
return _jsx(Healthcheck, { database: database, clusterName: clusterName });
|
|
22
|
+
}, [database, clusterName]);
|
|
23
23
|
return (_jsx(HealthcheckDrawer, { isDrawerVisible: Boolean(showHealthcheck), onCloseDrawer: handleCloseDrawer, renderDrawerContent: renderDrawerContent, drawerId: "tenant-healthcheck-details", storageKey: "tenant-healthcheck-details-drawer-width", title: i18n('title_healthcheck-dashboard'), status: healthcheckStatus, healthcheckData: healthcheckData, downloadFilePrefix: `${database}-healthcheck`, downloadTooltip: i18n('action_download-healthcheck'), children: children }));
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=TenantDrawerHealthcheck.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenantDrawerHealthcheck.js","sourceRoot":"","sources":["../../../src/containers/Tenant/TenantDrawerHealthcheck.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,wBAAwB,EACxB,iBAAiB,GACpB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"TenantDrawerHealthcheck.js","sourceRoot":"","sources":["../../../src/containers/Tenant/TenantDrawerHealthcheck.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,wBAAwB,EACxB,iBAAiB,GACpB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAO5D,MAAM,UAAU,uBAAuB,CAAC,EAAC,QAAQ,EAAE,WAAW,EAA+B;IACzF,MAAM,EAAC,QAAQ,EAAC,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,EACF,2BAA2B,EAC3B,eAAe,EACf,wBAAwB,EACxB,2BAA2B,GAC9B,GAAG,oBAAoB,EAAE,CAAC;IAE3B,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,iBAAiB,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,WAAW,CAAC,CACxD,CAAC;IAEF,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,wBAAwB,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,WAAW,CAAC,CAC/D,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACnC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QACpC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,2BAA2B,EAAE,wBAAwB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAEzF,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/C,OAAO,KAAC,WAAW,IAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAI,CAAC;IACzE,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5B,OAAO,CACH,KAAC,iBAAiB,IACd,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,EACzC,aAAa,EAAE,iBAAiB,EAChC,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,EAAC,4BAA4B,EACrC,UAAU,EAAC,yCAAyC,EACpD,KAAK,EAAE,IAAI,CAAC,6BAA6B,CAAC,EAC1C,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,GAAG,QAAQ,cAAc,EAC7C,eAAe,EAAE,IAAI,CAAC,6BAA6B,CAAC,YAEnD,QAAQ,GACO,CACvB,CAAC;AACN,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { DrawerContextProvider } from '../../components/Drawer/DrawerContext';
|
|
3
|
+
import { useClusterNameFromQuery } from '../../utils/hooks/useDatabaseFromQuery';
|
|
3
4
|
import { TenantDrawerHealthcheck } from './TenantDrawerHealthcheck';
|
|
4
5
|
import { TenantDrawerRights } from './TenantDrawerRights';
|
|
5
6
|
export function TenantDrawerWrapper({ children }) {
|
|
6
|
-
|
|
7
|
+
const clusterName = useClusterNameFromQuery();
|
|
8
|
+
return (_jsx(DrawerContextProvider, { children: _jsx(TenantDrawerHealthcheck, { clusterName: clusterName, children: _jsx(TenantDrawerRights, { children: children }) }) }));
|
|
7
9
|
}
|
|
8
10
|
//# sourceMappingURL=TenantDrawerWrappers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenantDrawerWrappers.js","sourceRoot":"","sources":["../../../src/containers/Tenant/TenantDrawerWrappers.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,qBAAqB,EAAC,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"TenantDrawerWrappers.js","sourceRoot":"","sources":["../../../src/containers/Tenant/TenantDrawerWrappers.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,qBAAqB,EAAC,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAC,uBAAuB,EAAC,MAAM,wCAAwC,CAAC;AAE/E,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAMxD,MAAM,UAAU,mBAAmB,CAAC,EAAC,QAAQ,EAA2B;IACpE,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC;IAE9C,OAAO,CACH,KAAC,qBAAqB,cAClB,KAAC,uBAAuB,IAAC,WAAW,EAAE,WAAW,YAC7C,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,GAC7B,GACN,CAC3B,CAAC;AACN,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { TenantDiagnosticsTab, TenantPage } from '../../../store/reducers/tenant/types';
|
|
2
|
-
export declare const V2_DATABASE_PAGE_DIAGNOSTICS_TABS: readonly ["database", "monitoring", "topQueries", "storage", "network", "configs", "operations", "backups"];
|
|
3
|
-
export declare function getTenantPageForDiagnosticsTab(tab: TenantDiagnosticsTab, isV2Enabled: boolean): TenantPage;
|
|
2
|
+
export declare const V2_DATABASE_PAGE_DIAGNOSTICS_TABS: readonly ["database", "monitoring", "topQueries", "nodes", "tablets", "storage", "network", "configs", "operations", "backups"];
|
|
3
|
+
export declare function getTenantPageForDiagnosticsTab(tab: TenantDiagnosticsTab, isV2Enabled: boolean, currentTenantPage?: TenantPage): TenantPage;
|
|
@@ -3,10 +3,13 @@ import { TENANT_DIAGNOSTICS_TABS_IDS, TENANT_PAGES_IDS, } from '../../../store/r
|
|
|
3
3
|
// Route each tab to the page that renders it; otherwise Diagnostics falls back to the
|
|
4
4
|
// first available tab and actions like "Monitoring" appear to do nothing.
|
|
5
5
|
// These tabs live under databasePage=database; the rest stay under databasePage=diagnostics.
|
|
6
|
+
// Tabs listed in V2_DUPLICATED_TABS are available on both pages.
|
|
6
7
|
export const V2_DATABASE_PAGE_DIAGNOSTICS_TABS = [
|
|
7
8
|
TENANT_DIAGNOSTICS_TABS_IDS.database,
|
|
8
9
|
TENANT_DIAGNOSTICS_TABS_IDS.monitoring,
|
|
9
10
|
TENANT_DIAGNOSTICS_TABS_IDS.topQueries,
|
|
11
|
+
TENANT_DIAGNOSTICS_TABS_IDS.nodes,
|
|
12
|
+
TENANT_DIAGNOSTICS_TABS_IDS.tablets,
|
|
10
13
|
TENANT_DIAGNOSTICS_TABS_IDS.storage,
|
|
11
14
|
TENANT_DIAGNOSTICS_TABS_IDS.network,
|
|
12
15
|
TENANT_DIAGNOSTICS_TABS_IDS.configs,
|
|
@@ -14,10 +17,19 @@ export const V2_DATABASE_PAGE_DIAGNOSTICS_TABS = [
|
|
|
14
17
|
TENANT_DIAGNOSTICS_TABS_IDS.backups,
|
|
15
18
|
];
|
|
16
19
|
const V2_DATABASE_PAGE_TABS = new Set(V2_DATABASE_PAGE_DIAGNOSTICS_TABS);
|
|
17
|
-
|
|
20
|
+
const V2_DUPLICATED_TABS = new Set([
|
|
21
|
+
TENANT_DIAGNOSTICS_TABS_IDS.nodes,
|
|
22
|
+
TENANT_DIAGNOSTICS_TABS_IDS.tablets,
|
|
23
|
+
]);
|
|
24
|
+
export function getTenantPageForDiagnosticsTab(tab, isV2Enabled, currentTenantPage) {
|
|
18
25
|
if (!isV2Enabled) {
|
|
19
26
|
return TENANT_PAGES_IDS.diagnostics;
|
|
20
27
|
}
|
|
28
|
+
if (V2_DUPLICATED_TABS.has(tab)) {
|
|
29
|
+
return currentTenantPage === TENANT_PAGES_IDS.database
|
|
30
|
+
? TENANT_PAGES_IDS.database
|
|
31
|
+
: TENANT_PAGES_IDS.diagnostics;
|
|
32
|
+
}
|
|
21
33
|
return V2_DATABASE_PAGE_TABS.has(tab)
|
|
22
34
|
? TENANT_PAGES_IDS.database
|
|
23
35
|
: TENANT_PAGES_IDS.diagnostics;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticsNavigation.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/utils/diagnosticsNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,gBAAgB,GACnB,MAAM,0CAA0C,CAAC;AAGlD,2FAA2F;AAC3F,sFAAsF;AACtF,0EAA0E;AAC1E,6FAA6F;AAC7F,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC7C,2BAA2B,CAAC,QAAQ;IACpC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,OAAO;CACa,CAAC;AAErD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAuB,iCAAiC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnosticsNavigation.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/utils/diagnosticsNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,gBAAgB,GACnB,MAAM,0CAA0C,CAAC;AAGlD,2FAA2F;AAC3F,sFAAsF;AACtF,0EAA0E;AAC1E,6FAA6F;AAC7F,iEAAiE;AACjE,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC7C,2BAA2B,CAAC,QAAQ;IACpC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,KAAK;IACjC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,OAAO;IACnC,2BAA2B,CAAC,UAAU;IACtC,2BAA2B,CAAC,OAAO;CACa,CAAC;AAErD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAuB,iCAAiC,CAAC,CAAC;AAC/F,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAuB;IACrD,2BAA2B,CAAC,KAAK;IACjC,2BAA2B,CAAC,OAAO;CACtC,CAAC,CAAC;AAEH,MAAM,UAAU,8BAA8B,CAC1C,GAAyB,EACzB,WAAoB,EACpB,iBAA8B;IAE9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC,WAAW,CAAC;IACxC,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,iBAAiB,KAAK,gBAAgB,CAAC,QAAQ;YAClD,CAAC,CAAC,gBAAgB,CAAC,QAAQ;YAC3B,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;IACvC,CAAC;IACD,OAAO,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC;QACjC,CAAC,CAAC,gBAAgB,CAAC,QAAQ;QAC3B,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PreparedTenant } from '../../store/reducers/tenants/types';
|
|
3
|
+
export type DatabaseStatusClickHandler = (tenant: PreparedTenant, database: string | undefined) => void;
|
|
4
|
+
interface DatabaseDrawerHealthcheckProps {
|
|
5
|
+
children: (onStatusClick: DatabaseStatusClickHandler) => React.ReactNode;
|
|
6
|
+
clusterName?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function DatabaseDrawerHealthcheck({ children, clusterName }: DatabaseDrawerHealthcheckProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { selectAllHealthcheckInfo, selectCheckStatus, } from '../../store/reducers/healthcheckInfo/healthcheckInfo';
|
|
4
|
+
import { useTypedSelector } from '../../utils/hooks';
|
|
5
|
+
import { Healthcheck } from '../Tenant/Healthcheck/Healthcheck';
|
|
6
|
+
import { HealthcheckDrawer } from '../Tenant/Healthcheck/components/HealthcheckDrawer';
|
|
7
|
+
import tenantI18n from '../Tenant/i18n';
|
|
8
|
+
import { useTenantQueryParams } from '../Tenant/useTenantQueryParams';
|
|
9
|
+
export function DatabaseDrawerHealthcheck({ children, clusterName }) {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
const [selectedDatabase, setSelectedDatabase] = React.useState();
|
|
12
|
+
const { handleIssuesFilterChange, handleHealthcheckViewChange } = useTenantQueryParams();
|
|
13
|
+
const selectedTenant = selectedDatabase === null || selectedDatabase === void 0 ? void 0 : selectedDatabase.tenant;
|
|
14
|
+
const database = (_a = selectedDatabase === null || selectedDatabase === void 0 ? void 0 : selectedDatabase.database) !== null && _a !== void 0 ? _a : '';
|
|
15
|
+
const databaseName = (_b = selectedTenant === null || selectedTenant === void 0 ? void 0 : selectedTenant.Name) !== null && _b !== void 0 ? _b : '';
|
|
16
|
+
const selectedClusterName = clusterName !== null && clusterName !== void 0 ? clusterName : selectedTenant === null || selectedTenant === void 0 ? void 0 : selectedTenant.Cluster;
|
|
17
|
+
const databaseType = selectedTenant === null || selectedTenant === void 0 ? void 0 : selectedTenant.Type;
|
|
18
|
+
const healthcheckStatus = useTypedSelector((state) => selectCheckStatus(state, database, selectedClusterName));
|
|
19
|
+
const healthcheckData = useTypedSelector((state) => selectAllHealthcheckInfo(state, database, selectedClusterName));
|
|
20
|
+
const handleStatusClick = React.useCallback((tenant, selectedDatabaseValue) => {
|
|
21
|
+
if (selectedDatabaseValue && tenant.Type !== 'Serverless') {
|
|
22
|
+
setSelectedDatabase({ tenant, database: selectedDatabaseValue });
|
|
23
|
+
}
|
|
24
|
+
}, []);
|
|
25
|
+
const handleCloseDrawer = React.useCallback(() => {
|
|
26
|
+
setSelectedDatabase(undefined);
|
|
27
|
+
handleIssuesFilterChange(undefined);
|
|
28
|
+
handleHealthcheckViewChange(undefined);
|
|
29
|
+
}, [handleHealthcheckViewChange, handleIssuesFilterChange]);
|
|
30
|
+
const renderDrawerContent = React.useCallback(() => {
|
|
31
|
+
if (!database) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return (_jsx(Healthcheck, { database: database, clusterName: selectedClusterName, databaseType: databaseType }));
|
|
35
|
+
}, [database, databaseType, selectedClusterName]);
|
|
36
|
+
const title = `${tenantI18n('title_healthcheck-dashboard')}${databaseName ? `: ${databaseName}` : ''}`;
|
|
37
|
+
return (_jsx(HealthcheckDrawer, { isDrawerVisible: Boolean(database), onCloseDrawer: handleCloseDrawer, renderDrawerContent: renderDrawerContent, drawerId: "database-list-healthcheck-details", storageKey: "database-list-healthcheck-details-drawer-width", title: title, status: healthcheckStatus, healthcheckData: healthcheckData, downloadFilePrefix: `${databaseName || database}-healthcheck`, downloadTooltip: tenantI18n('action_download-healthcheck'), isDownloadDisabled: !healthcheckData, children: children(handleStatusClick) }));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=DatabaseDrawerHealthcheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseDrawerHealthcheck.js","sourceRoot":"","sources":["../../../src/containers/Tenants/DatabaseDrawerHealthcheck.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,5 +11,5 @@ interface TenantsTableProps {
|
|
|
11
11
|
showWithProblemsFilter?: boolean;
|
|
12
12
|
showPoolsColumn?: boolean;
|
|
13
13
|
}
|
|
14
|
-
export declare
|
|
14
|
+
export declare function TenantsTable(props: TenantsTableProps): import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
export {};
|
|
@@ -27,6 +27,7 @@ import { useAutoRefreshInterval, useSetting } from '../../utils/hooks';
|
|
|
27
27
|
import { useSelectedColumns } from '../../utils/hooks/useSelectedColumns';
|
|
28
28
|
import { getIllustration } from '../../utils/illustrations';
|
|
29
29
|
import { isNumeric } from '../../utils/utils';
|
|
30
|
+
import { DatabaseDrawerHealthcheck } from './DatabaseDrawerHealthcheck';
|
|
30
31
|
import { DATABASES_COLUMNS_IDS, DATABASES_COLUMNS_TITLES, DATABASES_DEFAULT_COLUMNS, DATABASES_REQUIRED_COLUMNS, DATABASES_SELECTED_COLUMNS_KEY, } from './constants';
|
|
31
32
|
import i18n from './i18n';
|
|
32
33
|
import { useTenantsQueryParams } from './useTenantsQueryParams';
|
|
@@ -69,7 +70,7 @@ function databaseStateToLabelTheme(state) {
|
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
|
-
|
|
73
|
+
const TenantsTableContent = ({ clusterName, environmentName, isMetaDatabasesAvailable, scrollContainerRef, additionalTenantsProps, showDomainDatabase, showWithProblemsFilter, showPoolsColumn, onStatusClick, }) => {
|
|
73
74
|
const SuccessImage = getIllustration('SuccessOperation');
|
|
74
75
|
const [autoRefreshInterval] = useAutoRefreshInterval();
|
|
75
76
|
const { currentData, isFetching, error } = tenantsApi.useGetTenantsInfoQuery({ clusterName, environmentName, isMetaDatabasesAvailable }, { pollingInterval: autoRefreshInterval });
|
|
@@ -110,7 +111,7 @@ export const TenantsTable = ({ clusterName, environmentName, isMetaDatabasesAvai
|
|
|
110
111
|
{
|
|
111
112
|
name: DATABASES_COLUMNS_IDS.Name,
|
|
112
113
|
header: DATABASES_COLUMNS_TITLES[DATABASES_COLUMNS_IDS.Name],
|
|
113
|
-
render: ({ row }) => (_jsx(TenantNameWrapper, { tenant: row, clusterName: clusterName, additionalTenantsProps: additionalTenantsProps, externalLink: Boolean(environmentName) })),
|
|
114
|
+
render: ({ row }) => (_jsx(TenantNameWrapper, { tenant: row, clusterName: clusterName, additionalTenantsProps: additionalTenantsProps, externalLink: Boolean(environmentName), onStatusClick: onStatusClick })),
|
|
114
115
|
width: 440,
|
|
115
116
|
resizeMinWidth: 200,
|
|
116
117
|
sortable: true,
|
|
@@ -220,6 +221,7 @@ export const TenantsTable = ({ clusterName, environmentName, isMetaDatabasesAvai
|
|
|
220
221
|
additionalTenantsProps,
|
|
221
222
|
environmentName,
|
|
222
223
|
handleSearchChange,
|
|
224
|
+
onStatusClick,
|
|
223
225
|
showNetworkUtilization,
|
|
224
226
|
showPoolsColumn,
|
|
225
227
|
]);
|
|
@@ -238,4 +240,8 @@ export const TenantsTable = ({ clusterName, environmentName, isMetaDatabasesAvai
|
|
|
238
240
|
};
|
|
239
241
|
return (_jsx("div", { className: b('table-wrapper'), children: _jsxs(TableWithControlsLayout, { fullHeight: true, children: [_jsx(TableWithControlsLayout.Controls, { renderExtraControls: renderExtraControls, children: renderControls() }), error ? _jsx(ResponseError, { error: error }) : null, _jsx(TableWithControlsLayout.Table, { scrollContainerRef: scrollContainerRef, loading: loading, scrollDependencies: [search, withProblems, sortParams], children: currentData ? renderTable() : null })] }) }));
|
|
240
242
|
};
|
|
243
|
+
export function TenantsTable(props) {
|
|
244
|
+
var _a, _b;
|
|
245
|
+
return (_jsx(DatabaseDrawerHealthcheck, { clusterName: props.clusterName, children: (onStatusClick) => _jsx(TenantsTableContent, { ...props, onStatusClick: onStatusClick }) }, `${(_a = props.clusterName) !== null && _a !== void 0 ? _a : ''}:${(_b = props.environmentName) !== null && _b !== void 0 ? _b : ''}`));
|
|
246
|
+
}
|
|
241
247
|
//# sourceMappingURL=TenantsTable.js.map
|