Groupchat auto-configuration now supports list-multi fields
This commit is contained in:
parent
1d9e1a62df
commit
dd0821076d
|
@ -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.
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
'nick': 'some1',
|
||||
'auto_configure': true,
|
||||
'roomconfig': {
|
||||
'getmemberlist': ['moderator', 'participant'],
|
||||
'changesubject': false,
|
||||
'membersonly': true,
|
||||
'persistentroom': true,
|
||||
|
@ -224,6 +225,13 @@
|
|||
<field type="list-single" var="muc#roomconfig_whois" label="Who May Discover Real JIDs?"><option label="Moderators Only">
|
||||
<value>moderators</value></option><option label="Anyone"><value>anyone</value></option>
|
||||
</field>
|
||||
<field label="Roles and Affiliations that May Retrieve Member List"
|
||||
type="list-multi"
|
||||
var="muc#roomconfig_getmemberlist">
|
||||
<value>moderator</value>
|
||||
<value>participant</value>
|
||||
<value>visitor</value>
|
||||
</field>
|
||||
<field type="text-private" var="muc#roomconfig_roomsecret" label="Password"><value/></field>
|
||||
<field type="boolean" var="muc#roomconfig_moderatedroom" label="Make Room Moderated?"/>
|
||||
<field type="boolean" var="muc#roomconfig_membersonly" label="Make Room Members-Only?"/>
|
||||
|
@ -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');
|
||||
|
|
|
@ -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;
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue
Block a user