From e9872145555e4bee2715f1afa573198064c60557 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Fri, 5 Apr 2019 12:49:24 +0200 Subject: [PATCH] For roomspanel, don't set `muc_domain` if its locked --- CHANGES.md | 4 ++++ src/converse-muc-views.js | 11 +++++------ src/headless/converse-muc.js | 8 +++++++- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 7c3fecafc..a7d8c775d 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,9 @@ # Changelog +## 4.2.1 (Unreaded) + +* Bugfix. Don't set `muc_domain` for roomspanel if `locked_muc_domain` is `true`. + ## 4.2.0 (2019-04-04) **Note:** This release introduces a hard requirement on [MAM:2](https://xmpp.org/extensions/xep-0313.html), diff --git a/src/converse-muc-views.js b/src/converse-muc-views.js index e461799bd..7fc4b7d24 100644 --- a/src/converse-muc-views.js +++ b/src/converse-muc-views.js @@ -269,7 +269,7 @@ converse.plugins.add('converse-muc-views', { 'submit form': 'showRooms', 'click a.room-info': 'toggleRoomInfo', 'change input[name=nick]': 'setNick', - 'change input[name=server]': 'setDomain', + 'change input[name=server]': 'setDomainFromEvent', 'click .open-room': 'openRoom' }, @@ -383,12 +383,12 @@ converse.plugins.add('converse-muc-views', { showRooms (ev) { ev.preventDefault(); const data = new FormData(ev.target); - this.model.save('muc_domain', Strophe.getDomainFromJid(data.get('server'))); + this.model.setDomain(data.get('server')); this.updateRoomsList(); }, - setDomain (ev) { - this.model.save('muc_domain', Strophe.getDomainFromJid(ev.target.value)); + setDomainFromEvent (ev) { + this.model.setDomain(ev.target.value); }, setNick (ev) { @@ -431,7 +431,6 @@ converse.plugins.add('converse-muc-views', { parseRoomDataFromEvent (form) { const data = new FormData(form); const jid = data.get('chatroom'); - this.model.save('muc_domain', Strophe.getDomainFromJid(jid)); let nick; if (_converse.locked_muc_nickname) { nick = _converse.getDefaultMUCNickname(); @@ -459,6 +458,7 @@ converse.plugins.add('converse-muc-views', { jid = `${Strophe.escapeNode(data.jid)}@${_converse.muc_domain}`; } else { jid = data.jid + this.model.setDomain(jid); } _converse.api.rooms.open(jid, _.extend(data, {jid})); this.modal.hide(); @@ -2040,7 +2040,6 @@ converse.plugins.add('converse-muc-views', { function setMUCDomain (domain, controlboxview) { - _converse.muc_domain = domain; controlboxview.roomspanel.model.save('muc_domain', Strophe.getDomainFromJid(domain)); } diff --git a/src/headless/converse-muc.js b/src/headless/converse-muc.js index f14c7f254..88e1bb3e8 100644 --- a/src/headless/converse-muc.js +++ b/src/headless/converse-muc.js @@ -1308,9 +1308,15 @@ converse.plugins.add('converse-muc', { _converse.RoomsPanelModel = Backbone.Model.extend({ defaults: function () { return { - 'muc_domain': '', + 'muc_domain': _converse.muc_domain, 'nick': _converse.getDefaultMUCNickname() } + }, + + setDomain (jid) { + if (!_converse.locked_muc_domain) { + this.save('muc_domain', Strophe.getDomainFromJid(jid)); + } } });