浏览代码

Removed unwanted api, moved logic into backend

utkarshcmu 9 年之前
父节点
当前提交
cb42cfc6af
共有 3 个文件被更改,包括 30 次插入29 次删除
  1. 0 1
      pkg/api/api.go
  2. 22 14
      pkg/api/dashboard.go
  3. 8 14
      public/app/core/routes/dashboard_loaders.js

+ 0 - 1
pkg/api/api.go

@@ -200,7 +200,6 @@ func Register(r *macaron.Macaron) {
 			r.Get("/home", GetHomeDashboard)
 			r.Get("/tags", GetDashboardTags)
 			r.Post("/import", bind(dtos.ImportDashboardCommand{}), wrap(ImportDashboard))
-			r.Get("/id/:id", GetDashboardSlugById)
 		})
 
 		// Dashboard snapshots

+ 22 - 14
pkg/api/dashboard.go

@@ -159,6 +159,28 @@ func canEditDashboard(role m.RoleType) bool {
 }
 
 func GetHomeDashboard(c *middleware.Context) {
+
+	// Checking if there is any preference set for home dashboard
+	query := m.GetPreferencesQuery{UserId: c.UserId, OrgId: c.OrgId}
+
+	if err := bus.Dispatch(&query); err != nil {
+		c.JsonApiErr(500, "Failed to get preferences", err)
+	}
+
+	if query.Result.HomeDashboardId != 0 {
+		query := m.GetDashboardSlugByIdQuery{Id: query.Result.HomeDashboardId}
+		err := bus.Dispatch(&query)
+		if err != nil {
+			c.JsonApiErr(500, "Failed to get slug from database", err)
+			return
+		}
+
+		slug := dtos.DashboardSlug{Slug: query.Result}
+
+		c.JSON(200, &slug)
+		return
+	}
+
 	filePath := path.Join(setting.StaticRootPath, "dashboards/home.json")
 	file, err := os.Open(filePath)
 	if err != nil {
@@ -204,17 +226,3 @@ func GetDashboardTags(c *middleware.Context) {
 
 	c.JSON(200, query.Result)
 }
-
-func GetDashboardSlugById(c *middleware.Context) {
-	dashId := c.ParamsInt64(":id")
-	query := m.GetDashboardSlugByIdQuery{Id: dashId}
-	err := bus.Dispatch(&query)
-	if err != nil {
-		c.JsonApiErr(500, "Failed to get slug from database", err)
-		return
-	}
-
-	slug := dtos.DashboardSlug{Slug: query.Result}
-
-	c.JSON(200, &slug)
-}

+ 8 - 14
public/app/core/routes/dashboard_loaders.js

@@ -7,25 +7,19 @@ function (coreModule) {
   coreModule.default.controller('LoadDashboardCtrl', function($scope, $routeParams, dashboardLoaderSrv, backendSrv) {
 
     if (!$routeParams.slug) {
-
-      backendSrv.get('/api/preferences').then(function(preferences) {
-        if (preferences !== null && preferences.homeDashboardId !== 0) {
-          backendSrv.get('/api/dashboards/id/' + preferences.homeDashboardId).then(function(dashSlug) {
-            $routeParams.type = 'db';
-            $routeParams.slug = dashSlug.slug;
-            dashboardLoaderSrv.loadDashboard($routeParams.type, $routeParams.slug).then(function(result) {
-              $scope.initDashboard(result, $scope);
-            });
-          });
+      backendSrv.get('/api/dashboards/home').then(function(result) {
+        if (result.slug == null) {
+          var meta = result.meta;
+          meta.canSave = meta.canShare = meta.canStar = false;
+          $scope.initDashboard(result, $scope);
         } else {
-          backendSrv.get('/api/dashboards/home').then(function(result) {
-            var meta = result.meta;
-            meta.canSave = meta.canShare = meta.canStar = false;
+          $routeParams.type = 'db';
+          $routeParams.slug = result.slug;
+          dashboardLoaderSrv.loadDashboard($routeParams.type, $routeParams.slug).then(function(result) {
             $scope.initDashboard(result, $scope);
           });
         }
       });
-
       return;
     }