mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-09-09 14:16:02 +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",
|
"queueTask",
|
||||||
"dequeueTask",
|
"dequeueTask",
|
||||||
"dequeueAllTasks",
|
"dequeueAllTasks",
|
||||||
|
"dequeueMatchingTask",
|
||||||
"longPollStateChanged",
|
"longPollStateChanged",
|
||||||
"longPollReceivedRawDeltas",
|
"longPollReceivedRawDeltas",
|
||||||
"longPollConnected",
|
"longPollConnected",
|
||||||
|
|
|
@ -46,7 +46,8 @@ FileUploadStore = Reflux.createStore
|
||||||
|
|
||||||
_onAttachFilePath: ({messageLocalId, path}) ->
|
_onAttachFilePath: ({messageLocalId, path}) ->
|
||||||
@_verifyId(messageLocalId)
|
@_verifyId(messageLocalId)
|
||||||
Actions.queueTask(new FileUploadTask(path, messageLocalId))
|
@task = new FileUploadTask(path, messageLocalId)
|
||||||
|
Actions.queueTask(@task)
|
||||||
|
|
||||||
# Receives:
|
# Receives:
|
||||||
# uploadData:
|
# uploadData:
|
||||||
|
@ -61,10 +62,10 @@ FileUploadStore = Reflux.createStore
|
||||||
@trigger()
|
@trigger()
|
||||||
|
|
||||||
_onAbortUpload: (uploadData) ->
|
_onAbortUpload: (uploadData) ->
|
||||||
Actions.abortTask({
|
Actions.dequeueMatchingTask({
|
||||||
object: 'FileUploadTask',
|
object: 'FileUploadTask',
|
||||||
filePath: uploadData.filePath,
|
matchKey: "filePath"
|
||||||
messageLocalId: uploadData.messageLocalId
|
matchValue: uploadData.filePath
|
||||||
})
|
})
|
||||||
|
|
||||||
# Note that the MessageStore also receives the `fileUploaded` action.
|
# Note that the MessageStore also receives the `fileUploaded` action.
|
||||||
|
|
|
@ -21,12 +21,13 @@ TaskQueue = Reflux.createStore
|
||||||
|
|
||||||
@_restoreQueueFromDisk()
|
@_restoreQueueFromDisk()
|
||||||
|
|
||||||
@listenTo(Actions.queueTask, @enqueue)
|
@listenTo(Actions.queueTask, @enqueue)
|
||||||
@listenTo(Actions.dequeueTask, @dequeue)
|
@listenTo(Actions.dequeueTask, @dequeue)
|
||||||
@listenTo(Actions.dequeueAllTasks, @dequeueAll)
|
@listenTo(Actions.dequeueAllTasks, @dequeueAll)
|
||||||
@listenTo(Actions.logout, @dequeueAll)
|
@listenTo(Actions.logout, @dequeueAll)
|
||||||
|
@listenTo(Actions.dequeueMatchingTask, @dequeueMatching)
|
||||||
|
|
||||||
@listenTo(Actions.clearDeveloperConsole, @clearCompleted)
|
@listenTo(Actions.clearDeveloperConsole, @clearCompleted)
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
# @listenTo(OnlineStatusStore, @_onOnlineChange)
|
# @listenTo(OnlineStatusStore, @_onOnlineChange)
|
||||||
|
@ -74,6 +75,17 @@ TaskQueue = Reflux.createStore
|
||||||
@dequeue(task, silent: true) if task?
|
@dequeue(task, silent: true) if task?
|
||||||
@_update()
|
@_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: ->
|
clearCompleted: ->
|
||||||
@_completed = []
|
@_completed = []
|
||||||
@trigger()
|
@trigger()
|
||||||
|
|
Loading…
Add table
Reference in a new issue