diff --git a/public/app/features/dashboard/dashboard_srv.ts b/public/app/features/dashboard/dashboard_srv.ts index 9d766fdfc3f..0ce448b6e88 100644 --- a/public/app/features/dashboard/dashboard_srv.ts +++ b/public/app/features/dashboard/dashboard_srv.ts @@ -100,7 +100,7 @@ export class DashboardSrv { .catch(this.handleSaveDashboardError.bind(this, clone, options)); } - saveDashboard(options, clone) { + saveDashboard(options?, clone?) { if (clone) { this.setCurrent(this.create(clone, this.dash.meta)); } @@ -120,6 +120,10 @@ export class DashboardSrv { return this.save(this.dash.getSaveModelClone(), options); } + saveJSONDashboard(json: string) { + return this.save(JSON.parse(json), {}); + } + showSaveAsModal() { this.$rootScope.appEvent('show-modal', { templateHtml: '', diff --git a/public/app/features/dashboard/settings/settings.ts b/public/app/features/dashboard/settings/settings.ts index e9d5c6180be..9949b52dd45 100755 --- a/public/app/features/dashboard/settings/settings.ts +++ b/public/app/features/dashboard/settings/settings.ts @@ -134,7 +134,13 @@ export class SettingsCtrl { } saveDashboard() { - this.dashboardSrv.saveDashboard(); + if (this.viewId === 'view_json') { + this.dashboardSrv.saveJSONDashboard(this.json).then(() => { + window.location.reload(); + }); + } else { + this.dashboardSrv.saveDashboard(); + } } onPostSave() {