Просмотр исходного кода

feat(pluginlist): link in plugin list now goes to app/plugin default nav unless enabled

Torkel Ödegaard 9 лет назад
Родитель
Сommit
f4a013946f

+ 1 - 0
pkg/api/dtos/plugins.go

@@ -29,6 +29,7 @@ type PluginListItem struct {
 	Info          *plugins.PluginInfo `json:"info"`
 	LatestVersion string              `json:"latestVersion"`
 	HasUpdate     bool                `json:"hasUpdate"`
+	DefaultNavUrl string              `json:"defaultNavUrl"`
 }
 
 type PluginList []PluginListItem

+ 6 - 0
pkg/api/plugins.go

@@ -8,6 +8,7 @@ import (
 	"github.com/grafana/grafana/pkg/middleware"
 	m "github.com/grafana/grafana/pkg/models"
 	"github.com/grafana/grafana/pkg/plugins"
+	"github.com/grafana/grafana/pkg/setting"
 )
 
 func GetPluginList(c *middleware.Context) Response {
@@ -46,6 +47,7 @@ func GetPluginList(c *middleware.Context) Response {
 			Info:          &pluginDef.Info,
 			LatestVersion: pluginDef.GrafanaNetVersion,
 			HasUpdate:     pluginDef.GrafanaNetHasUpdate,
+			DefaultNavUrl: pluginDef.DefaultNavUrl,
 		}
 
 		if pluginSetting, exists := pluginSettingsMap[pluginDef.Id]; exists {
@@ -53,6 +55,10 @@ func GetPluginList(c *middleware.Context) Response {
 			listItem.Pinned = pluginSetting.Pinned
 		}
 
+		if listItem.DefaultNavUrl == "" || !listItem.Enabled {
+			listItem.DefaultNavUrl = setting.AppSubUrl + "/plugins/" + listItem.Id + "/edit"
+		}
+
 		// filter out disabled
 		if enabledFilter == "1" && !listItem.Enabled {
 			continue

+ 0 - 2
pkg/plugins/app_plugin.go

@@ -76,8 +76,6 @@ func (app *AppPlugin) initApp() {
 		}
 	}
 
-	app.DefaultNavUrl = setting.AppSubUrl + "/plugins/" + app.Id + "/edit"
-
 	// slugify pages
 	for _, include := range app.Includes {
 		if include.Slug == "" {

+ 1 - 1
public/app/plugins/panel/pluginlist/module.html

@@ -4,7 +4,7 @@
       {{category.header}}
     </h6>
     <div class="pluginlist-item" ng-repeat="plugin in category.list">
-      <a class="pluginlist-link pluginlist-link-{{plugin.state}} pointer" href="plugins/{{plugin.id}}/edit">
+      <a class="pluginlist-link pluginlist-link-{{plugin.state}} pointer" href="{{plugin.defaultNavUrl}}">
         <span>
           <img ng-src="{{plugin.info.logos.small}}" class="pluginlist-image">
           <span class="pluginlist-title">{{plugin.name}}</span>