Fixed bug with aggregation functions bind when dashboard loaded.
This commit is contained in:
@@ -152,7 +152,8 @@ function (angular, _, dateMath, utils, metricFunctions) {
|
|||||||
return _.contains(transformFunctions, func.def.name);
|
return _.contains(transformFunctions, func.def.name);
|
||||||
});
|
});
|
||||||
var functions = _.map(transFuncDefs, function(func) {
|
var functions = _.map(transFuncDefs, function(func) {
|
||||||
return func.bindFunction(DataProcessingService.metricFunctions);
|
var funcInstance = metricFunctions.createFuncInstance(func.def, func.params);
|
||||||
|
return funcInstance.bindFunction(DataProcessingService.metricFunctions);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Metric data processing
|
// Metric data processing
|
||||||
@@ -171,7 +172,8 @@ function (angular, _, dateMath, utils, metricFunctions) {
|
|||||||
return _.contains(aggregationFunctions, func.def.name);
|
return _.contains(aggregationFunctions, func.def.name);
|
||||||
});
|
});
|
||||||
var functions = _.map(aggFuncDefs, function(func) {
|
var functions = _.map(aggFuncDefs, function(func) {
|
||||||
return func.bindFunction(DataProcessingService.metricFunctions);
|
var funcInstance = metricFunctions.createFuncInstance(func.def, func.params);
|
||||||
|
return funcInstance.bindFunction(DataProcessingService.metricFunctions);
|
||||||
});
|
});
|
||||||
var dp = _.map(timeseries_data, 'datapoints');
|
var dp = _.map(timeseries_data, 'datapoints');
|
||||||
|
|
||||||
|
|||||||
@@ -110,11 +110,14 @@ function (_, $) {
|
|||||||
categories[catName] = _.sortBy(funcList, 'name');
|
categories[catName] = _.sortBy(funcList, 'name');
|
||||||
});
|
});
|
||||||
|
|
||||||
function FuncInstance(funcDef, options) {
|
function FuncInstance(funcDef, params) {
|
||||||
this.def = funcDef;
|
this.def = funcDef;
|
||||||
this.params = [];
|
|
||||||
|
|
||||||
if (options && options.withDefaultParams) {
|
if (params) {
|
||||||
|
this.params = params;
|
||||||
|
} else {
|
||||||
|
// Create with default params
|
||||||
|
this.params = [];
|
||||||
this.params = funcDef.defaultParams.slice(0);
|
this.params = funcDef.defaultParams.slice(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,14 +203,14 @@ function (_, $) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
createFuncInstance: function(funcDef, options) {
|
createFuncInstance: function(funcDef, params) {
|
||||||
if (_.isString(funcDef)) {
|
if (_.isString(funcDef)) {
|
||||||
if (!index[funcDef]) {
|
if (!index[funcDef]) {
|
||||||
throw { message: 'Method not found ' + name };
|
throw { message: 'Method not found ' + name };
|
||||||
}
|
}
|
||||||
funcDef = index[funcDef];
|
funcDef = index[funcDef];
|
||||||
}
|
}
|
||||||
return new FuncInstance(funcDef, options);
|
return new FuncInstance(funcDef, params);
|
||||||
},
|
},
|
||||||
|
|
||||||
getFuncDef: function(name) {
|
getFuncDef: function(name) {
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ define([
|
|||||||
$scope.validateTarget = function () {};
|
$scope.validateTarget = function () {};
|
||||||
|
|
||||||
$scope.addFunction = function(funcDef) {
|
$scope.addFunction = function(funcDef) {
|
||||||
var newFunc = metricFunctions.createFuncInstance(funcDef, { withDefaultParams: true });
|
var newFunc = metricFunctions.createFuncInstance(funcDef);
|
||||||
newFunc.added = true;
|
newFunc.added = true;
|
||||||
$scope.target.functions.push(newFunc);
|
$scope.target.functions.push(newFunc);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user