Просмотр исходного кода

Merge branch 'reflect_panel_repeat_when_time_range_changed' of https://github.com/mtanda/grafana

Torkel Ödegaard 9 лет назад
Родитель
Сommit
069100099d
1 измененных файлов с 14 добавлено и 3 удалено
  1. 14 3
      public/app/features/templating/templateValuesSrv.js

+ 14 - 3
public/app/features/templating/templateValuesSrv.js

@@ -8,7 +8,7 @@ function (angular, _, kbn) {
 
   var module = angular.module('grafana.services');
 
-  module.service('templateValuesSrv', function($q, $rootScope, datasourceSrv, $location, templateSrv, timeSrv) {
+  module.service('templateValuesSrv', function($q, $rootScope, datasourceSrv, $location, templateSrv, timeSrv, dynamicDashboardSrv) {
     var self = this;
 
     function getNoneOption() { return { text: 'None', value: '', isNone: true }; }
@@ -27,7 +27,17 @@ function (angular, _, kbn) {
         .filter(function(variable) {
           return variable.refresh === 2;
         }).map(function(variable) {
-          return self.updateOptions(variable);
+          var previousVariable = angular.copy(variable);
+          return self.updateOptions(variable).then(function () {
+            return self.variableUpdated(variable).then(function () {
+              var updatedVariable = angular.copy(variable);
+              delete(updatedVariable.$$hashKey);
+              if (JSON.stringify(previousVariable) !== JSON.stringify(updatedVariable)) {
+                dynamicDashboardSrv.update(self.dashboard);
+                $rootScope.$emit('template-variable-value-updated');
+              }
+            });
+          });
         });
 
       return $q.all(promises);
@@ -35,6 +45,7 @@ function (angular, _, kbn) {
     }, $rootScope);
 
     this.init = function(dashboard) {
+      this.dashboard = dashboard;
       this.variables = dashboard.templating.list;
       templateSrv.init(this.variables);
 
@@ -145,7 +156,7 @@ function (angular, _, kbn) {
 
     this.variableUpdated = function(variable) {
       templateSrv.updateTemplateData();
-      return this.updateOptionsInChildVariables(variable);
+      return self.updateOptionsInChildVariables(variable);
     };
 
     this.updateOptionsInChildVariables = function(updatedVariable) {