[IMP] mail: rename MessageListViewMessageViewItem in MessageListViewItem
part of task-2918956 Part-of: odoo/odoo#98262
This commit is contained in:
committed by
Alexandre Kühn
parent
3d7688eab8
commit
5c861656b6
@@ -8,7 +8,7 @@
|
||||
'o_Message_active': messageView.isActive,
|
||||
'o-clicked': messageView.messagingAsClickedMessageView,
|
||||
'o-discussion': messageView.message.isDiscussionOrNotification,
|
||||
'o-has-message-selection': messageView.messageListViewMessageViewItemOwner and messageView.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.replyingToMessageView,
|
||||
'o-has-message-selection': messageView.messageListViewItemOwner and messageView.messageListViewItemOwner.messageListViewOwner.threadViewOwner.replyingToMessageView,
|
||||
'o-highlighted': messageView.message.isHighlighted or messageView.isHighlighted,
|
||||
'o-isReplyHighlighted bg-white shadow-lg': messageView.isHighlighted,
|
||||
'o-isDeviceSmall': messaging.device.isSmall,
|
||||
@@ -19,10 +19,10 @@
|
||||
'o-starred': messageView.message.isStarred,
|
||||
'o-currentAuthor': messageView.message.isCurrentUserOrGuestAuthor,
|
||||
'mt-1': !messageView.isSquashed,
|
||||
'mt-5': !messageView.isSquashed and messageView.messageListViewMessageViewItemOwner,
|
||||
'mt-5': !messageView.isSquashed and messageView.messageListViewItemOwner,
|
||||
'px-3': !messageView.isInChatWindow,
|
||||
'px-1': messageView.isInChatWindow,
|
||||
'opacity-50': (messageView.messageListViewMessageViewItemOwner and messageView.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.replyingToMessageView) and !messageView.isSelected,
|
||||
'opacity-50': (messageView.messageListViewItemOwner and messageView.messageListViewItemOwner.messageListViewOwner.threadViewOwner.replyingToMessageView) and !messageView.isSelected,
|
||||
}" t-attf-class="{{ messageView.extraClass }} {{ className }}" role="group" t-att-aria-label="messageView.message.messageTypeText" t-on-click="messageView.onClick" t-on-mouseenter="messageView.onMouseenter" t-on-mouseleave="messageView.onMouseleave" t-att-data-id="messageView.message.id" t-att-data-message-id="messageView.message.id"
|
||||
t-ref="root"
|
||||
>
|
||||
@@ -100,7 +100,7 @@
|
||||
<t t-if="messageView.messageSeenIndicatorView">
|
||||
<MessageSeenIndicator className="'o_Message_seenIndicator ms-1'" record="messageView.messageSeenIndicatorView"/>
|
||||
</t>
|
||||
<t t-if="messageView.messageListViewMessageViewItemOwner and messageView.message.originThread and messageView.message.originThread !== messageView.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread">
|
||||
<t t-if="messageView.messageListViewItemOwner and messageView.message.originThread and messageView.message.originThread !== messageView.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread">
|
||||
<small class="o_Message_originThread me-2" t-att-class="{ 'o-message-selected text-600': messageView.isSelected, 'text-500': !messageView.isSelected }">
|
||||
<t t-if="messageView.message.originThread.model === 'mail.channel'">
|
||||
(from <a class="o_Message_originThreadLink fs-6" t-att-href="messageView.message.originThread.url" t-on-click="messageView.onClickOriginThread"><t t-if="messageView.message.originThread.displayName">#<t t-esc="messageView.message.originThread.displayName"/></t><t t-else="">channel</t></a>)
|
||||
@@ -110,7 +110,7 @@
|
||||
</t>
|
||||
</small>
|
||||
</t>
|
||||
<t t-if="messageView.messageListViewMessageViewItemOwner and messageView.message.originThread and messageView.message.originThread === messageView.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread and messageView.message.notifications.length > 0">
|
||||
<t t-if="messageView.messageListViewItemOwner and messageView.message.originThread and messageView.message.originThread === messageView.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread and messageView.message.notifications.length > 0">
|
||||
<div t-att-class="{ 'ms-2': messageView.isInChatWindowAndIsAlignedRight }">
|
||||
<t t-if="messageView.message.failureNotifications.length > 0">
|
||||
<span class="o_Message_notificationIconClickable o-error cursor-pointer text-danger" role="button" tabindex="0" t-on-click="messageView.onClickFailure">
|
||||
@@ -126,7 +126,7 @@
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
<div
|
||||
<div
|
||||
class="o_Message_bubbleWrap position-relative d-flex align-items-start"
|
||||
t-att-class="{
|
||||
'd-flex justify-content-end': messageView.isInChatWindowAndIsAlignedRight,
|
||||
@@ -143,8 +143,8 @@
|
||||
'w-100': !(messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms') and !messageView.isInChatWindow,
|
||||
'me-2': messageView.isInChatWindowAndIsAlignedLeft and !messageView.composerViewInEditing,
|
||||
'ms-2': messageView.isInChatWindowAndIsAlignedRight and !messageView.composerViewInEditing,
|
||||
'p-3': messageView.message.prettyBody !== '' and !messageView.composerViewInEditing and (messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms'),
|
||||
'p-2': messageView.composerViewInEditing,
|
||||
'p-3': messageView.message.prettyBody !== '' and !messageView.composerViewInEditing and (messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms'),
|
||||
'p-2': messageView.composerViewInEditing,
|
||||
'text-muted': messageView.message.is_note and messageView.message.message_type !== 'sms',
|
||||
}"
|
||||
>
|
||||
@@ -153,9 +153,9 @@
|
||||
class="o_Message_background position-absolute start-0 top-0 w-100 h-100"
|
||||
t-att-class="{
|
||||
'rounded-end-3': !messageView.isInChatWindowAndIsAlignedRight and (messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms'),
|
||||
'rounded-start-3': messageView.isInChatWindowAndIsAlignedRight and (messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms'),
|
||||
'rounded-start-3': messageView.isInChatWindowAndIsAlignedRight and (messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms'),
|
||||
'rounded-bottom-3 border': messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms',
|
||||
'o-isAuthorNotCurrentUserOrGuest border-info bg-info-light': !messageView.message.isCurrentUserOrGuestAuthor and !messageView.message.isHighlighted and (messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms'),
|
||||
'o-isAuthorNotCurrentUserOrGuest border-info bg-info-light': !messageView.message.isCurrentUserOrGuestAuthor and !messageView.message.isHighlighted and (messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms'),
|
||||
'border-success bg-success-light opacity-25': messageView.message.isCurrentUserOrGuestAuthor and !messageView.message.isHighlighted and (messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms'),
|
||||
'border-warning bg-warning-light opacity-50': messageView.message.isHighlighted and (messageView.message.isDiscussionOrNotification or messageView.message.message_type === 'sms'),
|
||||
}"
|
||||
|
||||
@@ -48,21 +48,21 @@
|
||||
<div t-if="messageListView.threadViewOwner.order === 'asc' and messageListView.threadViewOwner.threadCache.orderedNonEmptyMessages.length !== 0 and !(messageListView.threadViewOwner.thread and messageListView.threadViewOwner.thread.mailbox)" class="flex-grow-1"/>
|
||||
<!-- MESSAGES -->
|
||||
<t t-set="current_day" t-value="0"/>
|
||||
<t t-foreach="messageListView.messageListViewMessageViewItems" t-as="messageListViewMessageViewItem" t-key="messageListViewMessageViewItem.localId">
|
||||
<Transition visible="messageListViewMessageViewItem.message === messageListView.threadViewOwner.thread.messageAfterNewMessageSeparator" name="'o-fade'" t-slot-scope="transition">
|
||||
<t t-foreach="messageListView.messageListViewItems" t-as="messageListViewItem" t-key="messageListViewItem.localId">
|
||||
<Transition visible="messageListViewItem.message === messageListView.threadViewOwner.thread.messageAfterNewMessageSeparator" name="'o-fade'" t-slot-scope="transition">
|
||||
<div class="o_MessageList_separator o_MessageList_separatorNewMessages o_MessageList_item d-flex flex-shrink-0 align-items-center me-4 p-0 fw-bolder" t-att-class="{ 'o-disable-animation': messaging.disableAnimation, 'opacity-0': transition.className.includes('o-fade-leave') }" t-attf-class="{{transition.className}}">
|
||||
<hr class="o_MessageList_separatorLine o_MessageList_separatorLineNewMessages flex-grow-1 w-auto"/><span class="o_MessageList_separatorLabel o_MessageList_separatorLabelNewMessages px-3">New messages</span>
|
||||
</div>
|
||||
</Transition>
|
||||
<t t-if="!messageListViewMessageViewItem.message.isEmpty">
|
||||
<t t-set="message_day" t-value="messageListViewMessageViewItem.message.dateDay"/>
|
||||
<t t-if="!messageListViewItem.message.isEmpty">
|
||||
<t t-set="message_day" t-value="messageListViewItem.message.dateDay"/>
|
||||
<t t-if="current_day !== message_day">
|
||||
<div class="o_MessageList_separator o_MessageList_separatorDate o_MessageList_item d-flex flex-shrink-0 align-items-center pt-4 pb-0 px-0 fw-bolder">
|
||||
<hr class="o_MessageList_separatorLine flex-grow-1 w-auto border-top"/><span class="o_MessageList_separatorLabel o_MessageList_separatorLabelDate px-3"><t t-esc="message_day"/></span><hr class="o_MessageList_separatorLine flex-grow-1 w-auto border-top"/>
|
||||
<t t-set="current_day" t-value="message_day"/>
|
||||
</div>
|
||||
</t>
|
||||
<Message record="messageListViewMessageViewItem.messageView"/>
|
||||
<Message record="messageListViewItem.messageView"/>
|
||||
</t>
|
||||
</t>
|
||||
<!-- LOADING (if order desc)-->
|
||||
|
||||
@@ -824,7 +824,7 @@ registerModel({
|
||||
inverse: 'message',
|
||||
isCausal: true,
|
||||
}),
|
||||
messageListViewMessageViewItems: many('MessageListViewMessageViewItem', {
|
||||
messageListViewItems: many('MessageListViewItem', {
|
||||
inverse: 'message',
|
||||
isCausal: true,
|
||||
}),
|
||||
|
||||
@@ -34,8 +34,8 @@ registerModel({
|
||||
_computeActionMarkAsRead() {
|
||||
if (
|
||||
this.messaging && this.messaging.inbox &&
|
||||
this.messageView && this.messageView.messageListViewMessageViewItemOwner && this.messageView.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread &&
|
||||
this.messageView.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread === this.messaging.inbox.thread
|
||||
this.messageView && this.messageView.messageListViewItemOwner && this.messageView.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread &&
|
||||
this.messageView.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread === this.messaging.inbox.thread
|
||||
) {
|
||||
return {};
|
||||
}
|
||||
@@ -59,9 +59,9 @@ registerModel({
|
||||
if (
|
||||
this.messaging && this.messaging.inbox &&
|
||||
this.message && !this.message.isTemporary && !this.message.isTransient &&
|
||||
this.messageView && this.messageView.messageListViewMessageViewItemOwner && this.messageView.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread && (
|
||||
this.messageView.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread === this.messaging.inbox.thread ||
|
||||
this.messageView.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread.channel
|
||||
this.messageView && this.messageView.messageListViewItemOwner && this.messageView.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread && (
|
||||
this.messageView.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread === this.messaging.inbox.thread ||
|
||||
this.messageView.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread.channel
|
||||
)
|
||||
) {
|
||||
return {};
|
||||
|
||||
@@ -13,19 +13,19 @@ registerModel({
|
||||
*/
|
||||
onClickReply(ev) {
|
||||
markEventHandled(ev, 'MessageInReplyToView.ClickMessageInReplyTo');
|
||||
const messageListViewMessageViewItem = this.messageView && this.messageView.messageListViewMessageViewItemOwner;
|
||||
const messageListViewItem = this.messageView && this.messageView.messageListViewItemOwner;
|
||||
const parentMessage = this.messageView.message.parentMessage;
|
||||
if (!messageListViewMessageViewItem || !parentMessage) {
|
||||
if (!messageListViewItem || !parentMessage) {
|
||||
return;
|
||||
}
|
||||
const parentMessageListViewMessageViewItem = this.messaging.models['MessageListViewMessageViewItem'].findFromIdentifyingData({
|
||||
const parentMessageListViewItem = this.messaging.models['MessageListViewItem'].findFromIdentifyingData({
|
||||
message: parentMessage,
|
||||
messageListViewOwner: messageListViewMessageViewItem.messageListViewOwner,
|
||||
messageListViewOwner: messageListViewItem.messageListViewOwner,
|
||||
});
|
||||
if (!parentMessageListViewMessageViewItem) {
|
||||
if (!parentMessageListViewItem) {
|
||||
return;
|
||||
}
|
||||
parentMessageListViewMessageViewItem.messageView.update({ doHighlight: true });
|
||||
parentMessageListViewItem.messageView.update({ doHighlight: true });
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
|
||||
@@ -113,7 +113,7 @@ registerModel({
|
||||
/**
|
||||
* States the message views used to display this thread view owner's messages.
|
||||
*/
|
||||
messageListViewMessageViewItems: many('MessageListViewMessageViewItem', {
|
||||
messageListViewItems: many('MessageListViewItem', {
|
||||
compute: '_computeMessageListViewMessageViewItems',
|
||||
inverse: 'messageListViewOwner',
|
||||
isCausal: true,
|
||||
|
||||
+4
-4
@@ -8,22 +8,22 @@ import { attr, one } from '@mail/model/model_field';
|
||||
* message is used as iterating field.
|
||||
*/
|
||||
registerModel({
|
||||
name: 'MessageListViewMessageViewItem',
|
||||
name: 'MessageListViewItem',
|
||||
fields: {
|
||||
isSquashed: attr({
|
||||
required: true,
|
||||
}),
|
||||
message: one('Message', {
|
||||
identifying: true,
|
||||
inverse: 'messageListViewMessageViewItems',
|
||||
inverse: 'messageListViewItems',
|
||||
}),
|
||||
messageListViewOwner: one('MessageListView', {
|
||||
identifying: true,
|
||||
inverse: 'messageListViewMessageViewItems',
|
||||
inverse: 'messageListViewItems',
|
||||
}),
|
||||
messageView: one('MessageView', {
|
||||
default: {},
|
||||
inverse: 'messageListViewMessageViewItemOwner',
|
||||
inverse: 'messageListViewItemOwner',
|
||||
isCausal: true,
|
||||
readonly: true,
|
||||
required: true,
|
||||
@@ -12,10 +12,10 @@ registerModel({
|
||||
* @returns {FieldCommand}
|
||||
*/
|
||||
_computeMessageSeenIndicator() {
|
||||
if (this.messageViewOwner.messageListViewMessageViewItemOwner && this.messageViewOwner.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread) {
|
||||
if (this.messageViewOwner.messageListViewItemOwner && this.messageViewOwner.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread) {
|
||||
return {
|
||||
message: this.messageViewOwner.message,
|
||||
thread: this.messageViewOwner.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread,
|
||||
thread: this.messageViewOwner.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread,
|
||||
};
|
||||
}
|
||||
return clear();
|
||||
|
||||
@@ -139,8 +139,8 @@ registerModel({
|
||||
*/
|
||||
replyTo() {
|
||||
// When already replying to this messageView, discard the reply.
|
||||
if (this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.replyingToMessageView === this) {
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.composerView.discard();
|
||||
if (this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.replyingToMessageView === this) {
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.composerView.discard();
|
||||
return;
|
||||
}
|
||||
this.message.originThread.update({
|
||||
@@ -148,7 +148,7 @@ registerModel({
|
||||
isLog: !this.message.is_discussion && !this.message.is_notification,
|
||||
},
|
||||
});
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.update({
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.update({
|
||||
replyingToMessageView: this,
|
||||
composerView: {
|
||||
doFocus: true,
|
||||
@@ -180,8 +180,8 @@ registerModel({
|
||||
* Stops editing this message.
|
||||
*/
|
||||
stopEditing() {
|
||||
if (this.messageListViewMessageViewItemOwner && this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.composerView && !this.messaging.device.isMobileDevice) {
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.composerView.update({ doFocus: true });
|
||||
if (this.messageListViewItemOwner && this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.composerView && !this.messaging.device.isMobileDevice) {
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.composerView.update({ doFocus: true });
|
||||
}
|
||||
this.update({
|
||||
composerForEditing: clear(),
|
||||
@@ -228,7 +228,7 @@ registerModel({
|
||||
* @returns {string|FieldCommand}
|
||||
*/
|
||||
_computeExtraClass() {
|
||||
if (this.messageListViewMessageViewItemOwner) {
|
||||
if (this.messageListViewItemOwner) {
|
||||
return 'o_MessageList_item o_MessageList_message';
|
||||
}
|
||||
return clear();
|
||||
@@ -262,10 +262,10 @@ registerModel({
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
this.messageListViewMessageViewItemOwner &&
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread &&
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread.channel &&
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread.channel.correspondent === this.message.author
|
||||
this.messageListViewItemOwner &&
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread &&
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread.channel &&
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread.channel.correspondent === this.message.author
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
@@ -289,10 +289,10 @@ registerModel({
|
||||
*/
|
||||
_computeIsInDiscuss() {
|
||||
return Boolean(
|
||||
this.messageListViewMessageViewItemOwner &&
|
||||
this.messageListViewItemOwner &&
|
||||
(
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.threadViewer.discuss ||
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.threadViewer.discussPublicView
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.threadViewer.discuss ||
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.threadViewer.discussPublicView
|
||||
)
|
||||
);
|
||||
},
|
||||
@@ -302,8 +302,8 @@ registerModel({
|
||||
*/
|
||||
_computeIsInChatWindow() {
|
||||
return Boolean(
|
||||
this.messageListViewMessageViewItemOwner &&
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.threadViewer.chatWindow
|
||||
this.messageListViewItemOwner &&
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.threadViewer.chatWindow
|
||||
);
|
||||
},
|
||||
/**
|
||||
@@ -312,8 +312,8 @@ registerModel({
|
||||
*/
|
||||
_computeIsInChatter() {
|
||||
return Boolean(
|
||||
this.messageListViewMessageViewItemOwner &&
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.threadViewer.chatter
|
||||
this.messageListViewItemOwner &&
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.threadViewer.chatter
|
||||
);
|
||||
},
|
||||
/**
|
||||
@@ -352,9 +352,9 @@ registerModel({
|
||||
this.message.isCurrentUserOrGuestAuthor
|
||||
) ||
|
||||
(
|
||||
this.messageListViewMessageViewItemOwner &&
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.thread.channel &&
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.thread.channel.channel_type === 'chat'
|
||||
this.messageListViewItemOwner &&
|
||||
this.messageListViewItemOwner.messageListViewOwner.thread.channel &&
|
||||
this.messageListViewItemOwner.messageListViewOwner.thread.channel.channel_type === 'chat'
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -366,8 +366,8 @@ registerModel({
|
||||
*/
|
||||
_computeIsSelected() {
|
||||
return Boolean(
|
||||
this.messageListViewMessageViewItemOwner &&
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.replyingToMessageView === this
|
||||
this.messageListViewItemOwner &&
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.replyingToMessageView === this
|
||||
);
|
||||
},
|
||||
/**
|
||||
@@ -375,8 +375,8 @@ registerModel({
|
||||
* @returns {boolean|FieldCommand}
|
||||
*/
|
||||
_computeIsSquashed() {
|
||||
if (this.messageListViewMessageViewItemOwner) {
|
||||
return this.messageListViewMessageViewItemOwner.isSquashed;
|
||||
if (this.messageListViewItemOwner) {
|
||||
return this.messageListViewItemOwner.isSquashed;
|
||||
}
|
||||
return clear();
|
||||
},
|
||||
@@ -385,8 +385,8 @@ registerModel({
|
||||
* @returns {FieldCommand}
|
||||
*/
|
||||
_computeMessage() {
|
||||
if (this.messageListViewMessageViewItemOwner) {
|
||||
return this.messageListViewMessageViewItemOwner.message;
|
||||
if (this.messageListViewItemOwner) {
|
||||
return this.messageListViewItemOwner.message;
|
||||
}
|
||||
if (this.deleteMessageConfirmViewOwner) {
|
||||
return this.deleteMessageConfirmViewOwner.message;
|
||||
@@ -419,9 +419,9 @@ registerModel({
|
||||
_computeMessageSeenIndicatorView() {
|
||||
if (
|
||||
this.message.isCurrentUserOrGuestAuthor &&
|
||||
this.messageListViewMessageViewItemOwner &&
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread &&
|
||||
this.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread.hasSeenIndicators
|
||||
this.messageListViewItemOwner &&
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread &&
|
||||
this.messageListViewItemOwner.messageListViewOwner.threadViewOwner.thread.hasSeenIndicators
|
||||
) {
|
||||
return {};
|
||||
}
|
||||
@@ -630,7 +630,7 @@ registerModel({
|
||||
inverse: 'messageView',
|
||||
isCausal: true,
|
||||
}),
|
||||
messageListViewMessageViewItemOwner: one('MessageListViewMessageViewItem', {
|
||||
messageListViewItemOwner: one('MessageListViewItem', {
|
||||
identifying: true,
|
||||
inverse: 'messageView',
|
||||
}),
|
||||
|
||||
@@ -75,11 +75,11 @@ registerModel({
|
||||
* Starts editing the last message of this thread from the current user.
|
||||
*/
|
||||
startEditingLastMessageFromCurrentUser() {
|
||||
const messageListViewMessageViewItems = this.messageListView.messageListViewMessageViewItems;
|
||||
messageListViewMessageViewItems.reverse();
|
||||
const messageListViewMessageViewItem = messageListViewMessageViewItems.find(messageListViewMessageViewItem => messageListViewMessageViewItem.message.isCurrentUserOrGuestAuthor && messageListViewMessageViewItem.message.canBeDeleted);
|
||||
if (messageListViewMessageViewItem) {
|
||||
messageListViewMessageViewItem.messageView.startEditing();
|
||||
const messageListViewItems = this.messageListView.messageListViewItems;
|
||||
messageListViewItems.reverse();
|
||||
const messageListViewItem = messageListViewItems.find(messageListViewItem => messageListViewItem.message.isCurrentUserOrGuestAuthor && messageListViewItem.message.canBeDeleted);
|
||||
if (messageListViewItem) {
|
||||
messageListViewItem.messageView.startEditing();
|
||||
}
|
||||
},
|
||||
_computeCallSettingsMenu() {
|
||||
@@ -154,8 +154,8 @@ registerModel({
|
||||
if (!this.messageListView) {
|
||||
return clear();
|
||||
}
|
||||
const { length, [length - 1]: messageListViewMessageViewItem } = this.messageListView.messageListViewMessageViewItems;
|
||||
return messageListViewMessageViewItem ? messageListViewMessageViewItem.messageView : clear();
|
||||
const { length, [length - 1]: messageListViewItem } = this.messageListView.messageListViewItems;
|
||||
return messageListViewItem ? messageListViewItem.messageView : clear();
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
|
||||
@@ -1300,7 +1300,7 @@ QUnit.test('first unseen message should be directly preceded by the new message
|
||||
// send a command that leads to receiving a transient message
|
||||
await insertText('.o_ComposerTextInput_textarea', "/who");
|
||||
await click('.o_Composer_buttonSend');
|
||||
const transientMessage = messaging.discuss.threadViewer.threadView.messageListView.messageListViewMessageViewItems[0].message;
|
||||
const transientMessage = messaging.discuss.threadViewer.threadView.messageListView.messageListViewItems[0].message;
|
||||
|
||||
// composer is focused by default, we remove that focus
|
||||
document.querySelector('.o_ComposerTextInput_textarea').blur();
|
||||
|
||||
Reference in New Issue
Block a user