From a65ce992c140164ae7f90206559afecfda9d63e3 Mon Sep 17 00:00:00 2001 From: Will Browne Date: Mon, 17 Jan 2022 10:33:42 +0100 Subject: [PATCH] fix delete plugin dashboard (#44055) --- pkg/plugins/dashboards.go | 1 + pkg/plugins/manager/dashboards.go | 4 ++++ .../features/plugins/admin/components/PluginDashboards.tsx | 2 +- public/app/types/plugins.ts | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/plugins/dashboards.go b/pkg/plugins/dashboards.go index f8973015a50..f2c6cd6063c 100644 --- a/pkg/plugins/dashboards.go +++ b/pkg/plugins/dashboards.go @@ -1,6 +1,7 @@ package plugins type PluginDashboardInfoDTO struct { + UID string `json:"uid"` PluginId string `json:"pluginId"` Title string `json:"title"` Imported bool `json:"imported"` diff --git a/pkg/plugins/manager/dashboards.go b/pkg/plugins/manager/dashboards.go index 42cc5833bf2..c1a6eee1d8c 100644 --- a/pkg/plugins/manager/dashboards.go +++ b/pkg/plugins/manager/dashboards.go @@ -41,6 +41,7 @@ func (m *PluginManager) GetPluginDashboards(ctx context.Context, orgID int64, pl } res := &plugins.PluginDashboardInfoDTO{} + res.UID = dashboard.Uid res.Path = include.Path res.PluginId = plugin.ID res.Title = dashboard.Title @@ -49,6 +50,7 @@ func (m *PluginManager) GetPluginDashboards(ctx context.Context, orgID int64, pl // find existing dashboard for _, existingDash := range query.Result { if existingDash.Slug == dashboard.Slug { + res.UID = existingDash.Uid res.DashboardId = existingDash.Id res.Imported = true res.ImportedUri = "db/" + existingDash.Slug @@ -65,6 +67,7 @@ func (m *PluginManager) GetPluginDashboards(ctx context.Context, orgID int64, pl for _, dash := range query.Result { if _, exists := existingMatches[dash.Id]; !exists { result = append(result, &plugins.PluginDashboardInfoDTO{ + UID: dash.Uid, Slug: dash.Slug, DashboardId: dash.Id, Removed: true, @@ -177,6 +180,7 @@ func (m *PluginManager) ImportDashboard(ctx context.Context, pluginID, path stri } return plugins.PluginDashboardInfoDTO{ + UID: savedDash.Uid, PluginId: pluginID, Title: savedDash.Title, Path: path, diff --git a/public/app/features/plugins/admin/components/PluginDashboards.tsx b/public/app/features/plugins/admin/components/PluginDashboards.tsx index 59c2c49e80e..734368722aa 100644 --- a/public/app/features/plugins/admin/components/PluginDashboards.tsx +++ b/public/app/features/plugins/admin/components/PluginDashboards.tsx @@ -87,7 +87,7 @@ export class PluginDashboards extends PureComponent { remove = (dash: PluginDashboard) => { getBackendSrv() - .delete('/api/dashboards/' + dash.importedUri) + .delete('/api/dashboards/uid/' + dash.uid) .then(() => { dash.imported = false; this.setState({ dashboards: [...this.state.dashboards] }); diff --git a/public/app/types/plugins.ts b/public/app/types/plugins.ts index 17b2e32207c..e454481a7ff 100644 --- a/public/app/types/plugins.ts +++ b/public/app/types/plugins.ts @@ -15,6 +15,7 @@ export interface PluginDashboard { revision: number; slug: string; title: string; + uid: string; } export interface PanelPluginsIndex {