Browse Source

fix(opentsdb): blur event triggered twice for metric selector, caused double query to opentsdb after metric name change

Torkel Ödegaard 10 years ago
parent
commit
6e8d5cd873

+ 104 - 124
public/app/plugins/datasource/opentsdb/partials/query.editor.html

@@ -42,15 +42,9 @@
 			Metric
 			Metric
 		</li>
 		</li>
 		<li>
 		<li>
-			<input type="text"
-				class="input-large tight-form-input"
-				ng-model="target.metric"
-				spellcheck='false'
-				bs-typeahead="suggestMetrics"
-				placeholder="metric name"
-				data-min-length=0 data-items=100
-				ng-model-onblur
-				ng-change="targetBlur()">
+			<input type="text" class="input-large tight-form-input" ng-model="target.metric"
+			spellcheck='false' bs-typeahead="suggestMetrics" placeholder="metric name" data-min-length=0 data-items=100
+			ng-blur="targetBlur()">
 			</input>
 			</input>
 			<a bs-tooltip="target.errors.metric" style="color: rgb(229, 189, 28)" ng-show="target.errors.metric">
 			<a bs-tooltip="target.errors.metric" style="color: rgb(229, 189, 28)" ng-show="target.errors.metric">
 				<i class="fa fa-warning"></i>
 				<i class="fa fa-warning"></i>
@@ -75,11 +69,11 @@
 		</li>
 		</li>
 		<li>
 		<li>
 			<input type="text" class="tight-form-input input-large"
 			<input type="text" class="tight-form-input input-large"
-				ng-model="target.alias"
-				spellcheck='false'
-				placeholder="series alias"
-				data-min-length=0 data-items=100
-				ng-blur="targetBlur()"></input>
+			ng-model="target.alias"
+			spellcheck='false'
+			placeholder="series alias"
+			data-min-length=0 data-items=100
+			ng-blur="targetBlur()"></input>
 		</li>
 		</li>
 	</ul>
 	</ul>
 
 
@@ -94,115 +88,101 @@
 
 
 		<li>
 		<li>
 			<input type="text" class="input-large tight-form-input"
 			<input type="text" class="input-large tight-form-input"
-				ng-model="target.downsampleInterval"
-				ng-model-onblur
-				ng-change="targetBlur()"
-				placeholder="interval (empty = auto)">
-			</li>
-
-			<li class="tight-form-item">
-				Aggregator
-			</li>
-
-			<li>
-				<select ng-model="target.downsampleAggregator" class="tight-form-input input-small"
-					ng-options="agg for agg in aggregators"
-					ng-change="targetBlur()">
-				</select>
-			</li>
-
-			<li class="tight-form-item">
-				<editor-checkbox text="Disable downsampling" model="target.disableDownsampling" change="targetBlur()"></editor-checkbox>
-			</li>
-
-		</ul>
-		<div class="clearfix"></div>
-	</div>
-
-	<div class="tight-form">
-		<ul class="tight-form-list" role="menu">
-			<li class="tight-form-item tight-form-align" style="width: 86px">
-				Tags
-			</li>
-			<li ng-repeat="(key, value) in target.tags track by $index" class="tight-form-item">
-				{{key}}&nbsp;=&nbsp;{{value}}
-				<a ng-click="removeTag(key)">
-					<i class="fa fa-remove"></i>
-				</a>
-			</li>
+			ng-model="target.downsampleInterval"
+			ng-model-onblur
+			ng-change="targetBlur()"
+			placeholder="interval (empty = auto)"></input>
+		</li>
 
 
-			<li class="tight-form-item" ng-hide="addTagMode">
-				<a ng-click="addTag()">
-					<i class="fa fa-plus"></i>
-				</a>
-			</li>
-
-			<li ng-show="addTagMode">
-				<input type="text" class="input-small tight-form-input"
-					spellcheck='false'
-					bs-typeahead="suggestTagKeys"
-					data-min-length=0 data-items=100
-					ng-model="target.currentTagKey"
-					placeholder="key">
-					<input type="text"
-						class="input-small tight-form-input"
-						spellcheck='false'
-						bs-typeahead="suggestTagValues"
-						data-min-length=0 data-items=100
-						ng-model="target.currentTagValue"
-						placeholder="value">
-					</input>
-					<a ng-click="addTag()">
-						add tag
-					</a>
-					<a bs-tooltip="target.errors.tags"
-						style="color: rgb(229, 189, 28)"
-						ng-show="target.errors.tags">
-						<i class="fa fa-warning"></i>
-					</a>
-				</li>
-			</ul>
-			<div class="clearfix"></div>
-		</div>
-
-		<div class="tight-form">
-			<ul class="tight-form-list" role="menu">
-				<li class="tight-form-item tight-form-align" style="width: 86px">
-					<editor-checkbox text="Rate" model="target.shouldComputeRate" change="targetBlur()"></editor-checkbox>
-				</li>
-
-				<li class="tight-form-item" ng-hide="!target.shouldComputeRate">
-					<editor-checkbox text="Counter" model="target.isCounter" change="targetBlur()"></editor-checkbox>
-				</li>
-
-				<li class="tight-form-item" ng-hide="!target.isCounter">
-					Counter Max:
-				</li>
-
-				<li ng-hide="!target.isCounter">
-					<input type="text" class="tight-form-input input-small"
-						ng-disabled="!target.shouldComputeRate"
-						ng-model="target.counterMax"
-						spellcheck='false'
-						placeholder="max value"
-						ng-model-onblur
-						ng-blur="targetBlur()"></input>
-				</li>
-				<li class="tight-form-item" ng-hide="!target.isCounter">
-					Reset Value:
-				</li>
-				<li ng-hide="!target.isCounter">
-					<input type="text" class="tight-form-input input-small"
-						ng-disabled="!target.shouldComputeRate"
-						ng-model="target.counterResetValue"
-						spellcheck='false'
-						placeholder="reset value"
-						ng-model-onblur
-						ng-blur="targetBlur()"></input>
-				</li>
-			</ul>
-
-			<div class="clearfix"></div>
-		</div>
-	</div>
+		<li class="tight-form-item">
+			Aggregator
+		</li>
+
+		<li>
+			<select ng-model="target.downsampleAggregator" class="tight-form-input input-small"
+				ng-options="agg for agg in aggregators"
+				ng-change="targetBlur()">
+			</select>
+		</li>
+
+		<li class="tight-form-item">
+			<editor-checkbox text="Disable downsampling" model="target.disableDownsampling" change="targetBlur()"></editor-checkbox>
+		</li>
+
+	</ul>
+	<div class="clearfix"></div>
+</div>
+
+<div class="tight-form">
+	<ul class="tight-form-list" role="menu">
+		<li class="tight-form-item tight-form-align" style="width: 86px">
+			Tags
+		</li>
+		<li ng-repeat="(key, value) in target.tags track by $index" class="tight-form-item">
+			{{key}}&nbsp;=&nbsp;{{value}}
+			<a ng-click="removeTag(key)">
+				<i class="fa fa-remove"></i>
+			</a>
+		</li>
+
+		<li class="tight-form-item" ng-hide="addTagMode">
+			<a ng-click="addTag()">
+				<i class="fa fa-plus"></i>
+			</a>
+		</li>
+
+		<li ng-show="addTagMode">
+			<input type="text" class="input-small tight-form-input" spellcheck='false'
+			bs-typeahead="suggestTagKeys" data-min-length=0 data-items=100
+			ng-model="target.currentTagKey" placeholder="key"></input>
+
+			<input type="text" class="input-small tight-form-input"
+			spellcheck='false' bs-typeahead="suggestTagValues"
+			data-min-length=0 data-items=100 ng-model="target.currentTagValue" placeholder="value">
+			</input>
+			<a ng-click="addTag()">
+				add tag
+			</a>
+			<a bs-tooltip="target.errors.tags"
+				style="color: rgb(229, 189, 28)"
+				ng-show="target.errors.tags">
+				<i class="fa fa-warning"></i>
+			</a>
+		</li>
+	</ul>
+	<div class="clearfix"></div>
+</div>
+
+<div class="tight-form">
+	<ul class="tight-form-list" role="menu">
+		<li class="tight-form-item tight-form-align" style="width: 86px">
+			<editor-checkbox text="Rate" model="target.shouldComputeRate" change="targetBlur()"></editor-checkbox>
+		</li>
+
+		<li class="tight-form-item" ng-hide="!target.shouldComputeRate">
+			<editor-checkbox text="Counter" model="target.isCounter" change="targetBlur()"></editor-checkbox>
+		</li>
+
+		<li class="tight-form-item" ng-hide="!target.isCounter">
+			Counter Max:
+		</li>
+
+		<li ng-hide="!target.isCounter">
+			<input type="text" class="tight-form-input input-small" ng-disabled="!target.shouldComputeRate"
+			ng-model="target.counterMax" spellcheck='false'
+			placeholder="max value" ng-model-onblur
+			ng-blur="targetBlur()"></input>
+		</li>
+		<li class="tight-form-item" ng-hide="!target.isCounter">
+			Reset Value:
+		</li>
+		<li ng-hide="!target.isCounter">
+			<input type="text" class="tight-form-input input-small" ng-disabled="!target.shouldComputeRate"
+			ng-model="target.counterResetValue" spellcheck='false'
+			placeholder="reset value" ng-model-onblur
+			ng-blur="targetBlur()"></input>
+		</li>
+	</ul>
+
+	<div class="clearfix"></div>
 </div>
 </div>

+ 0 - 4
public/app/plugins/datasource/opentsdb/queryCtrl.js

@@ -21,10 +21,6 @@ function (angular, _, kbn) {
       if (!$scope.target.downsampleAggregator) {
       if (!$scope.target.downsampleAggregator) {
         $scope.target.downsampleAggregator = 'avg';
         $scope.target.downsampleAggregator = 'avg';
       }
       }
-
-      $scope.$on('typeahead-updated', function() {
-        $timeout($scope.targetBlur);
-      });
     };
     };
 
 
     $scope.targetBlur = function() {
     $scope.targetBlur = function() {