[FIX] mail: allow only one selected message at the same time

task-2784914

closes odoo/odoo#91468

X-original-commit: 770590c75af832eab777b1db44094187b6443804
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
This commit is contained in:
Sébastien Theys
2022-05-16 16:24:58 +02:00
parent e333f9636f
commit 036b0cad07
3 changed files with 20 additions and 11 deletions
@@ -6,7 +6,7 @@
<div class="o_Message position-relative pt-1"
t-att-class="{
'o_Message_active': messageView.isActive,
'o-clicked': messageView.isClicked,
'o-clicked': messageView.messagingAsClickedMessageView,
'o-discussion': messageView.message.isDiscussionOrNotification,
'o-has-message-selection': messageView.threadView and messageView.threadView.replyingToMessageView,
'o-highlighted': messageView.message.isHighlighted or messageView.isHighlighted,
+13 -10
View File
@@ -56,7 +56,11 @@ registerModel({
!isEventHandled(ev, 'MessageReactionGroup.Click') &&
!isEventHandled(ev, 'MessageInReplyToView.ClickMessageInReplyTo')
) {
this.update({ isClicked: !this.isClicked });
if (this.messagingAsClickedMessageView) {
this.messaging.update({ clickedMessageView: clear() });
} else {
this.messaging.update({ clickedMessageView: replace(this) });
}
}
},
/**
@@ -110,7 +114,10 @@ registerModel({
this.update({ isHovered: true });
},
onMouseleave() {
this.update({ isHovered: false });
this.update({
isHovered: false,
messagingAsClickedMessageView: clear(),
});
},
/**
* Action to initiate reply to current messageView.
@@ -235,7 +242,7 @@ registerModel({
_computeIsActive() {
return Boolean(
this.isHovered ||
this.isClicked ||
this.messagingAsClickedMessageView ||
(
this.messageActionList &&
(
@@ -371,13 +378,6 @@ registerModel({
isActive: attr({
compute: '_computeIsActive',
}),
/**
* Determines whether the message is clicked. When message is in
* clicked state, it keeps displaying actions even if not hovered.
*/
isClicked: attr({
default: false
}),
/**
* Whether the message should be forced to be isHighlighted. Should only
* be set through @see highlight()
@@ -435,6 +435,9 @@ registerModel({
inverse: 'messageViewOwner',
isCausal: true,
}),
messagingAsClickedMessageView: one('Messaging', {
inverse: 'clickedMessageView',
}),
/**
* States the thread view that is displaying this messages (if any).
*/
@@ -297,6 +297,12 @@ registerModel({
isCausal: true,
readonly: true,
}),
/**
* Determines which message view is currently clicked, if any.
*/
clickedMessageView: one('MessageView', {
inverse: 'messagingAsClickedMessageView',
}),
commands: many('ChannelCommand'),
companyName: attr(),
currentGuest: one('Guest'),