Pick changes from PR 33811, use UID in dashboard navlinks (#36899)

* pick changes from PR 33811, use UID in dashboard navlinks

* use proper spelling for UID

* add uid to the plugin schema

* Update docs/sources/developers/plugins/plugin.schema.json

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
pull/33805/head^2
Serge Zaitsev 4 years ago committed by GitHub
parent 3004a650b5
commit 9f36e36c89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      docs/sources/developers/plugins/plugin.schema.json
  2. 2
      pkg/api/index.go
  3. 2
      pkg/plugins/app_plugin.go
  4. 9
      pkg/plugins/models.go

@ -62,6 +62,10 @@
"type": "object",
"additionalItems": false,
"properties": {
"uid": {
"type": "string",
"description": "Unique identifier of the included resource"
},
"type": {
"type": "string",
"enum": ["dashboard", "page", "panel", "datasource"]

@ -110,7 +110,7 @@ func (hs *HTTPServer) getAppLinks(c *models.ReqContext) ([]*dtos.NavLink, error)
if include.Type == "dashboard" && include.AddToNav {
link := &dtos.NavLink{
Url: hs.Cfg.AppSubURL + "/dashboard/db/" + include.Slug,
Url: hs.Cfg.AppSubURL + include.GetSlugOrUIDLink(),
Text: include.Name,
}
appLink.Children = append(appLink.Children, link)

@ -117,7 +117,7 @@ func (app *AppPlugin) InitApp(panels map[string]*PanelPlugin, dataSources map[st
app.DefaultNavUrl = cfg.AppSubURL + "/plugins/" + app.Id + "/page/" + include.Slug
}
if include.Type == "dashboard" && include.DefaultNav {
app.DefaultNavUrl = cfg.AppSubURL + "/dashboard/db/" + include.Slug
app.DefaultNavUrl = cfg.AppSubURL + include.GetSlugOrUIDLink()
}
}

@ -95,10 +95,19 @@ type PluginInclude struct {
DefaultNav bool `json:"defaultNav"`
Slug string `json:"slug"`
Icon string `json:"icon"`
UID string `json:"uid"`
Id string `json:"-"`
}
func (e PluginInclude) GetSlugOrUIDLink() string {
if len(e.UID) > 0 {
return "/d/" + e.UID
} else {
return "/dashboard/db/" + e.Slug
}
}
type PluginDependencyItem struct {
Type string `json:"type"`
Id string `json:"id"`

Loading…
Cancel
Save