Commit 1fb38abf by Carl Bergquist

Merge pull request #4063 from mtanda/timeshift_template

timeFrom and timeShift templating
parents 4299feee 09dfaf98
......@@ -47,6 +47,9 @@ function (coreModule, kbn, rangeUtil) {
if (ctrl.$isEmpty(modelValue)) {
return true;
}
if (viewValue.indexOf('$') === 0) {
return true; // allow template variable
}
var info = rangeUtil.describeTextRange(viewValue);
return info.invalid !== true;
};
......
......@@ -17,6 +17,7 @@ class MetricsPanelCtrl extends PanelCtrl {
$timeout: any;
datasourceSrv: any;
timeSrv: any;
templateSrv: any;
timing: any;
range: any;
rangeRaw: any;
......@@ -34,6 +35,7 @@ class MetricsPanelCtrl extends PanelCtrl {
this.$q = $injector.get('$q');
this.datasourceSrv = $injector.get('datasourceSrv');
this.timeSrv = $injector.get('timeSrv');
this.templateSrv = $injector.get('templateSrv');
if (!this.panel.targets) {
this.panel.targets = [{}];
......@@ -119,7 +121,8 @@ class MetricsPanelCtrl extends PanelCtrl {
// check panel time overrrides
if (this.panel.timeFrom) {
var timeFromInfo = rangeUtil.describeTextRange(this.panel.timeFrom);
var timeFromInterpolated = this.templateSrv.replace(this.panel.timeFrom, this.panel.scopedVars);
var timeFromInfo = rangeUtil.describeTextRange(timeFromInterpolated);
if (timeFromInfo.invalid) {
this.timeInfo = 'invalid time override';
return;
......@@ -136,13 +139,14 @@ class MetricsPanelCtrl extends PanelCtrl {
}
if (this.panel.timeShift) {
var timeShiftInfo = rangeUtil.describeTextRange(this.panel.timeShift);
var timeShiftInterpolated = this.templateSrv.replace(this.panel.timeShift, this.panel.scopedVars);
var timeShiftInfo = rangeUtil.describeTextRange(timeShiftInterpolated);
if (timeShiftInfo.invalid) {
this.timeInfo = 'invalid timeshift';
return;
}
var timeShift = '-' + this.panel.timeShift;
var timeShift = '-' + timeShiftInterpolated;
this.timeInfo += ' timeshift ' + timeShift;
this.range.from = dateMath.parseDateMath(timeShift, this.range.from, false);
this.range.to = dateMath.parseDateMath(timeShift, this.range.to, true);
......
......@@ -50,7 +50,7 @@ class SingleStatCtrl extends MetricsPanelCtrl {
unitFormats: any[];
/** @ngInject */
constructor($scope, $injector, private $location, private linkSrv, private templateSrv) {
constructor($scope, $injector, private $location, private linkSrv) {
super($scope, $injector);
_.defaults(this.panel, panelDefaults);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment