diff --git a/CHANGES.md b/CHANGES.md
index 097282df1..4b01d2b1d 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,7 +1,7 @@
# Changelog
## 5.0.0 (Unreleased)
-
+- Groupchat default configuration now supports `list-multi` fields
- Bugfix: Don't set `muc_domain` for roomspanel if `locked_muc_domain` is `true`.
- Bugfix: Modal auto-closes when you open it for a second time.
- Take roster nickname into consideration when rendering messages and chat headings.
diff --git a/spec/muc.js b/spec/muc.js
index 326e1d3ec..0900c69a9 100644
--- a/spec/muc.js
+++ b/spec/muc.js
@@ -156,6 +156,7 @@
'nick': 'some1',
'auto_configure': true,
'roomconfig': {
+ 'getmemberlist': ['moderator', 'participant'],
'changesubject': false,
'membersonly': true,
'persistentroom': true,
@@ -224,6 +225,13 @@
+
+ moderator
+ participant
+ visitor
+
@@ -243,6 +251,7 @@
expect(sizzle('field[var="muc#roomconfig_roomname"] value', sent_stanza).pop().textContent).toBe('Room');
expect(sizzle('field[var="muc#roomconfig_roomdesc"] value', sent_stanza).pop().textContent).toBe('Welcome to this groupchat');
expect(sizzle('field[var="muc#roomconfig_persistentroom"] value', sent_stanza).pop().textContent).toBe('1');
+ expect(sizzle('field[var="muc#roomconfig_getmemberlist"] value', sent_stanza).map(e => e.textContent).join(' ')).toBe('moderator participant');
expect(sizzle('field[var="muc#roomconfig_publicroom"] value ', sent_stanza).pop().textContent).toBe('1');
expect(sizzle('field[var="muc#roomconfig_changesubject"] value', sent_stanza).pop().textContent).toBe('0');
expect(sizzle('field[var="muc#roomconfig_whois"] value ', sent_stanza).pop().textContent).toBe('anyone');
diff --git a/src/headless/converse-muc.js b/src/headless/converse-muc.js
index 7e544a9f1..910221671 100644
--- a/src/headless/converse-muc.js
+++ b/src/headless/converse-muc.js
@@ -658,19 +658,18 @@ converse.plugins.add('converse-muc', {
const fieldname = field.getAttribute('var').replace('muc#roomconfig_', '');
const config = this.get('roomconfig');
if (fieldname in config) {
- let value;
+ let values;
switch (type) {
case 'boolean':
- value = config[fieldname] ? 1 : 0;
+ values = [config[fieldname] ? 1 : 0];
break;
case 'list-multi':
- // TODO: we don't yet handle "list-multi" types
- value = field.innerHTML;
+ values = config[fieldname];
break;
default:
- value = config[fieldname];
+ values= [config[fieldname]];
}
- field.innerHTML = $build('value').t(value);
+ field.innerHTML = values.map(v => $build('value').t(v)).join('');
}
return field;
},