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;