diff --git a/src/app/controllers/search.js b/src/app/controllers/search.js index 5946cf15ee7..4977ced75af 100644 --- a/src/app/controllers/search.js +++ b/src/app/controllers/search.js @@ -62,6 +62,7 @@ function (angular, _, config, $) { }; $scope.goToDashboard = function(id) { + $location.search({}); $location.path("/dashboard/db/" + id); }; diff --git a/src/app/controllers/sharePanelCtrl.js b/src/app/controllers/sharePanelCtrl.js index b55da84263a..e52dc297152 100644 --- a/src/app/controllers/sharePanelCtrl.js +++ b/src/app/controllers/sharePanelCtrl.js @@ -7,12 +7,13 @@ function (angular, _) { var module = angular.module('grafana.controllers'); - module.controller('SharePanelCtrl', function($scope, $location, $timeout, timeSrv, $element) { + module.controller('SharePanelCtrl', function($scope, $location, $timeout, timeSrv, $element, templateSrv) { $scope.init = function() { $scope.editor = { index: 0 }; $scope.forCurrent = true; $scope.toPanel = true; + $scope.includeTemplateVars = true; $scope.buildUrl(); }; @@ -27,7 +28,7 @@ function (angular, _) { var panelId = $scope.panel.id; var range = timeSrv.timeRange(false); - var params = $location.search(); + var params = angular.copy($location.search()); if (_.isString(range.to) && range.to.indexOf('now')) { range = timeSrv.timeRange(); @@ -39,6 +40,17 @@ function (angular, _) { if (_.isDate(params.from)) { params.from = params.from.getTime(); } if (_.isDate(params.to)) { params.to = params.to.getTime(); } + if ($scope.includeTemplateVars) { + _.each(templateSrv.variables, function(variable) { + params['var-' + variable.name] = variable.current.text; + }); + } + else { + _.each(templateSrv.variables, function(variable) { + delete params['var-' + variable.name]; + }); + } + if (!$scope.forCurrent) { delete params.from; delete params.to; diff --git a/src/app/partials/share-panel.html b/src/app/partials/share-panel.html index 49c13315e69..7d1d57415d5 100644 --- a/src/app/partials/share-panel.html +++ b/src/app/partials/share-panel.html @@ -17,8 +17,9 @@