From 4903d748d047823c945264acaf6296d67534fc39 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Thu, 6 Sep 2018 09:44:44 +0200 Subject: [PATCH] Save hidden state of singletons if possible --- dist/converse.js | 11 ++++++++--- src/converse-singleton.js | 9 ++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/dist/converse.js b/dist/converse.js index fbab0cf8d..a05fbad4d 100644 --- a/dist/converse.js +++ b/dist/converse.js @@ -76740,13 +76740,14 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ const _converse$env = converse.env, _ = _converse$env._, Strophe = _converse$env.Strophe; + const u = converse.env.utils; function hideChat(view) { if (view.model.get('id') === 'controlbox') { return; } - view.model.save({ + u.safeSave(view.model, { 'hidden': true }); view.hide(); @@ -76820,7 +76821,9 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ if (_converse.isSingleton()) { _.each(this.__super__._converse.chatboxviews.xget(this.model.get('id')), hideChat); - this.model.set('hidden', false); + u.safeSave(this.model, { + 'hidden': false + }); } return this.__super__._show.apply(this, arguments); @@ -76834,7 +76837,9 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ if (_converse.isSingleton()) { _.each(this.__super__._converse.chatboxviews.xget(this.model.get('id')), hideChat); - this.model.set('hidden', false); + u.safeSave(this.model, { + 'hidden': false + }); } return this.__super__.show.apply(this, arguments); diff --git a/src/converse-singleton.js b/src/converse-singleton.js index 1c35af8a0..d02950d7b 100644 --- a/src/converse-singleton.js +++ b/src/converse-singleton.js @@ -22,13 +22,16 @@ }(this, function (converse) { "use strict"; const { _, Strophe } = converse.env; + const u = converse.env.utils; + function hideChat (view) { if (view.model.get('id') === 'controlbox') { return; } - view.model.save({'hidden': true}); + u.safeSave(view.model, {'hidden': true}); view.hide(); } + converse.plugins.add('converse-singleton', { // It's possible however to make optional dependencies non-optional. // If the setting "strict_plugin_dependencies" is set to true, @@ -94,7 +97,7 @@ const { _converse } = this.__super__; if (_converse.isSingleton()) { _.each(this.__super__._converse.chatboxviews.xget(this.model.get('id')), hideChat); - this.model.set('hidden', false); + u.safeSave(this.model, {'hidden': false}); } return this.__super__._show.apply(this, arguments); } @@ -105,7 +108,7 @@ const { _converse } = this.__super__; if (_converse.isSingleton()) { _.each(this.__super__._converse.chatboxviews.xget(this.model.get('id')), hideChat); - this.model.set('hidden', false); + u.safeSave(this.model, {'hidden': false}); } return this.__super__.show.apply(this, arguments); }