Commit Graph
200 Commits
Author SHA1 Message Date
Romain Estievenart 71b44f15dd [FIX] im_livechat, website_event_track_online: avoid overlapping banners
On mobile devices, when you go for the first time inside the event
public page the PWA install bar and the livechat tooltip are displayed
at same area. Because of this it's was difficult to click on the
"install" button.

X-original-commit: 6705c6b6fe0360f95b4a499a9141f876648b7202
2020-08-14 15:18:35 +00:00
Sébastien Theys c2918c139b [IMP] web, *: improve mock server and replace most mail mockRPC
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 16:26:35 +00:00
Anousone Phaysomphot bc1d6159e7 [IMP] im_livechat: add new digest tips
PURPOSE

Review the tips and digest layout design to make sure they have a WOW effect
and increase trial conversion/retention.

SPECIFICATIONS

“Use canned responses to chat faster”

See code for specifications.

LINKS

Task ID-2274264
COM PR: odoo/odoo#53580
ENT PR: odoo/enterprise#1139

X-original-commit: fd8ee90adc5c759d591345a1676f01fc63c51f38
2020-08-12 12:22:59 +00:00
Sébastien Theys bab2093109 [FIX] mail: process result of init messaging asynchronously
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-06 13:27:38 +00:00
Nicolas Martinelli 1c21fcf275 [FIX] im_livechat: remove accent of cookie
- Install `website_livechat`
- Publish the demo livechat
- Set an accent to the operator name, e.g. 'Bòb'
- Visit the website with Safari and start a chat session
- Close the window
- Refresh the page

Error in browser console that sometime appear as a traceback.

It happens because Safari refuses to send any cookie containing
non-ASCII characters [1]. Actually, Safari strips the value before the
first non-ASCII character, making the JSON string corrupted.

Having such special characters in cookies is uncommon, so we only clean
the necessary string. Moreover, it's better to avoid our tools modifying
all cookies set without being aware of it.

[1] https://stackoverflow.com/questions/1969232/what-are-allowed-characters-in-cookies/1969339#1969339

opw-2273293

closes odoo/odoo#55277

X-original-commit: df003873c20357343f8aa17a645acfb6b03ef68b
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-07-31 15:51:57 +00:00
Xavier Dubuc 0511a88f85 [FIX] im_livechat: fix visitors typing issues
In livechat, chat_post was called without notifying user has stopped
typing as done in new way of handling it in new mail module. This commit
handles the legacy by calling notify_typing rpc as needed.

task-2282271
task-2299331

closes odoo/odoo#55223

X-original-commit: 030ea9adf74f3f4c0d61b19870d6894de1f20c75
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-30 15:49:27 +00:00
Alexandre Kühn 9ba879fc61 [FIX] im_livechat: hide 'add attachment' button in livechat
Message attachments are not yet supported in livechat for livechat
visitors, so the "Add file" button should not be visible.

closes #54927

Forward-port-of: #54972
Forward-port-of: #54957
X-original-commit: 91a548a6a7456dfd50833671a3938fcf55ed18c6
2020-07-29 16:42:26 +00:00
Lucas Perais (lpe) 257371bab5 [FIX] mail: discuss: unpin channel fixes
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-26 00:54:54 +00:00
Aaron Bohy 8abbc5a3b5 [REF] *: adapt code to web changes
Some changes in AbstractModel have been done to ease the
implementation of the sample data feature. This commit reverberates
those changes in other addons.

Part of task 2232801

X-original-commit: dd8069a3c80570e7fa03a80dbb100ab0a182692a
2020-06-22 13:04:02 +00:00
3fea5b2136 [REF] mail, *: refactor messaging with OWL
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>
2020-06-15 18:12:21 +00:00
Aaron Bohy b4ba0fc340 [FIX] *: adapt tests to env rework
This commit adapts tests following recent changes on the helpers.
The main change is that addMockEnvironment (and all functions using
it) are now async, as they need to wait for services to be started.
2020-06-12 09:47:48 +00:00
Julien Mougenot c4786fccfd [IMP] *: update notifications to optional title
closes odoo/odoo#52826

Related: odoo/enterprise#11084
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-06-12 09:01:50 +00:00
Benjamin Frantzen (bfr) e4a4ffb974 [IMP] customer ratings flow improvements
- Rename the 'Use Rating on Project' feature into 'Customer Ratings'
- Rename the 'Set Email Template to Stages' link to 'Set a Rating Email Template on Stages'
- Add an optional list view for the Stages menu
- display warning if the rating_template_id field is set and if one of the selected project_ids doesn't have the rating_status field set to true
- Project form view revamp
- rename the '% on tasks' stat button into 'Customer Satisfaction'
- Remove the 'no option' for the rating frequency field because it is required
- project form : Add a 'Go to Website' stat button
- Project dashboard: remove the 'Customer Ratings' menu item in more
- Ratings page: the 'Last 30 days' filter include ratings from today
- remove the Appointment / Helpdesk Customer Satisfaction / Live Support menu items

TASK ID : 1251
2020-05-08 12:17:20 +00:00
David Beguin 190dab8144 [IMP] website_livechat : add various tests on livechat and visitors
Adds Python tests and javascripts tours on livechat (website and visitor
integration). Because breaking livechat every two days in rush periods
(or even not) is getting quite annoying.

Those tests are testing :

- The client side flow (open livechat, send messages,
  send rating and close the livechat session)
- The channel and message author naming, visitor page view history
- Chat request flow (complete chat request flow, open empty operator's
  chat request and cancel due to visitor's new chat session)

Task ID : 2079087
PR #40052

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-03-17 12:21:48 +00:00
David Beguin 9c9032e664 [IMP] (im/website)_livechat : hide and clean empty livechat sessions
Purpose
=======

Whenever a visitor start a livechat session but finally close the session
without sending any messages, the livechat session is empty and stay in DB.
Livechat session counter counts all the sessions (with and without message)
but when opening the sessions tree view, the view is filtered by default on
session with messages. There is no reason to see the empty sessions as it
does not give any information (except "the visitor hesitated to start
livechat and finally did not" which is quite useless info)

The goal is to keep only sessions with messages.

When the visitor is closing the livechat window, if the session is empty,
the session should be deleted. But what happens if a visitor start a livechat
session, send no message and just leave the website without closing the
livechat window ? --> empty live chat session will remains in database.

The ir_autovacuum already handle the deletion of empty sessions to main a
clean DB.

Specifications
==============

- Apply 'with messages' domain on session count in the livechat channel view
- Apply 'with messages' domain on session count in the lead view
- Apply 'with messages' domain on livechat session view
- Remove With message filter
- Remove Without message filter

- If send message on a deleted session :
    just tell the visitor that operator is not available anymore
    AND delete livechat session cookie (as he waited 1 day to send a message)

Empty sessions becomes invisible : not possible for users to see empty session
(in count or in views) and cron is cleaning empty sessions every day.

This commit also adapts visitor session count and view accordingly.

Task ID: 2146962
PR #41065

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-02-10 11:46:05 +00:00
Kevin Baptiste 6cbe824871 [REV] web: reverts update to fontawesome 5.11.2
This reverts commit ff1c35513a.

closes odoo/odoo#41480

X-original-commit: 116057b26e71db4692280463669f3e80d813ddcc
Related: odoo/enterprise#7110
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-12-09 10:33:36 +00:00
Debauche Stéphane 88145eb645 [FIX] im_livechat: fix the ajax loading on external website
Bug
===
The file "public_root.js" try to load "/web/webclient/locale/en_US" with ajax.loadJS
we do not have the address to the Odoo server, so we try to load the file locally
but this file might not exist on the website which is using the widget

Fix
===
Overwrite ``ajax.loadJS`` and ignore ajax loading
(also printing a warning message in the JS console)

Task #2081146

closes odoo/odoo#41177

X-original-commit: 50f8508ca8569acc538a2af6a3c1162d39f834cd
Signed-off-by: std-odoo <std-odoo@users.noreply.github.com>
2019-11-04 15:02:50 +00:00
Kevin Baptiste ff1c35513a [IMP] web: update to fontawesome 4.7.0 to 5.11.2
FontAwesome 5 introduced new names for some icons as described on
https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4#name-changes

This commit replaces the old names to the new ones.

closes odoo/odoo#35826

Taskid: 2050241
Related: odoo/enterprise#5180
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-11-28 10:05:12 +00:00
Julien Giannone f507df510a [IMP] livechat: add settings to set livechat colors
This commit allow users to set up different colors for both
the live chat button for website visitors and the chat window
once the live chat button has been clicked. For both, the header
background color and the text color can be set up.

Task-Id 2030383

closes odoo/odoo#35843

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2019-10-24 14:50:54 +00:00
David Beguin 74fa5c2955 [FIX] livechat : add placeholder to receive conversation copy and fix translation
This commit adds a placeholder to the field where the visitor has to put his email
to be more self speaking. (Otherwise, the visitor could not know what to put on this field)

Task ID: 2076656
PR #37511
2019-09-30 15:51:20 +00:00
David Beguin f15a4a31cf [FIX] livechat : do not close livechat after feedback-rating, positive or negative
Since there is now a possibility for the user to ask a copy of the conversation,
livechat window should not be closed after feedback, to let the user choose to
receive a copy.

The behaviour was no aligned between positive and neutral/negative feedback.
Before, when sending a positive rating, the rating was not sent as a message on the channel
and the window didn't close.
But for neutral/negative feedback, the window was sending the rating as a message on the channel
but the chatter closed immediately.

Now, the rating is sent as a message for any type of rating.
If this is a neutral / negative rating, the reason field appears.
After sending the reason, the window stays opened.

Task ID: 2076656
PR #37511
2019-09-30 08:07:41 +00:00
David Beguin 6f5abf933b [IMP] website,livechat : apply various imp and fix on visitor views
Applies various improvements:
  - Remove welcome message if chat request usecase.
  - If a visitor is online: line is green / if offline: line is red (in the list view)
  - Visitors list view: add first / last connection fields and remove time_since_last_action
  - Avoid useless leave notification if the livechat channel is empty

Fix
  - ACLS on website_visitor_page model (for im_livechat_group_user)
  - ACLS on website_visitor and website_visitor_page model (for sales_team.group_sale_salesman)
  - Update visitor lang if visitor change the website lang.
  - Create visitor twice when translated website (due to rerouting)
  - Avatar for visitor banner in discuss. (image_64 instead of old image_small)

Task ID: 2056080
PR #36290
2019-09-17 14:12:19 +00:00
Alexandre Kühn b2247ab72f [FIX] im_livechat: show message history
Revision on https://github.com/odoo/odoo/commit/923fb7aa05f0e9e0e67440073993ec36bb0f5f53

Commit above fixed an issue since v11.0 that display duplicated
messages on a website livechat window.

Forward-ported broke the livechat in v12.0 due to refactoring of mail
https://github.com/odoo/odoo/commit/cd34f6de727d5b3858420cff3c9d3c5995c4e75c

This commit correctly adapts fix for v12.0+.

opw-2070911

closes odoo/odoo#36921

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2019-09-17 09:34:32 +00:00
Christophe Simonis 5a273e74f0 [MERGE] forward port branch saas-12.4 up to fe59754c52
closes odoo/odoo#36721

Signed-off-by: Christophe Simonis <chs@odoo.com>
2019-09-13 13:32:51 +00:00
Lucas Lefèvre 04bf0ed963 [FIX] im_livechat: Style button to submit review
When a visitor close the livechat and submit a review,
the "Send" button is not styled.

closes odoo/odoo#36487

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-09-05 14:46:19 +00:00
Christophe Simonis 7a548569c6 [MERGE] forward port branch 12.0 up to 638eac9bae 2019-09-04 19:32:26 +02:00
Christophe Simonis 638eac9bae [MERGE] forward port branch saas-11.3 up to a4fe211ee2 2019-09-04 18:56:27 +02:00
Christophe Simonis 6143de52ad [MERGE] forward port branch 11.0 up to 923fb7aa05 2019-09-04 11:33:04 +02:00
Alexandre Kühn 923fb7aa05 [FIX] im_livechat: no duplicated messages
Before this commit, when using website livechat with multiple tabs,
it may duplicate messages in the chat window.

This happens due to registering messages twice:

- once, from `/mail/chat_history`
- second, from receiving notification from master tab, via local
storage.

This commit fixes the issue by not registering messages that have
already been registered (i.e. unique ID).

opw-2052960

closes odoo/odoo#36370

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2019-09-03 10:55:32 +00:00
David Beguin a8ce2886be [FIX] im_livechat : avoid to send twice first operator message to visitor
What was going on here is that when the operator start the discussion with the visitor
and the visitor navigates to a new page, the livechat button widget checks the
cookie and see there is already a active conversation.

It loads the mail_channel and write all the history of the conversation.
So the first message is writting a first time.

Then, it handles the notifications. As the visitor did not receive the
first message notification yet, the first message notification comes up
and the widget handle it. Adding the message a second time.

To avoid this, we just stop the notification handling
if the message is already present in the conversation.

Task ID: 2028059
PR #34624
2019-08-19 06:33:37 +00:00
mgh-odoo 737746c05c [IMP] im_livechat: allow visitors to get a transcript of their live chat
after this commit user can get a copy of the conversation with operator

task-2029660
closes #34620

closes odoo/odoo#35083

Signed-off-by: Martin Geubelle (mge) <mge@openerp.com>
2019-08-14 12:25:12 +00:00
Kevin Baptiste 6542f3c41f [IMP] website_livechat: improve general usability (back2basics)
Purpose
=======

Clean screens and improve onboarding

TaskID: 2029772

closes odoo/odoo#34543

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-08-02 11:33:22 +00:00
Alexandre Kühn 893e07e590 [IMP] im_livechat,web: use nicer placeholders for livechat
In the context of a livechat session, a placeholder that looks like a
person is better than a generic "missing picture" one, when the user has
no public avatar.

In order to allow a different placeholder without exposing a public
placeholder parameter, a separate route is introduced for the
purpose of displaying user avatars:
/web/partner_image/<id>/<field>/<model>
and can be simplified to:
/web/partner_image/<id> for loading a partner avatar (`image_small`).

The common part of the /web/image route was moved into a helper
function that is not directly exposed.

Task-ID 1924666
Closes #32664

Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
2019-05-08 10:35:37 +00:00
Aurélien Warnon 594c6e8a2a [IMP] im_livechat: ensure that visitors always gets the same operator
Task #1919871

Purpose
=======

If a visitor comes on the website and launches a livechat, it will be randomly assigned operator A.
If he comes the next day and opens a livechat again, we want him to have the same operator if he's available.

To handle that use case, we added a cookie that stores the "previous operator id" information for 7 days.
2019-04-01 07:03:11 +00:00
Alexandre Kühn 05e480acb1 [FIX] im_livechat: open website livechat window
Before this commit, when opening a website livechat window,
it crashed with the following error message in the dev tools:

```
Cannot read property 'html' of `undefined`
```

The problem was caused by the rendering of the chat window header
before the chat window widget is even mounted in the DOM. This error
has been introduced by the migration from jQuery 1.12 to 3, in which
most occurrences of `$.Deferred` have been turned into `Promise` [1].

`Widget.appendTo()` returns a `Promise` (was `$.Deferred` before).
A `Promise` is always asynchronous, whereas a `$.Deferred` with
jQuery 1.12 may be either synchronous or asynchronous. In the case
of the website livechat window, the implementation with `$.Deferred`
was always synchronous, which is no longer the case now.

[1] https://github.com/odoo/odoo/commit/126fb33f6a74916c808c8e988f55faf82f0b5759

closes odoo/odoo#32168

Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
2019-03-27 14:27:11 +00:00
Juhil Somaiya 5356f368bb [IMP] im_livechat, web: custom placeholder image
When the user has not set any image, it now displays the default
user image placeholder instead of the image placeholder in livechat.

Task-ID 1924666

closes odoo/odoo#30821

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2019-03-18 09:19:02 +00:00
126fb33f6a [REF] im_livechat: adapt code after jQuery update
Part of task 1896658

Co-authored-by: Aaron Bohy <aab@odoo.com>
Co-authored-by: Christophe Matthieu <chm@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: David Monjoie <dmo@odoo.com>
Co-authored-by: Martin Geubelle <mge@odoo.com>
Co-authored-by: svs-odoo <svs@odoo.com>
Co-authored-by: Vincent Schippefilt <vsc@odoo.com>
2019-03-06 20:07:17 +01:00
David Beguin b8a8c28554 [IMP] im_livechat : review channel history layout
The Live chat history was taking too much space and was hard to read.
The goal here is to display more information on the screen.
The pictures and padding are then reduced.

Note that kanban view is not a solution in long term.
At it does not allow to squash messages per user (if consecutive
messages from same user at close interval of time).
As the thread widget will be reviewed by discuss team in a
near future, we keep this at the moment and will integrate the
new thread widget later, mainly to be able to squash the messages.

Task ID : 1913869
Closes PR #30343
2019-02-14 08:57:57 +00:00
Martin Geubelle 7abeaf56b3 [REF] im_livechat, *: remove JSONP in favor of CORS
When embedding the livechat on an external website, we used to make JSONP calls.
As the support of JSONP calls has been dropped, we now use the CORS mechanism
instead.
2019-02-13 09:38:30 +00:00
Alexandre Kühn b117665c0d [FIX] mail: show pinned livechats on discuss app sidebar
Revision on https://github.com/odoo/odoo/commit/a669d89565ad9904d07886b00665e3940ce04665

The commit above changed the template of the Discuss app in order
to add some features, such as the channel "quick search".

The livechat module extends Discuss app to support livechats. However,
the commit above didn't update it correctly. As a result, pinned
livechats were not shown in the sidebar.

This commit fixes the issue, so pinned livechats should now always
be visible in the sidebar.

closes odoo/odoo#30738
2019-01-31 15:07:57 +00:00
Jeremy Kersten a172e4ab77 [FIX] im_livechat: typo 2019-01-23 16:27:24 +00:00
Christophe Simonis 8aa8548d8a [MERGE] forward port branch 12.0 up to 3e4138deaa
closes odoo/odoo#30045
2019-01-09 15:56:53 +00:00
Alexandre Kühn a669d89565 [IMP] im_livechat, mail: quick search when several channels
Discuss sidebar now shows a quick search when there are
at least 20 channels or DMs or Livechats that are pinned.

Task-ID 1881001
2018-12-06 14:51:28 +00:00
Alexandre Kühn 7ad45a04e1 [IMP] im_livechat, mail: improved "is typing" notification
With this commit, the UI for "is typing..." notifications
has changed.

** before **:

In Discuss & chat windows, "is typing..." notification bar
at the bottom of the thread, inside the conversation.

** after **

In chat windows, animated '...' next to conversation name.
In Discuss, animated '...' next to conversation name in sidebar,
and text below the composer.

Task-ID 1881001
2018-12-06 14:51:28 +00:00
len-odoo 71ae0eac33 [FIX] im_livechat: fix table layout overflowing with long URL/words
Ignorant fools have been saying for more than a decade that <table> elements
should not be used for layout.
Once again, Odoo proves them wrong. You just need the right css.

opw 1914139

closes odoo/odoo#29498
2018-12-13 09:16:31 +00:00
David Beguin f513ee902c [IMP] im_livechat, website_livechat : add livechat username
To avoid that people know the complete name of the support members
(for privacy purpose), a username can be used.
Users have the opportunity to set and modify their username in
their user preferences.

If the username is not set, the complete name will still be used.

If the username is set, it is used for the discussion title, the
name of the message sender, the name of the team members in the
channel statistics. All of this, only in the livechat context.

Task ID : 1895998
Closes PR  #28283
2018-12-05 14:37:14 +00:00
David Beguin ce20c29f82 [IMP] website_livechat : show ratings per operators in channel stat webpage
This commit adds more precision about ratings per operators for a
specific channel. Only the operators that have been rated on the last 100
feedbacks have their statistics displayed. The other operators that did not
worked (or have not been rated) on the last 100 feedbacks are still displayed
but are flaged as 'Not rated yet', so we still can see who is working on this
channel.

Task ID : 1895998
Closes PR #28283
2018-12-05 14:37:13 +00:00
Géry Debongnie abf32b8b21 [REF] *: update js test suite to use helpers
This rev. introduces robust helpers to use in the JS tests suite to
interact with DOM and components, and starts using them (almost)
everywhere.

All the helpers are exposed though testUtils.js.

There are 2 kinds of helpers:

1. Assertions
-------------
 * assert.containsNone, containsN, containsOnce check that the DOM
   (or a specific part of the DOM) contains a `selector`. It
   generates a correct error message automatically.
    ex: assert.strictEqual(form.$('.o_form_editable'), 1, "msg");
        -> assert.containsOnce(form, '.o_form_editable');
 * assert.isVisible, isNotVisible check that the DOM has an element
   visible or not. They also check that the element is actually in
   the DOM (before most tests didn't verify this).
 * assert.hasClass, doesNotHaveClass, hasAttrVAlue, check specific
   properties of a DOM element, and also validate that it is
   applied on a single existing DOM element (before most tests
   didn't verify this).
    ex: assert.notOk(form.$('button').hasClass('btn-primary'));
       -> assert.doesNotHaveClass(form.$('button'), 'btn-primary');

2. Utilities
------------
The goal of the utilities is to centralize the definition of many
standard components and interactions, ensuring that when we
refactor the JS framework, we do not need to change all the tests.

Existing mock utilities (addMockEnvironment, intercept, path,
patchDate, unpatch and fieldsViewGet) are moved to
'testUtils.mock.*'.
Existing DOM utilities are moved to 'testUtils.dom.*'.
New dom utilities are created for opendDatePicker, click,
clickFirst and clickLast. Helper `click` verifies that there is
exactly 1 element visible in the DOM you click on, `clickFirst`
and `clickLast` verify that there are more than one element on the
DOM.
 ex: form.$('button').click();
     -> testUtils.dom.click(form.$('button'));

New Form utilities: (testUtils.form.*)
 clickEdit, clickSave, clickCreate, clickDiscard, all clicks on
 the control panel buttons of the form.
 `reload` reloads the form data.

New modal, graph, kanban and pivot utils (testUtils.pivot.*,
testUtils.kanban.*, etc.).

New fields utils: (testUtils.fields.*)
 * editInput, editSelect: allow to change the value of a field,
   using a selector to identify it. They validate that the input
   exists and trigger the change event automatically.
 * editAndTrigger: allow to modify a field and trigger specific
   events after the value change
 * many2one (testUtils.fields.many2one.*)
   clickOpenDropdown, clickHighlightedItem, clickItem,
   searchAndClickItem: use a field name instead of a selector and
   do all the complex mechanism to open, filter and highlight
   many2one fields.

Joint work with aab, dam, ged, mge, svs and vsc.
2018-11-19 11:24:28 +00:00
David Beguin 7ad1d35443 [IMP] im_livechat : adds some design improvements in form and list views
More and more people are using the Live Chat and complaining about it
because it's not user friendly. This commit modifies a bit the design
of the form and list view without changing the functionnality

Improves im_livechat.channel kanban cards

Improves the channel form view:
Introduce tabs to manage the different aspect of the channel :
Operators, Options, Widget, Rules

Improves the session tree view:
Sort by date desc, adds the number of messages per session
and replace the rating last value by his corresponding icon.

Improves livechat session form view:
Introduce a kanban view that list all the messages of the session

Improves livechat session rating view:
For congruence inside the module, renaming 'Resource' group By filter
into 'Code' as the rating resource_name in this case is the same as
the session code. So we use the same terms in this view and in reports

Task ID 1883227
2018-09-17 15:26:16 +02:00
Alexandre Kühn 4ee7a009f7 [FIX] im_livechat, mail: any thread window has an ID
Before this commit, only thread windows in the backend had the
method `getID`. However, it should also be the case for the thread
windows in the frontend (website livechat), as the template of any
thread window makes use of this method.
2018-09-12 15:02:22 +02:00