func GetPluginList(c *middleware.Context) Response { typeFilter := c.Query("type") enabledFilter := c.Query("enabled") embeddedFilter := c.Query("embedded") pluginSettingsMap, err := plugins.GetPluginSettings(c.OrgId) if err != nil { return ApiError(500, "Failed to get list of plugins", err) } result := make(dtos.PluginList, 0) for _, pluginDef := range plugins.Plugins { // filter out app sub plugins if embeddedFilter == "0" && pluginDef.IncludedInAppId != "" { continue } // filter on type if typeFilter != "" && typeFilter != pluginDef.Type { continue } listItem := dtos.PluginListItem{ Id: pluginDef.Id, Name: pluginDef.Name, Type: pluginDef.Type, Info: &pluginDef.Info, } if pluginSetting, exists := pluginSettingsMap[pluginDef.Id]; exists { listItem.Enabled = pluginSetting.Enabled listItem.Pinned = pluginSetting.Pinned } // filter out disabled if enabledFilter == "1" && !listItem.Enabled { continue } // filter out built in data sources if ds, exists := plugins.DataSources[pluginDef.Id]; exists { if ds.BuiltIn { continue } } result = append(result, listItem) } sort.Sort(result) return Json(200, result) }
func GetPluginList(c *middleware.Context) Response { typeFilter := c.Query("type") enabledFilter := c.Query("enabled") embeddedFilter := c.Query("embedded") coreFilter := c.Query("core") pluginSettingsMap, err := plugins.GetPluginSettings(c.OrgId) if err != nil { return ApiError(500, "Failed to get list of plugins", err) } result := make(dtos.PluginList, 0) for _, pluginDef := range plugins.Plugins { // filter out app sub plugins if embeddedFilter == "0" && pluginDef.IncludedInAppId != "" { continue } // filter out core plugins if coreFilter == "0" && pluginDef.IsCorePlugin { continue } // filter on type if typeFilter != "" && typeFilter != pluginDef.Type { continue } listItem := dtos.PluginListItem{ Id: pluginDef.Id, Name: pluginDef.Name, Type: pluginDef.Type, Info: &pluginDef.Info, LatestVersion: pluginDef.GrafanaNetVersion, HasUpdate: pluginDef.GrafanaNetHasUpdate, DefaultNavUrl: pluginDef.DefaultNavUrl, } if pluginSetting, exists := pluginSettingsMap[pluginDef.Id]; exists { listItem.Enabled = pluginSetting.Enabled 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 } // filter out built in data sources if ds, exists := plugins.DataSources[pluginDef.Id]; exists { if ds.BuiltIn { continue } } result = append(result, listItem) } sort.Sort(result) return Json(200, result) }