grafana/pkg/plugins/app_plugin.go

44 lines
882 B
Go
Raw Normal View History

package plugins
import (
"encoding/json"
"github.com/grafana/grafana/pkg/models"
)
type AppPluginPage struct {
2016-01-12 22:39:29 +08:00
Name string `json:"name"`
Url string `json:"url"`
ReqRole models.RoleType `json:"reqRole"`
}
type AppPluginCss struct {
Light string `json:"light"`
Dark string `json:"dark"`
}
type AppPlugin struct {
FrontendPluginBase
2016-01-12 22:39:29 +08:00
Css *AppPluginCss `json:"css"`
Pages []*AppPluginPage `json:"pages"`
Pinned bool `json:"-"`
Enabled bool `json:"-"`
}
2016-01-12 17:20:04 +08:00
func (app *AppPlugin) Load(decoder *json.Decoder, pluginDir string) error {
if err := decoder.Decode(&app); err != nil {
return err
}
2016-01-12 17:20:04 +08:00
if app.Css != nil {
app.Css.Dark = evalRelativePluginUrlPath(app.Css.Dark, app.Id)
app.Css.Light = evalRelativePluginUrlPath(app.Css.Light, app.Id)
}
app.PluginDir = pluginDir
app.initFrontendPlugin()
Apps[app.Id] = app
return nil
}