Commit Graph
945 Commits
Author SHA1 Message Date
Sébastien Theys f9d0bef6b7 [REF] mail, im_livechat: make test setup methods patchables
Part of task-3265211

Part-of: odoo/odoo#124066
2023-06-07 18:01:03 +02:00
Alexandre Kühn 04b45dc43c [FIX] mail: more friendly pin message dialog
Task-3347745

closes odoo/odoo#124032

X-original-commit: 860ce3a
Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-06-07 15:58:48 +02:00
Sébastien Theys 08a06c6e8f [REF] mail: make thread actions more generic
This will remove the necessity to patch component, and remove
duplciation between discuss and chat window.

Part of task-3265211

closes odoo/odoo#123454

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-06-06 11:45:04 +02:00
zel-odoo ec57f8d7ff [IMP] mail: user searching by most recent chat
task-2622887

closes odoo/odoo#122486

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-06-05 13:31:23 +02:00
tsm-odoo 20c1772d35 [REF] im_livechat, *: refactor livechat
This PR refactors the public livechat in order for it to use
owl and to rely on the discuss components as much as possible.

task-2212347

closes odoo/odoo#122834

Related: odoo/enterprise#41636
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-06-02 22:29:06 +02:00
Alexandre Kühn 953498de76 [FIX] mail: reintroduce notif + chat window on new user connection
A recent refactoring of discuss app unintentionally removed the
feature to automatically notify and open chat window with new user
when they log in for the 1st time.

closes odoo/odoo#123044

X-original-commit: 9132dacbf9b4b9d000b6d0be23938b46db1035a1
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-05-31 15:54:13 +02:00
Alexandre Kühn 9c33452387 [FIX] mail: yellow bubble when there's a mention of self
closes odoo/odoo#123029

X-original-commit: c3f68f3a1d9b0245586bc7f6acece3b9a98bbf91
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-05-31 13:08:32 +02:00
Zelong Lin d6a2ecb93b [FIX] mail: done activity not updated
task-3331827

closes odoo/odoo#122633

X-original-commit: e27ce3ff448b05bbdf0785968a145f8aa952d1b5
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-05-26 16:16:02 +02:00
tsm-odoo d10aab060f [FIX] mail: incomplete url regex
The discuss app uses an url regex in order to find links and
transform them to html before posting a message.

Before this commit, some unsafe url characters  were missing
from this regex, resulting in incorrectly parsed url.

This commit adds missing characters in order to match RFC1738
[1].

However the dot, comma and semicolon character won't be matched
if they are at the end of the url since those can be used as
punctuation.

[1]: https://www.ietf.org/rfc/rfc1738.txt

closes odoo/odoo#122621

Forward-port-of: 0dc68dc, 9302a23
X-original-commit: 80da20092b42d927ce8b09eb3b45de7216695263
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Stockbauer Matthieu (tsm) <tsm@odoo.com>
2023-05-26 14:28:46 +02:00
Alexandre Kühn 123c9b3b47 [FIX] mail: show more options in chat window header
Before this commit, chat window header showed all actions,
which made it quite bloated. The name of conversation was
sometimes completely truncated by available actions.

This commit fixes the issue by showing at most 2 actions
immediately in the chat window header. When there are more
actions, it shows an expandable more menu.

As a consequence of this change, when a panel is open, it
was harder to see the button to close the active panel
(toggling off the button).
To solve this issue, when a panel is open in chat window,
there's a floating button in the top-right corner of content
to close the panel.

Task-3334793

closes odoo/odoo#122419

X-original-commit: eef4ef86e66709eef5b34ebce37cda3aab037bf9
Related: odoo/enterprise#41466
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-05-25 22:33:42 +02:00
Sébastien Theys 80de5298b2 [REF] mail: move message pin to discuss folder
Part of task-3265211

closes odoo/odoo#121418

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-05-23 18:01:40 +02:00
Antoine Guenet 995bf2d883 [REF] web, mail: rename attachment_viewer to file_viewer
Since the attachement viewer was moved to core, this renames it to file
viewer to decouple it from the Attachment model/concept from the mail
module.

Part-of: odoo/odoo#119625
2023-05-23 16:31:21 +02:00
Antoine Guenet 8aec394f71 [MOV] mail, mrp, mail, web: move attachment_viewer from mail to web
The `mail` module's `attachment_viewer` is useful for more than `mail`
alone. In order to be able to use it in the `web_editor` module (which
doesn't depend on `mail`), we move it to the `web` module.

task-3109331

Part-of: odoo/odoo#119625
2023-05-23 16:31:21 +02:00
Alexandre Kühn 11b4355a7b [FIX] mail: several discuss improvements (following MILK redesign)
closes odoo/odoo#121948

Forward-port-of: #121683
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-05-22 16:30:12 +02:00
tsm-odoo ea3008cc49 [IMP] mail, im_livechat: use ui service instead of store.isSmall
Since [1], the ui service is reactive which removes the needs for
the `mail.store` service to maintain a reactive version of `isSmall`.

This PR replaces the use of `store.isSmall` as well as `env.isSmall`
by the ui service.

1: https://github.com/odoo/odoo/pull/121343

closes odoo/odoo#121590

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-05-22 11:42:58 +02:00
Zelong Lin ff122ac7ae [IMP] mail: avatar edit in channel and group
1. Display avatar in top bar next to channel name and description.
2. Edit icon appears on hover.
3. Clicking on the Edit icon opens file browser to upload a new avatar.
4. Certain file types are allowed.
5. Avatar can only be changed for group chat by any member of the channel.
6. For channel it can be done with admin rights.
7. Disable uploading text from file uploader in this case.

Also show avatar of channel/chat conversation in chat window.
Author avatar in message list no longer shown im status.
Chat window header color matches new systray color.

task-2684679

[FIX] mail: make chat window header match systray color

Part-of: odoo/odoo#117357
2023-05-16 14:42:05 +02:00
Pulinckx Pierre (PIPU) f4f0f78318 [REF] *: Replace underscore.js function by native JS
Before this commit : The library underscore.js and
underscore.string.js were used in the ODOO solution.
After this commit : Every usages of a function from
underscore.js lib has been replaced with native javascript.
The goal is to remove all usages of underscore.js and to
not use anymore this library in ODOO.
---
TaskId : 3246238

closes odoo/odoo#120437

Signed-off-by: Géry Debongnie <ged@odoo.com>
2023-05-15 09:37:48 +02:00
Pierre Paridans eef262abf4 [FIX] *: adapt QUnit tests and tours
[FIX] *: selectors in tours

[FIX][TMP] account: CogMenu selector in tours

[FIX][TMP] web*: Breadcrumb targetting in tours

Adds a `o_breadcrumb` class to target the whole breadcrumb, no matter
how much elements it contains (collapsed parts, visible path, single
name...).

add classname on last breadcrumb item

[FIX][TMP] project: View buttons selector in tours (moved away from CP)

[FIX][TMP] project: Kanban selectors in tours (quick create)

[FIX][TMP] *: SearchBar selectors in tours (toggle menu)

[FIX][TMP] *: ButtonBox selector in tours

[WIP][IMP] web: add toggleSearchBarMenu in search helpers

adapt and unskip 3 list tests

adapt and unskip calendar tests

unskip web_tour test that actually pass

post rebase fix

allow to lose cell focus after multi edition (given to searchbar) - bug reported, to check later

post rebase fixes

fix

Part-of: odoo/odoo#116641
2023-05-12 22:59:22 +02:00
Brieuc-brd 418413e499 [IMP] web, *: directional icons
This commit adapts the directional icons to improve the usability and
maintain consistency with the ui icons library.

task-2818586

Part-of: odoo/odoo#116641
2023-05-12 22:59:22 +02:00
Sébastien Theys 7e0c68bf2b [REF] mail, im_livechat: move typing to discuss WIP
closes odoo/odoo#120851

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-05-11 12:01:43 +02:00
Pierre-Yves Dufays b3d9fbd3d5 [IMP] mail: allows unfollowing record from inbox
Allow users to unfollow easily document from the inbox for which he/she doesn't
want to be notified anymore.

When hovering on a follow up message with a related document followed by the
user, the interface displays an action to unfollow it that allows the user to
remove himself/herself as follower of the document. As a result of performing
that action a toast is displayed as a feedback.

Technical note:
The unfollow link is displayed on a message.canUnfollow is true which check
that the thread related to the message is followed by the user.

In order to know if the user follows the record related to the message, we now
transmit with each message the id of the follower table that link the user to
the related record if it follows it. This allows to insert the follower on
client side so that the unfollow action can use the standard mechaism already
developed to unfollow a record.

Unfortunately, that information coudn't be added in the already public method
message_format of mail message because that method is not always called on the
user retreiving the message but also by the one posting message. We didn't want
also to include all followers in the formated message so we rely on additional
method that add that information per partner.

To support unfollowing a document in the inbox no matter the current company,
we have modified message_unsubscribe in mail_thread to allow internal user to
unsubscribe themself without checking any rights. Indeed, some document have
record rule that prevents reading it if the user is not in the right company
(ex. crm.lead) and then was preventing the user to unfollow the document using
that method.

Task-3061864

Part-of: odoo/odoo#107978
2023-05-10 13:21:06 +02:00
tsm-odoo 8f399a270c [FIX] mail: indeterministic discuss test
This PR fixes the `Posting message should transform relevant data to emoji`
test that sometimes failed due to a race condition.

The assertion was too strict, this test just needs to check that the
emoji are properly parsed when posting a message.

Fixes runbot error: 20934.

closes odoo/odoo#120769

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-05-09 06:07:30 +02:00
Didier (did) 25f7da6c0b [IMP] mail: remove discard on external click
Before this PR, when you reply to a message or edit a message, the action would
be cancelled when you click somewhere else than in the composer or emoji picker.
This PR remove this behavior.

closes odoo/odoo#120753

Signed-off-by: Stockbauer Matthieu (tsm) <tsm@odoo.com>
2023-05-09 06:07:23 +02:00
tsm-odoo e1f0811b22 [IMP] mail: replace hardcoded orm commands in tests
Using hardcoded ORM commands in tests is cumbersome and not reliable.
This commit introduces the same system as the one used on the server.

closes odoo/odoo#120670

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-05-05 15:58:50 +02:00
Alexandre Kühn c5c3362a21 [FIX] mail: arrow up/down should change selection inside composer
Before this commit, when composer had some text content in
multi-line, arrow up/down was not jumping to previous/next
line.

This happens because the navigable list is active even when not
shown, and was preventing all keydown events.

This commit fixes the issue by limiting handling of keydown
events of navigable list to when it is shown.

Also fixes a bug where the quick edit of last message was triggered
when composer text was non-empty with ArrowUp. This should only
be triggered when the composer text input is empty.

closes odoo/odoo#120657

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-05-05 14:55:08 +02:00
Sébastien Theys e6b3323237 [REF] mail: move channel commands to discuss folder
Part of task-3265211

closes odoo/odoo#120429

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-05-05 14:54:57 +02:00
Alexandre Kühn 08a6a5781e [FIX] mail: disable open chat from click on self-authored messages
Before this commit, when clicking on self-authored messages, it was
opening the form view.

It should neither open chat nor open form view for self-authored
messages.

closes odoo/odoo#120484

Signed-off-by: Debondt Didier (did) <did@odoo.com>
2023-05-04 20:34:00 +02:00
Alexandre Kühn ec8dc607d0 [FIX] mail: consistent unread/needaction of channel in messaging menu
Before this commit, unread and needaction shown in messaging menu
was inconsistent with discuss sidebar.

In discuss sidebar, unread channel are bold, and needaction are
shown with badge + counter. In messaging menu, previews could be
either unread or needaction previews, and channels had 2 previews,
one for unread, and the other for needaction.

This commit make the messaging menu preview of channels more
consistent with discuss sidebar:
- channels have a single preview for unread and needaction
- unread messages make title bold, unread counter is no longer shown
- the counter displays needaction on this channel instead.

This commit also improves ordering of messaging menu items, so that:
- needactions have precedence over non-needactions
- unread channels have precedence over read channels

Task-3293723

closes odoo/odoo#120144

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-05-04 19:10:20 +02:00
Alexandre Kühn c0ce6ca7b6 [FIX] mail: do not auto-open chat window when self-posting a message
Before this commit, when posting a new message in a channel in the
discuss app, a chat window of this channel was automatically open.

This happens because new message from self where considered
new messages in a channel, and all new messages in a channel
were automatically opening a chat window.

This commit fixes the issue by not making self-authored messages
automatically open the chat window.

closes odoo/odoo#120478

Signed-off-by: Debondt Didier (did) <did@odoo.com>
2023-05-04 08:56:20 +02:00
Sébastien Theys f9ca72dca9 [REF] mail: move CallSettings code to discuss folder
Part of task-3265211

closes odoo/odoo#120314

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-05-02 22:26:44 +02:00
Sébastien Theys 197d9a7dc6 [REF] mail: move ChannelMemberList code to discuss folder
Part of task-3265211

Part-of: odoo/odoo#120314
2023-05-02 22:26:43 +02:00
Sébastien Theys a843eb776f [REF] mail: move ChannelInvitation code to discuss folder
Part of task-3265211

Part-of: odoo/odoo#120314
2023-05-02 22:26:43 +02:00
tsm-odoo 0c919774ea [FIX] mail: fix non-deterministic message test
Before this PR, the `Updating the parent message of a reply also
updates the visual of the reply` test was failing in a non-deterministic
fashion.

This PR fixes this issue by replacing the `nextTick` by a  specific
`waitUntil` in order to ensure the DOM is properly updated before
asserting.

Fixes 20829 runbot issue.

closes odoo/odoo#120273

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-05-02 15:59:13 +02:00
Sébastien Theys 09ac15e2dd [REF] mail: clean code for message update
As a bonus, add cross-tab update for current user in chatter.

Part of task-3265211

closes odoo/odoo#120018

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-04-28 12:26:43 +02:00
Didier (did) 19abfc1f66 [IMP] mail: update link previews when editing a message
Before this PR, link previews where not updated when a user was editing a
message.
This clear the current link previews and reprocess the updated message.

closes odoo/odoo#119917

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-04-27 18:25:13 +02:00
Sébastien Theys c1a3ad8e01 [REF] mail: move channel specific code of reaction to discuss
The opportunity is taken to clean the methods to make the override
actually possible.

Part of task-3265211

closes odoo/odoo#119942

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-04-27 17:21:53 +02:00
Alexandre Kühn f1566d4d2d [MOV] mail,*: move static discuss/ to discuss_app/
*: im_livechat, website_livechat

In preparation of splitting 'discuss' and 'mail' modules.

This allow using new folder discuss/ that contains all static
files of new module 'discuss'.

Part of task-3265211

closes odoo/odoo#119860

Related: odoo/enterprise#40388
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-04-27 07:06:02 +02:00
Alexandre Kühn 66301a4ac6 [FIX] mail: new needaction message from chatter in messaging menu
Before this commit, when receiving a new needaction message from
chatter, the messaging was not updating itself to show this new
needaction.

closes odoo/odoo#119843

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-04-27 07:05:57 +02:00
Sébastien Theys b1772094b1 [REF] mail: move discuss.channel code to its own folder (models)
This commit focuses on removing all references to discuss.channel from
code located in /models of mail module.

In preparation of splitting discuss and mail modules.

Part of task-3265211

closes odoo/odoo#119413

Signed-off-by: Debondt Didier (did) <did@odoo.com>
2023-04-26 19:49:08 +02:00
Louis Wicket (wil) 03aada713a [IMP] mail: hold shift to select emoji without closing the picker
Clicking on an emoji from the emoji picker while holding down the Shift
key now prevents the emoji picker from closing, allowing users to easily
select multiple emoji in one go.

Task-3288704.

closes odoo/odoo#119598

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-04-25 14:07:38 +02:00
Sébastien Theys 694d501a35 [REF] mail, im_livechat: move /mail/chat_post to im_livechat
It is only used there.

In preparation of splitting discuss and mail modules.

Part of task-3265211

closes odoo/odoo#119306

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-04-24 18:25:59 +02:00
Alexandre Kühn f34c5c64f8 [FIX] mail: save record on schedule activity
Before this commit, when adding a tag on record and then
scheduling an activity, the tag was removed from the record.

This happens because reloading the chatter does not save changes.

Although there is a `keepChanges: true` option, this looks
ineffective. This commit fixes the issue by letting chatter reload
always save any changes.

closes odoo/odoo#119275

X-original-commit: 97465dfb0ec53080bf05c3614dfa7429629729a6
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-04-21 23:46:21 +02:00
Sébastien Theys 90cb44e1e1 [REF] mail, *: rename mail.channel to discuss.channel
* = bus, calendar, crm_livechat, hr, hr_holidays, im_livechat, mail_bot,
    mass_mailing, privacy_lookup, test_discuss_full, test_mail,
    test_mail_full, website_crm_livechat, website_livechat, base

In preparation of splitting discuss and mail modules.

Part of task-3265211

closes odoo/odoo#118354

Related: odoo/upgrade#4553
Related: odoo/enterprise#39661
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-04-21 02:21:53 +02:00
Alexandre Kühn 7995349001 [FIX] mail: correct breadcrumb when open discuss from chat window
Before this commit, when opening Discuss from chat window and then
accessing the settings page of a channel, the breadcrumb showed
"Unamed" as the name of the App instead of "Discuss".

This happens because the client action was not named when expanding
the chat window by opening Discuss app.

closes odoo/odoo#118939

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-04-20 11:57:31 +02:00
Pulinckx Pierre (PIPU) 608e90e998 [REF] *: Replace underscore functions by native JS
Replace _.map(), _.flatten(), _.delay(), _.contains(), _.pluck(), _.isUndefined(), _.isEmpty(), _.isString(), _.isEqual(), _.isBoolean(), _.memoize(), _.invoke(), _.bind(), _.escape(), _.debounce(),
_.str.sprintf(), _.str.repeat(), _.str.startswith(), _.str.trim(),
_.str.escapeHTML(), _.str.escapeRegExp(), _.str.startsWith(), _.str.include()

closes odoo/odoo#118012

Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2023-04-20 11:57:29 +02:00
Mathieu Duckerts-AntoineandMichaël Mattiello ebf646b44f [IMP] *: ModelFieldSelector improvements
We refactor the ModelFieldSelector and ModelFieldSelectorPopover
components.

We also improve a bit ModelFieldSelectorPopover:
    - on first page, the button to go back is no longer available
      (so that it is now more difficult to produce an invalid path)
    - we always start with a page presenting the model where the last
      selected field name belongs to
    - the keyboard navigation is improved
    - click on model field selector opens the popover with the focus in
      the search input (if any)
    - for relational fields in popover: the user can either click on the
      relational field (and select it) or a special button that make him
      follow the relation to the field comodel

We also refactor the hook useDynamicPlaceholder to make it use a new
component DynamicPlaceholderPopover that uses ModelFieldSelectorPopover.

Task ID: 3272798

closes odoo/odoo#117951

Related: odoo/enterprise#39673
Signed-off-by: Michaël Mattiello <mcm@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Michaël Mattiello <mcm@odoo.com>
2023-04-19 21:58:34 +02:00
Didier (did) 6f12a849f6 [IMP] mail: link preview image as message
This PR hide the message body when the link preview is an image and the message
only contains the link to the image.

closes odoo/odoo#117772

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-04-19 20:58:14 +02:00
Alexandre Kühn 4fd9cfbe81 [FIX] mail: make chat window take whole height in mobile
Before this commit, chat window take at most 95% of global
height. This is ok in desktop, 5% room allow clicking on
systray menu. In mobile, however, the intend is for chat window
to take whole height.

This commit makes chat window take whole height in mobile, while
preserving the max-height 95% of global height in desktop.

Also fix an issue where chat window were foldable in mobile, when
this feature is desktop-only.

closes odoo/odoo#119058

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-04-19 19:14:47 +02:00
tsm-odoo e55ba11a89 [FIX] mail: fix message separator appearing after showing composer
closes odoo/odoo#118875

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-04-18 19:28:50 +02:00
Pulinckx Pierre (PIPU) 800223ae7c [REF] *: Replace underscore _.each() by native JS
Replaced _.each() functions (average 235 occurences)

Description of the refactoring this PR addresses:

Current behavior before PR:

There are underscore.js function enumerated above used in odoo.

Desired behavior after PR is merged:

These functions has been replaced by native javascript
prototypes/methods/functions.

TaskId : 3246238

closes odoo/odoo#118565

Signed-off-by: Georis François (fge) <fge@odoo.com>
2023-04-18 15:38:54 +02:00