working on dashboard search
This commit is contained in:
@@ -207,12 +207,8 @@ func findDashboards(query *search.FindPersistedDashboardsQuery) ([]DashboardSear
|
||||
sb.WithType(query.Type)
|
||||
}
|
||||
|
||||
if query.FolderId > 0 {
|
||||
sb.WithFolderId(query.FolderId)
|
||||
}
|
||||
|
||||
if len(query.ExpandedFolders) > 0 {
|
||||
sb.WithExpandedFolders(query.ExpandedFolders)
|
||||
if len(query.FolderIds) > 0 {
|
||||
sb.WithFolderIds(query.FolderIds)
|
||||
}
|
||||
|
||||
var res []DashboardSearchProjection
|
||||
|
||||
@@ -384,7 +384,7 @@ func TestDashboardDataAccess(t *testing.T) {
|
||||
|
||||
Convey("and one folder is expanded, the other collapsed", func() {
|
||||
Convey("should return dashboards in root and expanded folder", func() {
|
||||
query := &search.FindPersistedDashboardsQuery{ExpandedFolders: []int64{folder1.Id}, SignedInUser: &m.SignedInUser{UserId: currentUser.Id, OrgId: 1}, OrgId: 1}
|
||||
query := &search.FindPersistedDashboardsQuery{FolderIds: []int64{folder1.Id}, SignedInUser: &m.SignedInUser{UserId: currentUser.Id, OrgId: 1}, OrgId: 1}
|
||||
err := SearchDashboards(query)
|
||||
So(err, ShouldBeNil)
|
||||
So(len(query.Result), ShouldEqual, 4)
|
||||
|
||||
@@ -139,7 +139,7 @@ func addDashboardMigration(mg *Migrator) {
|
||||
|
||||
// add column to store folder_id for dashboard folder structure
|
||||
mg.AddMigration("Add column folder_id in dashboard", NewAddColumnMigration(dashboardV2, &Column{
|
||||
Name: "folder_id", Type: DB_BigInt, Nullable: true,
|
||||
Name: "folder_id", Type: DB_BigInt, Nullable: false, Default: "0",
|
||||
}))
|
||||
|
||||
mg.AddMigration("Add column isFolder in dashboard", NewAddColumnMigration(dashboardV2, &Column{
|
||||
|
||||
@@ -17,8 +17,7 @@ type SearchBuilder struct {
|
||||
whereTitle string
|
||||
whereTypeFolder bool
|
||||
whereTypeDash bool
|
||||
whereFolderId int64
|
||||
expandedFolders []int64
|
||||
whereFolderIds []int64
|
||||
sql bytes.Buffer
|
||||
params []interface{}
|
||||
}
|
||||
@@ -72,14 +71,8 @@ func (sb *SearchBuilder) WithType(queryType string) *SearchBuilder {
|
||||
return sb
|
||||
}
|
||||
|
||||
func (sb *SearchBuilder) WithFolderId(folderId int64) *SearchBuilder {
|
||||
sb.whereFolderId = folderId
|
||||
|
||||
return sb
|
||||
}
|
||||
|
||||
func (sb *SearchBuilder) WithExpandedFolders(expandedFolders []int64) *SearchBuilder {
|
||||
sb.expandedFolders = expandedFolders
|
||||
func (sb *SearchBuilder) WithFolderIds(folderIds []int64) *SearchBuilder {
|
||||
sb.whereFolderIds = folderIds
|
||||
return sb
|
||||
}
|
||||
|
||||
@@ -212,17 +205,10 @@ func (sb *SearchBuilder) buildSearchWhereClause() {
|
||||
sb.sql.WriteString(" AND dashboard.is_folder = 0")
|
||||
}
|
||||
|
||||
if sb.whereFolderId > 0 {
|
||||
sb.sql.WriteString(" AND dashboard.folder_id = ?")
|
||||
sb.params = append(sb.params, sb.whereFolderId)
|
||||
}
|
||||
|
||||
if len(sb.expandedFolders) > 0 {
|
||||
sb.sql.WriteString(` AND (dashboard.folder_id IN (?` + strings.Repeat(",?", len(sb.expandedFolders)-1) + `) `)
|
||||
sb.sql.WriteString(` OR dashboard.folder_id IS NULL OR dashboard.folder_id = 0)`)
|
||||
|
||||
for _, ef := range sb.expandedFolders {
|
||||
sb.params = append(sb.params, ef)
|
||||
if len(sb.whereFolderIds) > 0 {
|
||||
sb.sql.WriteString(` AND dashboard.folder_id IN (?` + strings.Repeat(",?", len(sb.whereFolderIds)-1) + `) `)
|
||||
for _, id := range sb.whereFolderIds {
|
||||
sb.params = append(sb.params, id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user