From e0d849ba7ca229ca7e614a564473599a47106972 Mon Sep 17 00:00:00 2001 From: Xavier Dubuc Date: Tue, 13 Oct 2020 14:53:14 +0000 Subject: [PATCH] [FIX] mail: make only composer as fixed in chatter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit task-2282325 closes odoo/odoo#61077 X-original-commit: 9d90fd9a2a65ab1ff338bb109426ca93075937fa Related: odoo/enterprise#14506 Signed-off-by: Sébastien Theys (seb) Signed-off-by: Alexandre Kühn (aku) --- .../static/src/components/chatter/chatter.js | 15 ++++ .../src/components/chatter/chatter.scss | 4 + .../static/src/components/chatter/chatter.xml | 80 ++++++++++--------- .../src/components/composer/composer.scss | 5 ++ .../composer_text_input.scss | 2 +- .../components/message_list/message_list.js | 4 +- .../components/message_list/message_list.xml | 2 +- .../src/components/thread_view/thread_view.js | 11 +++ 8 files changed, 81 insertions(+), 42 deletions(-) diff --git a/addons/mail/static/src/components/chatter/chatter.js b/addons/mail/static/src/components/chatter/chatter.js index cd1f8f8720b..d4314108b87 100644 --- a/addons/mail/static/src/components/chatter/chatter.js +++ b/addons/mail/static/src/components/chatter/chatter.js @@ -41,6 +41,10 @@ class Chatter extends Component { * Reference of the composer. Useful to focus it. */ this._composerRef = useRef('composer'); + /** + * Reference of the message list. Useful to trigger the scroll event on it. + */ + this._threadRef = useRef('thread'); } mounted() { @@ -103,6 +107,17 @@ class Chatter extends Component { this.chatter.update({ isComposerVisible: false }); } + /** + * @private + * @param {MouseEvent} ev + */ + _onScrollPanelScroll(ev) { + if (!this._threadRef.comp) { + return; + } + this._threadRef.comp.onScroll(ev); + } + } Object.assign(Chatter, { diff --git a/addons/mail/static/src/components/chatter/chatter.scss b/addons/mail/static/src/components/chatter/chatter.scss index 1fc95e8f69c..72cd50c700d 100644 --- a/addons/mail/static/src/components/chatter/chatter.scss +++ b/addons/mail/static/src/components/chatter/chatter.scss @@ -17,6 +17,10 @@ } } +.o_Chatter_scrollPanel { + overflow-y: auto; +} + // ------------------------------------------------------------------ // Style // ------------------------------------------------------------------ diff --git a/addons/mail/static/src/components/chatter/chatter.xml b/addons/mail/static/src/components/chatter/chatter.xml index be712198963..ffb27244471 100644 --- a/addons/mail/static/src/components/chatter/chatter.xml +++ b/addons/mail/static/src/components/chatter/chatter.xml @@ -4,46 +4,50 @@
- - - - - - - - - + - - - - + + + +
+
+ + + + + + + + + +
diff --git a/addons/mail/static/src/components/composer/composer.scss b/addons/mail/static/src/components/composer/composer.scss index 37250a2ffd7..df695cce426 100644 --- a/addons/mail/static/src/components/composer/composer.scss +++ b/addons/mail/static/src/components/composer/composer.scss @@ -40,6 +40,11 @@ &.o-composer-is-compact { max-height: 100px; } + + &:not(.o-composer-is-compact) { + overflow-y: auto; + max-height: 300px; + } } .o_Composer_buttons { diff --git a/addons/mail/static/src/components/composer_text_input/composer_text_input.scss b/addons/mail/static/src/components/composer_text_input/composer_text_input.scss index 37663303544..540fca6bc3e 100644 --- a/addons/mail/static/src/components/composer_text_input/composer_text_input.scss +++ b/addons/mail/static/src/components/composer_text_input/composer_text_input.scss @@ -27,6 +27,6 @@ &:not(.o-composer-is-compact) { // Don't allow the input to take the whole height when it's not compact // (like in chatter for example) but allow it to take some more place - max-height: 200px; + max-height: 150px; } } diff --git a/addons/mail/static/src/components/message_list/message_list.js b/addons/mail/static/src/components/message_list/message_list.js index d24e1ccf6fc..c2e8368eda7 100644 --- a/addons/mail/static/src/components/message_list/message_list.js +++ b/addons/mail/static/src/components/message_list/message_list.js @@ -55,7 +55,7 @@ class MessageList extends Component { * Snapshot computed during willPatch, which is used by patched. */ this._willPatchSnapshot = undefined; - this._onScroll = _.throttle(this._onScroll.bind(this), 100); + this.onScroll = _.throttle(this.onScroll.bind(this), 100); } mounted() { @@ -560,7 +560,7 @@ class MessageList extends Component { * @private * @param {ScrollEvent} ev */ - _onScroll(ev) { + onScroll(ev) { if (!this.el) { // could be unmounted in the meantime (due to throttled behavior) return; diff --git a/addons/mail/static/src/components/message_list/message_list.xml b/addons/mail/static/src/components/message_list/message_list.xml index 78b72ba2050..fbd44eb5aba 100644 --- a/addons/mail/static/src/components/message_list/message_list.xml +++ b/addons/mail/static/src/components/message_list/message_list.xml @@ -2,7 +2,7 @@ -
+
diff --git a/addons/mail/static/src/components/thread_view/thread_view.js b/addons/mail/static/src/components/thread_view/thread_view.js index 42e513be888..ceff30d1077 100644 --- a/addons/mail/static/src/components/thread_view/thread_view.js +++ b/addons/mail/static/src/components/thread_view/thread_view.js @@ -85,6 +85,17 @@ class ThreadView extends Component { return this._messageListRef.comp.getScrollTop(); } + /** + * @private + * @param {MouseEvent} ev + */ + onScroll(ev) { + if (!this._messageListRef.comp) { + return; + } + this._messageListRef.comp.onScroll(ev); + } + /** * @returns {mail.thread_view} */