diff options
| author | Jigar Patel <jat@openerp.com> | 2016-03-25 16:39:12 +0530 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2016-04-08 13:41:01 +0200 |
| commit | 253d4eccf0001c5ede843cb29c1ce4f69fc6fbd0 (patch) | |
| tree | 0c53a3819a2984672c8261945e71e8bb6013b089 /addons/mail/static | |
| parent | e4ae6a80bb2d95a85d222d9012282919d5ebac0f (diff) | |
[IMP] mail: Add counter in starred
Diffstat (limited to 'addons/mail/static')
| -rw-r--r-- | addons/mail/static/src/js/chat_manager.js | 10 | ||||
| -rw-r--r-- | addons/mail/static/src/js/client_action.js | 2 | ||||
| -rw-r--r-- | addons/mail/static/src/xml/client_action.xml | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/addons/mail/static/src/js/chat_manager.js b/addons/mail/static/src/js/chat_manager.js index bc1d7ec4d48..4c57a8453b7 100644 --- a/addons/mail/static/src/js/chat_manager.js +++ b/addons/mail/static/src/js/chat_manager.js @@ -31,6 +31,7 @@ var unread_conversation_counter = 0; var emojis = []; var emoji_substitutions = {}; var needaction_counter = 0; +var starred_counter = 0; var mention_partner_suggestions = []; var discuss_menu_id; var global_unread_counter = 0; @@ -498,14 +499,17 @@ function on_toggle_star_notification (data) { message.is_starred = data.starred; if (!message.is_starred) { remove_message_from_channel("channel_starred", message); + starred_counter--; } else { add_to_cache(message, []); var channel_starred = chat_manager.get_channel('channel_starred'); channel_starred.cache = _.pick(channel_starred.cache, "[]"); + starred_counter++; } chat_manager.bus.trigger('update_message', message); } }); + chat_manager.bus.trigger('update_starred', starred_counter); } function on_mark_as_read_notification (data) { @@ -684,7 +688,7 @@ var chat_manager = { toggle_star_status: function (message_id) { var msg = _.findWhere(messages, { id: message_id }); - return MessageModel.call('set_message_starred', [[message_id], !msg.is_starred]); + return MessageModel.call('toggle_message_starred', [[message_id]]); }, unstar_all: function () { return MessageModel.call('unstar_all', [[]], {}); @@ -761,6 +765,9 @@ var chat_manager = { get_needaction_counter: function () { return needaction_counter; }, + get_starred_counter: function () { + return starred_counter; + }, get_chat_unread_counter: function () { return chat_unread_counter; }, @@ -968,6 +975,7 @@ function init () { _.each(channels, add_channel); }); needaction_counter = result.needaction_inbox_counter; + starred_counter = result.starred_counter; mention_partner_suggestions = result.mention_partner_suggestions; emojis = result.emoji; _.each(emojis, function(emoji) { diff --git a/addons/mail/static/src/js/client_action.js b/addons/mail/static/src/js/client_action.js index 3e3def75383..1b3f9666ec4 100644 --- a/addons/mail/static/src/js/client_action.js +++ b/addons/mail/static/src/js/client_action.js @@ -262,6 +262,7 @@ var ChatAction = Widget.extend(ControlPanelMixin, { }); chat_manager.bus.on('unsubscribe_from_channel', self, self.render_sidebar); chat_manager.bus.on('update_needaction', self, self.throttled_render_sidebar); + chat_manager.bus.on('update_starred', self, self.throttled_render_sidebar); chat_manager.bus.on('update_channel_unread_counter', self, self.throttled_render_sidebar); chat_manager.bus.on('update_dm_presence', self, self.throttled_render_sidebar); self.thread.$el.on("scroll", null, _.debounce(function () { @@ -303,6 +304,7 @@ var ChatAction = Widget.extend(ControlPanelMixin, { active_channel_id: this.channel ? this.channel.id: undefined, channels: chat_manager.get_channels(), needaction_counter: chat_manager.get_needaction_counter(), + starred_counter: chat_manager.get_starred_counter(), })); this.$(".o_mail_chat_sidebar").html($sidebar.contents()); diff --git a/addons/mail/static/src/xml/client_action.xml b/addons/mail/static/src/xml/client_action.xml index cc819aece0a..746082b7fe9 100644 --- a/addons/mail/static/src/xml/client_action.xml +++ b/addons/mail/static/src/xml/client_action.xml @@ -26,6 +26,8 @@ <div t-attf-class="o_mail_chat_channel_item #{(active_channel_id == 'channel_starred') ? 'o_active': ''}" data-channel-id="channel_starred"> <span class="o_channel_name"> <i class="fa fa-star-o"/> Starred </span> + <t t-set="counter" t-value="starred_counter"/> + <t t-call="mail.chat.SidebarNeedaction"/> </div> <t t-set="channel_type" t-value="'public'"/> |
