Commit 4a5b753f by Torkel Ödegaard

feat(templating): refactoring of the refresh values of #4281

parent d9231eb8
...@@ -404,8 +404,8 @@ function (angular, $, _, moment) { ...@@ -404,8 +404,8 @@ function (angular, $, _, moment) {
if (oldVersion < 11) { if (oldVersion < 11) {
// update template variables // update template variables
_.each(this.templating.list, function(templateVariable) { _.each(this.templating.list, function(templateVariable) {
if (templateVariable.refresh) { templateVariable.refresh = 'On Dashboard Load'; } if (templateVariable.refresh) { templateVariable.refresh = 1; }
if (!templateVariable.refresh) { templateVariable.refresh = 'Never'; } if (!templateVariable.refresh) { templateVariable.refresh = 0; }
}); });
} }
......
...@@ -12,13 +12,19 @@ function (angular, _) { ...@@ -12,13 +12,19 @@ function (angular, _) {
var replacementDefaults = { var replacementDefaults = {
type: 'query', type: 'query',
datasource: null, datasource: null,
refresh: 'Never', refresh: 0,
name: '', name: '',
options: [], options: [],
includeAll: false, includeAll: false,
multi: false, multi: false,
}; };
$scope.refreshOptions = [
{value: 0, text: "Never"},
{value: 1, text: "On Dashboard Load"},
{value: 2, text: "On Time Range Change"},
];
$scope.init = function() { $scope.init = function() {
$scope.mode = 'list'; $scope.mode = 'list';
......
...@@ -171,8 +171,8 @@ ...@@ -171,8 +171,8 @@
</div> </div>
<div class="gf-form"> <div class="gf-form">
<span class="gf-form-label width-7">Refresh</span> <span class="gf-form-label width-7">Refresh</span>
<select class="gf-form-input max-width-22" ng-model="current.refresh" ng-options="f for f in ['Never', 'On Dashboard Load', 'On Time Change and Dashboard Load']"></select> <select class="gf-form-input max-width-14" ng-model="current.refresh" ng-options="f.value as f.text for f in refreshOptions"></select>
<tip>When to update the values of this template, will slow down dashboard load / time change</tip> <tip>When to update the values of this variable, will slow down dashboard load / time change</tip>
</div> </div>
</div> </div>
......
...@@ -13,22 +13,25 @@ function (angular, _, kbn) { ...@@ -13,22 +13,25 @@ function (angular, _, kbn) {
function getNoneOption() { return { text: 'None', value: '', isNone: true }; } function getNoneOption() { return { text: 'None', value: '', isNone: true }; }
$rootScope.onAppEvent('time-range-changed', function() { // update time variant variables
var variable = _.findWhere(self.variables, { type: 'interval' }); $rootScope.onAppEvent('refresh', function() {
if (variable) {
self.updateAutoInterval(variable); // look for interval variables
var intervalVariable = _.findWhere(self.variables, { type: 'interval' });
if (intervalVariable) {
self.updateAutoInterval(intervalVariable);
} }
}, $rootScope);
$rootScope.onAppEvent('refresh', function() { // update variables with refresh === 2
var promises = _.chain(self.variables) var promises = self.variables
.filter(function(variable) { .filter(function(variable) {
return variable.refresh === 'On Time Change and Dashboard Load'; return variable.refresh === 2;
}) }).map(function(variable) {
.map(function(variable) { return self.updateOptions(variable);
return self.updateOptions(variable); });
}).value();
return $q.all(promises); return $q.all(promises);
}, $rootScope); }, $rootScope);
this.init = function(dashboard) { this.init = function(dashboard) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment