diff --git a/addons/mail/static/src/components/composer_suggested_recipient/composer_suggested_recipient.js b/addons/mail/static/src/components/composer_suggested_recipient/composer_suggested_recipient.js index 3f2533a2b2e..62cb5e26def 100644 --- a/addons/mail/static/src/components/composer_suggested_recipient/composer_suggested_recipient.js +++ b/addons/mail/static/src/components/composer_suggested_recipient/composer_suggested_recipient.js @@ -87,6 +87,10 @@ export class ComposerSuggestedRecipientView extends Component { onRecordSaved: () => this._onDialogSaved(), resModel: "res.partner", title: this.composerSuggestedRecipientView.suggestedRecipientInfo.dialogText, + }, { + onClose: () => { + this._checkboxRef.el.checked = !!this.composerSuggestedRecipientView.suggestedRecipientInfo.partner; + }, }); } } diff --git a/addons/mail/static/tests/qunit_suite_tests/components/chatter_suggested_recipient_tests.js b/addons/mail/static/tests/qunit_suite_tests/components/chatter_suggested_recipient_tests.js index dd89e90f213..1407cdf6268 100644 --- a/addons/mail/static/tests/qunit_suite_tests/components/chatter_suggested_recipient_tests.js +++ b/addons/mail/static/tests/qunit_suite_tests/components/chatter_suggested_recipient_tests.js @@ -113,6 +113,49 @@ QUnit.module("mail", {}, function () { } ); + QUnit.test("suggested recipient without partner are unchecked when closing the dialog without creating partner", async function (assert) { + assert.expect(1); + const pyEnv = await startServer(); + const resFakeId1 = pyEnv['res.fake'].create({ email_cc: "john@test.be" }); + const { click, openView } = await start(); + await openView({ + res_id: resFakeId1, + res_model: 'res.fake', + views: [[false, 'form']], + }); + await click(`.o_ChatterTopbar_buttonSendMessage`); + // click on checkbox to open dialog + await document.querySelector('.o_ComposerSuggestedRecipientView:not([data-partner-id]) input[type=checkbox]').click(); + function waitForElm(selector) { + return new Promise(resolve => { + if (document.querySelector(selector)) { + return resolve(document.querySelector(selector)); + } + + const observer = new MutationObserver(mutations => { + if (document.querySelector(selector)) { + resolve(document.querySelector(selector)); + observer.disconnect(); + } + }); + + observer.observe(document.body, { + childList: true, + subtree: true + }); + }); + } + + await waitForElm('.modal-header'); + // close dialog without changing anything + document.querySelector('.modal-header > button.btn-close').click(); + + assert.notOk( + document.querySelector('.o_ComposerSuggestedRecipientView:not([data-partner-id]) input[type=checkbox]').checked, + "suggested recipient without partner must be unchecked", + ); + }); + QUnit.test( "suggested recipient with partner are checked by default", async function (assert) {