Commit Graph
4294 Commits
Author SHA1 Message Date
Alexandre Kühn 5b59a07729 [IMP] mail, *: introduce public livechat bundle
*: hr, im_livechat, snailmail, website_livechat

This commit introduces the public livechat bundle, which
contains the models that are specifically used in public livechat.

Doing so reduces the amount of model and data in frontend and
external lib, which makes the page load faster.

Task-2990182
Task-2990191

closes odoo/odoo#100768

Related: odoo/enterprise#31608
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-22 15:50:12 +02:00
Nemael 47541460f5 [FIX] mail: fix emoji offset when clicking on category
This PR fixes the offset that happened when clicking
on a category in the emoji picker

Task-2991668

closes odoo/odoo#100769

X-original-commit: 299e74b2510b94a4dea526080d48b7563190a097
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-22 12:23:34 +02:00
Nemael 7ffc505599 [FIX] mail: not scrolling to emoji category
This PR fixes a bug where, while in search mode,
clicking an emoji category would not scroll
to the specified category.

Task-2978040

X-original-commit: 2f6cd3b51d2e2c991ee610cc90bf1882bb3a114a
Part-of: odoo/odoo#100769
2022-09-22 12:23:34 +02:00
William Braeckman 18426a62eb [IMP] mail,hr: migrate m2x_avatar_user and m2x_avatar_employee to wowl2
Those fields may be used in the new views.

Some of the legacy fields had to be kept because they are used
in some legacy views, more notably the gantt and activity views as well
as in the mrp work order tablet mode.

X-original-commit: 1c871ad9ea4a77468911ff6a5546688a26398a8b
Part-of: odoo/odoo#100764
2022-09-22 12:23:27 +02:00
Alexandre Kühn 0ae4fadf08 [IMP] mail, *: convert all compute/sort method into inline field function
Task-2985304

closes odoo/odoo#100765

X-original-commit: e267d52cc4380c3acf7d2f9c9abf1acb59a598c1
Related: odoo/enterprise#31606
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-22 01:54:20 +02:00
Alexandre Kühn a43504fec9 [FIX] mail: guard ChatWindowHeaderView/onClick
This handler was not properly guarded, and made
`.TestMailChannelExpand` fail on runbot.

closes odoo/odoo#100588

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-20 16:29:41 +02:00
tsm-odoo 5471bd4cb8 [IMP] mail: remove im status route
*: bus, hr_holidays.

The `/bus/im_status` route polls the server every minute in order for
the user im_status to be up to date. This commit removes this poll
by sending the im_status on the bus when updating the current user
presence.

Moreover, before [1], the user bus presence was updated on each poll.
When the user didn't poll for 50 seconds, we assumed the user was
disconnected. Since [1], the bus presence is updated each 30 seconds
by the `im_status` service. This is too frequent: there is no need
to update the user presence so often.

In order not to overhelm the server with unnecessary requests, the update
presence interval as well as the delay to be considered disconnected
have been updated: the former from 30 to 60 seconds, the later from
55 to 65 seconds (assuming that a user that has missed an update
presence tick is disconnected).

[1]: odoo/odoo@a5623d2

closes odoo/odoo#100249

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-20 11:33:51 +02:00
Zelong Lin 396d79aef3 [IMP] mail: autocompleteInput refactor
task-2974765

closes odoo/odoo#99839

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-19 21:58:05 +02:00
Zelong Lin c3a27689c3 [MOV] mail: autocompleteInput refactor
Task-2977761

Part-of: odoo/odoo#99839
2022-09-19 21:58:04 +02:00
Alexandre Kühn f48f09a1b3 [FIX] mail: emoji picker smooth scrolling position
Before this commit, scrolling in emoji picker grid had
an undesirable "snapping" behaviour, which kept the 1st
visible row in place.

This was caused by the computation of view block of virtual
scroller not taking into account small offset inside a row.

For example, in the following scenario:
```
distanceFromTop = 1000
rowHeight = 150
```
The 1st visible row was 6th one (Math.floor(1000 / 150) = 6),
which is correct.
However the row was fully visible, instead of partially cut
(1000 % 150 = 100 => 66% overflow).

This commit takes this in-row offset into account, so that
scroll position can now make a row partially visible.

Task-2985857

closes odoo/odoo#100521

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-19 19:28:55 +02:00
Didier (did) 2aad13b67d [FIX] mail,hr: fix performRpcRead on user model
Fields param is actually not a kwargs. This cause a stack trace when opening a chat window (other than a chat with yourself) from a Kanban user avatar icon.

closes odoo/odoo#100315

X-original-commit: 95d3f4b0ea4dd5f1f9403b6e5ba97e1e2a510f65
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-18 09:30:01 +02:00
Zelong Lin 1c73df728e [IMP] mail: remove legacy Dialog from call_view
The Dialog is no more used in the call_view.
Just cleanup the code of the import

task-2783069

closes odoo/odoo#100352

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-16 16:20:39 +02:00
Alexandre Kühn e975a9849e [IMP] mail: make emoji picker available in knowledge
Introduce header actions so that emoji picker in knowledge
can have an action to remove emoji.

Task-2980528

closes odoo/odoo#100010

Related: odoo/enterprise#31231
Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
2022-09-16 14:25:29 +02:00
Thanh Dodeur eb37a32cec [FIX] mail: prevents RtcSession update in _willDelete
Before this commit, the RtcSession fields were updated in the
`_willDelete` which could cause tracebacks.

closes odoo/odoo#99701

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-15 17:18:22 +02:00
Thanh Dodeur 1c8fd08e7b [IMP] mail: call tests
Part-of: odoo/odoo#99701
2022-09-15 17:18:22 +02:00
Alexandre Kühn 486cd602fc [FIX] mail: guard ChatWindow/onClickHandler (nightly build failure)
closes odoo/odoo#100132

Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
2022-09-15 00:30:26 +02:00
Louis Wicket (wil) b9b0d9c462 [IMP] mail, *: inverse of identifying is automatically causal
* = im_livechat, snailmail

The model manager will now automatically add `isCausal: true` to inverse
of identifying fields. This commit implements the feature and removes
now unnecessary declarations of `isCausal: true` from the code.

Task-2741402.

closes odoo/odoo#100119

Related: odoo/enterprise#31290
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-14 21:22:15 +02:00
Gorash 5410b7c238 [IMP] base/web: XML templates are added into the asset bundles.
XML files are now declared in python module manifests. During the qweb
't-call-asset' directive, assetbundle will fetch the declared xml files,
apply the inheritance (t-inherit) and create a javascript service (for
eg: 'web.assets_backend.bundle.xml') which is added at the end of the
*.js mimifier file.

When the debug mode is activated, comments are added in the template
indicating which file the template comes from as well as the
inheritances applied to it.

****

JavaScript:

assets.js (module @web/core/assets) takes care of loading libraries,
javascripts and styles.
`loadJS(url)` (loads the javascript and returns a resolved promise when
the templates are also loaded via the '*.bundle.xml' service)
`loadCSS(url)` (loads the style a resolved promise when the file is
loaded)
`loadXML(xml, app=assets.defaultApp)` (load template into
application/owl, used by the `*.bundle.xml` services)
`getBundle(bundleName)` (get the bundle descriptor)
`loadBundle(desc)` (load the files and bundle from a descriptor)

templates (XML element content all owl templates)

A new `ready(serviceName)` method on boot.js lets you know when a
service is loaded are the require.

The xmlDependencies attribute no longer exists.

Python:

The xmls taken into account by assetbundle.py, applying `t-inherit`
inheritances and adding an `name_of_the_bundle.bundle.xml` service in
the generated JavaScript file.

****

Every manifest changes is into the next commit, except 'web_tour' in
this current commit as example.

Part-of: odoo/odoo#95500
2022-09-14 20:25:01 +02:00
Brieuc-brd 8b708cca59 [IMP] mail: CallSettingsMenu: review and simplify scss
Part of the overall v16 SCSS optimization/restyle, task-2704984

task-2980888

closes odoo/odoo#100032

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-13 18:57:09 +02:00
William Braeckman e2ba23ea17 [IMP] mail: Migrate many2many_tags_email widget to Owl
closes odoo/odoo#99230

Related: odoo/enterprise#31254
Signed-off-by: William Braeckman (wbr) <wbr@odoo.com>
2022-09-13 13:53:08 +02:00
Viktors Lipskis (vili) bbf3dedb7a [FIX] mail: fix activity Mark as Done panels
Clicking on kanban activity Mark as Done button now works as expected, either displaying one empty panel or displaying no panels at all.
Before this commit, repeating a click on the button did not reset the panel, so the next click added another form to the panel.
Also, clicking on the button left other panels open.

task-2961943

closes odoo/odoo#98832

Signed-off-by: Arnaud Joset <arj@odoo.com>
2022-09-13 09:31:11 +02:00
William Braeckman 44cfa03587 [IMP] mrp: migrate mrp_documents_kanban to wowl2
This views has multiple custom features such as file upload, attachment
viewer and download.
A lot of files have been rendered obsolete and have been deleted,
notably `file_upload_mixin` which has been replaced by the
file_upload service and hooks.

closes odoo/odoo#99769

Related: odoo/enterprise#31145
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2022-09-12 17:33:14 +02:00
Sébastien Theys e8b369e724 [IMP] mail: clean legacy activity file (2)
- move BasicActivity to KanbanActivity (only usage of that abstract class)
- remove useless class o_activity_link
- remove useless class o_activity_label
- move d-flex from o_activity_title_entry to template
- move align-items-baseline from o_activity_title_entry to template
- move o_no_activity SCSS to template
- clean selection compute
- clean record_id
- clean activityState, _setState, _reset
- remove obsolete unlink activity code

closes odoo/odoo#99824

Related: odoo/enterprise#31201
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-09 16:23:43 +02:00
Louis Wicket (wil) 9e685f0147 [IMP] mail: move "isAddingItem" logic from Discuss to DiscussView
This move will remove the need of the adjustment compute and therefore
will avoid writing on computed fields.

closes odoo/odoo#99891

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-09 12:17:13 +02:00
Alexandre Kühn d8f1b8deda [FIX] mail: emoji picker with emoji up to unicode 12.0
Task-2977886

closes odoo/odoo#99844

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-09 11:12:41 +02:00
Alexandre Kühn d41f6e7687 [IMP] mail: emoji picker view no search content screen
Task-2976156

closes odoo/odoo#99700

Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
2022-09-09 02:41:48 +02:00
Alexandre Kühn b63a7deb0e [FIX] mail: dialog properly manage overflow for long content
Before this commit, when content of dialog was long, content
overflow but was not scrollable, which makes bottom unreachable,
which is especially a problem when buttons are at the bottom.

This problem solves the issue by adding classname `modal` to
dialog. This classname puts proper handling of overflow of
dialog and its content.

Also remove `align-items-center` so that top doesn't overflow
in isolation from the rest of content, which made top unreachable.

Task-2973866

closes odoo/odoo#99865

X-original-commit: 9f4495aa065da5e94d6ccd007c9f26b7d755f140
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-08 21:43:21 +02:00
Alexandre Kühn c1051a154b [FIX] mail: emoji picker properly show last row in search
Before this commit, when searching an emoji in emoji picker,
the last row was frequently now showing. This is especially
a problem with very specific search, whose results are not
showing any result, like "bomb" for 💣

This commit fixes the issue by properly showing the last row.

Task-2976677

closes odoo/odoo#99766

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-08 21:43:06 +02:00
tsm-odoo c01b9e7bdd [FIX] mail: model manager is debug during tests
Since the PR introducing the wowl environment in the discuss app, the
model manager is not set in debug mode during tests. The debug mode
is usefull since it adds integrity checks and more verbose error
messages. This commit restores it.

closes odoo/odoo#99556

Related: odoo/enterprise#31086
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-08 12:46:37 +02:00
Alexandre Kühn d8ba2ce234 [IMP] mail: introduce Messaging/executeGracefully
- Made executeGracefully in messaging so it can have specific
behaviour in qunit tests (no timeout)
- guard all usages of `executeGracefully` in case current record
is deleted (e.g. during test teardown).

Task-2976295

Part-of: odoo/odoo#99556
2022-09-08 12:46:37 +02:00
Alexandre Kühn c4e84115c2 [FIX] mail: remove manual .update() in onScrollActiveCategory
This computed field was manually updating a field, which is
not correct. Instead, this field should have been an `onChange`,
which is what this commit does as a fix.

Task-2976940

Part-of: odoo/odoo#99556
2022-09-08 12:46:37 +02:00
Didier (did) a06161ec1c [IMP] mail: introduce _generateMessageBody
Avoid code duplication by introducing `_generateMessageBody` function.

closes odoo/odoo#99745

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-08 11:45:18 +02:00
Alexandre Kühn f48479e7ee [FIX] mail: remove manual .update() in compute of emoji grid rows
Task-2976694

closes odoo/odoo#99771

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-08 03:23:53 +02:00
Alexandre Kühn 67e3603c07 [FIX] mail: emoji picker with only widely supported emojis
1. Remove emoji that have unicode version equal or greater than 13.0.

2. Also removes "smiling_face" and "frowning_face" emojis, as although
they are old emojis, their visual support is quite lacking, so
they feel off. As substition, use "slightly_smiling_face" and
"slightly_frowning_face" respectively.

3. All regional flags have been removed.

4. the 11 remaining flags have been moved to "Symbols" category.

Task-2976577

closes odoo/odoo#99753

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-08 02:25:57 +02:00
Didier (did) 8d8a4ef9b5 [IMP] mail: remove isPostingMessage from updateMessage
Since we are not using `postMessage` in `updateMessage`, setting
isPostingMessage is not useful.

closes odoo/odoo#99744

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-08 01:08:20 +02:00
Alexandre Kühn 0f2e34acc8 [IMP] mail: shorten emoji picker search placeholder
Task-2976308

closes odoo/odoo#99724

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-08 01:08:05 +02:00
Sébastien Theys e605f90ab6 [IMP] mail: clean legacy activity file
In preparation of future clean up.

- remove obsolete method _fetchSpecialActivity
- apply lint / some es6 syntax on legacy activity file
- use async/await and remove most self in legacy activity
- inline activity setFileUploadID function
- inline activity _bindOnUploadAction function
- inline activity setDelayLabel function
- inline activity _readActivities function
- inline activity _sendActivityFeedback function
- inline activity _bindPopoverFocusout function
- remove obsolete activity _unbindOnUploadAction function

closes odoo/odoo#99646

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-08 00:13:05 +02:00
tsm-odoo 0954f0284c [FIX] mail: fix chatter attachment drop test
The chatter drop attachment test fails in an indeterministic manner.
This is because we're assuming that the next render will be the one
corresponding to the file uploading. In order to be sure this render
is really the one we're expecting, the `o-file-uploader-upload` event
is added.

closes odoo/odoo#99652

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-07 18:56:57 +02:00
Alexandre Kühn b5ce1e39d7 [IMP] mail: Improve Emoji Picker (step 2)
Improvements:

- Much more emojis in the emoji picker (more than 1800 emojis, up from 81)
- Fuzzy search bar to find emoji in the emoji picker

Known limitations:

- Emoji visual is based on browser/OS, so some emojis may not be visible on some devices

Task-2957928

closes odoo/odoo#99343

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-07 02:17:47 +02:00
Didier (did) 683f9be971 [FIX] mail: fix traceback with empty message body
This PR fix a traceback that occure when the message body is empty (eg: only
uploading an attachment).

closes odoo/odoo#99625

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-06 18:23:00 +02:00
Zelong Lin d57c64f95b [IMP] mail, *: remove 'public' field in channel
*: im_livechat, website_livechat

Access right should be based on channel type and membership instead.
Chat always private, group always private, channel private should
disapear and be a group instead (migration needed), and other channel
always public (but they can still be further restricted with
the "allowed groups" feature)

task-2632861

closes odoo/odoo#90415

Related: odoo/enterprise#30980
Related: odoo/upgrade#3850
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-06 10:57:59 +02:00
Zelong Lin d23db6e9da [IMP] mail: who command supported in group
task-2971564

closes odoo/odoo#99545

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-05 20:13:08 +02:00
Didier (did) 613448162a [IMP] mail: remove useless code in message edition
closes odoo/odoo#99487

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-05 18:35:08 +02:00
Louis Wicket (wil) ff49527fb5 [IMP] mail, *: convert ThreadPreview to use Channel instead of Thread
* = im_livechat, rating, test_mail_full

Part of task-2948676.

closes odoo/odoo#99342

Related: odoo/enterprise#30921
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-05 16:53:52 +02:00
Louis Wicket (wil) 9beb2b13d3 [MOV] mail, *: rename ThreadPreviewView files to ChannelPreviewView
Part of task-2948676.
* = im_livechat, rating, test_mail_full

Part-of: odoo/odoo#99342
2022-09-05 16:53:52 +02:00
Thanh Dodeur a78adfb8a3 [IMP] mail: adds the blur feature to video calls
This commit implements the blur feature to the user-video (=not screen
sharing) during video calls using google's MediaPipe library*.

* https://google.github.io/mediapipe/

task-2818116

closes odoo/odoo#94982

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-05 16:53:45 +02:00
Didier (did) 7ceb079455 [IMP] mail: implement link preview with OpenGraph Protocol
OpenGraph Protocol https://ogp.me/ allow us to get some data from the link that
are shared in message.

task-2365881

closes odoo/odoo#82641

Related: odoo/enterprise#30867
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-05 14:49:30 +02:00
Louis Wicket (wil) 10950d549d [IMP] mail: add support for inline definition of sort and compute
This commit allows compute and sort functions to be declared within a
field definition instead of providing a string with the name of the
record method to be used to compute/sort the field value.

Example of code with compute inline:
```javascript
registerModel({
    fields: {
        thread: one('Thread', {
            compute() {
                return {
                    id: this.id,
                    model: 'mail'.thread',
                };
            },
        }),
    },
});
```

Example of code WITHOUT:
```javascript
registerModel({
    recordMethods: {
        _computeThread() {
            return {
                id: this.id,
                model: 'mail.channel',
            };
        },
    },
    fields: {
        thread: one('Thread, {
            compute: '_computeThread',
        }),
    },
});
```

The aim of these changes is to empower a better separation of concerns,
by allowing to group together in one place the data related to a field.

Note that for technical reason (`Function.prototype.call` not working as
expected with arrow functions), compute/sort functions should not be
arrow functions.

closes odoo/odoo#99424

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-02 19:14:04 +02:00
Didier (did) c89853c219 [IMP] mail: move command code out of postMessage
closes odoo/odoo#99489

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-02 17:46:17 +02:00
Zelong Lin 0c3961008e [FIX] mail: guard message view
add guard on onMouseenter/onMouseleave

task-2901855

closes odoo/odoo#99477

X-original-commit: 7ce86d6c90062c9f8eef0ba7337d773e6a79f5ec
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-02 17:46:02 +02:00