summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/components/thread_viewer/thread_viewer.js
diff options
context:
space:
mode:
authorSébastien Theys <seb@odoo.com>2020-08-28 10:16:37 +0000
committerSébastien Theys <seb@odoo.com>2020-08-28 13:43:54 +0000
commitf9ee1cf5f904116e4d1d70a8eaf4ee1d58b18a3a (patch)
tree89425d0677083bb9489e42d47521c4bcf1e4ff44 /addons/mail/static/src/components/thread_viewer/thread_viewer.js
parent98e12901c97a67dc87f21647473754cd6f384d4a (diff)
[FIX] mail, *: rename thread viewer to thread view
The "viewer" should be the "parent" not the view itself. This distinction will become important in a future commit to allow viewers to not display the view in some situations. Rename done as a standalone commit to ease diff readability. Part of task-2310623 closes odoo/odoo#56737 X-original-commit: 1b811e6a972d72de02965adda67c5b039bee023f Related: odoo/enterprise#12756 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Diffstat (limited to 'addons/mail/static/src/components/thread_viewer/thread_viewer.js')
-rw-r--r--addons/mail/static/src/components/thread_viewer/thread_viewer.js191
1 files changed, 0 insertions, 191 deletions
diff --git a/addons/mail/static/src/components/thread_viewer/thread_viewer.js b/addons/mail/static/src/components/thread_viewer/thread_viewer.js
deleted file mode 100644
index 8e8f8f14dbb..00000000000
--- a/addons/mail/static/src/components/thread_viewer/thread_viewer.js
+++ /dev/null
@@ -1,191 +0,0 @@
-odoo.define('mail/static/src/components/thread_viewer/thread_viewer.js', function (require) {
-'use strict';
-
-const components = {
- Composer: require('mail/static/src/components/composer/composer.js'),
- MessageList: require('mail/static/src/components/message_list/message_list.js'),
-};
-const useStore = require('mail/static/src/component_hooks/use_store/use_store.js');
-
-const { Component } = owl;
-const { useRef } = owl.hooks;
-
-class ThreadViewer extends Component {
-
- /**
- * @param {...any} args
- */
- constructor(...args) {
- super(...args);
- useStore((...args) => this._useStoreSelector(...args));
- /**
- * Reference of the composer. Useful to set focus on composer when
- * thread has the focus.
- */
- this._composerRef = useRef('composer');
- /**
- * Reference of the message list. Useful to determine scroll positions.
- */
- this._messageListRef = useRef('messageList');
- }
-
- mounted() {
- this._update();
- }
-
- patched() {
- this._update();
- }
-
- //--------------------------------------------------------------------------
- // Public
- //--------------------------------------------------------------------------
-
- /**
- * Focus the thread. If it has a composer, focus it.
- */
- focus() {
- if (!this._composerRef.comp) {
- return;
- }
- this._composerRef.comp.focus();
- }
-
- /**
- * Focusout the thread.
- */
- focusout() {
- if (!this._composerRef.comp) {
- return;
- }
- this._composerRef.comp.focusout();
- }
-
- /**
- * Get the scroll position in the message list.
- *
- * @returns {integer|undefined}
- */
- getScrollTop() {
- if (!this._messageListRef.comp) {
- return undefined;
- }
- return this._messageListRef.comp.getScrollTop();
- }
-
- /**
- * @returns {mail.thread_viewer}
- */
- get threadViewer() {
- return this.env.models['mail.thread_viewer'].get(this.props.threadViewerLocalId);
- }
-
- //--------------------------------------------------------------------------
- // Private
- //--------------------------------------------------------------------------
-
- /**
- * Called when thread component is mounted or patched.
- *
- * @private
- */
- _update() {
- const messageList = this._messageListRef.comp;
- this.trigger('o-rendered');
- /**
- * Control panel may offset scrolling position of message list due to
- * height of buttons. To prevent this, control panel re-render is
- * triggered before message list. Correct way should be to adjust
- * scroll positions after everything has been rendered, but OWL doesn't
- * have such an API for the moment.
- */
- if (messageList) {
- messageList.adjustFromComponentHints();
- }
- }
-
- /**
- * Returns data selected from the store.
- *
- * @private
- * @param {Object} props
- * @returns {Object}
- */
- _useStoreSelector(props) {
- const threadViewer = this.env.models['mail.thread_viewer'].get(props.threadViewerLocalId);
- const thread = threadViewer ? threadViewer.thread : undefined;
- const threadCache = threadViewer ? threadViewer.threadCache : undefined;
- return {
- isDeviceMobile: this.env.messaging.device.isMobile,
- thread: thread ? thread.__state : undefined,
- threadCache: threadCache ? threadCache.__state : undefined,
- threadViewer: threadViewer ? threadViewer.__state : undefined,
- };
- }
-
-}
-
-Object.assign(ThreadViewer, {
- components,
- defaultProps: {
- composerAttachmentsDetailsMode: 'auto',
- hasComposer: false,
- hasMessageCheckbox: false,
- hasSquashCloseMessages: false,
- haveMessagesAuthorRedirect: false,
- haveMessagesMarkAsReadIcon: false,
- haveMessagesReplyIcon: false,
- order: 'asc',
- showComposerAttachmentsExtensions: true,
- showComposerAttachmentsFilenames: true,
- },
- props: {
- composerAttachmentsDetailsMode: {
- type: String,
- validate: prop => ['auto', 'card', 'hover', 'none'].includes(prop),
- },
- hasComposer: Boolean,
- hasComposerCurrentPartnerAvatar: {
- type: Boolean,
- optional: true,
- },
- hasComposerSendButton: {
- type: Boolean,
- optional: true,
- },
- /**
- * If set, determines whether the composer should display status of
- * members typing on related thread. When this prop is not provided,
- * it defaults to composer component default value.
- */
- hasComposerThreadTyping: {
- type: Boolean,
- optional: true,
- },
- hasMessageCheckbox: Boolean,
- hasScrollAdjust: {
- type: Boolean,
- optional: true,
- },
- hasSquashCloseMessages: Boolean,
- haveMessagesAuthorRedirect: Boolean,
- haveMessagesMarkAsReadIcon: Boolean,
- haveMessagesReplyIcon: Boolean,
- order: {
- type: String,
- validate: prop => ['asc', 'desc'].includes(prop),
- },
- selectedMessageLocalId: {
- type: String,
- optional: true,
- },
- showComposerAttachmentsExtensions: Boolean,
- showComposerAttachmentsFilenames: Boolean,
- threadViewerLocalId: String,
- },
- template: 'mail.ThreadViewer',
-});
-
-return ThreadViewer;
-
-});