fix: trace explorer and logs explorer export to dashboard is handled (#4001)

Co-authored-by: Yunus M <myounis.ar@live.com>
This commit is contained in:
Palash Gupta 2023-11-21 00:52:53 +05:30 committed by GitHub
parent c4536f9069
commit f4ecfb510a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 5 deletions

View File

@ -41,6 +41,7 @@ import {
import { DataSource, LogsAggregatorOperator } from 'types/common/queryBuilder'; import { DataSource, LogsAggregatorOperator } from 'types/common/queryBuilder';
import { GlobalReducer } from 'types/reducer/globalTime'; import { GlobalReducer } from 'types/reducer/globalTime';
import { generateExportToDashboardLink } from 'utils/dashboard/generateExportToDashboardLink'; import { generateExportToDashboardLink } from 'utils/dashboard/generateExportToDashboardLink';
import { v4 } from 'uuid';
import { ActionsWrapper } from './LogsExplorerViews.styled'; import { ActionsWrapper } from './LogsExplorerViews.styled';
@ -268,9 +269,12 @@ function LogsExplorerViews(): JSX.Element {
? panelType ? panelType
: PANEL_TYPES.TIME_SERIES; : PANEL_TYPES.TIME_SERIES;
const widgetId = v4();
const updatedDashboard = addEmptyWidgetInDashboardJSONWithQuery( const updatedDashboard = addEmptyWidgetInDashboardJSONWithQuery(
dashboard, dashboard,
exportDefaultQuery, exportDefaultQuery,
widgetId,
panelTypeParam, panelTypeParam,
); );
@ -304,6 +308,7 @@ function LogsExplorerViews(): JSX.Element {
query: exportDefaultQuery, query: exportDefaultQuery,
panelType: panelTypeParam, panelType: panelTypeParam,
dashboardId: data.payload?.uuid || '', dashboardId: data.payload?.uuid || '',
widgetId,
}); });
history.push(dashboardEditView); history.push(dashboardEditView);

View File

@ -5,6 +5,7 @@ import { Query } from 'types/api/queryBuilder/queryBuilderData';
export const addEmptyWidgetInDashboardJSONWithQuery = ( export const addEmptyWidgetInDashboardJSONWithQuery = (
dashboard: Dashboard, dashboard: Dashboard,
query: Query, query: Query,
widgetId: string,
panelTypes?: PANEL_TYPES, panelTypes?: PANEL_TYPES,
): Dashboard => ({ ): Dashboard => ({
...dashboard, ...dashboard,
@ -12,7 +13,7 @@ export const addEmptyWidgetInDashboardJSONWithQuery = (
...dashboard.data, ...dashboard.data,
layout: [ layout: [
{ {
i: 'empty', i: widgetId,
w: 6, w: 6,
x: 0, x: 0,
h: 3, h: 3,
@ -23,7 +24,7 @@ export const addEmptyWidgetInDashboardJSONWithQuery = (
widgets: [ widgets: [
...(dashboard?.data?.widgets || []), ...(dashboard?.data?.widgets || []),
{ {
id: 'empty', id: widgetId,
query, query,
description: '', description: '',
isStacked: false, isStacked: false,

View File

@ -19,6 +19,7 @@ import { ErrorBoundary } from 'react-error-boundary';
import { Dashboard } from 'types/api/dashboard/getAll'; import { Dashboard } from 'types/api/dashboard/getAll';
import { DataSource } from 'types/common/queryBuilder'; import { DataSource } from 'types/common/queryBuilder';
import { generateExportToDashboardLink } from 'utils/dashboard/generateExportToDashboardLink'; import { generateExportToDashboardLink } from 'utils/dashboard/generateExportToDashboardLink';
import { v4 } from 'uuid';
import { ActionsWrapper, Container } from './styles'; import { ActionsWrapper, Container } from './styles';
import { getTabsItems } from './utils'; import { getTabsItems } from './utils';
@ -99,9 +100,12 @@ function TracesExplorer(): JSX.Element {
? panelType ? panelType
: PANEL_TYPES.TIME_SERIES; : PANEL_TYPES.TIME_SERIES;
const widgetId = v4();
const updatedDashboard = addEmptyWidgetInDashboardJSONWithQuery( const updatedDashboard = addEmptyWidgetInDashboardJSONWithQuery(
dashboard, dashboard,
exportDefaultQuery, exportDefaultQuery,
widgetId,
panelTypeParam, panelTypeParam,
); );
@ -134,6 +138,7 @@ function TracesExplorer(): JSX.Element {
query: exportDefaultQuery, query: exportDefaultQuery,
panelType: panelTypeParam, panelType: panelTypeParam,
dashboardId: data.payload?.uuid || '', dashboardId: data.payload?.uuid || '',
widgetId,
}); });
history.push(dashboardEditView); history.push(dashboardEditView);

View File

@ -8,15 +8,19 @@ type GenerateExportToDashboardLinkParams = {
dashboardId: string; dashboardId: string;
panelType: PANEL_TYPES; panelType: PANEL_TYPES;
query: Query; query: Query;
widgetId: string;
}; };
export const generateExportToDashboardLink = ({ export const generateExportToDashboardLink = ({
query, query,
dashboardId, dashboardId,
panelType, panelType,
widgetId,
}: GenerateExportToDashboardLinkParams): string => }: GenerateExportToDashboardLinkParams): string =>
`${generatePath(ROUTES.DASHBOARD, { `${generatePath(ROUTES.DASHBOARD, {
dashboardId, dashboardId,
})}/new?${QueryParams.graphType}=${panelType}&${QueryParams.widgetId}=empty&${ })}/new?${QueryParams.graphType}=${panelType}&${
QueryParams.compositeQuery QueryParams.widgetId
}=${encodeURIComponent(JSON.stringify(query))}`; }=${widgetId}&${QueryParams.compositeQuery}=${encodeURIComponent(
JSON.stringify(query),
)}`;