Commit Graph
552 Commits
Author SHA1 Message Date
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 6b2250b2d2 [FIX] mail: font-family of notification counter in systray
On firefox, the font-family of the counter was font-awesome instead of Roboto
because the counter was inside the <i> tag on which font-awesome rules applied.
This rev. simply moves the counter out of that <i> tag.
2015-10-16 15:52:01 +02:00
Géry Debongnie b8badd6263 [IMP] mail: various small ui improvements
including:
- decrease vertical spacing between user name and text
- decrease vertical spacing between messages
- align avatar width with first line of message
- bold channels more visible (color is actually white)
- decrease online status icon size and change its color
- hide the DM unpin icon, and show it only when hovering
- the add channel icons are less white
- offline user icon is now white
- the unpin icon is now visible when hovering on user name
- correctly display notifications in inbox
2015-10-16 15:52:00 +02:00
Aaron Bohy 4f9c9adf37 [FIX] mail: chatter: various fixes
- Add recipients as followers, and automatically refresh the follower's list
  (before this rev., one needed to reload the record to see the followes' list
  updated)
- Don't display needactions on chatter's messages
- Simplify buttons of suggested partner's dialog, as it should only offer two
  possibilities: Save or Cancel
- Replace unnecessary t-raw's by t-esc's
2015-10-07 15:09:33 +02:00
Aaron Bohy 8019c89ea8 [IMP] mail: prepare livechat integration
- Extract sub-templates for client action's sidebar to ease the livechat
  integration
- Handle livechat's channel_type and messages in chat manager
- Make scrollBottom work in the frontend
2015-10-06 16:24:28 +02:00
Aaron Bohy aab4ef752e [IMP] mail: thread: parameterize the display of messages' star
To allow hiding it in livechat windows on the website.
2015-10-06 16:24:09 +02:00
Aaron Bohy 212bbf1f7e [FIX] mail: thread: messages' date displayed in browser's timezone 2015-10-06 16:23:56 +02:00
Aaron Bohy 0d91339b7b [IMP] mail: increase needaction counter on new message notification
At least, when someone mentions a user in a message posted in a channel, a
notification is sent by the server that a new message just arrived in that
channel. Client side, we then decide whether or not this message should appear
in the Inbox as well. In the positive case, we can increase the needaction
counter.

Problem remains for messages sent from chatters and by using the mail icon in
the systray, as for those ones, no notification at all is sent by the server.
2015-10-01 14:00:20 +02:00
Géry Debongnie 2a5f07e0b9 [REF] mail: last part of the chat refactoring (client side)
Removal of old files and update of assets and imports

Joint work with aab
2015-10-01 14:00:18 +02:00
Géry Debongnie 62be162877 [REF] mail: second part of the chat refactoring (client side)
Joint work with aab
2015-10-01 14:00:18 +02:00
Aaron Bohy 512287cac1 [REF] mail: first part of the chat refactoring (client side)
Joint work with ged
2015-10-01 14:00:18 +02:00
Jérome Maes 3304b31938 [FIX] im_livechat, website_mail : message author avatar visible
To display author avatar to public user, using the /web/image url with res.partner returns the placeholder since public doesn't have access. Using the url on mail.message will display the avatar according to the access right defined on res_model/res_id of mail.message. However this executes mush query to fetch the avatar image (1 per message, against 1 per partner).

Maybe this wasn't a bug, but since it is a regression, this deserves to be fixed ...
2015-10-01 12:41:18 +02:00
Thibault Delavallée 486aab5098 [FIX][BACK FROM TRASH] mail: chatter: read more / read less
Read more / less feature is back (and probably ugly). It has probably been
removed when refactoring the old chatter.

[FIX] tools: html shortening: encoding issue
2015-09-24 16:20:53 +02:00
Jérome Maes ba0d2060f8 [FIX] mail : suggested partner check on chatter composer.
Embedded the template core in a 'root widget tag' to make the selector 'this.$('.o_mail_chatter_compose_message_suggested_partners input:checked')'  works.
2015-09-18 11:50:40 +02:00
Jérome Maes 762cc2dbfa [FIX] mail : make follower subtype edition works
On follower list of a document, the user can (if access rights granted) edit the subtype subscription of other follower. This open a modal with checkboxes. This is commit make this feature works and adapt it to channel follower.
2015-09-14 10:16:21 +02:00
Jérome Maes 4bdfa3b6ca [IMP] mail : invite follower wizard have 2 appearances
The wizard is the same object, but to add channel as follower, some fields was not required. Via the 'mail_invite_follower_channel_only' context key, the unrelevant fields are hidden.
2015-09-04 15:55:46 +02:00
Aaron Bohy 2f125cd936 [FIX] mail: followers: correctly redirect to partner form view 2015-09-03 16:31:20 +02:00
Aaron Bohy c2f2a51831 [IMP] mail: load more messages: scrolling
- In the chat, when loading more messages, automatically scroll to the previous
oldest message instead of staying at the top;
- In the chat, don't use the event 'scrollTop < 50' to load more messages as
it won't work on mobile (all the webclient is scrolling, so the client action's
scrollTop will always be 0);
- Generalize the way to load more messages between chat and chatter by moving
the logic to the MailThreadMixin and creating a common template;
- Improve the style of this 'load more messages' button
2015-09-01 21:04:34 +02:00
Aaron Bohy d3df3268a9 [FIX] mail: partner invite dialog
Correctly send a notification on people invite
Also remove useless less rule
2015-09-01 21:04:34 +02:00
Aaron Bohy 9b14aa4648 [IMP] mail: mail_thread layout 2015-09-01 21:04:33 +02:00
Aaron Bohy ad39752093 [REF] mail: chatter: followers
Integration in the new design
DOM simplification
LESS refactoring
JS lint
Subtypes edition: fix edition in the modal and style it
2015-09-01 21:04:32 +02:00
Jérome Maes 223143bd97 [FIX] mail_channel, mail : various
mail_channel: call create with mail_create_nosubscribe=True to not subrscribe creator as follower,
since channel is not a mail thread (channel followers make no sense)

mail : adaptation with new chm controller for attachment, and remove author_ avatar from message format
2015-09-01 21:04:31 +02:00
Aaron Bohy 0d7083f766 [REF] mail: chatter
DOM and LESS simplification
New design integration
2015-09-01 21:04:29 +02:00
Aaron Bohy fead298d46 [FIX] mail: don't use deprecated controllers for attachments
deprecated since 6baf611df1

Also fix path do mimetypes, now located in web.
2015-09-01 20:58:13 +02:00
Aaron Bohy af3f652739 [REF] mail: mail thread
- DOM simplification
- LESS refactoring
- Unused code removal
- Integration in new design
- Fix a bug when trying to scroll the the last seen message in an empty channel
 (bug was due to the assumption that an empty jQuery element equals false,
 which is wrong)
2015-09-01 20:58:12 +02:00
Aaron Bohy f0dfe87fa7 [IMP] mail: ControlPanel elements: buttons and sidebar
Put 'More' actions in the Sidebar
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
Aaron Bohy a0cbf891af [REM] *: remove chat menu and timeline view 2015-09-01 20:57:13 +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 d3279983c8 [IMP] mail : add '@' mention feature
When composing a message (on client action, or chatter) if the user type '@', he will be able to tag partner, like facebook do. The mentionned partner are recipient of the message, even if there are not follower of the document. This message is a needaction for them.
2015-09-01 20:16:09 +02:00
Jérome Maes 449f254638 [REF] mail : include real time, and replace Timeline features
This commit add instant messaging features in mail module to make it a real team collaboration tool. Lots of these new features will replace Timeleine view (which is not removed in this commit). Many files have been moved, split or created for a better structure.

- My Channels : A user can be member of channel (mail.channel). These are discussion group, but also an aggregate of notification. Setting a channel as document follower, it will receive all the message (of the chatter) in real time, as information stream.

- A new Inbox : this aims to replace the timeline view. The user will see its channels grouped by 'slot', and receive the message in real time. Jump to the form view, invite people, create private discussion group, talk directly to another employee, ... are the main features. Your message can still be starred. The 'Inbox' will only contain your needaction.

- Needaction concept : a needaction is a message calling you to do something. If you follow a document as a person, the posted message will be 'needaction' for you. It can also be a message where you are mention with a '@my_name' (this feature is not added in this commit).

- The chatter doesn't change so much. It still allow you to see the discussion about the document, to star some message, and treat your needaction.

- Chat : the only way to have a minified conversation is from the Inbox Client Action. It allow you to keep an eye on a channel when working on document.

- Compose Message : it is now common to the Inbox, and the chatter. It offers shortcode substitution, attachments management, and optional subtype.

- UI : the chat window has been clean, they have a new look now.

To do so,
- Chatter code have been completely rewrite, independently of timeline view
- Add 'bus' as mail dependency, to insure real time
- A mail.message is broadcasted on the bus channel (db, mail.channel, channel_id), and a channel header on (db, res.partner, partner_id)
- Extracting mail_thread mixin used for Chatter and ChatMailThread (Inbox client action). This uniformize the programming structure with the server side
- Clean CSS style and use LESS instead of CSS
- Define a new messafe format (message_format method in mail_message.py), compatible with fetching and broadcasting
- Apply guideline coding conventions

This commit also break the module im_livechat, since im_chat models don't exists anymore and will be fixed in the next commit.

Thanks to Thibault Delavallee (tde) for the long debates and precious advices, Richard Mathot (rim) for the support, Simon Lejeune (sle) for the client action layout, and the Usability Team (apr, lle, bst yti) for the long testing.

Conflicts:
	addons/mail/models/mail_thread.py
2015-09-01 20:16:09 +02:00
Jérome Maes 4af9631072 [MOV] mail, im_chat : move files and code from im_chat to mail and bus
- im_chat.session will be replaced by mail.channel
- im_chat.shortode is renamed into mail.shortcode
- im_chat.presence is moved to bus module
- js and controller code is moved from im_chat to mail module

This commit only move files, and modify manifests, bundles, ... The code will be adapt in the next commits.
2015-09-01 20:16:08 +02:00
Christophe Matthieu d4bae06d08 [IMP] web: use css to display attachment mimetype
Widgets and website display images or display the type with icon like pdf, doc...
2015-08-21 22:06:52 +02:00
Christophe Matthieu 6baf611df1 [IMP] web: create generic controller '/web/content' and '/web/image'
Replace deprecate controllers like /web/binary/image, /web/binary/saveas...
Use ETag for all content with 'unique' option to cache the content if the content is never changed.
2015-08-21 22:06:52 +02:00
Thibault Delavallée 88b8cd0587 [REF] mail: model update for NewChatter
Main changes :
- mail.notification model is removed. People do not receive notifications
anymore. Instead two ways of following documents exist
  - using a channel; messages will be displayed on the channel itself
  in a near future commit
  - following with its partner; messages will all be considered as
  needaction, using a new m2m table. People should receive less
  needaction messages by following less records by themselves.
There is no more read / unread state anymore. Instead only needaction
messages are considered. Todo (Favorites) messages still exist, and are
stores on a new m2m table instead of using decorated notifciations.
- the main filter for documents is not message_unread anymore, but
message_needaction. A lot of views and filters have been updated
accordingly.
- the vote feature has been removed
2015-08-21 12:11:56 +02:00
Thibault Delavallée e6f038a821 [REF] mail: mail_thread: followers update
Followers can now be partners or channels. Partners following a document
will receive needaction, as previously. However people can follow documents
through channels. Members of a channel are able to listen to a stream
of messages using the channel. Those messages do not create needaction
messages. It is therefore possible to follow documents without receiving
too much notifications. For interesting documents subscribing with its
partner will create notification.

message_follower_ids fields is udpated. It is now a many2many to
mail.followers, not to res.partner anymore. A subscription can be either
a partner (partner_id) or a channel (channel_id).

Some access rules have been updated accordingly.
2015-08-21 12:11:56 +02:00
Christophe Simonis 2cf91d16a5 [MERGE] forward port of branch saas-6 up to 63e92cb 2015-07-22 16:17:54 +02:00
Thibault Delavallée 1c38e61c35 [REM] mail, hr: removed suggested groups / suggested employees feature.
Removed fields and code related to the display of groups and employee
suggestions. This impacts notably the model of res.users in mail and
hr.
2015-07-09 10:09:10 +02:00
Pankaj Joshi 03592e1c73 [FIX] account, mail, web : replaced broken glyphicons with font-awesome icons and updated css/scss file accordingly 2015-07-08 17:11:18 +02:00
Christophe Simonis fe92deaa1d [MERGE] forward port of branch 8.0 up to 2de301d 2015-07-07 18:13:57 +02:00
Goffin Simon 3062b66d21 [FIX] mail: unknown icon
When the attachment type is not defined, the icon used must be unknown.png

closes#7336
2015-07-03 11:35:31 +02:00
Thibault Delavallée 9cd9aaaa17 [IMP] mail: new internal-only subtype feature.
Starting from now, subtypes can be internal. This means that only employees
(group_user members) can see the messages with this subtype. This feature
replaces and enhances the 'log a note = no subtype = internal only'
feature.

Public and portal users cannot see internal messages. This allows to have
subtypes and a follow mechanism that works for employees and is not
visible for external people.

Its first use will be for Crm Activities, allowing to have custom
subtypes visible only for salesman and not send to the customer.
2015-07-01 12:52:52 +02:00
Pankaj Joshi 98d0e3cc4b [IMP] updated icon classes which are renamed in font-awesome v4.2 and removed useless icon-* classes of old font-awesome 2015-06-08 12:52:29 +02:00
Thibault Delavallée ea1ba871a4 [FIX] mail: fixed followers widget on project/sales team/department.
Displaying several kind of subtypes crashed due to missing classes
and wrong code.
2015-05-28 12:21:47 +02:00
Richard Mathot e37887818e [TYPO] mail: A Dance with Typos 2015-05-22 15:17:28 +02:00
Valerie Pirenne c24332e6da [IMP][ADD] mail, various: timeline view.
This commit introduces a new view type, the timeline view. This view is
intended to display messages like the previous chatter. This is now a view
like the form or list view. Like other views it will be possible to have
custom templates for some specific needs, allowing customization.

[IMP] mail: the value tracking is modified. Previously messages were created
containing the modified values. Those values are now stored, using a new
model mail.tracking.value. The message body is dynamically build based on
the values. Tests have been updated.

This version is temporary. Indeed two main modifications will come in a short
future :

 - the new design will improve the display
 - the slack mode will change the way the Inbox and notifications are managed

All glory to the Hypnotoad.

Special thanks to Valerie Pirenne (vpi), Jerome Maes (jem) and Richat Mathot
(rim) that did not code but said a lot of things. Martin Trigaux (mat) did
nothing, a bit like for the slides modules, but he is busy sending emails.
2015-05-21 12:10:25 +02:00
Thibault Delavallée 4b122ad41d [MIGR] mail: migration to the new API 2015-04-27 10:36:15 +02:00
Aaron Bohy 151c90743e [IMP] Web et al.: unique main ControlPanel
A unique main ControlPanel is instantiated by the ActionManager and it
is updated each time the state changes (i.e. when an action is performed
on the ActionManager or when switch_mode() is called on the ViewManager).

Introduction of State classes to facilitate the way of restoring
previously rendered states in ControlPanel. The notion of widgets
previously used in the ActionManager is now encapsulated in the notion
of states.

The search() function has been moved from ControlPanel to ViewManager as
it makes more sense like this.

The ViewManager doesn't have the reference to the ControlPanel but
rather communicate with it through a dedicated bus.

Some refactoring has been done on the ControlPanel as well so that it
doesn't need to know the ActionManager and the current Action anymore
(it communicates with the AM with events, and it updates itself using
information passed in arguments).

Improves the way the ViewManager requests the ControlPanel to
instantiate a SearchView, and how it waits for this SearchView to be
corretly loaded.

Move back the views logic to the ViewManager which directly asks
the ControlPanel to render the buttons and switch-buttons areas with
the views passed in arguments.

Removes option replace_breadcrumb in push_state() of ActionManager as it
is not used.

Side changes:
* Account: account_widget.js:
    Adapt code to retrieve the current state of the ActionManager.
    Required due to the introduction of State classes that encapsulate
    the notions of widgets and inner_widget in the ActionManager.
* Board: dashboard.js:
    Some refactoring to adapt the code according to the new Widgets
    structure. Several dependencies (e.g. searchview, action) were
    unnecessary. Do not append the "add to dashboard" option to the
    Favorite menu if there is no ViewManager available (e.g. in
    Messaging) instead of hidding it with a CSS rule, as a ViewManager
    required to retrieve the active_view.
* Google_spreadsheet: search.js:
    Change the way to retrieve the list_view_id s.t. it does not rely on
    parent of the SearchView anymore.
* Web: search.js:
    Change the way to retrieve the title in search.js for Favorites s.t.
    it does not rely on the parent of the SearchView anymore. Doing so,
    the ControlPanel does not need the title attribute anymore.
2015-03-20 16:18:33 +01:00
Aaron Bohy 53a9f6c081 [IMP] Web et al.: ControlPanel extracted from ViewManager
The ControlPanel is still instantiated by the ViewManager.

Changes details:
* web: views.js:
    Code related to views header is extracted from the ViewManager
    to a new Widget named ControlPanel.

    Also uses the headless flag to tell the inner view not to put
    its buttons (use case: kanban) or pager (use case: list) in the
    header as it is hidden.
* web: view_form.js, base.xml:
    Uses the headless flag at initialization of the One2ManyViewManager
    widget instead of extending the ViewManager template (which doesn't
    handle the header anymore).

* web: view_list.js:
    Test on this.options.$pager instead of this.options.$buttons
    when dealing with pager.

    Note: the behavior for list view is unchanged and has a bug.
    If there are more then 80 records to display, only the 80th
    first are display, and as there is no pager, there is no way
    to see the remaining ones. A fix for this would be to use a
    light ControlPanel in One2Many views as well. With this,
    there won't be duplicated .oe-'view'-buttons/sidebar/pager
    anymore.

* web: view_graph.js, view_pivot.js:
    Only render buttons in non-headless mode

* web_dashboard: dashboard.js:
    Fix some references that were broken with ControlPanel extraction

* web_view_editor: web_view_editor.js:
    Extend ControlPanel instead of ViewManager

* Changes in selector of ControlPanel elements in several addons:
    * base_import
    * mail
    * web
2015-03-20 16:17:06 +01:00
Christophe Simonis aec02cb493 [MERGE] forward port of branch 8.0 up to d350f5b 2015-02-20 18:16:01 +01:00