From a0b2b3c8a76adf1ef52f0c31424017b44d232221 Mon Sep 17 00:00:00 2001 From: Gerhard Schlager Date: Sat, 30 Dec 2017 22:40:15 +0100 Subject: [PATCH] FIX: Canceling upload on mobile did not work --- .../components/composer-editor.js.es6 | 26 ++++++++++++------- .../discourse/controllers/composer.js.es6 | 4 +++ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/app/assets/javascripts/discourse/components/composer-editor.js.es6 b/app/assets/javascripts/discourse/components/composer-editor.js.es6 index 2c6e4ea6404..968e1ade9a3 100644 --- a/app/assets/javascripts/discourse/components/composer-editor.js.es6 +++ b/app/assets/javascripts/discourse/components/composer-editor.js.es6 @@ -1,5 +1,5 @@ import userSearch from 'discourse/lib/user-search'; -import { default as computed, on } from 'ember-addons/ember-computed-decorators'; +import { default as computed, observes, on } from 'ember-addons/ember-computed-decorators'; import { linkSeenMentions, fetchUnseenMentions } from 'discourse/lib/link-mentions'; import { linkSeenCategoryHashtags, fetchUnseenCategoryHashtags } from 'discourse/lib/link-category-hashtags'; import { linkSeenTagHashtags, fetchUnseenTagHashtags } from 'discourse/lib/link-tag-hashtag'; @@ -36,6 +36,18 @@ export default Ember.Component.extend({ return `[${I18n.t('uploading')}]() `; }, + @observes('composer.uploadCancelled') + _cancelUpload() { + if (!this.get('composer.uploadCancelled')) { return; } + this.set('composer.uploadCancelled', false); + + if (this._xhr) { + this._xhr._userCancelled = true; + this._xhr.abort(); + } + this._resetUpload(true); + }, + @computed markdownOptions() { return { @@ -401,7 +413,9 @@ export default Ember.Component.extend({ }, _resetUpload(removePlaceholder) { - this._validUploads--; + if (this._validUploads > 0) { + this._validUploads--; + } if (this._validUploads === 0) { this.setProperties({ uploadProgress: 0, isUploading: false, isCancellable: false }); } @@ -624,14 +638,6 @@ export default Ember.Component.extend({ this.sendAction('importQuote', toolbarEvent); }, - cancelUpload() { - if (this._xhr) { - this._xhr._userCancelled = true; - this._xhr.abort(); - } - this._resetUpload(true); - }, - onExpandPopupMenuOptions(toolbarEvent) { const selected = toolbarEvent.selected; toolbarEvent.selectText(selected.start, selected.end - selected.start); diff --git a/app/assets/javascripts/discourse/controllers/composer.js.es6 b/app/assets/javascripts/discourse/controllers/composer.js.es6 index 35f6b256e42..d08f59c9f4b 100644 --- a/app/assets/javascripts/discourse/controllers/composer.js.es6 +++ b/app/assets/javascripts/discourse/controllers/composer.js.es6 @@ -224,6 +224,10 @@ export default Ember.Controller.extend({ }, actions: { + cancelUpload() { + this.set('model.uploadCancelled', true); + }, + onPopupMenuAction(action) { this.send(action); },