diff --git a/public/app/features/dashboard/timeSrv.js b/public/app/features/dashboard/timeSrv.js
index d9e3420147d..be05a1f8a70 100644
--- a/public/app/features/dashboard/timeSrv.js
+++ b/public/app/features/dashboard/timeSrv.js
@@ -94,7 +94,7 @@ define([
_.extend(this.time, time);
// disable refresh if we have an absolute time
- if (_.isString(time.to) && time.to.indexOf('now') === -1) {
+ if (moment.isMoment(time.to)) {
this.old_refresh = this.dashboard.refresh || this.old_refresh;
this.setAutoRefresh(false);
}
diff --git a/public/app/features/dashboard/timepicker/timepicker.ts b/public/app/features/dashboard/timepicker/timepicker.ts
index 3714890fd36..bda002d59cd 100644
--- a/public/app/features/dashboard/timepicker/timepicker.ts
+++ b/public/app/features/dashboard/timepicker/timepicker.ts
@@ -32,11 +32,9 @@ export class TimePickerCtrl {
constructor(private $scope, private $rootScope, private timeSrv) {
$scope.ctrl = this;
- $rootScope.onAppEvent('refresh', () => this.init(), $scope);
$rootScope.onAppEvent('zoom-out', () => this.zoom(2), $scope);
- $rootScope.onAppEvent('dash-editor-hidden', () => {
- this.isOpen = false;
- }, $scope);
+ $rootScope.onAppEvent('refresh', () => this.init(), $scope);
+ $rootScope.onAppEvent('dash-editor-hidden', () => this.isOpen = false, $scope);
this.init();
}
@@ -64,9 +62,14 @@ export class TimePickerCtrl {
this.rangeString = rangeUtil.describeTimeRange(timeRaw);
this.absolute = {fromJs: time.from.toDate(), toJs: time.to.toDate()};
- this.timeRaw = timeRaw;
this.tooltip = this.dashboard.formatDate(time.from) + '
to
';
this.tooltip += this.dashboard.formatDate(time.to);
+
+ // do not update time raw when dropdown is open
+ // as auto refresh will reset the from/to input fields
+ if (!this.isOpen) {
+ this.timeRaw = timeRaw;
+ }
}
zoom(factor) {
@@ -88,6 +91,7 @@ export class TimePickerCtrl {
}
openDropdown() {
+ this.init();
this.isOpen = true;
this.timeOptions = rangeUtil.getRelativeTimesList(this.panel, this.rangeString);
this.refresh = {