diff --git a/CHANGELOG.md b/CHANGELOG.md index 7752dd3b210..b8997603e31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ - [Issue #1372](https://github.com/grafana/grafana/issues/1372). Graphite: Fix for nested complex queries, where a query references a query that references another query (ie the #[A-Z] syntax) - [Issue #1363](https://github.com/grafana/grafana/issues/1363). Templating: Fix to allow custom template variables to contain white space, now only splits on ',' - [Issue #1359](https://github.com/grafana/grafana/issues/1359). Graph: Fix for all series tooltip showing series with all null values when ``Hide Empty`` option is enabled +- [Issue #1497](https://github.com/grafana/grafana/issues/1497). Dashboard: Fixed memory leak when switching dashboards **Tech** - [Issue #1311](https://github.com/grafana/grafana/issues/1311). Tech: Updated Font-Awesome from 3.2 to 4.2 diff --git a/src/app/features/dashboard/keybindings.js b/src/app/features/dashboard/keybindings.js index 15855c80bf4..588155ee16c 100644 --- a/src/app/features/dashboard/keybindings.js +++ b/src/app/features/dashboard/keybindings.js @@ -12,13 +12,7 @@ function(angular, $) { this.shortcuts = function(scope) { scope.$on('$destroy', function() { - keyboardManager.unbind('ctrl+f'); - keyboardManager.unbind('ctrl+h'); - keyboardManager.unbind('ctrl+s'); - keyboardManager.unbind('ctrl+r'); - keyboardManager.unbind('ctrl+z'); - keyboardManager.unbind('ctrl+o'); - keyboardManager.unbind('esc'); + keyboardManager.unbindAll(); }); var helpModalScope = null; diff --git a/src/app/services/keyboardManager.js b/src/app/services/keyboardManager.js index 10d5db03f45..f45ddad305b 100644 --- a/src/app/services/keyboardManager.js +++ b/src/app/services/keyboardManager.js @@ -1,7 +1,8 @@ define([ - 'angular' + 'angular', + 'lodash' ], -function (angular) { +function (angular, _) { 'use strict'; var module = angular.module('grafana.services'); @@ -252,6 +253,13 @@ function (angular) { elt['on' + opt['type']] = fct; } }; + + keyboardManagerService.unbindAll = function() { + _.each(keyboardManagerService.keyboardEvent, function(value, key) { + keyboardManagerService.unbind(key); + }); + }; + // Remove the shortcut - just specify the shortcut and I will remove the binding keyboardManagerService.unbind = function (label) { label = label.toLowerCase();