From 1e3970c6e56af810047ab815acd7fd5e681b5139 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 2 Feb 2015 11:32:00 +0100 Subject: [PATCH] Worked on dashoard starring and unstarring, added dashboardMeta model --- src/app/features/dashboard/dashboardCtrl.js | 9 ++++--- .../features/dashboard/dashboardNavCtrl.js | 13 ++++++++++ .../features/grafanaDatasource/datasource.js | 17 +++++++------ src/app/partials/dashboard_topnav.html | 4 ++- src/app/routes/backend/dashboard.js | 25 +++++++++++-------- 5 files changed, 45 insertions(+), 23 deletions(-) diff --git a/src/app/features/dashboard/dashboardCtrl.js b/src/app/features/dashboard/dashboardCtrl.js index 4b7a6b1d87d..ef3db122882 100644 --- a/src/app/features/dashboard/dashboardCtrl.js +++ b/src/app/features/dashboard/dashboardCtrl.js @@ -23,12 +23,12 @@ function (angular, $, config, _) { $scope.panelNames = _.map(config.panels, function(value, key) { return key; }); var resizeEventTimeout; - this.init = function(dashboardData) { + this.init = function(dashboard) { $scope.availablePanels = config.panels; $scope.reset_row(); $scope.registerWindowResizeEvent(); $scope.onAppEvent('show-json-editor', $scope.showJsonEditor); - $scope.setupDashboard(dashboardData); + $scope.setupDashboard(dashboard); }; $scope.registerWindowResizeEvent = function() { @@ -38,13 +38,14 @@ function (angular, $, config, _) { }); }; - $scope.setupDashboard = function(dashboardData) { + $scope.setupDashboard = function(dashboard) { $rootScope.performance.dashboardLoadStart = new Date().getTime(); $rootScope.performance.panelsInitialized = 0; $rootScope.performance.panelsRendered = 0; - $scope.dashboard = dashboardSrv.create(dashboardData); + $scope.dashboard = dashboardSrv.create(dashboard.model); $scope.dashboardViewState = dashboardViewStateSrv.create($scope); + $scope.dashboardMeta = dashboard.meta; // init services timeSrv.init($scope.dashboard); diff --git a/src/app/features/dashboard/dashboardNavCtrl.js b/src/app/features/dashboard/dashboardNavCtrl.js index 64c24ec5404..79601a99f79 100644 --- a/src/app/features/dashboard/dashboardNavCtrl.js +++ b/src/app/features/dashboard/dashboardNavCtrl.js @@ -39,6 +39,19 @@ function (angular, _, moment, config, store) { $location.search(search); }; + $scope.starDashboard = function() { + if ($scope.dashboardMeta.isStarred) { + $scope.db.unstarDashboard($scope.dashboard.id).then(function() { + $scope.dashboardMeta.isStarred = false; + }); + } + else { + $scope.db.starDashboard($scope.dashboard.id).then(function() { + $scope.dashboardMeta.isStarred = true; + }); + } + }; + $scope.shareDashboard = function() { $scope.appEvent('show-modal', { src: './app/features/dashboard/partials/shareModal.html', diff --git a/src/app/features/grafanaDatasource/datasource.js b/src/app/features/grafanaDatasource/datasource.js index b52068e464f..4bc4d6ca344 100644 --- a/src/app/features/grafanaDatasource/datasource.js +++ b/src/app/features/grafanaDatasource/datasource.js @@ -25,14 +25,7 @@ function (angular, _, kbn) { url = '/temp/' + slug; } - return backendSrv.get('/api/dashboard/' + slug) - .then(function(data) { - if (data && data.dashboard) { - return data.dashboard; - } else { - return false; - } - }); + return backendSrv.get('/api/dashboard/' + slug); }; GrafanaDatasource.prototype.query = function(options) { @@ -43,6 +36,14 @@ function (angular, _, kbn) { return backendSrv.get('/api/metrics/test', { from: from, to: to, maxDataPoints: options.maxDataPoints }); }; + GrafanaDatasource.prototype.starDashboard = function(dashId) { + return backendSrv.post('/api/user/stars/dashboard/' + dashId); + }; + + GrafanaDatasource.prototype.unstarDashboard = function(dashId) { + return backendSrv.delete('/api/user/stars/dashboard/' + dashId); + }; + GrafanaDatasource.prototype.saveDashboard = function(dashboard) { // remove id if title has changed if (dashboard.title !== dashboard.originalTitle) { diff --git a/src/app/partials/dashboard_topnav.html b/src/app/partials/dashboard_topnav.html index 16c730e9e9e..a727e611296 100644 --- a/src/app/partials/dashboard_topnav.html +++ b/src/app/partials/dashboard_topnav.html @@ -20,7 +20,9 @@