|
@@ -4,7 +4,7 @@ import _ from 'lodash';
|
|
|
import config from 'app/core/config';
|
|
import config from 'app/core/config';
|
|
|
import coreModule from 'app/core/core_module';
|
|
import coreModule from 'app/core/core_module';
|
|
|
import appEvents from 'app/core/app_events';
|
|
import appEvents from 'app/core/app_events';
|
|
|
-import { renderUrl } from 'app/core/utils/url';
|
|
|
|
|
|
|
+import { getExploreUrl } from 'app/core/utils/explore';
|
|
|
|
|
|
|
|
import Mousetrap from 'mousetrap';
|
|
import Mousetrap from 'mousetrap';
|
|
|
import 'mousetrap-global-bind';
|
|
import 'mousetrap-global-bind';
|
|
@@ -15,7 +15,14 @@ export class KeybindingSrv {
|
|
|
timepickerOpen = false;
|
|
timepickerOpen = false;
|
|
|
|
|
|
|
|
/** @ngInject */
|
|
/** @ngInject */
|
|
|
- constructor(private $rootScope, private $location, private datasourceSrv, private timeSrv, private contextSrv) {
|
|
|
|
|
|
|
+ constructor(
|
|
|
|
|
+ private $rootScope,
|
|
|
|
|
+ private $location,
|
|
|
|
|
+ private $timeout,
|
|
|
|
|
+ private datasourceSrv,
|
|
|
|
|
+ private timeSrv,
|
|
|
|
|
+ private contextSrv
|
|
|
|
|
+ ) {
|
|
|
// clear out all shortcuts on route change
|
|
// clear out all shortcuts on route change
|
|
|
$rootScope.$on('$routeChangeSuccess', () => {
|
|
$rootScope.$on('$routeChangeSuccess', () => {
|
|
|
Mousetrap.reset();
|
|
Mousetrap.reset();
|
|
@@ -194,14 +201,9 @@ export class KeybindingSrv {
|
|
|
if (dashboard.meta.focusPanelId) {
|
|
if (dashboard.meta.focusPanelId) {
|
|
|
const panel = dashboard.getPanelById(dashboard.meta.focusPanelId);
|
|
const panel = dashboard.getPanelById(dashboard.meta.focusPanelId);
|
|
|
const datasource = await this.datasourceSrv.get(panel.datasource);
|
|
const datasource = await this.datasourceSrv.get(panel.datasource);
|
|
|
- if (datasource && datasource.supportsExplore) {
|
|
|
|
|
- const range = this.timeSrv.timeRangeForUrl();
|
|
|
|
|
- const state = {
|
|
|
|
|
- ...datasource.getExploreState(panel),
|
|
|
|
|
- range,
|
|
|
|
|
- };
|
|
|
|
|
- const exploreState = JSON.stringify(state);
|
|
|
|
|
- this.$location.url(renderUrl('/explore', { state: exploreState }));
|
|
|
|
|
|
|
+ const url = await getExploreUrl(panel, panel.targets, datasource, this.datasourceSrv, this.timeSrv);
|
|
|
|
|
+ if (url) {
|
|
|
|
|
+ this.$timeout(() => this.$location.url(url));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|