From fbdbea223d7ef54f9bbdef96a25731af68573bc8 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Tue, 14 Feb 2017 17:23:22 +0000 Subject: [PATCH] Ensure consistent behavior from `show_controlbox_by_default` --- docs/CHANGES.md | 1 + src/converse-controlbox.js | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/docs/CHANGES.md b/docs/CHANGES.md index 819ce8a01..07e9d80eb 100755 --- a/docs/CHANGES.md +++ b/docs/CHANGES.md @@ -22,6 +22,7 @@ ## 2.0.7 (2017-02-14) - Bugfix. 'TypeError: this.sendConfiguration(...).then is not a function' when an instant room is created. [jcbrand] +- Ensure consistent behavior from `show_controlbox_by_default` [jcbrand] ## 2.0.6 (2017-02-13) - Escape user-generated input to prevent JS-injection attacks. (Thanks to SamWhited) [jcbrand] diff --git a/src/converse-controlbox.js b/src/converse-controlbox.js index 2204a786b..9cc85fad3 100644 --- a/src/converse-controlbox.js +++ b/src/converse-controlbox.js @@ -134,10 +134,11 @@ closeAllChatBoxes: function () { var _converse = this.__super__._converse; this.each(function (view) { - if (_converse.disconnection_cause === _converse.LOGOUT || - view.model.get('id') !== 'controlbox') { - view.close(); + if (view.model.get('id') === 'controlbox' && + (_converse.disconnection_cause !== _converse.LOGOUT || _converse.show_controlbox_by_default)) { + return; } + view.close(); }); return this; }, @@ -244,9 +245,9 @@ this.render(); if (this.model.get('connected')) { this.insertRoster(); - } - if (_.isUndefined(this.model.get('closed'))) { - this.model.set('closed', !_converse.show_controlbox_by_default); + if (_.isUndefined(this.model.get('closed'))) { + this.model.set('closed', !_converse.show_controlbox_by_default); + } } if (!this.model.get('closed')) { this.show(); @@ -272,6 +273,7 @@ onConnected: function () { if (this.model.get('connected')) { this.render().insertRoster(); + this.model.save('closed', !this.$el.is(':visible')); } },