浏览代码

Able to save home dashboard

utkarshcmu 9 年之前
父节点
当前提交
0bf721a74c
共有 2 个文件被更改,包括 22 次插入1 次删除
  1. 1 0
      public/app/features/dashboard/dashnav/dashnav.html
  2. 21 1
      public/app/features/dashboard/dashnav/dashnav.ts

+ 1 - 0
public/app/features/dashboard/dashnav/dashnav.html

@@ -48,6 +48,7 @@
 			<li ng-if="dashboardMeta.canEdit"><a class="pointer" ng-click="editJson();">View JSON</a></li>
 			<li ng-if="contextSrv.isEditor && !dashboard.editable"><a class="pointer" ng-click="makeEditable();">Make Editable</a></li>
 			<li ng-if="contextSrv.isEditor"><a class="pointer" ng-click="saveDashboardAs();">Save As...</a></li>
+      <li ng-if="contextSrv.isEditor"><a class="pointer" ng-click="saveDashboardAsHome();">Save As Home</a></li>
 			<li ng-if="dashboardMeta.canSave"><a class="pointer" ng-click="deleteDashboard();">Delete dashboard</a></li>
 		</ul>
 	</li>

+ 21 - 1
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;