summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/xml/chatter.xml
AgeCommit message (Collapse)Author
2019-03-28[IMP] mail: add show more button on partner suggestion.XavierDo
When sending a message from chatter, a list of suggested partners appears on the top of the text area. With the previous commit, cc will be added to this list. This commit adds a show more/show less button in case there is more than 3 suggested recipients to display. Task: 1925001
2019-02-19[FIX] mail: chatter attachments without threadThanh Dodeur
This fix prevents the chatter and attachment box from assuming that there is a mail_thread on the record; Reason: if a chatter is set on a record that doesn't inherit mail_thread, the attachment box will generate errors. closes odoo/odoo#31206
2019-01-28[IMP] mail: adds delete and upload to chatterThanh Dodeur
backport of 73d9b9588f24788766c66aacd69ed436bb0223f4 This commit adds the ability to upload and delete attachments from the chatter. closes odoo/odoo#30636
2018-10-18[FIX] mail: auto-follow on message postAlexandre Kühn
Before this commit, there was the following issue in the chatter: - on document with customer field set; - open the composer; - post a message with suggested partner checkbox set; => the partner is not added as a follower of the document This was caused by a typo when refactoring the JS of the module mail. Task-ID 1896010 Closes #27864 closes odoo/odoo#27932
2018-09-13[IMP] mail: new attachment button in the chatterThanhDodeurOdoo
- Added a new button to the chatter that displays the amount of attachments on the current record and when clicked, all the attachments attached to the current record - added mail.FormView (includes), used by the chatter attachment button to fetch the field value of attachment_count. - added a computed field "attachment_count" to mail.thread that contains the amount of attachment attached to the record. - changed the followers div, it is now sharing a "right side" area with the attachment button. task: 1860031
2018-07-27[REF] web, *: BS4, use custom BS4 checkbox everywhereqsm-odoo
Before this commit, Odoo used checkboxes in three different ways: - A simple <input type="checkbox"/>, mainly in the frontend. The style is browser dependant. - Same as above but with the BS3, checkbox structure. The style is still the same, but the alignement is supposed to be better (which is not always the case). - The Odoo official structure: ``` <div class="o_checkbox"> <input type="checkbox"/> <span/> </div> ``` which allows to have a cross-browser checkbox style and correct alignements. The goal after this commit is to only use the BS4 *custom* checkbox structure to achieve the same goal as our official structure (and remove that one): ``` <div class="custom-control custom-checkbox"> <input type="checkbox" class="custom-control-input" id="customCheck1"> <label class="custom-control-label" for="customCheck1">...</label> </div> ``` /!\ Labels are now required (use a zero-width space if necessary)
2018-07-27[REF] web, mail: get rid of the btn-icon classqsm-odoo
That was pretty useless, better use the btn-secondary class and add particular rules to `.btn.fa` if necessary.
2018-07-27[REF] *: BS4, remove the use of btn-smqsm-odoo
Odoo made the bad choice of using the 'btn-sm' class for every button instead of configuring the padding for default 'btn' to be smaller. In BS4, the style of btn-sm is actually more complex, lowering the font-size too. Also, btn-xs was removed so we would not have the possibility to display smaller button than our default ones. This commit removes btn-sm wherever it was used. Unfortunately, this might remove it at some places where it made sense but this can be restored in a second time.
2018-07-19[IMP] mail, *: template rendering with abstract thread, adapt thread ↵Alexandre Kühn
instantiation, thread `getMessages`/`fetchMessages`, and create mode document thread. * = im_livechat, im_support - thread widget now uses abstract thread in `render` method - thread models have their `init` parameters changed, so that the parent may be optional - reworked 'creating a new record...' in chatter in create mode: > new model CreateModeDocumentThread, which basically is a fake document thread with a fake message for its rendering in create mode of the chatter > special rendering method of thread_widget for such case: `renderChatterCreateMode` - renamed thread methods previously named `getMessages` to `fetchMessages`: > in order to not conflict with `getMessages`, used for rendering > now, `getMessages` always get messages that are locally, while `fetchMessages` may fetch messages. TODO: - special thread model for im_livechat (rendering is broken ATM)
2018-07-02[REF] mail: JS mail refactoringAlexandre Kühn
---------------------- Summary ---------------------- The purpose of this commit is to improve the JS code of the `mail` module. It applies the new coding guidelines and makes some changes on the design of some modules, such as the old ChatManager module. Here is a short summary of the changes that have been made: 1. New coding guidelines - snake_case to camelCase - prefix private attributes and methods with '_' - jsdoc on most methods - one class per module 2. Rename/Merge some classes - 'chat manager' becomes 'mail manager' (internal) and 'mail service' (external) - 'chat window manager' is now included in mail manager - 'thread' widget now named 'thread widget' 3. New model abstraction for mail objects: - modules 'mail.model.*' - modeling: 0..1 0..1 * * ThreadWindow <------> Thread <-------> Message / \ / \ Thread With Cache Document Thread / | \ / | \ Mailbox Channel Support Channel | | DM - Thread: the superclass of threads. - ThreadWindow: the window component of a thread. - Message: mail objects representing messages. - Thread With Cache: threads that can be used with search view (Discuss app compatible). - Document Thread: represents the thread part of a chatter. - Mailbox: represents what was previously called 'static' channel, e.g. 'Inbox'. - Channel: mail objects representing channels, including livechat. - DM: special kind of Channel for 1:1 communication in the backend. - Support Channel: special channel for im_support module. This new modeling approach let us easily add features on all threads, such as the possibility to put any thread in a small window. ---------------------- Known issues ---------------------- [Already Present in Master] 1. When the Discuss app is in the background with 'Inbox' as the selected Thread, when clicking on a document thread preview in the messaging menu of the systray, the rainbow man appears. 2. When a document with the chatter is in the background, when receiving an inbox notification from this document thread, the document thread is automatically marked as read, which removes the notification right away. 3. Sometimes, opening a DM window from the "blank" thread window does not work. 4. Reply-to feature on Inbox is not working: no message is sent in the document thread. 5. On the first login of admin user with demo data, the inbox counter is wrong (it displays 6, instead of 3). Explanation after investigation: > On page load, it fetches the correct number of Inbox messages (3), but the server notifies of 3 needaction messages right away, so it wrongly assumes these are new needaction messages. > Not possible for web client to detect that these messages should not increment the Inbox counter while keeping same API. 6. Notifications for new document thread messages only work when the user sets 'handle with Odoo' for the Notification Management in the preferences. > due to notifications on the longpoll bus for document thread messages that come from needaction notifications. > requires server-side changes to send notification on the longpoll bus to mentionned user. [New] 7. When receiving a message on a unjoined channel, thread window flickers ('open' > 'close' > 'open') Explanation after investigation: > JS logic: a) On auto-join, ask server to join the channel and get channel infos. b) The info tells the channel is not detached, but JS code makes decision to detach it, and tells server the channel is now detached. c) From (a), server notifies on longpoll bus the state of channel, which is not detached. The web client thinks that the window state of the channel has been changed somewhere else, and the channel is now closed. d) From (b), server notifies on longpoll bus the state of channel, which is detached. The web client opens the thread window of this channel. > The flicker didn't occur before refactoring because the web client was only updating the model of channel when it receives the longpoll notification. > Server behaviour on 1st longpoll notification is necessary for cross-tab synchronization for channel window state. > New design implies that model and view should be synchronized, hence the issue now. > Solution: remove server-side thread window synchronization and replace with client-side synchronization. ---------------------- Hacks ---------------------- The module `im_livechat` now uses mail objects that are compatible with Message and Window objects: Modeling for messages: AbstractMessage / \ / \ LivechatMessage Message - AbstractMessage: message compatible with the thread widget. - LivechatMessage: message used by im_livechat. - Message: message used with the mail manager. Modeling for thread windows: AbstractThreadWindow / \ / \ LivechatWindow ThreadWindow - AbstractThreadWindow: behaviour share between all types of thread windows. - LivechatWindow: window used by im_livechat. - ThreadWindow: window used with mail_manager. The reason for these hacks are twofold: 1. Use the thread widget in the frontend and livechat external lib bundles. 2. Do not have a dependency with the mail manager in the frontend and external lib bundles.
2018-06-22[IMP] Improve compatibility with screen readers (accessibility) (#24574)kujiu
Today, Odoo is really tricky to use without seeing the screen, it must be improved to be usable. This PR forbid to use labels without a "for" attribute, add some title, rule and aria attributes in HTML. With that, Odoo will be fully usable with a screen reader. * [IMP] Labels must have a for attribute. Improve accessibility. * [IMP] Better error message when trying to read a missing cached value * [FIX] Add some aria-label and title attributes for screen readers. * [FIX] Template name is not included in the error message in case of SyntaxError in QWeb * [FIX] Improve the Tour failed at step error message to be more explicit. * [IMP] Add aria-labels * [FIX] Add missing aria-label on failing test * [IMP] aria-hidden means hidden. Fix all bad aria-hidden and hide aria-hidden for all. * [IMP] Color names on kanban views and many2many tags * [IMP] Add some checks on views for accessibility. * [IMP] Add `alt` attribute on `img` tags. * [IMP] Add aria-label and title on non-described icons * [IMP] Add button role to widgets with btn class * [IMP] Translate aria and formatted attributes. * [IMP] Remove wrong aria-labelledby * [IMP] Add menu role on dropdowns * [IMP] Buttons must be focusable * [IMP] Add aria attributes on progress bars * [IMP] Improve accessibility of basic widgets * [IMP] Change main layout to more semantic tags * [IMP] Add menuitem role when missing * [IMP] Remove wrong role='presentation' * [IMP] Improve accessibility of tab panels * [IMP] Add aria-invalid on invalid fields * [IMP] Add aria-sort on ordered columns * [IMP] Add role on alerts * [IMP] Use dialog role, header, main and footer tags for modals * [IMP] Add labels on o_status * [IMP] Improve accessibility of kanban view with feeds and articles * [IMP] Add alerts in case of new messages * [IMP] Add widget, navigation or img role to aria-labelled items
2018-01-17[IMP] mail: chatter creation message in formviewAlexandre Kühn
Before this commit, when we create a new object (e.g. task, product, ...), the part of the form for the chatter was blank. After this commit, it displays the chatter with a single temporary message 'Creating a new record...' This message is only visible by the user that is creating the task, and goes away when saving the newly created task. Any interaction with the chatter (buttons and widgets at the top of the chatter, including the message itself) are disabled, so that no interaction from the user is possible.
2017-09-29[FIX] mail: make "Schedule activity" text smaller in mobileqsm-odoo
2017-09-20[FIX] mail: properly style suggested partner checkboxes in chatterqsm-odoo
2017-09-18[FIX] mail: Fix typo in mail chatterMonish Soni
2017-09-05[REF] mail: introduce new chatter/discuss designstefanorigano
- Improve overall design - Better use of UI colours - Replace planned activities icon - Vertically align kanban icons - Remove the 'bell shtcut' and followers caret - Use a mixin to style the chatter (inline, not inline, compact)
2017-04-20[IMP] mail: rename schedule an activity buttonThibault Delavallée
Zizisse uzabiliti.
2017-04-11[REF] web, *: redesign all JS viewsGéry Debongnie
This commit introduce a full redesign of all JS views. We started basically from scratch. The goal was to unify all the various views under a common framework, to make them testable, to make then usable in different conditions (in studio, or in the frontend), and to make our lives easier. Some important points are: - we introduced new coding guidelines (camelCase, 80 chars width, ...) - we have a brand new testing framework (still QUnit based) - kanban view moved to the web addon - calendar view (formerly web_calender) moved to web as well - the tree view was removed - all new code should be documented We hope that this code is the start of a new era for the Odoo web client, we want to have a high quality codebase, well documented, well tested, well designed. Work done by the framework team: mostly aab, ged, chm, dmo, qsm
2016-12-21[IMP] mail: add activities allowing to define next actions on various modelsRavi Gadhia
This commit introduces generic activities to use in your addons. Activities are actions user have to take on a document like making a phonecall or organizing a meeting. Activities come with the mail module as they are integrated in the Chatter but are not bundled with mail.thread. New models are * mail.activity.type: used to categorize activities. Each type is a different kind of activity e.g. call, mail, meeting. An activity can be generic i.e. available for all models using activities; or specific to a model in which case res_model_id field should be used. * mail.activity: an actual activity to perform. Activities are linked to documents using res_id and res_model_id fields. Activities have a deadline that can be used in kanban view to display a status. Once done activities are unlinked and a message is posted. This message has a new activity_type_id field that indicates the activity linked to the message. This commit introduces a mail.activity mixin to use in various addons that enables the activities feature. It works like the mail.thread mixin. It defines a activity_ids one2many field toward activities using res_id and res_model_id. Various related / computed fields are also added to have a global status of activities on documents. Activities come with a new JS widget for the form view. It is integrated in the Chatter widget although it is a separate widget. It displays activities linked to the current record and allow to schedule, edit and mark done activities. Use widget="mail_activity" on activity_ids field in form view to use it. There is also a kanban widget defined. It defines a small widget to integrate in kanban vignettes. It allow to manage activities directly from the kanban view. Use widget="kanban_activity" on activitiy_ids field in kanban view to use it. Next commits will aim at integrating activities inside main Odoo addons. Thanks to R&D India for their work and testing on this task. Thanks to belgian Usabiliteam for reviewing and testing it. Thanks to @jem-odoo for the final review. May his soul lie in peace with the trumpets of paradise.
2016-08-23[IMP] mail: Don't display '(no email address)' for suggested partnersYannick Tivisse
remove the '(no email address)' when no address email. Because when you send the message, a popup appears with the email field required.
2016-05-04[REF] mail,web: unique Spinner template in base.xmlAaron Bohy
2016-05-04[IMP] mail: chatter: better sync between chatter and form viewAaron Bohy
When switching between records, the displayed thread was still the one of the previous records until the messages of the current record were loaded, which could be confusing. Moreover, when quickly browsing records using the pager, it could happen that the resulting displayed thread wasn't the one of the displayed record (if we visited a record with a long thread history, the RPC to load that history might return after the one of the current record). This commit aims to always synchronize the displayed thread with the current record, by - directly hide the previous thread when browsing records - displaying a spinner after 1s to indicate that the thread is loading and (possibly) not empty - ensure to only render the thread of the last visited record
2016-04-19[REM] mail: subtype dropdown in chatterMansi Gandhi
The possibility to choose a subtype when logging a note was added with the activities mechanism in CRM. However as the user should not use the chatter but a dedicated wizard in order to do this, the dropdown is removed. The internal subtype mechanism is kept. Only the possibility to log something else than a note through the chatter UI has been removed.
2016-03-02[REF] mail: code refactoringAaron Bohy
- extended_chat_window feature in its own files: as it is only available in the backend, we don't want it in the frontend assets (which contain the 'basic' chat_window) - move followers feature in its own files - creation of the 'mail.utils' module in utils.js - creation of systray.less to define the style of the mail item and dropdown in the navbar - use of chat_manager's search_partner function in PartnerInviteDialog - some code linting
2016-03-02[IMP] mail: follower: remove an RPC when user is followerAaron Bohy
When loading a form_view with the follower widgets, an RPC was performed to get the followers info (name, email...), and if the user is one of the followers, a second RPC was done to retrieve the subtypes. This rev. batches those two RPCs. Also simplifies read_subscription_data() as it is now always called with a follower_id. A few code refactoring as well.
2016-02-01[FIX] mail: set tabindex of composer's elementsAaron Bohy
Also focus the subject's input by default in extended composer.
2016-01-08[FIX] mail: followers: subtypes: correctly notify channelsAaron Bohy
Except for messages, activities on a document like internal notes posted trigger notifications to partners and channels following the corresponding activity's subtype. Rev. 69ed801 rightly re-introduces a filter on followers to prevent notifying more partners than necessary. Unfortunately, this filter doesn't take into account channels, which are thus automatically removed from followers to notify, whatever the subtypes they follow, e.g. internal notes on a document don't appear in channels following the 'Note' subtype of this document. This commit makes sure that channels always pass through that filter, but warns users that public channels should probably not following internal subtypes. Also makes the edit subtypes dialog html valid (li's must be inside, e.g., ul).
2015-11-27[FIX] mail: various improvements/fixesGéry Debongnie
- display appropriate message when no results are found in a search - don't display 'you have been invited' notif when creating private channel - correctly join when a user was invited in a public channel - display a message when a user join a channel through an invitation - don't display subject for message of type notification (still a mystery why it happens in test.odoo.com for channel of type mailing) - better heuristic on when to display message subject - tweak sidebar text color (slightly whiter) - add ... to the placeholder of the text area in the composer - invert send and icons for attach/smiley in composer - don't display 'read less' on expanded messages - exclude livechat channels from channel mention suggestions
2015-11-27[FIX] base,hr,mail: prefetch mention suggestionsAaron Bohy
The purpose of this commit is to improve the overall performance of the mention mechanism of the client action and chatter composer, by pre-fetching some data. First, the employees are fetched at chat initialization (basically, at web client initialization), if hr is installed. Second, when focusing on the composer of a channel, the members of this channel are fetched. In the case of a chatter, the members are already known as they are the followers of the document. When the user types a mention, we first display suggestions from the pre-fetched partners, and we only perform an RPC when there are no more result matching the search string. This RPC searches among user, and then partners if there aren't enough matches. A few side changes occurred: - auto_join set to True on user_ids field of res.partner to boost the query that searches partners that are users - the '/mail/read_followers' route now returns follower's email as well, as we need it for the mention; - a partner can now be mentionned several times in the same message; - mentionned partner previsualization has been removed, mainly because of the previous point, but also because it simplifies the code;
2015-11-12[FIX] mail: various small UI tweaks/fixesGéry Debongnie
- put the mentionned partners and the attachment above the composer instead of below - debounce some links in thread.js to prevent double loading views when double-clicking - readd the # in front of the channelname of the title of the client action - give the channel_id to the thread in a chat window, so it does not display the channel name everytime it displays a message - correctly close dm chat window when the dm channel is closed in the main sidebar - simplify the help messages when a channel is empty
2015-10-22[IMP] mail: composer: use textarea in client actionAaron Bohy
... allowing multi-line edition, like in the chatter. Shortcuts: - in the client action: ENTER sends, SHIFT+ENTER goes to newline - in the chatter: SHIFT+ENTER sends, ENTER goes to newline Don't use autosize anymore to resize the textarea according to its content as it didn't fit well within the flex layout of the client action ('height: auto' didn't increase the height of the flex-item with 'flex-grow: 0'). We perform the resizing ourselves instead.
2015-10-07[FIX] mail: chatter: various fixesAaron Bohy
- 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-01[REF] mail: first part of the chat refactoring (client side)Aaron Bohy
Joint work with ged