mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
feat(influxdb): minor progress on new editor
This commit is contained in:
parent
c68cd7d19a
commit
9b4150509c
@ -3,11 +3,11 @@ define([
|
||||
'lodash',
|
||||
'app/core/utils/datemath',
|
||||
'./influx_series',
|
||||
'./query_builder',
|
||||
'./influx_query',
|
||||
'./directives',
|
||||
'./query_ctrl',
|
||||
],
|
||||
function (angular, _, dateMath, InfluxSeries, InfluxQueryBuilder) {
|
||||
function (angular, _, dateMath, InfluxSeries, InfluxQuery) {
|
||||
'use strict';
|
||||
|
||||
var module = angular.module('grafana.services');
|
||||
@ -41,8 +41,9 @@ function (angular, _, dateMath, InfluxSeries, InfluxQueryBuilder) {
|
||||
queryTargets.push(target);
|
||||
|
||||
// build query
|
||||
var queryBuilder = new InfluxQueryBuilder(target);
|
||||
var query = queryBuilder.build();
|
||||
var queryModel = new InfluxQuery(target);
|
||||
var query = queryModel.render();
|
||||
console.log(query);
|
||||
query = query.replace(/\$interval/g, (target.interval || options.interval));
|
||||
return query;
|
||||
|
||||
|
@ -18,7 +18,8 @@ class InfluxQuery {
|
||||
target.tags = target.tags || [];
|
||||
target.groupBy = target.groupBy || [{type: 'time', interval: 'auto'}];
|
||||
target.select = target.select || [[
|
||||
{name: 'mean', params: ['value']},
|
||||
{name: 'field', params: ['value']},
|
||||
{name: 'mean', params: []},
|
||||
]];
|
||||
|
||||
this.updateSelectParts();
|
||||
|
@ -87,42 +87,13 @@
|
||||
<li>
|
||||
<influx-query-part-editor part="part" class="tight-form-item tight-form-func"></influx-query-part-editor>
|
||||
</li>
|
||||
<!-- <li class="dropdown" ng-if="groupBy.type === 'time'"> -->
|
||||
<!-- <a class="tight-form-item pointer" data-toggle="dropdown" bs-tooltip="'Insert missing values, important when stacking'" data-placement="right"> -->
|
||||
<!-- <span ng-show="target.fill"> -->
|
||||
<!-- fill ({{target.fill}}) -->
|
||||
<!-- </span> -->
|
||||
<!-- <span ng-show="!target.fill"> -->
|
||||
<!-- no fill -->
|
||||
<!-- </span> -->
|
||||
<!-- </a> -->
|
||||
<!-- <ul class="dropdown-menu"> -->
|
||||
<!-- <li><a ng-click="setFill('')">no fill</a></li> -->
|
||||
<!-- <li><a ng-click="setFill('0')">fill (0)</a></li> -->
|
||||
<!-- <li><a ng-click="setFill('null')">fill (null)</a></li> -->
|
||||
<!-- <li><a ng-click="setFill('none')">fill (none)</a></li> -->
|
||||
<!-- <li><a ng-click="setFill('previous')">fill (previous)</a></li> -->
|
||||
<!-- </ul> -->
|
||||
<!-- </li> -->
|
||||
<!-- <li ng-if="groupBy.type === 'tag'"> -->
|
||||
<!-- <metric-segment-model property="groupBy.key" get-options="getTagOptions()" on-change="get_data()"></metric-segment> -->
|
||||
<!-- </li> -->
|
||||
</ul>
|
||||
|
||||
<ul class="tight-form-list pull-right">
|
||||
<li class="tight-form-item last" ng-show="$index === 0">
|
||||
<a class="pointer" ng-click="addGroupBy()"><i class="fa fa-plus"></i></a>
|
||||
</li>
|
||||
<li class="tight-form-item last" ng-show="$index > 0">
|
||||
<a class="pointer" ng-click="removeGroupBy($index)"><i class="fa fa-minus"></i></a>
|
||||
<li class="dropdown" dropdown-typeahead="groupByMenu" dropdown-typeahead-on-select="groupByMenuAction(parts, $item, $subItem)">
|
||||
</li>
|
||||
</ul>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="tight-form">
|
||||
<ul class="tight-form-list">
|
||||
<li class="tight-form-item query-keyword tight-form-align" style="width: 75px;">
|
||||
|
@ -8,6 +8,7 @@ var categories = {
|
||||
Transformations: [],
|
||||
Math: [],
|
||||
Aliasing: [],
|
||||
Fields: [],
|
||||
};
|
||||
|
||||
class QueryPartDef {
|
||||
@ -64,19 +65,27 @@ function quotedIdentityRenderer(part, innerExpr) {
|
||||
return '"' + part.params[0] + '"';
|
||||
}
|
||||
|
||||
QueryPartDef.register({
|
||||
name: 'field',
|
||||
category: categories.Fields,
|
||||
params: [{type: 'field'}],
|
||||
defaultParams: ['value'],
|
||||
renderer: quotedIdentityRenderer,
|
||||
});
|
||||
|
||||
QueryPartDef.register({
|
||||
name: 'mean',
|
||||
category: categories.Aggregations,
|
||||
params: [{type: 'field', quote: 'double'}],
|
||||
defaultParams: ['value'],
|
||||
params: [],
|
||||
defaultParams: [],
|
||||
renderer: functionRenderer,
|
||||
});
|
||||
|
||||
QueryPartDef.register({
|
||||
name: 'sum',
|
||||
category: categories.Aggregations,
|
||||
params: [{type: 'field', quote: 'double'}],
|
||||
defaultParams: ['value'],
|
||||
params: [],
|
||||
defaultParams: [],
|
||||
renderer: functionRenderer,
|
||||
});
|
||||
|
||||
|
@ -21,7 +21,8 @@ describe.only('InfluxQuery', function() {
|
||||
measurement: 'cpu',
|
||||
select: [
|
||||
[
|
||||
{name: 'mean', params: ['value']},
|
||||
{name: 'field', params: ['value']},
|
||||
{name: 'mean', params: []},
|
||||
{name: 'math', params: ['/100']},
|
||||
{name: 'alias', params: ['text']},
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user