diff options
| author | Ruin0x11 <ipickering2@gmail.com> | 2021-05-07 23:02:59 -0700 |
|---|---|---|
| committer | Ruin0x11 <ipickering2@gmail.com> | 2021-05-07 23:02:59 -0700 |
| commit | f4ca435657ae3882ce28fb3f427f9e0874733282 (patch) | |
| tree | 2c403de2cecd986da5f8f3ee33c8071e0abda9b3 /client/js/controllers/post_upload_controller.js | |
| parent | ca771495979b035ac670b850b10239b6e4f10dcc (diff) | |
If one post fails to upload, don't prevent the rest from uploading
Diffstat (limited to 'client/js/controllers/post_upload_controller.js')
| -rw-r--r-- | client/js/controllers/post_upload_controller.js | 57 |
1 files changed, 32 insertions, 25 deletions
diff --git a/client/js/controllers/post_upload_controller.js b/client/js/controllers/post_upload_controller.js index d317be5..cfebb0a 100644 --- a/client/js/controllers/post_upload_controller.js +++ b/client/js/controllers/post_upload_controller.js @@ -12,7 +12,7 @@ const PostUploadView = require("../views/post_upload_view.js"); const EmptyView = require("../views/empty_view.js"); const genericErrorMessage = - "One of the posts needs your attention; " + + "One or more posts needs your attention; " + 'click "resume upload" when you\'re ready.'; class PostUploadController { @@ -55,6 +55,7 @@ class PostUploadController { _evtSubmit(e) { this._view.disableForm(); this._view.clearMessages(); + let anyFailures = false; e.detail.uploadables .reduce( @@ -64,37 +65,43 @@ class PostUploadController { uploadable, e.detail.skipDuplicates ) + .catch((error) => { + anyFailures = true; + if (error.uploadable) { + if (error.similarPosts) { + error.uploadable.lookalikes = error.similarPosts; + this._view.updateUploadable(error.uploadable); + this._view.showInfo( + error.message, + error.uploadable + ); + } else { + this._view.showError( + error.message, + error.uploadable + ); + } + } else { + this._view.showError( + error.message, + error.uploadable + ); + } + }) ), Promise.resolve() ) .then( () => { - this._view.clearMessages(); - misc.disableExitConfirmation(); - const ctx = router.show(uri.formatClientLink("posts")); - ctx.controller.showSuccess("Posts uploaded."); - }, - (error) => { - if (error.uploadable) { - if (error.similarPosts) { - error.uploadable.lookalikes = error.similarPosts; - this._view.updateUploadable(error.uploadable); - this._view.showInfo(genericErrorMessage); - this._view.showInfo( - error.message, - error.uploadable - ); - } else { - this._view.showError(genericErrorMessage); - this._view.showError( - error.message, - error.uploadable - ); - } + if (anyFailures) { + this._view.showError(genericErrorMessage); + this._view.enableForm(); } else { - this._view.showError(error.message); + this._view.clearMessages(); + misc.disableExitConfirmation(); + const ctx = router.show(uri.formatClientLink("posts")); + ctx.controller.showSuccess("Posts uploaded."); } - this._view.enableForm(); } ); } |