Commit 147e62d0 authored by JC Brand's avatar JC Brand

Don't increment unread msgs counter for <paused> chat state.

Also update release notes. updates #267
parent 0f06902b
...@@ -909,6 +909,9 @@ ...@@ -909,6 +909,9 @@
if (!body) { if (!body) {
if (composing.length || paused.length) { if (composing.length || paused.length) {
// FIXME: use one attribute for chat states (e.g.
// chatstate) instead of saving 'paused' and
// 'composing' separately.
this.messages.add({ this.messages.add({
fullname: fullname, fullname: fullname,
sender: 'them', sender: 'them',
...@@ -3043,12 +3046,14 @@ ...@@ -3043,12 +3046,14 @@
}, },
initialize: function () { initialize: function () {
this.model.messages.on('add', function(msg) { this.model.messages.on('add', function (m) {
if (!msg.attributes.composing) {this.updateUnreadMessagesCounter();} if (!(m.get('composing') || m.get('paused'))) {
} , this); this.updateUnreadMessagesCounter();
this.model.on('showSentOTRMessage', this.updateUnreadMessagesCounter, this); }
this.model.on('showReceivedOTRMessage', this.updateUnreadMessagesCounter, this); }, this);
this.model.on('change:minimized', this.clearUnreadMessagesCounter, this); this.model.on('change:minimized', this.clearUnreadMessagesCounter, this);
this.model.on('showReceivedOTRMessage', this.updateUnreadMessagesCounter, this);
this.model.on('showSentOTRMessage', this.updateUnreadMessagesCounter, this);
}, },
render: function () { render: function () {
......
...@@ -17,6 +17,7 @@ Changelog ...@@ -17,6 +17,7 @@ Changelog
* #151 Browser locks/freezes with many roster users. [jcbrand] * #151 Browser locks/freezes with many roster users. [jcbrand]
* #251 Non-minified builds for debugging. [jcbrand] * #251 Non-minified builds for debugging. [jcbrand]
* #264 Remove unnecessary commas for ie8 compatibility. [Deuteu] * #264 Remove unnecessary commas for ie8 compatibility. [Deuteu]
* #267 Unread messages counter wrongly gets incremented by chat state notifications. [Deuteu]
0.8.3 (2014-09-22) 0.8.3 (2014-09-22)
------------------ ------------------
......
...@@ -84,6 +84,42 @@ ...@@ -84,6 +84,42 @@
expect(this.minimized_chats.toggleview.$('.unread-message-count').is(':visible')).toBeTruthy(); expect(this.minimized_chats.toggleview.$('.unread-message-count').is(':visible')).toBeTruthy();
expect(this.minimized_chats.toggleview.$('.unread-message-count').text()).toBe((i+1).toString()); expect(this.minimized_chats.toggleview.$('.unread-message-count').text()).toBe((i+1).toString());
} }
// Chat state notifications don't increment the unread messages counter
// <composing> state
this.chatboxes.onMessage($msg({
from: contact_jid,
to: this.connection.jid,
type: 'chat',
id: (new Date()).getTime()
}).c('composing', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree());
expect(this.minimized_chats.toggleview.$('.unread-message-count').text()).toBe((i).toString());
// <paused> state
this.chatboxes.onMessage($msg({
from: contact_jid,
to: this.connection.jid,
type: 'chat',
id: (new Date()).getTime()
}).c('paused', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree());
expect(this.minimized_chats.toggleview.$('.unread-message-count').text()).toBe((i).toString());
// <gone> state
this.chatboxes.onMessage($msg({
from: contact_jid,
to: this.connection.jid,
type: 'chat',
id: (new Date()).getTime()
}).c('gone', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree());
expect(this.minimized_chats.toggleview.$('.unread-message-count').text()).toBe((i).toString());
// <inactive> state
this.chatboxes.onMessage($msg({
from: contact_jid,
to: this.connection.jid,
type: 'chat',
id: (new Date()).getTime()
}).c('inactive', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree());
expect(this.minimized_chats.toggleview.$('.unread-message-count').text()).toBe((i).toString());
}, converse)); }, converse));
}, converse, mock, test_utils)); }, converse, mock, test_utils));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment