diff --git a/src/app/controllers/dash.js b/src/app/controllers/dash.js
index a4a4f8af401..14aca114c4b 100644
--- a/src/app/controllers/dash.js
+++ b/src/app/controllers/dash.js
@@ -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);
};
diff --git a/src/app/controllers/grafanaCtrl.js b/src/app/controllers/grafanaCtrl.js
index 0c452c0aae6..fde4e2003ab 100644
--- a/src/app/controllers/grafanaCtrl.js
+++ b/src/app/controllers/grafanaCtrl.js
@@ -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);
};
diff --git a/src/app/controllers/search.js b/src/app/controllers/search.js
index 3c2fe8af79f..9f9d66424d3 100644
--- a/src/app/controllers/search.js
+++ b/src/app/controllers/search.js
@@ -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) {
diff --git a/src/app/dashboards/default.json b/src/app/dashboards/default.json
index c0e58b154e0..68a71099931 100644
--- a/src/app/dashboards/default.json
+++ b/src/app/dashboards/default.json
@@ -92,7 +92,6 @@
],
"editable": true,
"failover": false,
- "panel_hints": true,
"style": "dark",
"pulldowns": [
{
diff --git a/src/app/partials/dashboard.html b/src/app/partials/dashboard.html
index bec767e6a89..f0aaa9432d2 100644
--- a/src/app/partials/dashboard.html
+++ b/src/app/partials/dashboard.html
@@ -1,4 +1,4 @@
-
+
@@ -42,7 +42,7 @@
-
+
@@ -110,7 +110,7 @@
-
+
diff --git a/src/app/services/dashboard/dashboardKeyBindings.js b/src/app/services/dashboard/dashboardKeyBindings.js
index 263176b2340..4838565957d 100644
--- a/src/app/services/dashboard/dashboardKeyBindings.js
+++ b/src/app/services/dashboard/dashboardKeyBindings.js
@@ -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 });
};
});
diff --git a/src/index.html b/src/index.html
index cf9cf5694ed..b8fa8a07dd9 100644
--- a/src/index.html
+++ b/src/index.html
@@ -18,7 +18,7 @@
-
+