mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 08:05:43 -06:00
keyboard binding now work again
This commit is contained in:
parent
99d2f537c2
commit
4c64bcfae7
@ -31,16 +31,13 @@ function (angular, $, config, _) {
|
||||
var module = angular.module('kibana.controllers');
|
||||
|
||||
module.controller('DashCtrl', function(
|
||||
$scope, $rootScope, dashboardKeybindings, filterSrv, dashboard, panelMoveSrv, alertSrv, timer) {
|
||||
$scope, $rootScope, dashboardKeybindings, filterSrv, dashboard, panelMoveSrv, timer) {
|
||||
|
||||
$scope.editor = { index: 0 };
|
||||
|
||||
$scope.init = function() {
|
||||
$scope.availablePanels = config.panels;
|
||||
|
||||
dashboardKeybindings.shortcuts();
|
||||
|
||||
$scope.onAppEvent('setup-dashboard', $scope.setupDashboard, $scope);
|
||||
$scope.onAppEvent('setup-dashboard', $scope.setupDashboard);
|
||||
};
|
||||
|
||||
$scope.setupDashboard = function(event, dashboardData) {
|
||||
@ -62,6 +59,8 @@ function (angular, $, config, _) {
|
||||
|
||||
window.document.title = 'Grafana - ' + $scope.dashboard.title;
|
||||
|
||||
dashboardKeybindings.shortcuts($scope);
|
||||
|
||||
$scope.emitAppEvent("dashboard-loaded", $scope.dashboard);
|
||||
};
|
||||
|
||||
|
@ -17,12 +17,12 @@ function (angular, config, _) {
|
||||
$scope.dashAlerts = alertSrv;
|
||||
};
|
||||
|
||||
$scope.onAppEvent = function(name, callback, scope) {
|
||||
$rootScope.onAppEvent = function(name, callback) {
|
||||
var unbind = $rootScope.$on(name, callback);
|
||||
scope.$on('$destroy', unbind);
|
||||
this.$on('$destroy', unbind);
|
||||
};
|
||||
|
||||
$scope.emitAppEvent = function(name, payload) {
|
||||
$rootScope.emitAppEvent = function(name, payload) {
|
||||
$rootScope.$emit(name, payload);
|
||||
};
|
||||
|
||||
|
@ -16,7 +16,7 @@ function (angular, _, config, $) {
|
||||
$scope.selectedIndex = -1;
|
||||
$scope.results = {dashboards: [], tags: [], metrics: []};
|
||||
$scope.query = { query: 'title:' };
|
||||
$scope.onAppEvent('open-search', $scope.openSearch, $scope);
|
||||
$scope.onAppEvent('open-search', $scope.openSearch);
|
||||
};
|
||||
|
||||
$scope.keyDown = function (evt) {
|
||||
|
@ -92,7 +92,6 @@
|
||||
],
|
||||
"editable": true,
|
||||
"failover": false,
|
||||
"panel_hints": true,
|
||||
"style": "dark",
|
||||
"pulldowns": [
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div ng-controller="DashCtrl">
|
||||
<div ng-controller="DashCtrl" body-class>
|
||||
|
||||
<div class="navbar navbar-static-top">
|
||||
<div class="navbar-inner">
|
||||
@ -42,7 +42,7 @@
|
||||
<div class="row-open" ng-show="!row.collapse">
|
||||
<div ng-show="row.collapsable" class='row-tab bgPrimary' ng-click="toggle_row(row)">
|
||||
<span class="row-tab-button">
|
||||
<i class="icon-caret-right" ></i>
|
||||
<i class="icon-caret-right"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class='row-tab bgSuccess dropdown' ng-show="row.editable">
|
||||
@ -110,7 +110,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-show='dashboard.editable && dashboard.panel_hints' class="row-fluid add-row-panel-hint">
|
||||
<div ng-show='dashboard.editable' class="row-fluid add-row-panel-hint">
|
||||
<div class="span12" style="text-align:right;">
|
||||
<span style="margin-right: 10px;" ng-click="add_row_default()" class="pointer btn btn-info btn-mini">
|
||||
<span><i class="icon-plus-sign"></i> ADD A ROW</span>
|
||||
|
@ -22,10 +22,7 @@
|
||||
<select ng-model="dashboard.timezone" class='input-small' ng-options="f for f in ['browser','utc']"></select>
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small"> Hints <tip>Show 'Add panel' hints in empty spaces</tip></label><input type="checkbox" ng-model="dashboard.panel_hints" ng-checked="dashboard.panel_hints" />
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Hide controls</label>
|
||||
<label class="small">Hide controls (CTRL+H)</label>
|
||||
<input type="checkbox" ng-model="dashboard.hideControls" ng-checked="dashboard.hideControls">
|
||||
</div>
|
||||
</div>
|
||||
|
@ -8,50 +8,54 @@ function(angular, $) {
|
||||
|
||||
var module = angular.module('kibana.services');
|
||||
|
||||
module.service('dashboardKeybindings', function($rootScope, keyboardManager, dashboard) {
|
||||
module.service('dashboardKeybindings', function($rootScope, keyboardManager) {
|
||||
this.hasRegistered = false;
|
||||
|
||||
this.shortcuts = function() {
|
||||
if (this.hasRegistered) {
|
||||
return;
|
||||
}
|
||||
this.shortcuts = function(scope) {
|
||||
|
||||
this.hasRegistered = true;
|
||||
|
||||
$rootScope.$on('panel-fullscreen-enter', function() {
|
||||
scope.onAppEvent('panel-fullscreen-enter', function() {
|
||||
$rootScope.fullscreen = true;
|
||||
});
|
||||
|
||||
$rootScope.$on('panel-fullscreen-exit', function() {
|
||||
scope.onAppEvent('panel-fullscreen-exit', function() {
|
||||
$rootScope.fullscreen = false;
|
||||
});
|
||||
|
||||
$rootScope.$on('dashboard-saved', function() {
|
||||
scope.onAppEvent('dashboard-saved', function() {
|
||||
if ($rootScope.fullscreen) {
|
||||
$rootScope.$emit('panel-fullscreen-exit');
|
||||
scope.emitAppEvent('panel-fullscreen-exit');
|
||||
}
|
||||
});
|
||||
|
||||
scope.$on('$destroy', function() {
|
||||
console.log('unbind keyboardManager');
|
||||
keyboardManager.unbind('ctrl+f');
|
||||
keyboardManager.unbind('ctrl+h');
|
||||
keyboardManager.unbind('ctrl+s');
|
||||
keyboardManager.unbind('ctrl+r');
|
||||
keyboardManager.unbind('ctrl+z');
|
||||
keyboardManager.unbind('esc');
|
||||
});
|
||||
|
||||
keyboardManager.bind('ctrl+f', function(evt) {
|
||||
$rootScope.$emit('open-search', evt);
|
||||
scope.emitAppEvent('open-search', evt);
|
||||
}, { inputDisabled: true });
|
||||
|
||||
keyboardManager.bind('ctrl+h', function() {
|
||||
var current = dashboard.current.hideControls;
|
||||
dashboard.current.hideControls = !current;
|
||||
dashboard.current.panel_hints = current;
|
||||
var current = scope.dashboard.hideControls;
|
||||
scope.dashboard.hideControls = !current;
|
||||
}, { inputDisabled: true });
|
||||
|
||||
keyboardManager.bind('ctrl+s', function(evt) {
|
||||
$rootScope.$emit('save-dashboard', evt);
|
||||
scope.emitAppEvent('save-dashboard', evt);
|
||||
}, { inputDisabled: true });
|
||||
|
||||
keyboardManager.bind('ctrl+r', function() {
|
||||
dashboard.emit_refresh();
|
||||
scope.dashboard.emit_refresh();
|
||||
}, { inputDisabled: true });
|
||||
|
||||
keyboardManager.bind('ctrl+z', function(evt) {
|
||||
$rootScope.$emit('zoom-out', evt);
|
||||
scope.emitAppEvent('zoom-out', evt);
|
||||
}, { inputDisabled: true });
|
||||
|
||||
keyboardManager.bind('esc', function() {
|
||||
@ -59,7 +63,7 @@ function(angular, $) {
|
||||
if (popups.length > 0) {
|
||||
return;
|
||||
}
|
||||
$rootScope.$emit('panel-fullscreen-exit');
|
||||
scope.emitAppEvent('panel-fullscreen-exit');
|
||||
}, { inputDisabled: true });
|
||||
};
|
||||
});
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
</head>
|
||||
|
||||
<body ng-cloak body-class ng-controller="GrafanaCtrl">
|
||||
<body ng-cloak ng-controller="GrafanaCtrl">
|
||||
|
||||
<link rel="stylesheet" href="css/bootstrap.light.min.css" ng-if="dashboard.style === 'light'">
|
||||
<link rel="stylesheet" href="css/bootstrap-responsive.min.css">
|
||||
|
Loading…
Reference in New Issue
Block a user