summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js/activity.js
AgeCommit message (Collapse)Author
2019-03-06[REF] mail: adapt code after jQuery updateVincent Schippefilt
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-02-11[MERGE] forward port branch saas-12.1 up to 93d736e905eChristophe Simonis
2019-02-08[FIX] mail: translate activity nameMartin Trigaux
This commit fixes two untranslated terms in the activity view. From the cohort view, when clicking on a cell to see details, the title was not translated (missing _t call). The content was not translated either as the language was not present in the context. 36d45175b087 was a first step to fix it but while self.record contained data, self.record.getContext() returns an empty dictionnary (no context is set in the cohort view). When computing the context, check that it is not empty, otherwise, fallback on the session context. opw-1936855 closes odoo/odoo#30942
2019-02-05[IMP] mail: improve usability of activitiesMohit Ghodasara
Purpose of the task is to improve the usability of activity types and activity scheduling. Another purpose is alto to protect some master data activity types by flagging them and preventing their deletion. Containing * make the activity type as master data so deletion will be prevented; * improve the usability of the activity type; * prevent the deletion of activity type which are used for automated activity; * change the usability of activity scheduling modal; This commit is linked to task ID 1907970 and PR #29257.
2019-02-04[MERGE] forward port branch saas-12.1 up to 4524ad06a8aChristophe Simonis
2019-01-29[MERGE] forward port branch saas-11.3 up to cd5c8a02f95Christophe Simonis
2019-01-29[MERGE] forward port branch 11.0 up to 36d96e01503Christophe Simonis
2019-01-25[FIX] mail: activity, crash when activity type is nulljev
When activity_type_id is null on an activity marking it as 'done and schedule schedule next' crashed OPW-1928989 closes odoo/odoo#30522
2019-01-17[IMP] mail: upload a file to mark activity as donejem-odoo
This commit introduces the "upload file" activity type category. For an activity of that time, uploading a file will mark the activity as done (and maybe create the forced next activities). This activity type is seen as a shortcut to upload a file with a reminder. Task-1915004 closes odoo/odoo#29861
2018-12-28[IMP] mail: Pass the session uid on activity renderersed-odoo
Purpose ======= We could want to retrieve the session user id when rendering the next activities on the chatter (For example in the new approvals module on the enterprise repository). At the same time, we used 'web.session' to retrieve this valued instead of 'self.getSession().uid' which is deprecated.
2018-09-20[FIX] mail: prevent redirect to app switcherXavierDo
Before this commit, trying to send or preview a mail from a kanban view was redirecting to the appswitcher.
2018-09-18[REF] mail: activities list, ‘mark as done’ sliding panelsri-odoo
Refactor ‘mark as done’ popup JS in order to use a sliding panel layout instead. Sliding panels are currently needed in kanban views, where activities are listed in a dropdown that can't handle popups because of CSS overflow and lack of space. Since this new system check for default bootstrap data-toggle attributes, it could be easily used elsewhere changing the buttons's data-toggle and providing the necessary container for the “mark as done” form.
2018-09-18[IMP] mail: add force_next on activity typeXavierDo
A new field on activity type allow to change the behaviour of mark done & schedule next: -marking as done will automatically schedule the next activity, based on the default_next_activity. -It should also be impossible to edit an activity when this flag is on. task: #1884521
2018-09-15[FIX] mail: adapt forward-ported code and test to BS4Christophe Simonis
2018-09-14[MERGE] forward port branch saas-11.4 up to 6c103589c15Christophe Simonis
2018-09-10[MERGE] forward port branch 11.0 up to c3ea0a78113Christophe Simonis
2018-09-10[FIX] mail: activity don't loose text of feedback popoverLucas Perais (lpe)
On an activity, click Mark as done, the popover pops over Now write some text in it, but click somewhere else, like to copy/paste something The popover looses focus, and your text disappears After this commit, we store the value of the popover when hiding it, then, when when showing back the popover, the value is reinjected OPW 1873999 closes #26315
2018-09-07[FIX] mail: improve activity view and fix activity feedbackXavierDo
-Improve no content helper on activity view -Update chatter after editing an activity un form view -Avoid context to appear as feedback When using call_button the context is set as an arg and will be catched by the kwargs of the called action. As for action_feedback, we can create a wrapper without kwargs used when calling this method from a button to avoid this problem. Another solution would be to change the call_button in order to give the context as a kwargs. Maybe a possible improvement for master. -Remove groupby from activity view group by has no effect on activity -Change cursor to pointer on record name in activity view Task: #1878184 PR: #26668
2018-08-20[IMP] mail: refactor activity.js and add some testXavierDo
activity.js was a little dirty with a lot of copy paste. Most of the common logic is now in a BasicModel. This commit also add some tests on activity view Co-authored-by: RomainLibert <rli@odoo.com>
2018-08-13[REF][FIX] mail, im_livechat: various improvements (JS)Alexandre Kühn
This commit makes a lot of small improvements of the JS of mail and related modules. A. Mail Manager --------------- im_support: - [REF] Slightly more robust way to determine a support message, so that it more reliably falls back on default kind of message (i.e. support channel UUID should be clearly set). mail: - [REF] Improved method names for readability purposes. Some examples: - `fetchFromServer` becomes `fetchMailStateFromServer` - `_initialize{*}` becomes `_update{*}FromServer` - `_isModerator` becomes `_isMyselfModerator` - [REF] Use 'template' pattern design to make Include on Mail Manager much more robust. In particular, the flow is always as follow: 1. Initialize internal state. 2. Listen on buses. 3. Fetch mail data from server. - [REF] Improved workflow for thread window workflow (Shorter & more readable). B. Mail Tests ------------- - [REF] Thread Window Tests crashes with clean message when there are some thread windows open before running the tests. C. (Model) Message ------------------ - [REF] Improved method names for readability purposes (e.g. `isAuthor` becomes `isMyselfAuthor`). D. (Model) Thread ----------------- - [REF] Improved `init` parameters on each kind of thread. - [REF] 'Thread With Cache' has been renamed to 'Searchable Thread': it embraces all kinds of threads that can be used with the search view. - [REF] 'DM' has been renamed to 'DM Chat' (for clarity). - [IMP] New Livechat model in the backend. - [REF] No more direct instances of the Channel class: public and private channels are now 'Multi-User' channels, while DM Chat and Livechat are 'Two-User' channels: This change has been made so that instances of classes always have direct classes as "leaf" in the Class modeling. It eases making changes to a certain model without being too constrained by another model. - [REF] As a consequence of above changed, the method `isChat` has been renamed to `isTwoUserThread`. This is to avoid confusion with the terminology 'chat', which is more like a shortcut for 'quick real- time conversation'. In other words, the property of 'chat' depends of the way to interact on a thread, not of the intrinsic type of the thread. Still, some parts have kept the terminology 'chat', such as in the systray messagin menu. - [IMP] Added `message_added` and `message_posted` hooks, which may be useful to easily hook on those events. E. Thread Widget ---------------- - [REF] Now uses a `mail.model.AbstractThread` for the rendering of a thread, instead of a list of `{mail.model.AbstractMessage}`. - [FIX] Stick thread scroll height to bottom on new rendering, if it was previously at the bottom of the thread. - [REF] Option ORDER has its meaning changed: it now refers to the chronological order of messages in the thread, in which DESC means 'from top to bottom', while ASC means 'from bottom to top'. - [REF] Improved doc on templates, in particular with the option `ORDER`. F. Thread Window ---------------- - [REF] Moved more logic to thread windows, which were previously in Mail Window Manager. - [REF] Now hides the thread widget attribute. So instead of `threadWindow.threadWidget.isAtBottom()`, it uses `threadWindow.isAtBottom()`. - [FIX] New received messages when not having focus on Odoo tab should always make the corresponding thread windows "passive" (i.e. windows that keep threads unread until click on them). - [FIX] Blank thread window (i.e. 'New message' TW) correctly opens Discuss with 'Inbox' when clicking on 'Expand' Button in the title - [FIX] Do not display the composer for channels with property 'mass-mailing' set in thread windows. G. (Website) Livechat --------------------- - [REF] Some `trigger` have been turned into `trigger_up`. - [REF] Some logic has been moved to models (e.g. `{im_livechat.model.WebsiteLivechat}`), from `{im_livechat.im_livechat.LivechatButton}`. - [FIX] New messages should be received in real-time. The longpolling was broken with a recent refactoring on bus service (6448420c5dd160470e465dee7729d19d8d5e7bab).
2018-08-10[IMP] mail: add activity viewXavierDo
A simple new view to easily display all activity on a model grouped by res_id and activity_type_id. Some action are possible like sending a mail template for all record having an activity with this activity type and present in the view (depends on the filter). The view use the Kanban activity view on cells. It could be a good idea to rename this widget to something like "DropdownActivityView" (maybe after the freeze) Task: #1870662 PR: #26272
2018-08-10[IMP] mail: add more powerfull delays on activity.XavierDo
It was possible to define a delay in days on activity type to reschedule next activity. It is now possible to specify a unit (days, weeks, months) and a starting point for the delay (as before, from the moment when the new activity is scheduled, but also after the deadline of the previous activity). We realy need to have all javascript action triggering a done and schedule next to call the python corresponding method on activities. A part of the work have been there but some cleaning could still be done in activity.js. Task: #1870662 PR: #26272
2018-08-10[IMP] mail: add feedback option to kanban activitiesRomainLibert
In the kanban view, there was no possibility to add a feedback when closing an activity this commit adds the same popover as the one we have in the form view. This commit also add the templates to this popover with the possible to directly send the template or open the composer. Task #1870662 Closes #26280
2018-08-06[IMP] mail: improve use of templates linked to activitiesThibault Delavallée
Purpose: Give the ability to people to directly sign (sic) an email template without opening the mail composer. Specifications * do not display 'email' in activity view: either there are emails and new display applies, either there aren't any and do not dispaly anything; * update display of template choice: https://www.awesomescreenshot.com/image/3531694/7f6ac0250009599089ec62b6951a88b4; * add an "mt 16" between activity and first mail template; Tests have been updated to new specifications. This commit is linked to task ID 1872169 and PR #26185.
2018-08-01[IMP] mail: add mail templates on activityXavierDo
This commit allows the user to link some mail template to activity type with res_model. When a activity has template, buttons appears in activity, allowing the user to send mail based on templates. Task: #1844563 PR: #25620
2018-07-27[REF] *: BS4, adapt dropdowns and caretsqsm-odoo
- The dropdown structure was simplified, allowing to get rid of the 3-levels structure induced by <ul/> elements and dropdowns can now contain anything. The class 'dropdown-item' is now mandatory for each dropdown clickable element. The class 'dropdown-item-text' can be used to add same padding and style but without making the element have a clickable look. - Dividers now use the class 'dropdown-divider' - The way dropdowns are opened and hidden also changed (before the 'open' class was added on the `.dropdown-menu` parent, now the 'show' class is added on both the `.dropdown-menu` parent and the `.dropdown-menu` itself). - JS-wise, no click event handlers can be put on `.dropdown-toggle` elements anymore (instead, use handlers for dropdown events). - Carets are automatically put on `.dropdown-toggle` elements, so this commit replaces the `.caret` elements with this. This feature was possible to disable but would prevent us from adding a caret with scss. Also, this simplifies the DOM. The 'o-no-caret' class was also introduced to allow using the 'dropdown-toggle' class on non-caret elements. - Also adapt the scss to use $caret-width instead of $caret-width-base
2018-07-27[REF] web, *: BS4, adapt use of tooltip/popover.jsqsm-odoo
2018-07-25[IMP] mail: draft activity feedback popup from the Chatterjpr-odoo
Before this commit, when we were writing a feedback on an activity marked as done, and then clicked somewhere else by mistake, the popup would disappear and the content was lost. With this commit, we do not lost what we have written in the feedback popover in the case above: a temporary draft is made, so that reopening the feedback popup restores its previous content. Note that the draft is kept in JS, so it will be lost on new page or page reload. Also, there is no test, because of `$.popover`. In particular, animations cannot be disabled with `$.support.transition=false`, and there is not way to detect when transitions end (delays in test is a very bad idea for obvious reasons). Task-ID 1832491
2018-07-18[IMP] mail: allow to decorate background of activity notesjem-odoo
In some case, we want to have a different style for activities that require attention for users. Sometimes activities should attract the user attention with actions to perform that are important. This commit introduces a decoration option on the activity type. By default no decoration is done. However decoration type can be set to warning or error. This triggers the related bootstrap alert classes. This commit is related to task ID #1860833. Closes #25479.
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-05-23[MERGE] forward port branch 11.0 up to 02ee3fd88efChristophe Simonis
2018-05-18[FIX] mail: translate activity type in kanbanDenis Ledoux
When opening the activity dropdown in the kanban view of the opportunities, the activity type names were not translated in the user language. In addition, when marking it as done, the message posted in the discussion thread of the opportunity was not translated either. opw-1847908
2018-03-08[MERGE] forward port branch 11.0 up to bfe88c50e2bChristophe Simonis
2018-03-08[FIX] web,mail: always reload widget mail_activityAaron Bohy
Before this rev., the field widget 'mail_activity' kept an internal cache of fetched activities (like the 'mail_thread' and 'mail_followers'). However, for activities, this cache may cause issues. For instance, create a new lead in 'My pipeline', schedule a 'Meeting' activity on that lead (it opens the Calendar view so that real meetings can be created), create a meeting 2 weeks from now, go back to the lead form view: the activity still diplays that the meeting is today (when the view is refreshed, the correct date is displayed). This rev. removes the internal cache for this field widget, as the activities can easily be updated in business flows (unlike messages or followers). This rev. also fixes a bug in the BasicModel, where the res_ids of a list datapoint was altered in place to return a list of x2many commands instead of the list of ids when being stringified. This caused a traceback when opening a lead with activities, as soon as the internal cache had been removed.
2018-02-05[MERGE] forward port branch saas-11.1 up to 73610ff9921Christophe Simonis
2018-02-05[FIX] mail: date formatNicolas Martinelli
Use a date format in order to display the due date of an activity since it is a date filed, not a datetime. Closes #22614 opw-813736
2018-02-01[IMP] mail: redirect on mail activityArnold Moyaux
Allow to redirect on a form view when the user click on a html tag a with data-oe-model and data-oe-id specified. In order to avoid code duplication the do_action already existing in mail_thread is moved in the action_manager and mail_thread and mail_activity use a trigger_up in order to call it.
2017-12-05[FIX] web,*: time format from user's languageAlexandre Kühn
Before this fix, the chatter always showed dates of messages in military time format. This was not the expected behavior, as the user could have had customize the date and time format in the settings of the current language. Steps to reproduce the issue: 1. Set Odoo in English 2. Settings > Translations > Languages > English 2.1. Set Date Format to %m/%d/%Y 2.2. Set Time Format to %I:%M:%S %p 3. CRM > (Select any opportunity with at least one message) > Mouse hover on elapsed time (e.g. "an hour ago") Expected: - It shows the customized time format (e.g. 11/07/2017 5:33:36 PM) Results: - It shows the military time format (e.g. Tue Nov 07 2017 17:33:36 GMT+0100) opw-781647
2017-09-18[FIX] *: fix a bunch of incorrectly documented docstringXavier Morel
Fix a bunch of ill-documented/incomplete/incorrect method docs Without this, the automatic doc generation does not work.
2017-09-07[IMP] mail, calendar: integrate meeting activities with calendarAkash Bhavsar
This commit improves the use of mail activities by allowing their integration with the calendar. Activity types now have a category field that can be used to trigger some specific behavior. First specific behavior is to have activity types of meeting category. Creating activities of this type trigger a jump to the calendar to schedule the meeting. Meeting activities and calender events are linked to be able to easily navigate through the document, its activities and its meetings. Configuration is done using a category on activity types instead of some hardcoded "meeting" activity to avoid issues with master data and to be able to choose which activity type should trigger this behavior.
2017-09-05[REF] mail: review new chatter designqsm-odoo
- Use classes instead of repeated mixins - Add real user avatar instead of fake one - Reorganize LESS rules
2017-07-12[FIX] mail: do not put context as feedback when marking an activity as doneThibault Delavallée
2017-07-05[IMP] mail: parse note when scheduling an activity to make clickable linksDeep Patel
Zizisse meuche iouzability.
2017-04-24[ADD] mail: re-introduce recommended next activitySiddharth Gajjar
Activities now have recommended next activities. Based on next activities configured on activity types, it allows to implement light workflows using next activities feature. This feature was removed when refactoring crm activities to generic activities. People asking to remove it were visibly wrong and it is now implemented back as it was in v10.
2017-04-11[FIX] mail: activity feedback: port odoo/odoo@63167fc5Aaron Bohy
to the new views
2017-04-11[REF] web, *: simplify our RPC system (in JS)Géry Debongnie
The RPC system was not completely satisfactory, we decided to prepare the future and do it properly. This commit introduces the new rpc system, which replace the previous new one. We now simply have a method, this._rpc, which takes a dictionary of parameters. The idea is that depending on the parameters, it is able to add correct default value when necessary. For situations where we don't have the this._rpc method, we can use the rpc.query method, which takes the same arguments, but directly calls ajax.rpc instead of triggering up some events.
2017-04-11[REF] *: use _rpc method for all rpcsGéry Debongnie
The _rpc method is now the preferred method to do a rpc, so we need to update all calls.
2017-04-11[REF] web,*: remove 'web.model' and 'web.dataModelGéry Debongnie
Use this.rpc instead of Model object, with web.ajax if necessary. nb: EventDispatcherMixin include now the custom_events managment instead of widget
2017-04-11[FIX] mail: use _.str.startsWith (startsWith is ES6)Aaron Bohy
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