|
|
@@ -209,17 +209,40 @@ export class GraphiteQueryCtrl extends QueryCtrl {
|
|
|
this.panelCtrl.refresh();
|
|
|
}
|
|
|
|
|
|
+ updateModelTarget() {
|
|
|
+ // render query
|
|
|
+ var metricPath = this.getSegmentPathUpTo(this.segments.length);
|
|
|
+ this.target.target = _.reduce(this.functions, this.wrapFunction, metricPath);
|
|
|
+
|
|
|
+ // render nested query
|
|
|
+ var targetsByRefId = _.keyBy(this.panelCtrl.panel.targets, 'refId');
|
|
|
+ var nestedSeriesRefRegex = /\#([A-Z])/g;
|
|
|
+ var targetWithNestedQueries = this.target.target.replace(nestedSeriesRefRegex, (match, g1) => {
|
|
|
+ var target = targetsByRefId[g1];
|
|
|
+ if (!target) {
|
|
|
+ return match;
|
|
|
+ }
|
|
|
+
|
|
|
+ return target.targetFull || target.target;
|
|
|
+ });
|
|
|
+
|
|
|
+ delete this.target.targetFull;
|
|
|
+ if (this.target.target !== targetWithNestedQueries) {
|
|
|
+ this.target.targetFull = targetWithNestedQueries;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
targetChanged() {
|
|
|
if (this.error) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var oldTarget = this.target.target;
|
|
|
- var target = this.getSegmentPathUpTo(this.segments.length);
|
|
|
- this.target.target = _.reduce(this.functions, this.wrapFunction, target);
|
|
|
+ this.updateModelTarget();
|
|
|
|
|
|
if (this.target.target !== oldTarget) {
|
|
|
- if (this.segments[this.segments.length - 1].value !== 'select metric') {
|
|
|
+ var lastSegment = this.segments.length > 0 ? this.segments[this.segments.length - 1] : {};
|
|
|
+ if (lastSegment.value !== 'select metric') {
|
|
|
this.panelCtrl.refresh();
|
|
|
}
|
|
|
}
|