From 62e6fed5ce1be7cabddb177fc9c51140194aa0b7 Mon Sep 17 00:00:00 2001 From: Marcus Efraimsson Date: Thu, 14 Dec 2017 16:51:23 +0100 Subject: [PATCH] dashfolders: fix moving plugin dashboard to folder If moving a dashboard and the server responds with a plugin-dashboard error we add the overwrite flag and moving the dashboard again. Fixes #10183 --- public/app/core/services/backend_srv.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/public/app/core/services/backend_srv.ts b/public/app/core/services/backend_srv.ts index 097e4de3106..f9cc0ae124f 100644 --- a/public/app/core/services/backend_srv.ts +++ b/public/app/core/services/backend_srv.ts @@ -297,8 +297,8 @@ export class BackendSrv { this.getDashboard('db', slug).then(fullDash => { const model = new DashboardModel(fullDash.dashboard, fullDash.meta); - if ((!model.folderId && toFolder.id === 0) || - model.folderId === toFolder.id) { + if ((!fullDash.meta.folderId && toFolder.id === 0) || + fullDash.meta.folderId === toFolder.id) { deferred.resolve({alreadyInFolder: true}); return; } @@ -312,7 +312,18 @@ export class BackendSrv { .then(() => { deferred.resolve({succeeded: true}); }).catch(err => { - deferred.resolve({succeeded: false}); + if (err.data && err.data.status === "plugin-dashboard") { + err.isHandled = true; + + this.saveDashboard(clone, {overwrite: true}) + .then(() => { + deferred.resolve({succeeded: true}); + }).catch(err => { + deferred.resolve({succeeded: false}); + }); + } else { + deferred.resolve({succeeded: false}); + } }); });