diff --git a/public/app/features/dashboard/dashnav/dashnav.html b/public/app/features/dashboard/dashnav/dashnav.html index 19112f77a43..e8e1ddc9011 100644 --- a/public/app/features/dashboard/dashnav/dashnav.html +++ b/public/app/features/dashboard/dashnav/dashnav.html @@ -48,6 +48,7 @@
  • View JSON
  • Make Editable
  • Save As...
  • +
  • Save As Home
  • Delete dashboard
  • diff --git a/public/app/features/dashboard/dashnav/dashnav.ts b/public/app/features/dashboard/dashnav/dashnav.ts index dcc2f40d0dc..44ab8710144 100644 --- a/public/app/features/dashboard/dashnav/dashnav.ts +++ b/public/app/features/dashboard/dashnav/dashnav.ts @@ -7,7 +7,7 @@ import angular from 'angular'; export class DashNavCtrl { /** @ngInject */ - constructor($scope, $rootScope, alertSrv, $location, playlistSrv, backendSrv, $timeout) { + constructor($scope, $rootScope, alertSrv, $location, playlistSrv, backendSrv, contextSrv, $timeout) { $scope.init = function() { $scope.onAppEvent('save-dashboard', $scope.saveDashboard); @@ -103,6 +103,26 @@ export class DashNavCtrl { }, $scope.handleSaveDashError); }; + $scope.saveDashboardAsHome = function() { + var orgId = 'org-' + contextSrv.user.orgId; + backendSrv.get('/api/preferences').then(function(prefs) { + + // Checking if the preferences already exists or not + if (prefs.userId === 0 && prefs.orgId === 0 && prefs.preference === null) { + prefs.preference = {}; + } + if (prefs.preference == null) { + prefs.preference = { + home_dashboard_id: $scope.dashboard.id + }; + } else { + var orgPrefs = prefs.preference; + orgPrefs.home_dashboard = $scope.dashboard.id; + } + backendSrv.put('api/preferences', prefs); + }); + }; + $scope.handleSaveDashError = function(err) { if (err.data && err.data.status === "version-mismatch") { err.isHandled = true;