|
@@ -58,26 +58,20 @@ 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,
|
|
|
|
|
- Slug: slug,
|
|
|
|
|
- Type: m.DashTypeDB,
|
|
|
|
|
- CanStar: c.IsSignedIn,
|
|
|
|
|
- CanSave: c.OrgRole == m.ROLE_ADMIN || c.OrgRole == m.ROLE_EDITOR,
|
|
|
|
|
- CanEdit: canEditDashboard(c.OrgRole),
|
|
|
|
|
- Created: dash.Created,
|
|
|
|
|
- Updated: dash.Updated,
|
|
|
|
|
- UpdatedBy: updater,
|
|
|
|
|
- CreatedBy: creator,
|
|
|
|
|
- TotalRows: totalRows,
|
|
|
|
|
- TotalPanels: totalPanels,
|
|
|
|
|
- TotalQueries: totalQueries,
|
|
|
|
|
- Version: dash.Version,
|
|
|
|
|
|
|
+ IsStarred: isStarred,
|
|
|
|
|
+ Slug: slug,
|
|
|
|
|
+ Type: m.DashTypeDB,
|
|
|
|
|
+ CanStar: c.IsSignedIn,
|
|
|
|
|
+ CanSave: c.OrgRole == m.ROLE_ADMIN || c.OrgRole == m.ROLE_EDITOR,
|
|
|
|
|
+ CanEdit: canEditDashboard(c.OrgRole),
|
|
|
|
|
+ Created: dash.Created,
|
|
|
|
|
+ Updated: dash.Updated,
|
|
|
|
|
+ UpdatedBy: updater,
|
|
|
|
|
+ CreatedBy: creator,
|
|
|
|
|
+ Version: dash.Version,
|
|
|
},
|
|
},
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -95,26 +89,6 @@ 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")
|
|
|
|
|
|