Parcourir la source

Merge branch 'sk-labels-ac-debounce'

Shane Kilkelly il y a 9 ans
Parent
commit
8b7a1bd4d9

+ 12 - 5
services/web/public/coffee/ide/editor/directives/aceEditor/labels/LabelsManager.coffee

@@ -11,7 +11,7 @@ define [
 
 
 	class LabelsManager
 	class LabelsManager
 		constructor: (@$scope, @editor, @element, @Labels) ->
 		constructor: (@$scope, @editor, @element, @Labels) ->
-			@loadLabelsTimeout = null
+			@debouncer = {}  # DocId => Timeout
 
 
 			onChange = (change) =>
 			onChange = (change) =>
 				if change.remote
 				if change.remote
@@ -36,13 +36,20 @@ define [
 			currentDocId = @$scope.docId
 			currentDocId = @$scope.docId
 			@Labels.loadDocLabelsFromServer(currentDocId)
 			@Labels.loadDocLabelsFromServer(currentDocId)
 
 
+		loadDocLabelsFromServer: (docId) ->
+			@Labels.loadDocLabelsFromServer(docId)
+
 		scheduleLoadCurrentDocLabelsFromServer: () ->
 		scheduleLoadCurrentDocLabelsFromServer: () ->
 			# De-bounce loading labels with a timeout
 			# De-bounce loading labels with a timeout
-			if @loadLabelsTimeout
-				clearTimeout(@loadLabelsTimeout)
-			@loadLabelsTimeout = setTimeout(
+			currentDocId = @$scope.docId
+			existingTimeout = @debouncer[currentDocId]
+			if existingTimeout?
+				clearTimeout(existingTimeout)
+				delete @debouncer[currentDocId]
+			@debouncer[currentDocId] = setTimeout(
 				() =>
 				() =>
-					@loadCurrentDocLabelsFromServer()
+					@loadDocLabelsFromServer(currentDocId)
+					delete @debouncer[currentDocId]
 				, 1000
 				, 1000
 				, this
 				, this
 			)
 			)