瀏覽代碼

Merge remote-tracking branch 'origin/master' into develop

Conflicts:
	README.md
Torkel Ödegaard 10 年之前
父節點
當前提交
8c977e37a9
共有 3 個文件被更改,包括 12 次插入9 次删除
  1. 1 0
      CHANGELOG.md
  2. 1 7
      src/app/features/dashboard/keybindings.js
  3. 10 2
      src/app/services/keyboardManager.js

+ 1 - 0
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

+ 1 - 7
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;

+ 10 - 2
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();