Przeglądaj źródła

poc(influxdb v3 editor): more testing of new influxdb editor approach

Torkel Ödegaard 10 lat temu
rodzic
commit
2dc8fcd3be

+ 2 - 5
public/app/plugins/datasource/influxdb/partials/query.editor.html

@@ -65,15 +65,12 @@
 
 	<div ng-hide="target.rawQuery">
 
-		<div class="tight-form" ng-repeat="field in target.fields">
+		<div class="tight-form" ng-repeat="parts in select">
 			<ul class="tight-form-list">
 				<li class="tight-form-item query-keyword tight-form-align" style="width: 75px;">
 					<span ng-show="$index === 0">SELECT</span>
 				</li>
-				<li>
-					<metric-segment-model property="field.name" get-options="getFields()" on-change="get_data()"></metric-segment>
-				</li>
-				<li ng-repeat="func in field.parts">
+				<li ng-repeat="func in parts">
 					<span influx-query-part-editor class="tight-form-item tight-form-func">
 					</span>
 				</li>

+ 17 - 6
public/app/plugins/datasource/influxdb/query_ctrl.js

@@ -18,14 +18,25 @@ function (angular, _, InfluxQueryBuilder, queryPart) {
       var target = $scope.target;
       target.tags = target.tags || [];
       target.groupBy = target.groupBy || [{type: 'time', interval: 'auto'}];
-      target.fields = target.fields || [{name: 'value', func: target.function || 'mean'}];
-      target.fields[0].parts = [
-        queryPart.create('mean', { withDefaultParams: true }),
-        queryPart.create('derivate', { withDefaultParams: true }),
-        queryPart.create('math', { withDefaultParams: true }),
-        queryPart.create('alias', { withDefaultParams: true }),
+      target.fields = target.fields || [{name: 'value'}];
+      target.select = target.select || [[{type: 'field', params: ['value']}]];
+      target.select[0] = [
+        {type: 'field', params: ['value']},
+        {type: 'mean', params: []},
+        {type: 'derivate', params: ['10s']},
+        {type: 'math', params: ['/ 100']},
+        {type: 'alias', params: ['google']},
       ];
 
+      $scope.select = _.map(target.select, function(parts) {
+        return _.map(parts, function(part) {
+          var partModel = queryPart.create(part.type);
+          partModel.params = part.params;
+          partModel.updateText();
+          return partModel;
+        });
+      });
+
       $scope.func = queryPart.create('time', { withDefaultParams: true });
 
       $scope.queryBuilder = new InfluxQueryBuilder(target);

+ 7 - 0
public/app/plugins/datasource/influxdb/query_part.js

@@ -25,6 +25,13 @@ function (_, $) {
     index[funcDef.shortName || funcDef.name] = funcDef;
   }
 
+  addFuncDef({
+    name: 'field',
+    category: categories.Transform,
+    params: [{type: 'field'}],
+    defaultParams: ['value'],
+  });
+
   addFuncDef({
     name: 'mean',
     category: categories.Transform,

+ 0 - 2
public/app/plugins/datasource/influxdb/query_part_editor.js

@@ -16,10 +16,8 @@ function (angular, _, $) {
 
       var funcControlsTemplate =
          '<div class="tight-form-func-controls">' +
-           '<span class="pointer fa fa-arrow-left"></span>' +
            '<span class="pointer fa fa-question-circle"></span>' +
            '<span class="pointer fa fa-remove" ></span>' +
-           '<span class="pointer fa fa-arrow-right"></span>' +
          '</div>';
 
       return {