fix(timepicker): fixed issue with timepicker and auto refresh and entering manual time when timepicker dropdown is open, fixes #2897

This commit is contained in:
Torkel Ödegaard 2015-10-08 15:35:17 +02:00
parent 8789be7671
commit 04eefb8480
2 changed files with 10 additions and 6 deletions

View File

@ -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);
}

View File

@ -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) + ' <br>to<br>';
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 = {