Masafumi Yokoyama
null+****@clear*****
Mon Feb 15 23:52:22 JST 2016
Masafumi Yokoyama 2016-02-15 23:52:22 +0900 (Mon, 15 Feb 2016) New Revision: 00a37974fce8d6eb45acaf916c94a67e2e8c7f7b https://github.com/groonga/grafana-datasource-plugin-groonga/commit/00a37974fce8d6eb45acaf916c94a67e2e8c7f7b Message: Choose existing columns Modified files: partials/query.editor.html query_ctrl.js Modified: partials/query.editor.html (+9 -7) =================================================================== --- partials/query.editor.html 2016-02-15 21:14:16 +0900 (a1a4f87) +++ partials/query.editor.html 2016-02-15 23:52:22 +0900 (039a8be) @@ -7,7 +7,7 @@ <li> <select class="tight-form-input input-medium" ng-model="table" - ng-change="update()"> + ng-change="updateTable()"> <option ng-repeat="name in availableTables" value="{{name}}"> {{name}} @@ -19,12 +19,14 @@ COLUMN </li> <li> - <input type="text" - class="tight-form-input input-medium" - ng-model="column" - ng-model-onblur - ng-change="update()" - spellcheck='false'> + <select class="tight-form-input input-medium" + ng-model="column" + ng-change="updateColumn()"> + <option ng-repeat="name in availableColumns" + value="{{name}}"> + {{name}} + </option> + </select> </li> </ul> <div class="clearfix"></div> Modified: query_ctrl.js (+25 -3) =================================================================== --- query_ctrl.js 2016-02-15 21:14:16 +0900 (b8c50c3) +++ query_ctrl.js 2016-02-15 23:52:22 +0900 (11ff730) @@ -6,9 +6,13 @@ function (angular) { var module = angular.module('grafana.controllers'); - module.controller('GroongaQueryCtrl', function ($scope, backendSrv) { + module.controller('GroongaQueryCtrl', function ($scope, backendSrv, $httpParamSerializerJQLike) { + function params(data) { + return $httpParamSerializerJQLike(data); + } $scope.init = function () { + var selectOptions = {}; var options = { url: $scope.datasource.datasource.url + '/d/schema' }; @@ -30,14 +34,32 @@ function (angular) { }); }; - $scope.update = function () { - console.log('update'); + $scope.updateTable = function () { $scope.target.table = $scope.table; + var columnListOptions = { + table: $scope.table + } + var options = { + url: $scope.datasource.datasource.url + '/d/column_list?' + params(columnListOptions) + }; + return backendSrv.datasourceRequest(options).then(function(response) { + var columns = response.data[1]; + angular.forEach(columns, function(column) { + var columnName = column[1]; + if (angular.isString(columnName)) { + $scope.availableColumns.push(columnName); + } + }); + }); + } + + $scope.updateColumn = function () { $scope.target.column = $scope.column; $scope.get_data(); } $scope.availableTables = []; + $scope.availableColumns = []; $scope.init(); }); -------------- next part -------------- HTML����������������������������...Download