diff options
| author | Martin Trigaux <mat@odoo.com> | 2019-07-12 13:09:45 +0000 |
|---|---|---|
| committer | Martin Trigaux <mat@odoo.com> | 2019-07-12 13:59:35 +0000 |
| commit | 1f5a4649a67908ecb6acfec37673c8149de0471f (patch) | |
| tree | 2a8ac12942b2e6227459a236309054982a01158f /addons/mail/static | |
| parent | 6532b8716520d8cddc23a1e42c5c602b0c9c3c88 (diff) | |
| parent | 87fc1554d6a1823ac9061aab089adfd052190d21 (diff) | |
[MERGE] Forward port of saas-12.3 to saas-12.4 up to 87fc1554d6a1823
closes odoo/odoo#34820
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Diffstat (limited to 'addons/mail/static')
| -rw-r--r-- | addons/mail/static/src/js/composers/basic_composer.js | 35 | ||||
| -rw-r--r-- | addons/mail/static/src/js/discuss.js | 4 | ||||
| -rw-r--r-- | addons/mail/static/src/js/models/messages/message.js | 1 | ||||
| -rw-r--r-- | addons/mail/static/src/js/services/mail_manager.js | 4 | ||||
| -rw-r--r-- | addons/mail/static/tests/discuss_tests.js | 2 |
5 files changed, 29 insertions, 17 deletions
diff --git a/addons/mail/static/src/js/composers/basic_composer.js b/addons/mail/static/src/js/composers/basic_composer.js index e84d7588b1b..2a496faf86d 100644 --- a/addons/mail/static/src/js/composers/basic_composer.js +++ b/addons/mail/static/src/js/composers/basic_composer.js @@ -438,10 +438,27 @@ var BasicComposer = Widget.extend({ * @param {boolean} params.submitForm [optional] */ _processAttachmentChange: function (params) { - var self = this, - attachments = this.get('attachment_ids'), - files = params.files, - submitForm = params.submitForm; + var self = this; + var attachments = this.get('attachment_ids'); + var files = params.files; + var submitForm = params.submitForm; + var $form = this.$('form.o_form_binary_form'); + + /** + * makes a new formData as formData.delete() is not supported by IE or Safari Mobile. + * + * @return {FormData} + */ + function makeFormDataWithoutUfile() { + var newFormData = new window.FormData(); + $form.find('input').each(function (index, input) { + if (input.name !== 'ufile') { + newFormData.append(input.name, input.value); + } + }); + return newFormData; + } + _.each(files, function (file) { var attachment = _.findWhere(attachments, { name: file.name, @@ -453,24 +470,20 @@ var BasicComposer = Widget.extend({ attachments = _.without(attachments, attachment); } }); - var $form = this.$('form.o_form_binary_form'); if (submitForm) { $form.submit(); this._$attachmentButton.prop('disabled', true); } else { - var data = new FormData($form[0]); _.each(files, function (file) { - // removing existing key with blank data and appending again with file info - // In safari, existing key will not be updated when append with new file. - data.delete("ufile"); - data.append("ufile", file, file.name); + var formData = makeFormDataWithoutUfile(); + formData.append("ufile", file, file.name); $.ajax({ url: $form.attr("action"), type: "POST", enctype: 'multipart/form-data', processData: false, contentType: false, - data: data, + data: formData, success: function (result) { var $el = $(result); $.globalEval($el.contents().text()); diff --git a/addons/mail/static/src/js/discuss.js b/addons/mail/static/src/js/discuss.js index 5d0647d9762..6eeeaecf7c3 100644 --- a/addons/mail/static/src/js/discuss.js +++ b/addons/mail/static/src/js/discuss.js @@ -167,9 +167,9 @@ var RenameConversationDialog = Dialog.extend({ kwargs: { name: name, } - }).then(function (updatedName) { + }).then(function () { var channel = self.call('mail_service', 'getThread', self._channelID); - channel.setName(updatedName); + channel.setName(name); self._callback(); }); }, diff --git a/addons/mail/static/src/js/models/messages/message.js b/addons/mail/static/src/js/models/messages/message.js index b5b2e068cbf..f93209a913f 100644 --- a/addons/mail/static/src/js/models/messages/message.js +++ b/addons/mail/static/src/js/models/messages/message.js @@ -801,6 +801,7 @@ var Message = AbstractMessage.extend(Mixins.EventDispatcherMixin, ServicesMixin _warnMessageModerated: function () { var mailBus = this.call('mail_service', 'getMailBus'); if (this.needsModerationByUser()) { + this._setModeratedByUser(false); var moderationBox = this.call('mail_service', 'getMailbox', 'moderation'); moderationBox.decrementMailboxCounter(); moderationBox.removeMessage(this.getID()); diff --git a/addons/mail/static/src/js/services/mail_manager.js b/addons/mail/static/src/js/services/mail_manager.js index dedeacca013..4a20d24af8d 100644 --- a/addons/mail/static/src/js/services/mail_manager.js +++ b/addons/mail/static/src/js/services/mail_manager.js @@ -94,9 +94,7 @@ var MailManager = AbstractService.extend({ additionalThreadIDs: data.channel_ids }); } - if (options.domain && options.domain !== []) { - this._addMessageToThreads(message, options); - } + this._addMessageToThreads(message, options); } return prom; }, diff --git a/addons/mail/static/tests/discuss_tests.js b/addons/mail/static/tests/discuss_tests.js index daf34b4a5be..8c65266a392 100644 --- a/addons/mail/static/tests/discuss_tests.js +++ b/addons/mail/static/tests/discuss_tests.js @@ -1425,7 +1425,7 @@ QUnit.test('rename DM conversation', async function (assert) { assert.step(args.method); assert.strictEqual(args.args[0], 1); assert.strictEqual(args.kwargs.name, "Demo"); - return Promise.resolve("Demo"); + return Promise.resolve(); } return this._super.apply(this, arguments); }, |
