Commit Graph
87 Commits
Author SHA1 Message Date
Christophe Simonis a4b94012c2 [MERGE] forward port of branch saas-11 up to f43b206 2016-05-24 17:00:17 +02:00
Christophe Simonis f43b206970 [MERGE] forward port of branch saas-10 up to d35d8c3 2016-05-24 16:59:37 +02:00
Christophe Simonis d35d8c3fca [MERGE] forward port of branch saas-9 up to e5c2e6e 2016-05-24 16:40:53 +02:00
Nicolas Lempereur d4e7da6133 [IMP] im_livechat: don't auto-open on mobile
Currently on mobile, the livechat window would take all the viewport of
a small screen mobile browser. This combined with the "auto open"
feature can be desorienting: users could have only seen the "hello, how
may I help you ?" window and not know what to do or what is happening.

So this commit remove the "auto open" feature if user is on a too small
device (the user would thus have to click on "Have a Question").

closes #12148
opw-678012
2016-05-24 14:34:36 +02:00
Foram Shah 41d8b5c390 updated the description of 'im_livechat' 2016-05-10 15:24:45 +02:00
Aaron Bohy 790d84f78d [IMP] im_livechat,mail: mention in backend chat windows
The BasicComposer widget is now used in chat windows, which enables the mention
feature. This is only for the backend, as for the livechat windows in the
frontend, the composer is still a simple input.

Classname 'o_chat_input' has been renamed into 'o_chat_composer' (the root
classname of the basic composer) for uniformity in the JS and LESS code of
chat windows.
2016-05-03 10:34:40 +02:00
Fabien Pinckaers 4c8e908b49 [IMP] Speed up app switcher loading: 645k --> 137k lossless compression for all icons 2016-02-26 11:39:38 +01:00
Christophe Simonis 1231585df1 [MERGE] forward port of branch saas-9 up to 78d20b5 2016-01-27 12:27:01 +01:00
Aaron Bohy 16a3a4b7fe [FIX] im_livechat,mail: various livechat fixes
- prevent concurrent opening of the chat window
- take into account the placeholder value of the livechat session record
- don't send welcome message if empty
2016-01-25 15:47:25 +01:00
Géry Debongnie 8af3841cb2 [FIX] mail: prevent mail to rejoin a channel that we just left
sometimes, the web client receives unsubscribe notification and an extra
notification on that channel.  This is then followed by an attempt to
rejoin the channel that we just left.  This commit prevents that
situation to occur.

For that, it needs to know the notifications received by the bus in one
batch, not one at a time.
2016-01-20 14:41:34 +01:00
Aaron Bohy de9c2135a6 [FIX] im_livechat,mail: external lib: missing dependency
@navbar-height was used in chat_window.less since rev. 8397abd but wasn't
defined in the external_lib bundle (light bundle to embed im_livechat in
external pages).

This rev. also fixes some glitches of the chat window due to missing
font-awesome, and global rule 'box-sizing: border-box' on all elements.
2016-01-19 15:20:37 +01:00
Aaron Bohy c304e2ce95 [FIX] im_livechat: chat_window: scrollBottom() and feedback
The function scrollBottom has been removed at rev. 30c26d7 as the scroll logic
has been moved to the thread, to make it common for the client action and chat
windows.

Moreover, the o_chat_content div has been removed from the chat window layout
at the same commit, we thus now directly replace the thread's $el by the
feedback and fix less rules

Also adapt the behavior of the livechat's chat window as done for the backend
at 30c26d7:
  - scroll to bottom on message sent
  - increment unread messages counter if the chat window is folded or if the
    thread is not scrolled to bottom
  - reset the unread counter on scroll to bottom)
2016-01-14 14:49:58 +01:00
Xavier Morel 7f8fe10766 [REM] web: Proxy.load
Not really useful at this point, if we ever go down the path of embedded
web client we can probably make the relevant controllers CORS.
2016-01-11 11:32:18 +01:00
Aaron Bohy 3f370651c7 [FIX] im_livechat,mail: don't translate html data-type argument
as it is only there for a technical purpose (used in JS to bind event handlers)
2015-12-29 15:59:54 +01:00
Aaron Bohy 30003dbce3 [FIX] im_livechat,mail: various ui fixes/improvements
im_livechat:
  - feedback message wording
  - livechat_channel form view typo

mail:
  - channel form view: email_send field label wording and layout
  - notifications preview extended
  - client action mass mailing composer fine tuning
  - client action mass mailing channels tooltip
  - client action idle bullet color
2015-12-28 10:19:22 +01:00
Aaron Bohy d8605b7993 [FIX] im_livechat: matching rule in cache
The problem was that the matching rule was evaluated before sending the html
page, and the script was inserted in the page according to the matching rule
(it wasn't inserted if the rule was 'hide_button'). However, the matching rule
wasn't re-evaluated if the page was already in the cache. The page content thus
might depend on a matching rule computed for someone else in that case.

Rather than inserting the script according to the matching rule, we insert it
only if there is an operator available. We then ask for the matching rule in
the livechat widget, by RPC, and we reject its willStart deferred if the rule
says so. We also re-check for operator availability in the same RPC.
2015-12-24 12:59:46 +01:00
Aaron Bohy 0c92788d88 [FIX] im_livechat: various fixes
- use channel configuration for the auto_popup
- clear auto_popup timeout when chat open to prevent opening the chat twice
  if the user opens it himself before the end of the timeout
- don't send message when no feedback given
2015-12-16 15:48:43 +01:00
Aaron Bohy 17896a92da [FIX] mail: various ui improvements/fixes
* chat windows:
  - input was kicked out of the window on chrome 43
  - don't animate if folded by default (e.g. after a refresh)
  - width and height 100% like in the frontend
  - z-index to make sure that they are over bootstrap active btn,
    but below notifications, and modals

* chatter:
  - internal note: send button renammed to 'Log'
  - send button is the first button again
  - remove annoying form view widget's tooltip

* client action: focus on composer on channel change
2015-12-15 10:01:21 +01:00
Aaron Bohy 1029571c35 [FIX] im_livechat: various fixes
- Don't display livechat button if no operator available
- Livechat windows persistence through website pages
- Auto popup feature re-introduced (inadvertently removed at rev. f23f57cc)
- Operators that are 'away' are available, as 'away' means that the focus isn't
  on the Odoo tab for at least 10 minutes, but the user is still connected.
- Avoid duplicated messages when the visitor is a connected user
- Unfold livechat window on first 'close' click as the event is intercepted to
  ask the user feedback before actually closing the window
2015-12-15 10:01:20 +01:00
Géry Debongnie 4e6caf19a2 [FIX] im_livechat: style chat windows in im_livechat
They are hidden in mobile mode, but we don't want to deactivate chat
windows in website livechat.
2015-12-11 14:04:59 +01:00
Nicolas Martinelli 149aa2ffc1 [FIX] im_livechat: close window
If the user clicks twice on the 'x', the chat window is closed
2015-12-11 10:33:27 +01:00
Nicolas Martinelli c7b7094248 [IMP] im_livechat: allow to close chat without feedback
opw-658973
2015-12-11 08:39:49 +01:00
Aaron Bohy 3f1ef1f11d [FIX] im_livechat: prevent starting multiple poll
bus.poll() should be a private function, as it initializes a new longpolling.
Only bus.start_polling() should be called as it prevents running multiple
polls concurrently.

On the website, bus.poll() was called each time the user clicked on the
livechat button, blocking the whole UI if the user clicked 6 times in a row on
that button, as only 6 RPCs can be done concurrently.

A consequence of this fix is that the poll isn't restarted if the user opens
a new livechat session just after closing one, so the messages sent through
that session are delayed (~50 seconds). To circumvent this situation, we simply
don't restore the livechat button after closing a livechat session (the button
re-appears anyway at the next click, or after a refresh).
2015-12-07 16:32:28 +01:00
Géry Debongnie 7137891a8a [FIX] mail, im_livechat: correctly displayed message date
Messages are required to be displayed in a smarter way: relative to the
current date, if it's a recent message, or absolute if not.  This
commits rework most of the date processing code to comply with these
requirements.

Messages were preprocessed each time a thread is rendered, which is
stupid.  It should be preprocessed only when the message is created.
This was a small problem because livechat does not use the chat manager,
so a simplified version of the preprocessing had to be done.
2015-11-26 14:27:11 +01:00
Nicolas Lempereur 4424f301a6 [FIX] im_livechat: missing dependencies in im_livechat page
The Website Live Chat is supposed to appear following 3 ways outside of
the backend:

- in a singleton page with path /im_livechat/support/{id}

- in a page in which a code code snippet (with two script and a css
  bundle) has been inserted in the head section

- by installing the module "Website Live Support"

In the first both instances, including some less files and bootstrap
default variables is required which this commit do.

In the last instance these file should already be included in the
website and the additional assets required are inserted in the
website.assets_frontend bundle.

opw-654898
2015-11-24 13:02:47 +01:00
Aaron Bohy 5616027190 [FIX] im_livechat,mail: unread counter in chat windows
Synchronize the unread counter between chat windows, client action and the
actual value stored in DB. This adds robustness to the counter displayed in
chat window, and allows to synchronize the client action with the chat windows
when marking messages as read.
2015-11-23 16:29:08 +01:00
Géry Debongnie 6ae0309b99 [FIX] bus,mail,livechat: fix problem with multiple long polls
The bus was allowed to restart polling, client side, to allow the user
to directly receive messages in new channels.  This was only acceptable
as a temporary fix, the correct way to do this is to actually notify the
bus server side. This is even more urgent since the client was allowed
to keep multiple longpolls simultaneously, which degraded the experience
in some cases.
2015-10-16 15:52:01 +02:00
Aaron Bohy 2dfbaceaec [IMP] mail,im_livechat: client action sidebar: 'unsubcribe' cross
displayed for all channels
2015-10-16 15:52:01 +02:00
Aaron Bohy f23f57ccf4 [FIX] im_livechat: livechat restored after refactoring of mail
Refactoring of the livechat itself and integration in the new architecture of
mail since its large refactoring.

Joint work with ged
2015-10-06 16:24:47 +02:00
Géry Debongnie b47c2b955b [FIX] im_livechat: temporarily disable client code
This is done because of large mail refactoring and the need of quick release.
We will rewrite it asap.
2015-10-01 14:00:19 +02:00
Jérome Maes ea4dc68087 [FIX] im_livechat : clean cookie managment
Update the cookie after changing conversation state
Deleting the conversation cookie when closing the conversation window
Force open the conversation if a cookie is found (even if the state is closed)
2015-10-01 12:41:26 +02:00
Christophe Matthieu 7ffd1954e4 [FIX] im_livechat: display live chat button in one line 2015-09-25 16:06:21 +02:00
Jérome Maes 58c9530311 [FIX] im_livechat : fix session binding. Required to bind session on server url from livechat to male it work outside odoo server. In website_livechat, the web.session js namespace is redifined, and i'm still not sure this is a good idea 2015-09-01 21:04:33 +02:00
Jérome Maes 132e96accb [IMP] im_livechat : refactoring + improving performance by removing rpc call 2015-09-01 20:58:11 +02:00
Aaron Bohy 823ece2437 [FIX] mail,im_livechat: terminology: untoggle -> close 2015-09-01 20:58:08 +02:00
Jérome Maes 95b97d1010 [REF] im_livechat : refactoring, make it compatbile with the nw mail module, change reporting sql view (split them in 2), adapt view, ... 2015-09-01 20:16:09 +02:00
Jérome Maes 1d54858cbd [MOV] im_livechat : restructure the module according to the new mail module 2015-09-01 20:16:09 +02:00
Christophe Simonis 97073e2a73 [MERGE] forward port of branch saas-6 up to 51040b6 2015-07-28 13:56:16 +02:00
Christophe Simonis 9d6786bc43 [MERGE] forward port of branch 8.0 up to 5e6ec89 2015-07-27 14:56:49 +02:00
Nicolas Lempereur 74e52a9ce6 [FIX] im_livechat: hide livechat button when printing
related to opw-645011
2015-07-22 15:33:36 +02:00
Simon Lejeune 74d1e43a40 [ADD] many addons: add new icons
This commits adds icons for most applications.  They are
necessary for the home menu in the enterprise edition.
2015-06-18 12:58:18 +02:00
Christophe Simonis fe2b5f35a4 [MERGE] forward port of branch saas-6 up to bf1e999 2015-05-28 14:27:38 +02:00
Jérome Maes a80219e292 [MIG] bus, im_chat, im_livechat, website_livechat : migration to new API.
Migrate the models and controller to new API. Renaming xml id according to convention, renaming openerp tag into odoo tag. Add comment strings and documentations.
2015-04-28 17:04:16 +02:00
Jérome Maes 06fd9e3aa3 [FIX] im_livechat : the default welcome message should come from the operator
Now the livechat supports identified users. So multiple user can be in the user_ids of a session. The author of the 'welcome message' is more difficult to identify. If portal user connected, the 'welcome message' author was this portal user instead of the operator. Required to pass operator id in the context to avoid the same mistake with an operator as 'client' and operator as real operator.
2015-04-20 12:05:28 +02:00
Christophe Simonis a9471c43b9 [MERGE] forward port of branch saas-6 up to e941c0f 2015-04-17 15:33:00 +02:00
Jérome Maes eb5de33eac [FIX] im_livechat : add a cookie to prevent the automatic opening on a auto-popup page. Each time the page is refresh, the auto-popup was triggered, which can be very intrusive for users. The cookie remember the auto-popup is desactivate for an hour, for every page. The button stay displayed on page. 2015-03-31 13:19:16 +02:00
Christophe Simonis 2565aa60e0 [MERGE] forward port of branch saas-6 up to c2b4766 2015-03-25 19:14:46 +01:00
Jérome Maes 48971f57f4 [FIX] im_chat, im_livechat : split backend/frontend part of im_chat, refactor action binding for dropdown menu, redefine livechat bundle using new js module files, and correct the 'session' in im_livechat namespace. 2015-03-24 11:48:33 +01:00
Jérome Maes c6ff080e2b [FIX] im_livechat : send rating to the operator once the anonymous person close its conversation. 2015-03-23 14:49:23 +01:00
Géry Debongnie 4fdf74fe21 [IMP] web+addons: improvement to module system
The module system needs to know the dependencies of a given module
before executing the function.  This is why the dependencies were
defined once in an array, and then were described one more times in the
call to require.

But a trick can simplify this: the boot function can parse the string
representation of the module and extract the calls to require from it.
It is more work for the processor, but it leads to simpler module
definitions.
2015-03-18 09:23:37 +01:00