summaryrefslogtreecommitdiff
path: root/addons/mail/static
diff options
context:
space:
mode:
authorMartin Trigaux <mat@odoo.com>2019-07-12 06:26:16 +0000
committerMartin Trigaux <mat@odoo.com>2019-07-12 07:22:41 +0000
commitc962b2cd11c85816e798f4816e044fc273b98c9e (patch)
treeca2b777ed94d425155deb6458a9887c25552dd5f /addons/mail/static
parentcea3f51e2f5cfdf44c657237e664ef397a0aa35f (diff)
parent01365a3f625c9e7a80d78cf9c29ffa3d90435cd1 (diff)
[MERGE] Forwardport of saas-12.2 to saas-12.3 up to 01365a3f625c9e7
closes odoo/odoo#34747 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.js35
-rw-r--r--addons/mail/static/src/js/discuss.js4
-rw-r--r--addons/mail/static/src/js/models/messages/message.js1
-rw-r--r--addons/mail/static/src/js/services/mail_manager.js4
-rw-r--r--addons/mail/static/tests/discuss_tests.js2
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 0658c3c6820..7c157bc2002 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 4e88434f86d..0c1a39e7b9f 100644
--- a/addons/mail/static/src/js/discuss.js
+++ b/addons/mail/static/src/js/discuss.js
@@ -168,9 +168,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 a118807ac47..1cb2ce2c8de 100644
--- a/addons/mail/static/src/js/models/messages/message.js
+++ b/addons/mail/static/src/js/models/messages/message.js
@@ -800,6 +800,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 f25c7082648..a37de219f7c 100644
--- a/addons/mail/static/tests/discuss_tests.js
+++ b/addons/mail/static/tests/discuss_tests.js
@@ -1426,7 +1426,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);
},