mirror of
https://github.com/grafana/grafana.git
synced 2025-08-06 20:59:35 +08:00
remove render code from sql_part
This commit is contained in:
@ -9,7 +9,6 @@ export class SqlPartDef {
|
|||||||
wrapOpen: string;
|
wrapOpen: string;
|
||||||
wrapClose: string;
|
wrapClose: string;
|
||||||
separator: string;
|
separator: string;
|
||||||
renderer: any;
|
|
||||||
category: any;
|
category: any;
|
||||||
addStrategy: any;
|
addStrategy: any;
|
||||||
|
|
||||||
@ -32,7 +31,6 @@ export class SqlPartDef {
|
|||||||
}
|
}
|
||||||
this.params = options.params;
|
this.params = options.params;
|
||||||
this.defaultParams = options.defaultParams;
|
this.defaultParams = options.defaultParams;
|
||||||
this.renderer = options.renderer;
|
|
||||||
this.category = options.category;
|
this.category = options.category;
|
||||||
this.addStrategy = options.addStrategy;
|
this.addStrategy = options.addStrategy;
|
||||||
}
|
}
|
||||||
@ -74,40 +72,4 @@ export class SqlPart {
|
|||||||
|
|
||||||
this.part.params = this.params;
|
this.part.params = this.params;
|
||||||
}
|
}
|
||||||
|
|
||||||
render(innerExpr: string) {
|
|
||||||
return this.def.renderer(this, innerExpr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function functionRenderer(part, innerExpr) {
|
|
||||||
var str = part.def.type + '(';
|
|
||||||
var parameters = _.map(part.params, (value, index) => {
|
|
||||||
var paramType = part.def.params[index];
|
|
||||||
if (paramType.type === 'time') {
|
|
||||||
if (value === 'auto') {
|
|
||||||
value = '$__interval';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (paramType.quote === 'single') {
|
|
||||||
return "'" + value + "'";
|
|
||||||
} else if (paramType.quote === 'double') {
|
|
||||||
return '"' + value + '"';
|
|
||||||
}
|
|
||||||
|
|
||||||
return value;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (innerExpr) {
|
|
||||||
parameters.unshift(innerExpr);
|
|
||||||
}
|
|
||||||
return str + parameters.join(', ') + ')';
|
|
||||||
}
|
|
||||||
|
|
||||||
export function suffixRenderer(part, innerExpr) {
|
|
||||||
return innerExpr + ' ' + part.params[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
export function identityRenderer(part, innerExpr) {
|
|
||||||
return part.params[0];
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { PostgresQueryBuilder } from './query_builder';
|
import { PostgresQueryBuilder } from './query_builder';
|
||||||
import { QueryCtrl } from 'app/plugins/sdk';
|
import { QueryCtrl } from 'app/plugins/sdk';
|
||||||
|
import { SqlPart } from 'app/core/components/sql_part/sql_part';
|
||||||
import PostgresQuery from './postgres_query';
|
import PostgresQuery from './postgres_query';
|
||||||
import sqlPart from './sql_part';
|
import sqlPart from './sql_part';
|
||||||
|
|
||||||
@ -32,10 +33,10 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
|||||||
whereAdd: any;
|
whereAdd: any;
|
||||||
timeColumnSegment: any;
|
timeColumnSegment: any;
|
||||||
metricColumnSegment: any;
|
metricColumnSegment: any;
|
||||||
selectMenu: any;
|
selectMenu: any[];
|
||||||
selectModels: any[];
|
selectModels: SqlPart[][];
|
||||||
groupByParts: any[];
|
groupByParts: SqlPart[][];
|
||||||
whereParts: any[];
|
whereParts: SqlPart[][];
|
||||||
groupByAdd: any;
|
groupByAdd: any;
|
||||||
|
|
||||||
/** @ngInject **/
|
/** @ngInject **/
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { SqlPartDef, SqlPart, functionRenderer, suffixRenderer } from 'app/core/components/sql_part/sql_part';
|
import { SqlPartDef, SqlPart } from 'app/core/components/sql_part/sql_part';
|
||||||
|
|
||||||
var index = [];
|
var index = [];
|
||||||
|
|
||||||
@ -16,18 +16,6 @@ function register(options: any) {
|
|||||||
index[options.type] = new SqlPartDef(options);
|
index[options.type] = new SqlPartDef(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
function aliasRenderer(part, innerExpr) {
|
|
||||||
return innerExpr + ' AS ' + '"' + part.params[0] + '"';
|
|
||||||
}
|
|
||||||
|
|
||||||
function aggregateRenderer(part, innerExpr) {
|
|
||||||
return part.params[0] + '(' + innerExpr + ')';
|
|
||||||
}
|
|
||||||
|
|
||||||
function columnRenderer(part, innerExpr) {
|
|
||||||
return part.params[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
function replaceAggregationAddStrategy(selectParts, partModel) {
|
function replaceAggregationAddStrategy(selectParts, partModel) {
|
||||||
var hasAlias = false;
|
var hasAlias = false;
|
||||||
|
|
||||||
@ -133,7 +121,6 @@ register({
|
|||||||
addStrategy: addColumnStrategy,
|
addStrategy: addColumnStrategy,
|
||||||
params: [{ type: 'column', dynamicLookup: true }],
|
params: [{ type: 'column', dynamicLookup: true }],
|
||||||
defaultParams: ['value'],
|
defaultParams: ['value'],
|
||||||
renderer: columnRenderer,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
register({
|
register({
|
||||||
@ -147,7 +134,6 @@ register({
|
|||||||
{ name: 'right', type: 'string', dynamicLookup: true },
|
{ name: 'right', type: 'string', dynamicLookup: true },
|
||||||
],
|
],
|
||||||
defaultParams: ['value', '=', 'value'],
|
defaultParams: ['value', '=', 'value'],
|
||||||
renderer: columnRenderer,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
register({
|
register({
|
||||||
@ -157,7 +143,6 @@ register({
|
|||||||
addStrategy: addExpressionStrategy,
|
addStrategy: addExpressionStrategy,
|
||||||
params: [],
|
params: [],
|
||||||
defaultParams: [],
|
defaultParams: [],
|
||||||
renderer: columnRenderer,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
register({
|
register({
|
||||||
@ -166,7 +151,6 @@ register({
|
|||||||
addStrategy: replaceAggregationAddStrategy,
|
addStrategy: replaceAggregationAddStrategy,
|
||||||
params: [{ name: 'name', type: 'string', dynamicLookup: true }],
|
params: [{ name: 'name', type: 'string', dynamicLookup: true }],
|
||||||
defaultParams: ['avg'],
|
defaultParams: ['avg'],
|
||||||
renderer: aggregateRenderer,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
register({
|
register({
|
||||||
@ -175,7 +159,6 @@ register({
|
|||||||
addStrategy: addMathStrategy,
|
addStrategy: addMathStrategy,
|
||||||
params: [{ name: 'expr', type: 'string' }],
|
params: [{ name: 'expr', type: 'string' }],
|
||||||
defaultParams: [' / 100'],
|
defaultParams: [' / 100'],
|
||||||
renderer: suffixRenderer,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
register({
|
register({
|
||||||
@ -184,8 +167,6 @@ register({
|
|||||||
addStrategy: addAliasStrategy,
|
addStrategy: addAliasStrategy,
|
||||||
params: [{ name: 'name', type: 'string', quote: 'double' }],
|
params: [{ name: 'name', type: 'string', quote: 'double' }],
|
||||||
defaultParams: ['alias'],
|
defaultParams: ['alias'],
|
||||||
renderMode: 'suffix',
|
|
||||||
renderer: aliasRenderer,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
register({
|
register({
|
||||||
@ -205,7 +186,6 @@ register({
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
defaultParams: ['$__interval', 'none'],
|
defaultParams: ['$__interval', 'none'],
|
||||||
renderer: functionRenderer,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
register({
|
register({
|
||||||
@ -220,7 +200,6 @@ register({
|
|||||||
],
|
],
|
||||||
defaultParams: ['increase'],
|
defaultParams: ['increase'],
|
||||||
addStrategy: replaceSpecialAddStrategy,
|
addStrategy: replaceSpecialAddStrategy,
|
||||||
renderer: aggregateRenderer,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
Reference in New Issue
Block a user