[Groonga-commit] groonga/grafana-datasource-plugin-groonga at 00a3797 [master] Choose existing columns

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index