[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:
@@ -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,
|
||||
|
||||
@@ -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'),
|
||||
|
||||
Reference in New Issue
Block a user