mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
[Shortcuts] Fixes shortcuts for moving time range backwards and forwards (#18305)
Closes #18159
This commit is contained in:
committed by
Leonard Gram
parent
21f702f7c9
commit
bcf28cb7a2
@@ -162,11 +162,11 @@ export class KeybindingSrv {
|
||||
});
|
||||
|
||||
this.bind('t left', () => {
|
||||
scope.appEvent('shift-time-backward');
|
||||
scope.appEvent('shift-time', -1);
|
||||
});
|
||||
|
||||
this.bind('t right', () => {
|
||||
scope.appEvent('shift-time-forward');
|
||||
scope.appEvent('shift-time', 1);
|
||||
});
|
||||
|
||||
// edit panel
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Libaries
|
||||
import React, { Component } from 'react';
|
||||
import { toUtc, dateMath } from '@grafana/data';
|
||||
import { dateMath } from '@grafana/data';
|
||||
|
||||
// Types
|
||||
import { DashboardModel } from '../../state';
|
||||
@@ -16,7 +16,6 @@ import { TimePicker, RefreshPicker } from '@grafana/ui';
|
||||
// Utils & Services
|
||||
import { getTimeSrv, TimeSrv } from 'app/features/dashboard/services/TimeSrv';
|
||||
import { defaultSelectOptions } from '@grafana/ui/src/components/TimePicker/TimePicker';
|
||||
import { getShiftedTimeRange } from 'app/core/utils/timePicker';
|
||||
|
||||
export interface Props {
|
||||
$injector: any;
|
||||
@@ -43,18 +42,12 @@ export class DashNavTimeControls extends Component<Props> {
|
||||
return Promise.resolve();
|
||||
};
|
||||
|
||||
onMoveTimePicker = (direction: number) => {
|
||||
const range = this.timeSrv.timeRange();
|
||||
const { from, to } = getShiftedTimeRange(direction, range);
|
||||
|
||||
this.timeSrv.setTime({
|
||||
from: toUtc(from),
|
||||
to: toUtc(to),
|
||||
});
|
||||
onMoveBack = () => {
|
||||
this.$rootScope.appEvent('shift-time', -1);
|
||||
};
|
||||
onMoveForward = () => {
|
||||
this.$rootScope.appEvent('shift-time', 1);
|
||||
};
|
||||
|
||||
onMoveForward = () => this.onMoveTimePicker(1);
|
||||
onMoveBack = () => this.onMoveTimePicker(-1);
|
||||
|
||||
onChangeTimePicker = (timeRange: TimeRange) => {
|
||||
const { dashboard } = this.props;
|
||||
|
||||
@@ -12,7 +12,7 @@ import { ITimeoutService, ILocationService } from 'angular';
|
||||
import { ContextSrv } from 'app/core/services/context_srv';
|
||||
import { DashboardModel } from '../state/DashboardModel';
|
||||
import { toUtc, dateTime, isDateTime } from '@grafana/data';
|
||||
import { getZoomedTimeRange } from 'app/core/utils/timePicker';
|
||||
import { getZoomedTimeRange, getShiftedTimeRange } from 'app/core/utils/timePicker';
|
||||
|
||||
export class TimeSrv {
|
||||
time: any;
|
||||
@@ -35,6 +35,7 @@ export class TimeSrv {
|
||||
this.time = { from: '6h', to: 'now' };
|
||||
|
||||
$rootScope.$on('zoom-out', this.zoomOut.bind(this));
|
||||
$rootScope.$on('shift-time', this.shiftTime.bind(this));
|
||||
$rootScope.$on('$routeUpdate', this.routeUpdated.bind(this));
|
||||
|
||||
document.addEventListener('visibilitychange', () => {
|
||||
@@ -243,6 +244,16 @@ export class TimeSrv {
|
||||
|
||||
this.setTime({ from: toUtc(from), to: toUtc(to) });
|
||||
}
|
||||
|
||||
shiftTime(e: any, direction: number) {
|
||||
const range = this.timeRange();
|
||||
const { from, to } = getShiftedTimeRange(direction, range);
|
||||
|
||||
this.setTime({
|
||||
from: toUtc(from),
|
||||
to: toUtc(to),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
let singleton: TimeSrv;
|
||||
|
||||
Reference in New Issue
Block a user