Commit dddd155a by Torkel Ödegaard

Merge branch 'master' of github.com:grafana/grafana

parents c4117145 cba7c172
...@@ -3,9 +3,9 @@ package plugins ...@@ -3,9 +3,9 @@ package plugins
import ( import (
"net/url" "net/url"
"path" "path"
"path/filepath"
"strings" "strings"
"github.com/grafana/grafana/pkg/setting"
"github.com/grafana/grafana/pkg/util" "github.com/grafana/grafana/pkg/util"
) )
...@@ -14,10 +14,9 @@ type FrontendPluginBase struct { ...@@ -14,10 +14,9 @@ type FrontendPluginBase struct {
} }
func (fp *FrontendPluginBase) initFrontendPlugin() { func (fp *FrontendPluginBase) initFrontendPlugin() {
if fp.StaticRoot != "" { if isInternalPlugin(fp.PluginDir) {
fp.StaticRootAbs = filepath.Join(fp.PluginDir, fp.StaticRoot)
StaticRoutes = append(StaticRoutes, &PluginStaticRoute{ StaticRoutes = append(StaticRoutes, &PluginStaticRoute{
Directory: fp.StaticRootAbs, Directory: fp.PluginDir,
PluginId: fp.Id, PluginId: fp.Id,
}) })
} }
...@@ -41,7 +40,7 @@ func getPluginLogoUrl(path, baseUrl string) string { ...@@ -41,7 +40,7 @@ func getPluginLogoUrl(path, baseUrl string) string {
} }
func (fp *FrontendPluginBase) setPathsBasedOnApp(app *AppPlugin) { func (fp *FrontendPluginBase) setPathsBasedOnApp(app *AppPlugin) {
appSubPath := strings.Replace(fp.PluginDir, app.StaticRootAbs, "", 1) appSubPath := strings.Replace(fp.PluginDir, app.PluginDir, "", 1)
fp.IncludedInAppId = app.Id fp.IncludedInAppId = app.Id
fp.BaseUrl = app.BaseUrl fp.BaseUrl = app.BaseUrl
fp.Module = util.JoinUrlFragments("plugins/"+app.Id, appSubPath) + "/module" fp.Module = util.JoinUrlFragments("plugins/"+app.Id, appSubPath) + "/module"
...@@ -49,7 +48,7 @@ func (fp *FrontendPluginBase) setPathsBasedOnApp(app *AppPlugin) { ...@@ -49,7 +48,7 @@ func (fp *FrontendPluginBase) setPathsBasedOnApp(app *AppPlugin) {
func (fp *FrontendPluginBase) handleModuleDefaults() { func (fp *FrontendPluginBase) handleModuleDefaults() {
if fp.StaticRoot != "" { if isInternalPlugin(fp.PluginDir) {
fp.Module = path.Join("plugins", fp.Id, "module") fp.Module = path.Join("plugins", fp.Id, "module")
fp.BaseUrl = path.Join("public/plugins", fp.Id) fp.BaseUrl = path.Join("public/plugins", fp.Id)
return return
...@@ -59,6 +58,10 @@ func (fp *FrontendPluginBase) handleModuleDefaults() { ...@@ -59,6 +58,10 @@ func (fp *FrontendPluginBase) handleModuleDefaults() {
fp.BaseUrl = path.Join("public/app/plugins", fp.Type, fp.Id) fp.BaseUrl = path.Join("public/app/plugins", fp.Type, fp.Id)
} }
func isInternalPlugin(pluginDir string) bool {
return !strings.Contains(pluginDir, setting.StaticRootPath)
}
func evalRelativePluginUrlPath(pathStr string, baseUrl string) string { func evalRelativePluginUrlPath(pathStr string, baseUrl string) string {
if pathStr == "" { if pathStr == "" {
return "" return ""
......
...@@ -30,16 +30,14 @@ type PluginLoader interface { ...@@ -30,16 +30,14 @@ type PluginLoader interface {
} }
type PluginBase struct { type PluginBase struct {
Type string `json:"type"` Type string `json:"type"`
Name string `json:"name"` Name string `json:"name"`
Id string `json:"id"` Id string `json:"id"`
Info PluginInfo `json:"info"` Info PluginInfo `json:"info"`
Dependencies PluginDependencies `json:"dependencies"` Dependencies PluginDependencies `json:"dependencies"`
Includes []*PluginInclude `json:"includes"` Includes []*PluginInclude `json:"includes"`
Module string `json:"module"` Module string `json:"module"`
BaseUrl string `json:"baseUrl"` BaseUrl string `json:"baseUrl"`
StaticRoot string `json:"staticRoot"`
StaticRootAbs string `json:"-"`
IncludedInAppId string `json:"-"` IncludedInAppId string `json:"-"`
PluginDir string `json:"-"` PluginDir string `json:"-"`
......
...@@ -14,6 +14,10 @@ ...@@ -14,6 +14,10 @@
"author": { "author": {
"name": "Grafana Project", "name": "Grafana Project",
"url": "http://grafana.org" "url": "http://grafana.org"
},
"logos": {
"small": "img/graphite_logo.png",
"large": "img/graphite_logo.png"
} }
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment