mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Began work on adding json files to search, #960
This commit is contained in:
parent
48ddd7213f
commit
1a9f630710
@ -212,3 +212,11 @@ max_days = 7
|
||||
enabled = false
|
||||
rabbitmq_url = amqp://localhost/
|
||||
exchange = grafana_events
|
||||
|
||||
#################################### Dashboard JSON files ##########################
|
||||
[dashboards.json]
|
||||
enabled = false
|
||||
path = dashboards
|
||||
orgs = *
|
||||
|
||||
|
||||
|
2
main.go
2
main.go
@ -15,6 +15,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/metrics"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/services/eventpublisher"
|
||||
"github.com/grafana/grafana/pkg/services/search"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/social"
|
||||
@ -51,6 +52,7 @@ func main() {
|
||||
initRuntime()
|
||||
writePIDFile()
|
||||
|
||||
search.Init()
|
||||
social.NewOAuthService()
|
||||
eventpublisher.Init()
|
||||
plugins.Init()
|
||||
|
@ -4,28 +4,9 @@ import (
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/middleware"
|
||||
m "github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/search"
|
||||
)
|
||||
|
||||
// TODO: this needs to be cached or improved somehow
|
||||
func setIsStarredFlagOnSearchResults(c *middleware.Context, hits []*m.DashboardSearchHit) error {
|
||||
if !c.IsSignedIn {
|
||||
return nil
|
||||
}
|
||||
|
||||
query := m.GetUserStarsQuery{UserId: c.UserId}
|
||||
if err := bus.Dispatch(&query); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, dash := range hits {
|
||||
if _, exists := query.Result[dash.Id]; exists {
|
||||
dash.IsStarred = true
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func Search(c *middleware.Context) {
|
||||
query := c.Query("query")
|
||||
tag := c.Query("tag")
|
||||
@ -54,7 +35,7 @@ func Search(c *middleware.Context) {
|
||||
result.TagsOnly = true
|
||||
|
||||
} else {
|
||||
query := m.SearchDashboardsQuery{
|
||||
query := search.Query{
|
||||
Title: query,
|
||||
Tag: tag,
|
||||
UserId: c.UserId,
|
||||
@ -69,11 +50,6 @@ func Search(c *middleware.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
if err := setIsStarredFlagOnSearchResults(c, query.Result); err != nil {
|
||||
c.JsonApiErr(500, "Failed to get user stars", err)
|
||||
return
|
||||
}
|
||||
|
||||
result.Dashboards = query.Result
|
||||
}
|
||||
|
||||
|
12
pkg/services/search/jsonfiles.go
Normal file
12
pkg/services/search/jsonfiles.go
Normal file
@ -0,0 +1,12 @@
|
||||
package search
|
||||
|
||||
var (
|
||||
// settings
|
||||
DashboardsJsonEnabled bool
|
||||
DashboardsJsonPath string
|
||||
DashboardJsonOrgs string
|
||||
)
|
||||
|
||||
func initJsonFileIndex() {
|
||||
|
||||
}
|
59
pkg/services/search/search.go
Normal file
59
pkg/services/search/search.go
Normal file
@ -0,0 +1,59 @@
|
||||
package search
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
m "github.com/grafana/grafana/pkg/models"
|
||||
)
|
||||
|
||||
type Query struct {
|
||||
Title string
|
||||
Tag string
|
||||
OrgId int64
|
||||
UserId int64
|
||||
Limit int
|
||||
IsStarred bool
|
||||
|
||||
Result []*m.DashboardSearchHit
|
||||
}
|
||||
|
||||
func Init() {
|
||||
bus.AddHandler("search", searchHandler)
|
||||
initJsonFileIndex()
|
||||
}
|
||||
|
||||
func searchHandler(query *Query) error {
|
||||
dashQuery := m.SearchDashboardsQuery{
|
||||
Title: query.Title,
|
||||
Tag: query.Tag,
|
||||
UserId: query.UserId,
|
||||
Limit: query.Limit,
|
||||
IsStarred: query.IsStarred,
|
||||
OrgId: query.OrgId,
|
||||
}
|
||||
|
||||
if err := bus.Dispatch(&dashQuery); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := setIsStarredFlagOnSearchResults(query.UserId, query.Result); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
query.Result = dashQuery.Result
|
||||
return nil
|
||||
}
|
||||
|
||||
func setIsStarredFlagOnSearchResults(userId int64, hits []*m.DashboardSearchHit) error {
|
||||
query := m.GetUserStarsQuery{UserId: userId}
|
||||
if err := bus.Dispatch(&query); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, dash := range hits {
|
||||
if _, exists := query.Result[dash.Id]; exists {
|
||||
dash.IsStarred = true
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Reference in New Issue
Block a user