diff --git a/pkg/services/sqlstore/dashboard.go b/pkg/services/sqlstore/dashboard.go index f99265754d5..a33ef10d725 100644 --- a/pkg/services/sqlstore/dashboard.go +++ b/pkg/services/sqlstore/dashboard.go @@ -150,7 +150,7 @@ func SearchDashboards(query *search.FindPersistedDashboardsQuery) error { sql.WriteString(" AND (") for i, dashboardId := range query.DashboardIds { if i != 0 { - sql.WriteString("OR") + sql.WriteString(" OR") } sql.WriteString(" dashboard.id = ?") @@ -167,6 +167,7 @@ func SearchDashboards(query *search.FindPersistedDashboardsQuery) error { sql.WriteString(fmt.Sprintf(" ORDER BY dashboard.title ASC LIMIT 1000")) var res []DashboardSearchProjection + err := x.Sql(sql.String(), params...).Find(&res) if err != nil { return err diff --git a/public/app/features/dashboard/impression_store.ts b/public/app/features/dashboard/impression_store.ts index 6afe763ceac..4bd979a6b34 100644 --- a/public/app/features/dashboard/impression_store.ts +++ b/public/app/features/dashboard/impression_store.ts @@ -28,8 +28,15 @@ export class ImpressionsStore { } getDashboardOpened() { - var impressions = store.get("dashboard_impressions"); - return JSON.parse(impressions || "[]"); + var impressions = store.get("dashboard_impressions") || "[]"; + + impressions = JSON.parse(impressions); + + impressions = _.filter(impressions, el => { + return _.isNumber(el); + }); + + return impressions; } } diff --git a/public/app/plugins/panel/dashlist/module.ts b/public/app/plugins/panel/dashlist/module.ts index 707c5367f55..c0e34183548 100644 --- a/public/app/plugins/panel/dashlist/module.ts +++ b/public/app/plugins/panel/dashlist/module.ts @@ -49,11 +49,12 @@ class DashListCtrl extends PanelCtrl { dashboardIds: impressions.getDashboardOpened(), limit: this.panel.limit }).then(result => { - this.dashList = dashboardIds.map(orderId => { return _.find(result, dashboard => { return dashboard.id === orderId; }); + }).filter(el => { + return el !== undefined; }); this.renderingCompleted();