From 8f36f905ee5d9ad0e47fead3b88bec60c7df414b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 12 Feb 2024 16:23:12 +0100 Subject: [PATCH] SceneSolo: Minor fixes (#82289) * SceneSolo: Minor fixes * remove logging --- pkg/middleware/loggermw/logger.go | 1 + .../dashboard-scene/sharing/ShareLinkTab.test.tsx | 2 +- .../dashboard-scene/sharing/ShareLinkTab.tsx | 12 ++++++++++-- .../dashboard-scene/sharing/SharePanelEmbedTab.tsx | 1 + public/app/routes/routes.tsx | 4 ++-- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/pkg/middleware/loggermw/logger.go b/pkg/middleware/loggermw/logger.go index b0bba7d3fdb..34dcab5066e 100644 --- a/pkg/middleware/loggermw/logger.go +++ b/pkg/middleware/loggermw/logger.go @@ -74,6 +74,7 @@ func (l *loggerImpl) Middleware() web.Middleware { duration := time.Since(start) timeTaken := duration / time.Millisecond ctx := contexthandler.FromContext(r.Context()) + if ctx != nil && ctx.PerfmonTimer != nil { ctx.PerfmonTimer.Observe(float64(timeTaken)) } diff --git a/public/app/features/dashboard-scene/sharing/ShareLinkTab.test.tsx b/public/app/features/dashboard-scene/sharing/ShareLinkTab.test.tsx index 765b54bb6d8..62d7f5e737c 100644 --- a/public/app/features/dashboard-scene/sharing/ShareLinkTab.test.tsx +++ b/public/app/features/dashboard-scene/sharing/ShareLinkTab.test.tsx @@ -80,7 +80,7 @@ describe('ShareLinkTab', () => { await screen.findByRole('link', { name: selectors.pages.SharePanelModal.linkToRenderedImage }) ).toHaveAttribute( 'href', - 'http://dashboards.grafana.com/grafana/render/d-solo/dash-1?from=2019-02-11T13:00:00.000Z&to=2019-02-11T19:00:00.000Z&viewPanel=panel-12&width=1000&height=500&tz=Pacific%2FEaster' + 'http://dashboards.grafana.com/grafana/render/d-solo/dash-1?from=2019-02-11T13:00:00.000Z&to=2019-02-11T19:00:00.000Z&panelId=panel-12&__feature.dashboardSceneSolo&width=1000&height=500&tz=Pacific%2FEaster' ); }); }); diff --git a/public/app/features/dashboard-scene/sharing/ShareLinkTab.tsx b/public/app/features/dashboard-scene/sharing/ShareLinkTab.tsx index 3efa0c83fe3..a41f4dc2808 100644 --- a/public/app/features/dashboard-scene/sharing/ShareLinkTab.tsx +++ b/public/app/features/dashboard-scene/sharing/ShareLinkTab.tsx @@ -83,12 +83,20 @@ export class ShareLinkTab extends SceneObjectBase { shareUrl = await createShortLink(shareUrl); } + // the image panel solo route uses panelId instead of viewPanel + let imageQueryParams = urlParamsUpdate; + if (panel) { + delete imageQueryParams.viewPanel; + imageQueryParams.panelId = panel.state.key; + // force solo route to use scenes + imageQueryParams['__feature.dashboardSceneSolo'] = true; + } + const imageUrl = getDashboardUrl({ uid: dashboard.state.uid, currentQueryParams: location.search, - updateQuery: urlParamsUpdate, + updateQuery: { ...urlParamsUpdate, panelId: panel?.state.key }, absolute: true, - soloRoute: true, render: true, timeZone: getRenderTimeZone(timeRange.getTimeZone()), diff --git a/public/app/features/dashboard-scene/sharing/SharePanelEmbedTab.tsx b/public/app/features/dashboard-scene/sharing/SharePanelEmbedTab.tsx index 580464a42fd..ce6e7391eb5 100644 --- a/public/app/features/dashboard-scene/sharing/SharePanelEmbedTab.tsx +++ b/public/app/features/dashboard-scene/sharing/SharePanelEmbedTab.tsx @@ -69,6 +69,7 @@ const getIframeBuilder = params.set('panelId', panelId); params.delete('editPanel'); params.delete('viewPanel'); + params.set('__feature.dashboardSceneSolo', 'true'); const soloUrl = getDashboardUrl({ absolute: true, diff --git a/public/app/routes/routes.tsx b/public/app/routes/routes.tsx index 846e354fb43..5f2cf1423c0 100644 --- a/public/app/routes/routes.tsx +++ b/public/app/routes/routes.tsx @@ -81,14 +81,14 @@ export function getAppRoutes(): RouteDescriptor[] { ), }, { - path: '/d-solo/:uid/:slug', + path: '/d-solo/:uid/:slug?', pageClass: 'dashboard-solo', routeName: DashboardRoutes.Normal, chromeless: true, component: SafeDynamicImport(() => config.featureToggles.dashboardSceneSolo ? import(/* webpackChunkName: "SoloPanelPage" */ '../features/dashboard-scene/solo/SoloPanelPage') - : import(/* webpackChunkName: "SoloPanelPage" */ '../features/dashboard/containers/SoloPanelPage') + : import(/* webpackChunkName: "SoloPanelPageOld" */ '../features/dashboard/containers/SoloPanelPage') ), }, // This route handles embedding of snapshot/scripted dashboard panels