mirror of
https://github.com/grafana/grafana.git
synced 2025-08-06 20:59:35 +08:00
prepare sql part for special functions
This commit is contained in:
@ -52,6 +52,30 @@ function replaceAggregationAddStrategy(selectParts, partModel) {
|
||||
selectParts.splice(1, 0, partModel);
|
||||
}
|
||||
|
||||
function replaceSpecialAddStrategy(selectParts, partModel) {
|
||||
var hasAlias = false;
|
||||
|
||||
// look for existing aggregation
|
||||
for (var i = 0; i < selectParts.length; i++) {
|
||||
var part = selectParts[i];
|
||||
if (part.def.type === 'special') {
|
||||
selectParts[i] = partModel;
|
||||
return;
|
||||
}
|
||||
if (part.def.type === 'alias') {
|
||||
hasAlias = true;
|
||||
}
|
||||
}
|
||||
|
||||
// add alias if none exists yet
|
||||
if (!hasAlias) {
|
||||
var aliasModel = createPart({ type: 'alias', params: [selectParts[0].params[0]] });
|
||||
selectParts.push(aliasModel);
|
||||
}
|
||||
|
||||
selectParts.splice(1, 0, partModel);
|
||||
}
|
||||
|
||||
function addMathStrategy(selectParts, partModel) {
|
||||
var partCount = selectParts.length;
|
||||
if (partCount > 0) {
|
||||
@ -184,6 +208,21 @@ register({
|
||||
renderer: functionRenderer,
|
||||
});
|
||||
|
||||
register({
|
||||
type: 'special',
|
||||
style: 'label',
|
||||
params: [
|
||||
{
|
||||
name: 'function',
|
||||
type: 'string',
|
||||
options: ['increase', 'rate'],
|
||||
},
|
||||
],
|
||||
defaultParams: ['increase'],
|
||||
addStrategy: replaceSpecialAddStrategy,
|
||||
renderer: aggregateRenderer,
|
||||
});
|
||||
|
||||
export default {
|
||||
create: createPart,
|
||||
};
|
||||
|
Reference in New Issue
Block a user