Browse Source

Worked on home dashboard

Torkel Ödegaard 11 năm trước cách đây
mục cha
commit
42a5aefb23
6 tập tin đã thay đổi với 46 bổ sung6 xóa
  1. 1 1
      grafana
  2. 4 3
      pkg/api/api.go
  3. 24 0
      pkg/api/dashboard.go
  4. 1 0
      pkg/api/dtos/models.go
  5. 2 2
      pkg/models/dashboards.go
  6. 14 0
      pkg/models/home_dashboard.go

+ 1 - 1
grafana

@@ -1 +1 @@
-Subproject commit dfef4727b689d408b86d75c575646705bac79496
+Subproject commit bc673fd9697d5b37314ca0d75943dec68f9fffe1

+ 4 - 3
pkg/api/api.go

@@ -77,9 +77,10 @@ func Register(r *macaron.Macaron) {
 		}, reqAccountAdmin)
 
 		// Dashboard
-		r.Group("/dashboard", func() {
-			r.Combo("/:slug").Get(GetDashboard).Delete(DeleteDashboard)
-			r.Post("/", reqEditorRole, bind(m.SaveDashboardCommand{}), PostDashboard)
+		r.Group("/dashboards", func() {
+			r.Combo("/db/:slug").Get(GetDashboard).Delete(DeleteDashboard)
+			r.Post("/db", reqEditorRole, bind(m.SaveDashboardCommand{}), PostDashboard)
+			r.Get("/home", GetHomeDashboard)
 		})
 
 		// Search

+ 24 - 0
pkg/api/dashboard.go

@@ -1,10 +1,15 @@
 package api
 
 import (
+	"encoding/json"
+	"os"
+	"path"
+
 	"github.com/torkelo/grafana-pro/pkg/api/dtos"
 	"github.com/torkelo/grafana-pro/pkg/bus"
 	"github.com/torkelo/grafana-pro/pkg/middleware"
 	m "github.com/torkelo/grafana-pro/pkg/models"
+	"github.com/torkelo/grafana-pro/pkg/setting"
 	"github.com/torkelo/grafana-pro/pkg/util"
 )
 
@@ -81,3 +86,22 @@ func PostDashboard(c *middleware.Context, cmd m.SaveDashboardCommand) {
 
 	c.JSON(200, util.DynMap{"status": "success", "slug": cmd.Result.Slug})
 }
+
+func GetHomeDashboard(c *middleware.Context) {
+	filePath := path.Join(setting.StaticRootPath, "app/dashboards/default.json")
+	file, err := os.Open(filePath)
+	if err != nil {
+		c.JsonApiErr(500, "Failed to load home dashboard", err)
+		return
+	}
+
+	dash := dtos.Dashboard{}
+	dash.Meta.IsHome = true
+	jsonParser := json.NewDecoder(file)
+	if err := jsonParser.Decode(&dash.Model); err != nil {
+		c.JsonApiErr(500, "Failed to load home dashboard", err)
+		return
+	}
+
+	c.JSON(200, &dash)
+}

+ 1 - 0
pkg/api/dtos/models.go

@@ -27,6 +27,7 @@ type CurrentUser struct {
 
 type DashboardMeta struct {
 	IsStarred bool `json:"isStarred"`
+	IsHome    bool `json:"isHome"`
 }
 
 type Dashboard struct {

+ 2 - 2
pkg/models/dashboards.go

@@ -15,8 +15,8 @@ var (
 
 type Dashboard struct {
 	Id        int64
-	Slug      string `xorm:"index(IX_AccountIdSlug)"`
-	AccountId int64  `xorm:"index(IX_AccountIdSlug)"`
+	Slug      string
+	AccountId int64
 
 	Created time.Time
 	Updated time.Time

+ 14 - 0
pkg/models/home_dashboard.go

@@ -0,0 +1,14 @@
+package models
+
+import "time"
+
+type HomeDashboard struct {
+	Id        int64
+	UserId    int64
+	AccountId int64
+
+	Created time.Time
+	Updated time.Time
+
+	Data map[string]interface{}
+}