mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Added more metadata
This commit is contained in:
parent
b30dcce4bc
commit
972ac99b7c
@ -70,15 +70,13 @@ Creates a new dashboard or updates an existing dashboard.
|
|||||||
"schemaVersion": 6,
|
"schemaVersion": 6,
|
||||||
"version": 0
|
"version": 0
|
||||||
},
|
},
|
||||||
"overwrite": false,
|
"overwrite": false
|
||||||
"userId:": 3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JSON Body schema:
|
JSON Body schema:
|
||||||
|
|
||||||
- **dashboard** – The complete dashboard model, id = null to create a new dashboard.
|
- **dashboard** – The complete dashboard model, id = null to create a new dashboard.
|
||||||
- **overwrite** – Set to true if you want to overwrite existing dashboard with newer version or with same dashboard title.
|
- **overwrite** – Set to true if you want to overwrite existing dashboard with newer version or with same dashboard title.
|
||||||
- **userId** - Set userId if you want to record who created or updated a dashboard.
|
|
||||||
|
|
||||||
**Example Response**:
|
**Example Response**:
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ func GetDashboard(c *middleware.Context) {
|
|||||||
|
|
||||||
dash := query.Result
|
dash := query.Result
|
||||||
|
|
||||||
// Finding the last creator and updater of the dashboard
|
// Finding creator and last updater of the dashboard
|
||||||
updater, creator := "Anonymous", "Anonymous"
|
updater, creator := "Anonymous", "Anonymous"
|
||||||
if dash.UpdatedBy > 0 {
|
if dash.UpdatedBy > 0 {
|
||||||
updater = getUserLogin(dash.UpdatedBy)
|
updater = getUserLogin(dash.UpdatedBy)
|
||||||
@ -58,19 +58,26 @@ func GetDashboard(c *middleware.Context) {
|
|||||||
creator = getUserLogin(dash.CreatedBy)
|
creator = getUserLogin(dash.CreatedBy)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Finding total panels and queries on the dashboard
|
||||||
|
totalRows, totalPanels, totalQueries := getTotalRowsPanelsAndQueries(dash.Data)
|
||||||
|
|
||||||
dto := dtos.DashboardFullWithMeta{
|
dto := dtos.DashboardFullWithMeta{
|
||||||
Dashboard: dash.Data,
|
Dashboard: dash.Data,
|
||||||
Meta: dtos.DashboardMeta{
|
Meta: dtos.DashboardMeta{
|
||||||
IsStarred: isStarred,
|
IsStarred: isStarred,
|
||||||
Slug: slug,
|
Slug: slug,
|
||||||
Type: m.DashTypeDB,
|
Type: m.DashTypeDB,
|
||||||
CanStar: c.IsSignedIn,
|
CanStar: c.IsSignedIn,
|
||||||
CanSave: c.OrgRole == m.ROLE_ADMIN || c.OrgRole == m.ROLE_EDITOR,
|
CanSave: c.OrgRole == m.ROLE_ADMIN || c.OrgRole == m.ROLE_EDITOR,
|
||||||
CanEdit: canEditDashboard(c.OrgRole),
|
CanEdit: canEditDashboard(c.OrgRole),
|
||||||
Created: dash.Created,
|
Created: dash.Created,
|
||||||
Updated: dash.Updated,
|
Updated: dash.Updated,
|
||||||
UpdatedBy: updater,
|
UpdatedBy: updater,
|
||||||
CreatedBy: creator,
|
CreatedBy: creator,
|
||||||
|
TotalRows: totalRows,
|
||||||
|
TotalPanels: totalPanels,
|
||||||
|
TotalQueries: totalQueries,
|
||||||
|
Version: dash.Version,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,6 +95,26 @@ func getUserLogin(userId int64) string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getTotalRowsPanelsAndQueries(data map[string]interface{}) (int, int, int) {
|
||||||
|
totalRows, totalPanels, totalQueries := 0, 0, 0
|
||||||
|
if rows, rowsOk := data["rows"]; rowsOk {
|
||||||
|
totalRows = len(rows.([]interface{}))
|
||||||
|
if totalRows > 0 {
|
||||||
|
for _, rowElement := range rows.([]interface{}) {
|
||||||
|
if panels, panelsOk := rowElement.(map[string]interface{})["panels"]; panelsOk {
|
||||||
|
totalPanels += len(panels.([]interface{}))
|
||||||
|
for _, panelElement := range panels.([]interface{}) {
|
||||||
|
if targets, targetsOk := panelElement.(map[string]interface{})["targets"]; targetsOk {
|
||||||
|
totalQueries += len(targets.([]interface{}))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return totalRows, totalPanels, totalQueries
|
||||||
|
}
|
||||||
|
|
||||||
func DeleteDashboard(c *middleware.Context) {
|
func DeleteDashboard(c *middleware.Context) {
|
||||||
slug := c.Params(":slug")
|
slug := c.Params(":slug")
|
||||||
|
|
||||||
|
@ -43,10 +43,10 @@ type DashboardMeta struct {
|
|||||||
Updated time.Time `json:"updated"`
|
Updated time.Time `json:"updated"`
|
||||||
UpdatedBy string `json:"updatedBy"`
|
UpdatedBy string `json:"updatedBy"`
|
||||||
CreatedBy string `json:"createdBy"`
|
CreatedBy string `json:"createdBy"`
|
||||||
TotalRows int64 `json:"totalRows"`
|
TotalRows int `json:"totalRows"`
|
||||||
TotalPanels int64 `json:"totalPanels"`
|
TotalPanels int `json:"totalPanels"`
|
||||||
TotalQueries int64 `json:"totalQueries"`
|
TotalQueries int `json:"totalQueries"`
|
||||||
Version int `json:"version"`
|
Version int `json:"version"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type DashboardFullWithMeta struct {
|
type DashboardFullWithMeta struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user