summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/components/chat_window_manager
AgeCommit message (Collapse)Author
2021-05-21[FIX] mail: chat window should remain folded on new messageDhruv Patel
If the chat window was initially folded and when a new message is received the chat window automatically unfolds. it is annoying having a window that pops up each time a new message is coming while having folded it once. So, It should remain folded when a new message is received if the chat window is already folded. Task : 2522141 closes odoo/odoo#70737 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-03-10[FIX] mail: fix keyboard shortcut issue for small screenPriyanka Kakadiya
Current behavior before PR: When having a small screen, the composer in a chat window has no actual shortcut to send the message. Desired behavior after PR is merged: 'CTRL-Enter' keyboard shortcut will work for small screen size. LINKS: PR https://github.com//pull/65241 Task-2446076 closes odoo/odoo#65241 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-02-15[FIX] mail: prevent message separator for new conversationsIpsita Borisagar
Before this commit: When a new conversation is initiated, the 'new messages' separator is displayed. This looks a bit weird as there is no history of conversation and thus no older messages from which new messages should be separated. After this commit: The 'new messages' separator will not be displayed in new conversations. LINKS PR https://github.com/odoo/odoo/pull/65952 Task-2453511 closes odoo/odoo#65952 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-02-12[FIX] mail: (mobile) Prevent server sync for open/close stateJulien Giannone
This commit prevents the opening/closure of a channel on mobile when the action is performed on desktop and reciprocally closes odoo/odoo#64599 Tasks-id: 2267593 Related: odoo/enterprise#16296 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-02-12[FIX] mail: fix new message chatwindow issuePriyanka Kakadiya
Current behavior before PR: When looking for a user through the new message chat window, if there is already a chat open for this user, the new message window is still open on selecting the user. Desired behavior after PR is merged: when opening a chat from a new message, if the chat with this user is already open then it will close the new message chat window on selecting the user. LINKS: PR https://github.com/odoo/odoo/pull/65851 Task-2449118 closes odoo/odoo#65851 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-01-21[FIX] mail, *: significantly reduce number of useless rendersSébastien Theys
* = hr_holidays, im_livechat, website_livechat A huge amount of components where rendered for no reason, notably when typing a new message (at every key press), which significantly slowed down the interface. There were 2 causes to this number of renders: - OWL rendering all children automatically, even if their props didn't change, unless `shouldUpdate` is overridden, which is now done. - `useStore` selectors being way too generous in what they observed task-2399731 closes odoo/odoo#62703 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-01-18[FIX] mail, im_livechat, snailmail: use findFromIdentifyingDataSébastien Theys
find is O(n) and findFromIdentifyingData is O(1) task-2440693 closes odoo/odoo#64712 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-11-18[FIX] mail: select first contact in new message boxPaul Morelle
In previous versions of Odoo, in the New message box, typing a few letters of the name of your recipient and pressing Enter would automatically select the conversation with this contact. Since 14.0, one has to select the first result with the Down key. This commit restores the previous behavior by using the [`autofocus`](https://api.jqueryui.com/autocomplete/#option-autoFocus) option. closes odoo/odoo#61886 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-11-16[FIX] mail: fix race conditions, especially with scrollSébastien Theys
The `_update` of some components must take place before the `_update` of other (usually sibling) components that might directly influence their layout. This is in particular the case for `_update` that are relying on height. Prevent force save of scroll position if there are pending hints to adjust it, and prevent pending hints from overriding new scroll value. Prevent flicker with message date. This should fix all known issues related to incorrectly saving or restoring scroll position. task-2344226 task-2358066 task-2369332 task-2372339 task-2373741 closes odoo/odoo#61054 Related: odoo/enterprise#14736 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-11-02[FIX] mail: handle transient messages with (un)seen notionsXavier Dubuc
task-2343887 closes odoo/odoo#60906 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-10-23[FIX] mail: do not return members of channels in channel_infoSébastien Theys
This PR has 3 parts: The members fix itself, which is necessary for performance reasons especially at init messaging, as per described in the task. Adding the partner name in the typing payload, because due to not knowing all members anymore, it is necessary to properly display who is typing. Restrict restoring scroll position only if the corresponding scroll height is available, to make the scroll feature and particularly the corresponding tests more robust. task-2360020 closes odoo/odoo#60091 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-10-09[FIX] mail: ask for confirmation before attachment deletionXavier Dubuc
also hide all messages with empty body and no attachments task-2282322 closes odoo/odoo#59672 X-original-commit: 60ae42dcda777cd66e4e421dbc02f9ef12a430ef Related: odoo/enterprise#13971 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-10-06[IMP] mail: test new message separator in some edge casesXavier Dubuc
task-2348620 closes odoo/odoo#59279 X-original-commit: 53ed641a60e6d572a12d96406b64af5b55fe177e Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-09-23[FIX] mail: prevent unnecessary fold state RPCSébastien Theys
When the pending value is the same as the current server value, the pending value should be ignored and no RPC should be done. In particular this prevents a non-main tab from calling the RPC when receiving a bus notification that would lead to closing a chat window, which in turn used to call the close RPC again before this commit. This led to inconsistencies especially on the main tab, if the chat window was requested to be open again after the initial close, but before the "secondary" close, it would end up closing instead of opening. The current commit reduces the issue and prevents as many unnecessary RPC as there are tabs open, which is a good improvement. But it does not negate it completely. Indeed, when quickly closing then opening the same chat window, it might still happen for network reasons that the RPC or the corresponding bus notifications are received in the wrong order. This is less frequent both functionally (to click so fast) and technically (to have the network that slow) at the same time, so it is considering acceptable / out of scope. The opportunity is taken to clean up the code by removing unnecessary fields and making use of compute and flux specific RPC instead of `_updateAfter`. task-2273658 task-2329521 closes odoo/odoo#58367 X-original-commit: cbb1d855c7af5f78819db3cd476dbe0f985bc214 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-09-21[IMP] mail: reintroduce channel mentions, canned responses, commandsJulien Giannone
task-2280308 closes odoo/odoo#58166 X-original-commit: b63d0d2ee5f3bff24a5e1e1cd962d59bebef082d Related: odoo/enterprise#13392 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-09-07[FIX] mail: chatwindow scroll to the last message when postingDidier (did)
Before this commit, when a user posted a message from a chatwindow, the scroll did not move to the last message. task-2314409 closes odoo/odoo#57178 X-original-commit: 8e4f133890b08e7e9a909abbc97b89bb5409119a Signed-off-by: Sébastien Theys (seb) <seb@odoo.com> Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-09-04[FIX] mail, sms, snailmail: prevent message_fetch for hidden threadsXavier Dubuc
Automatically load messages from a thread cache only if the thread cache is used in at least one thread view. Ensure thread viewer don't keep thread view records alive when they are not displayed. This change is particularly important for performance, to avoid spamming RPC at init if many threads are opened in chat windows. task-2310623 closes odoo/odoo#57061 X-original-commit: dd6981c7812134e0588f80a157eaba45512cd68e Related: odoo/enterprise#12936 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-08-28[FIX] mail, *: fix opens and redirects, adapt messaging menu closeSébastien Theys
task-2244279 task-2262862 task-2274993 task-2277537 task-2282238 closes odoo/odoo#56745 X-original-commit: 109f202 Related: odoo/enterprise#12761 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-28[FIX] mail, *: rename thread viewer to thread viewSébastien Theys
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>
2020-08-27[FIX] mail: 'Cannot read messagingMenu of undefined' tracebackAlexandre Kühn
Before this commit, on page reload, sometimes web client crashed with `Cannot read 'messagingMenu' of undefined`. This happens due to messaging components making use of `messaging` in `env` as if it was always set. In some rare cases, this is false, hence the crash. This happens on root components of messaging such as the messaging menu. Creation of `env.messaging` has to be async, in other to ensure all JS module that patches messaging are applied. The mounting of messaging root components depends on other parts of the web client like the SystrayMenu. So the proper fix is to guard `env.messaging` on these root components. Task-2238245 closes odoo/odoo#56682 X-original-commit: d1483ff3c83bb3146e80e5d65a27915c5b2a2bf9 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-13[IMP] web, *: improve mock server and replace most mail mockRPCSébastien Theys
Improve mock server: - add support for mocked `fetch` - add support for `active_test` - add support for x2m `in` in domains - add support for default values computed from a function - implement a more natural "next id" compute - allow initial data without ids - ensure write and x2m commands integrity - improve bad data/bad commands error messages - always warn for failing RPC, not only in debug mode - fix all existing tests that had inconsistency data Other changes done in mail (or dependents) that are not just related to tests: - remove `direct_partner` from formatter result ->`correspondent` can be computed from other keys, especially `members` - fix `livechat_visitor` convertData -> only process if there is value - add `current_partner` and `current_user_id` as `init_messaging` result -> easier to mock than session - remove usage of `need_moderation` -> that was just a search indirection to `moderation_status` - adapt `partner_id` -> `res_partner_id` key in `_notification_format` -> to be consistent with field name - add name in result of `mail_partner_format` -> sometimes display_name is not the same - remove usage of `is_moderator` -> that was just an indirection to `moderation_channel_ids` Enterprise counterpart: https://github.com/odoo/enterprise/pull/11523 task-2287171 closes odoo/odoo#55854 X-original-commit: 7ba3fecb3377a720d1eb70e7515a0c45da73836d Related: odoo/enterprise#12391 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-13[FIX] mail: fix full composer opening with attachmentsXavier Dubuc
task-2307201 closes odoo/odoo#55678 X-original-commit: 9c47bb0b0034a3419a0c6e3267d90cb520a59535 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-06[FIX] mail: allow folded chat windows to be shiftedXavier Dubuc
task-2313414 closes odoo/odoo#55593 X-original-commit: 609dab84c6085af1ab27ee142c6ee674d7d321e9 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-05[FIX] mail: clean up JS relations by storing recordsSébastien Theys
Remove the support and the conversion from record to localId and back from localId to record. Part of task-2308312 closes odoo/odoo#55481 X-original-commit: fc5e8be4e65518770a281f0dffae07854d20073a Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-08-06[FIX] mail: ensure ChatWindowManager is re-rendering after initSébastien Theys
This fix non-appearing chat windows if messaging becomes initialized after ChatWindowManager was first mounted. closes odoo/odoo#55592 X-original-commit: 96f5bfb9da21668eadaa7bbe81d10d0bfd4f4483 Related: odoo/enterprise#12286 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-06[FIX] mail: process result of init messaging asynchronouslySébastien Theys
Part of task-2308312 closes odoo/odoo#55562 X-original-commit: bdc2a9f516562c854837248e7d0898e5cfc8dec1 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-05[FIX] mail: tab cycling between chat windowDidier (did)
Before this commit, cycling between chat window in LTR language clycled in the wrong direction. This commit also handle the RTL language cycling. task-2279706 closes odoo/odoo#55456 X-original-commit: 638720f9d72616f2e921a475a5fdfd2ad9a2ab8b Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-03[FIX] mail: speed up JS models by better using JS languageSébastien Theys
- use Map for _toComputeFields - factorize const access out of loops - avoid Object.entries - introduces `exists` method to avoid costly call to `get` - ensure compute are using update to trigger potential _updateAfter Part of task-2308312 X-original-commit: e364886c2450872a7e42cef549f253b10e55158d
2020-07-16[IMP] mail: focus the next chat window when closed by ESCDidier (did)
This allows user to close multiple windows with ESC key. task-2283891 closes odoo/odoo#54604 X-original-commit: bac3d7792a48f86a39f92e0fcfc18d522ce00d94 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-07[FIX] mail: save scroll position of chat window when foldedXavier Dubuc
- Remove no more used ThreadViewer prop : messageListInitialScrollTop - Remove no more used ChatWindow prop : threadInitialScrollTop - Rename ThreadViewer field threadCacheInitialPosition to threadCacheInitialScrollPosition - Use the scroll position to set message list scroll on mounted - Fix old test which was not simulating correctly home menu show - Add tests to check that scroll position is correctly saved even if ChatWindow is folded - Fix traceback when showing/hiding home menu with a folded chat window task-2285691 closes odoo/odoo#54198 X-original-commit: 31123a94c156424b3962fe4aebc3cc60a7a89223 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-06-26[FIX] mail: fix (inbox reply) composer event handlers (and discard)Sébastien Theys
task-2092950 closes odoo/odoo#53731 X-original-commit: c29f5776594c4d2278ce163a78d8eb917fb672c0 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com> Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-06-26[FIX] mail: discuss: unpin channel fixesLucas Perais (lpe)
FIX: use the correct API of mail.channel.py to unfollow a channel i.e.: `execute_command_leave` FIX: unpinning a channel has immediate effect on the interface chatWindows are closed, and the inbox is displayed FIX: unpinning a channel destroys corresponding chatWindows across tabs It also unpins the channel in other tabs FIX: python sends is_pinned as part of the channel_info both at init messaging and in the main bus notification That way, we can keep track of the synchronization of the pin status between JS and python task-2275000 task-2267941 closes odoo/odoo#53703 X-original-commit: d4fcc64acb2fc0c6fd9df505380f665abd8b39c4 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-06-24[FIX] mail: fix folded new message chat window styleXavier Dubuc
task-2272492 closes odoo/odoo#53565 X-original-commit: dcaa91ffb84a7d9ca433fff1913df47513bb365a Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-06-15[REF] mail, *: refactor messaging with OWLSébastien Theys
This commit is a significant rewriting of client-side discuss, chatter, chat window, and messaging menu using OWL. The behavior should be broadly the same, with some slight functional changes here and there. From a technical standpoint, the code of messaging is mainly organized in 2 main groups of modules: - models, which are logical entities that depict the client-side state of messaging as a whole. - components, which are in charge of displaying information from models. This refactoring also introduces new JS guidelines regarding folder structure (/static) and naming rules for JS modules. Community PR: https://github.com/odoo/odoo/pull/39023 Enterprise PR: https://github.com/odoo/enterprise/pull/6249 Task-1914207 This PR is a collaborative work by Alexandre, Julien, Sébastien and Xavier, with the precious help of Lucas to speed it up towards the end. closes odoo/odoo#39023 Related: odoo/enterprise#6249 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Co-authored-by: Alexandre Kühn <aku@odoo.com> Co-authored-by: Julien Giannone <jgi@odoo.com> Co-authored-by: Lucas Perais <lpe@odoo.com> Co-authored-by: Sébastien Theys <seb@odoo.com> Co-authored-by: Xavier Dubuc <xdu@odoo.com>