diff --git a/public/app/features/dashboard/all.js b/public/app/features/dashboard/all.js index d5cc13b4270..d110019add6 100644 --- a/public/app/features/dashboard/all.js +++ b/public/app/features/dashboard/all.js @@ -16,5 +16,5 @@ define([ './graphiteImportCtrl', './dynamicDashboardSrv', './importCtrl', - './impressionStore', + './impression_store', ], function () {}); diff --git a/public/app/features/dashboard/dashboardLoaderSrv.js b/public/app/features/dashboard/dashboardLoaderSrv.js index f975c47800f..c7078512e02 100644 --- a/public/app/features/dashboard/dashboardLoaderSrv.js +++ b/public/app/features/dashboard/dashboardLoaderSrv.js @@ -5,7 +5,7 @@ define([ 'jquery', 'app/core/utils/kbn', 'app/core/utils/datemath', - './impressionStore', + './impression_store', ], function (angular, moment, _, $, kbn, dateMath, impressionStore) { 'use strict'; @@ -41,7 +41,7 @@ function (angular, moment, _, $, kbn, dateMath, impressionStore) { } promise.then(function(result) { - impressionStore.impressions.addDashboardImpression(slug); + impressionStore.impressions.addDashboardImpression(result); return result; }); diff --git a/public/app/features/dashboard/impressionStore.ts b/public/app/features/dashboard/impression_store.ts similarity index 71% rename from public/app/features/dashboard/impressionStore.ts rename to public/app/features/dashboard/impression_store.ts index 61be1131cb6..c23e1f589a7 100644 --- a/public/app/features/dashboard/impressionStore.ts +++ b/public/app/features/dashboard/impression_store.ts @@ -6,7 +6,8 @@ import _ from 'lodash'; export class ImpressionsStore { constructor() {} - addDashboardImpression(slug) { + addDashboardImpression(impression) { + console.log(impression); var impressions = []; if (store.exists("dashboard_impressions")) { impressions = JSON.parse(store.get("dashboard_impressions")); @@ -15,12 +16,14 @@ export class ImpressionsStore { } } - var exists = impressions.indexOf(slug); - if (exists >= 0) { - impressions.splice(exists, 1); - } + impressions = impressions.filter((imp) => { + return impression.meta.slug !== imp.slug; + }); - impressions.unshift(slug); + impressions.unshift({ + title: impression.dashboard.title, + slug: impression.meta.slug + }); if (impressions.length > 20) { impressions.shift(); diff --git a/public/app/plugins/panel/dashlist/module.ts b/public/app/plugins/panel/dashlist/module.ts index fd0e905d923..036e26e9e5b 100644 --- a/public/app/plugins/panel/dashlist/module.ts +++ b/public/app/plugins/panel/dashlist/module.ts @@ -3,7 +3,7 @@ import _ from 'lodash'; import config from 'app/core/config'; import {PanelCtrl} from 'app/plugins/sdk'; -import {impressions} from 'app/features/dashboard/impressionStore'; +import {impressions} from 'app/features/dashboard/impression_store'; // Set and populate defaults var panelDefaults = { @@ -45,8 +45,8 @@ class DashListCtrl extends PanelCtrl { if (this.panel.mode === 'last viewed') { var dashListNames = _.first(impressions.getDashboardOpened(), this.panel.limit).map((dashboard) => { return { - title: dashboard, - uri: 'db/' + dashboard + title: dashboard.title, + uri: 'db/' + dashboard.slug }; });