Browse Source

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

Torkel Ödegaard 10 years ago
parent
commit
4a5b753fd8

+ 2 - 2
public/app/features/dashboard/dashboardSrv.js

@@ -404,8 +404,8 @@ function (angular, $, _, moment) {
       if (oldVersion < 11) {
         // update template variables
         _.each(this.templating.list, function(templateVariable) {
-          if (templateVariable.refresh) { templateVariable.refresh = 'On Dashboard Load'; }
-          if (!templateVariable.refresh) { templateVariable.refresh = 'Never'; }
+          if (templateVariable.refresh) { templateVariable.refresh = 1; }
+          if (!templateVariable.refresh) { templateVariable.refresh = 0; }
         });
       }
 

+ 7 - 1
public/app/features/templating/editorCtrl.js

@@ -12,13 +12,19 @@ function (angular, _) {
     var replacementDefaults = {
       type: 'query',
       datasource: null,
-      refresh: 'Never',
+      refresh: 0,
       name: '',
       options: [],
       includeAll: 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.mode = 'list';
 

+ 2 - 2
public/app/features/templating/partials/editor.html

@@ -171,8 +171,8 @@
 				</div>
 				<div class="gf-form">
 					<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>
-					<tip>When to update the values of this template, will slow down dashboard load / time change</tip>
+					<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 variable, will slow down dashboard load / time change</tip>
 				</div>
 			</div>
 

+ 16 - 13
public/app/features/templating/templateValuesSrv.js

@@ -13,22 +13,25 @@ function (angular, _, kbn) {
 
     function getNoneOption() { return { text: 'None', value: '', isNone: true }; }
 
-    $rootScope.onAppEvent('time-range-changed', function()  {
-      var variable = _.findWhere(self.variables, { type: 'interval' });
-      if (variable) {
-        self.updateAutoInterval(variable);
+    // update time variant variables
+    $rootScope.onAppEvent('refresh', function() {
+
+      // look for interval variables
+      var intervalVariable = _.findWhere(self.variables, { type: 'interval' });
+      if (intervalVariable) {
+        self.updateAutoInterval(intervalVariable);
       }
-    }, $rootScope);
 
-    $rootScope.onAppEvent('refresh', function() {
-      var promises = _.chain(self.variables)
-      .filter(function(variable) {
-        return variable.refresh === 'On Time Change and Dashboard Load';
-      })
-      .map(function(variable) {
-        return self.updateOptions(variable);
-      }).value();
+      // update variables with refresh === 2
+      var promises = self.variables
+        .filter(function(variable) {
+          return variable.refresh === 2;
+        }).map(function(variable) {
+          return self.updateOptions(variable);
+        });
+
       return $q.all(promises);
+
     }, $rootScope);
 
     this.init = function(dashboard) {