added typeahead to column for influxdb, #103

This commit is contained in:
Torkel Ödegaard
2014-03-05 12:43:58 +01:00
parent bd0f694f6a
commit a5502a3751
3 changed files with 44 additions and 14 deletions
+29 -12
View File
@@ -15,14 +15,7 @@ function (angular) {
$scope.target.function = 'mean';
}
if (!seriesList) {
seriesList = [];
$scope.datasource.listSeries().then(function(series) {
seriesList = series;
});
}
$scope.oldSeris = $scope.target.series;
$scope.oldSeries = $scope.target.series;
$scope.$on('typeahead-updated', function(){
$timeout($scope.get_data);
});
@@ -30,14 +23,38 @@ function (angular) {
// Cannot use typeahead and ng-change on blur at the same time
$scope.seriesBlur = function() {
if ($scope.oldSeris !== $scope.target.series) {
$scope.oldSeris = $scope.target.series;
if ($scope.oldSeries !== $scope.target.series) {
$scope.oldSeries = $scope.target.series;
$scope.get_data();
}
};
$scope.listSeries = function() {
return seriesList;
// called outside of digest
$scope.listColumns = function(query, callback) {
if (!$scope.columnList) {
$scope.$apply(function() {
$scope.datasource.listColumns($scope.target.series).then(function(columns) {
$scope.columnList = columns;
callback(columns);
});
});
}
else {
return $scope.columnList;
}
};
$scope.listSeries = function(query, callback) {
if (!seriesList) {
seriesList = [];
$scope.datasource.listSeries().then(function(series) {
seriesList = series;
callback(seriesList);
});
}
else {
return seriesList;
}
};
$scope.duplicate = function() {
+3 -1
View File
@@ -66,7 +66,9 @@
ng-model="target.column"
placeholder="value column"
spellcheck='false'
ng-model-onblur ng-change="get_data()" >
bs-typeahead="listColumns"
data-min-length=0
ng-blur="get_data()">
</li>
<li class="grafana-target-segment">
function
@@ -41,7 +41,6 @@ function (angular, _, kbn) {
};
var query = _.template(template, templateData, this.templateSettings);
console.log(query);
return this.doInfluxRequest(query).then(handleInfluxQueryResponse);
@@ -54,6 +53,17 @@ function (angular, _, kbn) {
};
InfluxDatasource.prototype.listColumns = function(seriesName) {
return this.doInfluxRequest('select * from ' + seriesName + ' limit 1').then(function(results) {
console.log('response!');
if (!results.data) {
return [];
}
return results.data[0].columns;
});
};
InfluxDatasource.prototype.listSeries = function() {
return this.doInfluxRequest('list series').then(function(results) {
if (!results.data) {
@@ -79,6 +89,7 @@ function (angular, _, kbn) {
params: params,
};
console.log(query);
return $http(options);
};