Bläddra i källkod

Merge branch 'issue1862' of https://github.com/raintank/grafana into raintank-issue1862

Torkel Ödegaard 10 år sedan
förälder
incheckning
52c32d8b10
1 ändrade filer med 20 tillägg och 7 borttagningar
  1. 20 7
      public/app/features/templating/templateValuesSrv.js

+ 20 - 7
public/app/features/templating/templateValuesSrv.js

@@ -29,13 +29,7 @@ function (angular, _, kbn) {
         var variable = this.variables[i];
         var urlValue = queryParams['var-' + variable.name];
         if (urlValue !== void 0) {
-          var option = _.findWhere(variable.options, { text: urlValue });
-          option = option || { text: urlValue, value: urlValue };
-
-          var promise = this.setVariableValue(variable, option, true);
-          this.updateAutoInterval(variable);
-
-          promises.push(promise);
+          promises.push(this.setVariableFromUrl(variable, urlValue));
         }
         else if (variable.refresh) {
           promises.push(this.updateOptions(variable));
@@ -48,6 +42,25 @@ function (angular, _, kbn) {
       return $q.all(promises);
     };
 
+    this.setVariableFromUrl = function(variable, urlValue) {
+      if (variable.refresh) {
+        var self = this;
+        //refresh the list of options before setting the value
+        return this.updateOptions(variable).then(function() {
+          var option = _.findWhere(variable.options, { text: urlValue });
+          option = option || { text: urlValue, value: urlValue };
+
+          self.updateAutoInterval(variable);
+          return self.setVariableValue(variable, option);
+        });
+      }
+      var option = _.findWhere(variable.options, { text: urlValue });
+      option = option || { text: urlValue, value: urlValue };
+
+      this.updateAutoInterval(variable);
+      return this.setVariableValue(variable, option);
+    };
+
     this.updateAutoInterval = function(variable) {
       if (!variable.auto) { return; }