From dc382a6df7f6f8946af8746117f6d89e8a3dcf7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Fri, 15 Aug 2014 13:35:17 +0200 Subject: [PATCH] Drag drop binding expression watcher was expensive, removed watcher after first eval, seems to still work --- src/app/controllers/row.js | 2 -- src/vendor/angular/angular-dragdrop.js | 11 ++++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/app/controllers/row.js b/src/app/controllers/row.js index 387019afbab..d2f87e029cc 100644 --- a/src/app/controllers/row.js +++ b/src/app/controllers/row.js @@ -124,6 +124,4 @@ function (angular, app, _) { }; }); - - }); diff --git a/src/vendor/angular/angular-dragdrop.js b/src/vendor/angular/angular-dragdrop.js index 22d33e63a98..bc0ddf4fee1 100644 --- a/src/vendor/angular/angular-dragdrop.js +++ b/src/vendor/angular/angular-dragdrop.js @@ -257,9 +257,11 @@ var jqyoui = angular.module('ngDragDrop', []).service('ngDragDropService', ['$ti require: '?jqyouiDroppable', restrict: 'A', link: function(scope, element, attrs) { - var dragSettings, zIndex; + // grafana change, remove watcher after first evaluation + var dragSettings, zIndex, removeWatcher; var updateDraggable = function(newValue, oldValue) { if (newValue) { + removeWatcher(); dragSettings = scope.$eval(element.attr('jqyoui-draggable')) || []; element .draggable({disabled: false}) @@ -283,7 +285,7 @@ var jqyoui = angular.module('ngDragDrop', []).service('ngDragDropService', ['$ti element.draggable({disabled: true}); } }; - scope.$watch(function() { return scope.$eval(attrs.drag); }, updateDraggable); + removeWatcher = scope.$watch(function() { return scope.$eval(attrs.drag); }, updateDraggable); updateDraggable(); } }; @@ -292,8 +294,11 @@ var jqyoui = angular.module('ngDragDrop', []).service('ngDragDropService', ['$ti restrict: 'A', priority: 1, link: function(scope, element, attrs) { + // grafana change, remove watcher after first evaluation + var removeWatcher; var updateDroppable = function(newValue, oldValue) { if (newValue) { + removeWatcher(); element .droppable({disabled: false}) .droppable(scope.$eval(attrs.jqyouiOptions) || {}) @@ -319,7 +324,7 @@ var jqyoui = angular.module('ngDragDrop', []).service('ngDragDropService', ['$ti } }; - scope.$watch(function() { return scope.$eval(attrs.drop); }, updateDroppable); + removeWatcher = scope.$watch(function() { return scope.$eval(attrs.drop); }, updateDroppable); updateDroppable(); } };