diff --git a/addons/mail/models/mail_channel.py b/addons/mail/models/mail_channel.py index b38fbcfdc44..af7fe9fb756 100644 --- a/addons/mail/models/mail_channel.py +++ b/addons/mail/models/mail_channel.py @@ -83,6 +83,13 @@ class Channel(models.Model): alias_id = fields.Many2one( 'mail.alias', 'Alias', ondelete="restrict", required=True, help="The email address associated with this group. New emails received will automatically create new topics.") + is_subscribed = fields.Boolean( + 'Is Subscribed', compute='_compute_is_subscribed') + + @api.one + @api.depends('channel_partner_ids') + def _compute_is_subscribed(self): + self.is_subscribed = self.env.user.partner_id in self.channel_partner_ids @api.one @api.depends('image') diff --git a/addons/mail/static/src/js/client_action.js b/addons/mail/static/src/js/client_action.js index 8acbb679b2b..20078af06a2 100644 --- a/addons/mail/static/src/js/client_action.js +++ b/addons/mail/static/src/js/client_action.js @@ -117,6 +117,17 @@ var ChatAction = Widget.extend(ControlPanelMixin, { chat_manager.undo_mark_as_read(msgs_ids, channel); }); }, + "click .o_mail_open_channels": function () { + this.do_action({ + name: _t('Public Channels'), + type: 'ir.actions.act_window', + res_model: "mail.channel", + views: [[false, 'kanban'], [false, 'form']], + domain: [['public', '!=', 'private']], + }, { + on_reverse_breadcrumb: this.on_reverse_breadcrumb, + }); + }, }, on_attach_callback: function () { diff --git a/addons/mail/static/src/less/client_action.less b/addons/mail/static/src/less/client_action.less index 64f0afe507a..6b3df329cce 100644 --- a/addons/mail/static/src/less/client_action.less +++ b/addons/mail/static/src/less/client_action.less @@ -37,6 +37,9 @@ .o_add { padding: 6px; } + .o_mail_open_channels { + cursor: pointer; + } } .o_mail_chat_channel_item { width: 100%; @@ -191,6 +194,9 @@ h4 { font-size: 13px; text-transform: uppercase; + &.o_mail_open_channels:hover { + color: white; + } } .o_add { cursor: pointer; diff --git a/addons/mail/static/src/xml/client_action.xml b/addons/mail/static/src/xml/client_action.xml index e3c2c1aeee2..e3f6e1149e8 100644 --- a/addons/mail/static/src/xml/client_action.xml +++ b/addons/mail/static/src/xml/client_action.xml @@ -67,7 +67,7 @@ - + diff --git a/addons/mail/views/mail_channel_views.xml b/addons/mail/views/mail_channel_views.xml index 36abb0a732d..978ddd07487 100644 --- a/addons/mail/views/mail_channel_views.xml +++ b/addons/mail/views/mail_channel_views.xml @@ -49,13 +49,8 @@ - - - - - - + @@ -63,27 +58,15 @@ - - - - - - - - - - + + + + # + - - - - - - - - Unfollow - Join Group - + + Join + Leave @@ -106,7 +89,7 @@ - + #
-