You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.9 KiB

  1. /* Copyright 2020 Denis Mudarisov <https://github.com/trojikman>
  2. License MIT (https://opensource.org/licenses/MIT). */
  3. odoo.define("mail_all.all", function (require) {
  4. "use strict";
  5. var chat_manager = require("mail_base.base").chat_manager;
  6. var core = require("web.core");
  7. var _lt = core._lt;
  8. var ChatAction = core.action_registry.get("mail.chat.instant_messaging");
  9. ChatAction.include({
  10. get_thread_rendering_options: function (messages) {
  11. var options = this._super.apply(this, arguments);
  12. options.display_subject =
  13. options.display_subject || this.channel.id === "channel_all";
  14. return options;
  15. },
  16. });
  17. chat_manager.is_ready = chat_manager.is_ready.then(function () {
  18. // Override methods
  19. var chat_manager_super = _.clone(chat_manager);
  20. chat_manager.get_properties = function (msg) {
  21. var properties = chat_manager_super.get_properties.apply(this, arguments);
  22. properties.is_all = this.property_descr("channel_all", msg, this);
  23. return properties;
  24. };
  25. chat_manager.set_channel_flags = function (data, msg) {
  26. chat_manager_super.set_channel_flags.apply(this, arguments);
  27. msg.is_all = data.author_id !== "ODOOBOT";
  28. return msg;
  29. };
  30. chat_manager.get_channel_array = function (msg) {
  31. var arr = chat_manager_super.get_channel_array.apply(this, arguments);
  32. return arr.concat("channel_all");
  33. };
  34. chat_manager.get_domain = function (channel) {
  35. return channel.id === "channel_all"
  36. ? []
  37. : chat_manager_super.get_domain.apply(this, arguments);
  38. };
  39. // Add all channel
  40. chat_manager.add_channel({
  41. id: "channel_all",
  42. name: _lt("All messages"),
  43. type: "static",
  44. });
  45. return $.when();
  46. });
  47. return chat_manager;
  48. });