mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-09-06 20:54:26 +08:00
Added dequeueMatchingTask action to abort fileUploads
Summary: Moved dequeing action in the same loop Added fix to delete multiple files Test Plan: None Reviewers: bengotow Reviewed By: bengotow Differential Revision: https://review.inboxapp.com/D1314
This commit is contained in:
parent
b61863d332
commit
015bd62937
3 changed files with 23 additions and 9 deletions
|
@ -39,6 +39,7 @@ mainWindowActions = [
|
|||
"queueTask",
|
||||
"dequeueTask",
|
||||
"dequeueAllTasks",
|
||||
"dequeueMatchingTask",
|
||||
"longPollStateChanged",
|
||||
"longPollReceivedRawDeltas",
|
||||
"longPollConnected",
|
||||
|
|
|
@ -46,7 +46,8 @@ FileUploadStore = Reflux.createStore
|
|||
|
||||
_onAttachFilePath: ({messageLocalId, path}) ->
|
||||
@_verifyId(messageLocalId)
|
||||
Actions.queueTask(new FileUploadTask(path, messageLocalId))
|
||||
@task = new FileUploadTask(path, messageLocalId)
|
||||
Actions.queueTask(@task)
|
||||
|
||||
# Receives:
|
||||
# uploadData:
|
||||
|
@ -61,10 +62,10 @@ FileUploadStore = Reflux.createStore
|
|||
@trigger()
|
||||
|
||||
_onAbortUpload: (uploadData) ->
|
||||
Actions.abortTask({
|
||||
Actions.dequeueMatchingTask({
|
||||
object: 'FileUploadTask',
|
||||
filePath: uploadData.filePath,
|
||||
messageLocalId: uploadData.messageLocalId
|
||||
matchKey: "filePath"
|
||||
matchValue: uploadData.filePath
|
||||
})
|
||||
|
||||
# Note that the MessageStore also receives the `fileUploaded` action.
|
||||
|
|
|
@ -21,12 +21,13 @@ TaskQueue = Reflux.createStore
|
|||
|
||||
@_restoreQueueFromDisk()
|
||||
|
||||
@listenTo(Actions.queueTask, @enqueue)
|
||||
@listenTo(Actions.dequeueTask, @dequeue)
|
||||
@listenTo(Actions.dequeueAllTasks, @dequeueAll)
|
||||
@listenTo(Actions.logout, @dequeueAll)
|
||||
@listenTo(Actions.queueTask, @enqueue)
|
||||
@listenTo(Actions.dequeueTask, @dequeue)
|
||||
@listenTo(Actions.dequeueAllTasks, @dequeueAll)
|
||||
@listenTo(Actions.logout, @dequeueAll)
|
||||
@listenTo(Actions.dequeueMatchingTask, @dequeueMatching)
|
||||
|
||||
@listenTo(Actions.clearDeveloperConsole, @clearCompleted)
|
||||
@listenTo(Actions.clearDeveloperConsole, @clearCompleted)
|
||||
|
||||
# TODO
|
||||
# @listenTo(OnlineStatusStore, @_onOnlineChange)
|
||||
|
@ -74,6 +75,17 @@ TaskQueue = Reflux.createStore
|
|||
@dequeue(task, silent: true) if task?
|
||||
@_update()
|
||||
|
||||
dequeueMatching: (task) ->
|
||||
identifier = task.matchKey
|
||||
propValue = task.matchValue
|
||||
|
||||
for other in @_queue by -1
|
||||
if task.object == task.object
|
||||
if other[identifier] == propValue
|
||||
@dequeue(other, silent: true)
|
||||
|
||||
@_update()
|
||||
|
||||
clearCompleted: ->
|
||||
@_completed = []
|
||||
@trigger()
|
||||
|
|
Loading…
Add table
Reference in a new issue