From 32621b8327da47b56a8783d36df30b8298a2114b Mon Sep 17 00:00:00 2001 From: JC Brand Date: Tue, 19 Dec 2017 19:17:38 +0000 Subject: [PATCH] Clear chat_state timer when closing chat --- spec/chatbox.js | 11 +++++------ src/converse-chatview.js | 17 +++++++++++++---- src/converse-core.js | 4 ++-- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/spec/chatbox.js b/spec/chatbox.js index dd8f6ff26..dc1f81a51 100644 --- a/spec/chatbox.js +++ b/spec/chatbox.js @@ -1182,10 +1182,9 @@ })); it("will indicate when it has a time difference of more than a day between it and its predecessor", - - mock.initConverseWithPromises( - null, ['rosterGroupsFetched'], {}, - function (done, _converse) { + mock.initConverseWithPromises( + null, ['rosterGroupsFetched'], {}, + function (done, _converse) { test_utils.createContacts(_converse, 'current'); test_utils.openControlBox(); @@ -1897,8 +1896,8 @@ expect($stanza.children().get(0).tagName).toBe('inactive'); expect($stanza.children().get(1).tagName).toBe('no-store'); expect($stanza.children().get(2).tagName).toBe('no-permanent-store'); - done(); - }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL)); + }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL)) + .then(done); })); it("is sent when the user a minimizes a chat box", diff --git a/src/converse-chatview.js b/src/converse-chatview.js index 3bf0b477b..1dd321845 100644 --- a/src/converse-chatview.js +++ b/src/converse-chatview.js @@ -577,7 +577,10 @@ } else { this.showStatusNotification(message.get('fullname')+' '+__('is typing')); } - this.clear_status_timeout = window.setTimeout(this.clearStatusNotification.bind(this), 30000); + this.clear_status_timeout = window.setTimeout( + this.clearStatusNotification.bind(this), + 30000 + ); } else if (message.get('chat_state') === _converse.PAUSED) { if (message.get('sender') === 'me') { this.showStatusNotification(__('Stopped typing on the other device')); @@ -749,10 +752,16 @@ } if (state === _converse.COMPOSING) { this.chat_state_timeout = window.setTimeout( - this.setChatState.bind(this), _converse.TIMEOUTS.PAUSED, _converse.PAUSED); + this.setChatState.bind(this), + _converse.TIMEOUTS.PAUSED, + _converse.PAUSED + ); } else if (state === _converse.PAUSED) { this.chat_state_timeout = window.setTimeout( - this.setChatState.bind(this), _converse.TIMEOUTS.INACTIVE, _converse.INACTIVE); + this.setChatState.bind(this), + _converse.TIMEOUTS.INACTIVE, + _converse.INACTIVE + ); } if (!no_save && this.model.get('chat_state') !== state) { this.model.set('chat_state', state); @@ -864,7 +873,7 @@ if (_converse.connection.connected) { // Immediately sending the chat state, because the // model is going to be destroyed afterwards. - this.model.set('chat_state', _converse.INACTIVE); + this.setChatState(_converse.INACTIVE); this.sendChatState(); } try { diff --git a/src/converse-core.js b/src/converse-core.js index 17ccd66e0..a962e7f44 100755 --- a/src/converse-core.js +++ b/src/converse-core.js @@ -170,8 +170,6 @@ } else if (level === Strophe.LogLevel.WARN) { if (_converse.debug) { logger.warn(`${prefix} ${moment().format()} WARNING: ${message}`, style); - } else { - logger.warn(`${prefix} WARNING: ${message}`, style); } } else if (level === Strophe.LogLevel.FATAL) { if (_converse.debug) { @@ -249,7 +247,9 @@ // out or disconnecting in the previous session. // This happens in tests. We therefore first clean up. Backbone.history.stop(); + _converse.chatboxviews.closeAllChatBoxes(); delete _converse.controlboxtoggle; + delete _converse.chatboxviews; _converse.connection.reset(); _converse.off(); _converse.stopListening();