Merge branch 'sk-labels-ac-debounce'

This commit is contained in:
Shane Kilkelly 2017-06-20 13:53:23 +01:00
commit 8b7a1bd4d9

View file

@ -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 currentDocId = @$scope.docId
clearTimeout(@loadLabelsTimeout) existingTimeout = @debouncer[currentDocId]
@loadLabelsTimeout = setTimeout( if existingTimeout?
clearTimeout(existingTimeout)
delete @debouncer[currentDocId]
@debouncer[currentDocId] = setTimeout(
() => () =>
@loadCurrentDocLabelsFromServer() @loadDocLabelsFromServer(currentDocId)
delete @debouncer[currentDocId]
, 1000 , 1000
, this , this
) )