Commit e64edf19 authored by JC Brand's avatar JC Brand

Use "Groupchat" instead of "Chatroom"

parent 102505c1
...@@ -177,7 +177,7 @@ ...@@ -177,7 +177,7 @@
'membersonly': true, 'membersonly': true,
'persistentroom': true, 'persistentroom': true,
'publicroom': true, 'publicroom': true,
'roomdesc': 'Welcome to this room', 'roomdesc': 'Welcome to this groupchat',
'whois': 'anyone' 'whois': 'anyone'
} }
}); });
...@@ -262,7 +262,7 @@ ...@@ -262,7 +262,7 @@
sent_stanza = sent_IQ_els.pop(); sent_stanza = sent_IQ_els.pop();
} }
expect(sizzle('field[var="muc#roomconfig_roomname"] value', sent_stanza).pop().textContent).toBe('Room'); 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 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_persistentroom"] value', sent_stanza).pop().textContent).toBe('1');
expect(sizzle('field[var="muc#roomconfig_publicroom"] value ', sent_stanza).pop().textContent).toBe('1'); 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_changesubject"] value', sent_stanza).pop().textContent).toBe('0');
...@@ -390,7 +390,7 @@ ...@@ -390,7 +390,7 @@
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
var info_text = view.el.querySelector('.chat-content .chat-info').textContent; var info_text = view.el.querySelector('.chat-content .chat-info').textContent;
expect(info_text).toBe('A new room has been created'); expect(info_text).toBe('A new groupchat has been created');
// An instant room is created by saving the default configuratoin. // An instant room is created by saving the default configuratoin.
// //
...@@ -453,7 +453,7 @@ ...@@ -453,7 +453,7 @@
}).up() }).up()
.c('status', {code: '110'}); .c('status', {code: '110'});
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the room"); expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the groupchat");
presence = $pres({ presence = $pres({
to: 'dummy@localhost/_converse.js-29092160', to: 'dummy@localhost/_converse.js-29092160',
...@@ -467,7 +467,7 @@ ...@@ -467,7 +467,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(2); expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(2);
expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the room"); expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the groupchat");
// Add another entrant, otherwise the above message will be // Add another entrant, otherwise the above message will be
// collapsed if "newguy" leaves immediately again // collapsed if "newguy" leaves immediately again
...@@ -483,7 +483,7 @@ ...@@ -483,7 +483,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(3); expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(3);
expect($chat_content.find('div.chat-info:last').html()).toBe("newgirl has entered the room"); expect($chat_content.find('div.chat-info:last').html()).toBe("newgirl has entered the groupchat");
// Don't show duplicate join messages // Don't show duplicate join messages
presence = $pres({ presence = $pres({
...@@ -525,7 +525,7 @@ ...@@ -525,7 +525,7 @@
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content.find('div.chat-info').length).toBe(4); expect($chat_content.find('div.chat-info').length).toBe(4);
expect($chat_content.find('div.chat-info:last').html()).toBe( expect($chat_content.find('div.chat-info:last').html()).toBe(
'newguy has left the room. '+ 'newguy has left the groupchat. '+
'"Disconnected: Replaced by new connection"'); '"Disconnected: Replaced by new connection"');
// When the user immediately joins again, we collapse the // When the user immediately joins again, we collapse the
...@@ -542,7 +542,7 @@ ...@@ -542,7 +542,7 @@
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content.find('div.chat-info').length).toBe(4); expect($chat_content.find('div.chat-info').length).toBe(4);
var $msg_el = $chat_content.find('div.chat-info:last'); var $msg_el = $chat_content.find('div.chat-info:last');
expect($msg_el.html()).toBe("newguy has left and re-entered the room"); expect($msg_el.html()).toBe("newguy has left and re-entered the groupchat");
expect($msg_el.data('leavejoin')).toBe('"newguy"'); expect($msg_el.data('leavejoin')).toBe('"newguy"');
presence = $pres({ presence = $pres({
...@@ -559,7 +559,7 @@ ...@@ -559,7 +559,7 @@
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content.find('div.chat-info').length).toBe(4); expect($chat_content.find('div.chat-info').length).toBe(4);
$msg_el = $chat_content.find('div.chat-info:last'); $msg_el = $chat_content.find('div.chat-info:last');
expect($msg_el.html()).toBe('newguy has left the room'); expect($msg_el.html()).toBe('newguy has left the groupchat');
expect($msg_el.data('leave')).toBe('"newguy"'); expect($msg_el.data('leave')).toBe('"newguy"');
presence = $pres({ presence = $pres({
...@@ -574,7 +574,7 @@ ...@@ -574,7 +574,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(5); expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(5);
expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the room"); expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the groupchat");
presence = $pres({ presence = $pres({
to: 'dummy@localhost/_converse.js-290918392', to: 'dummy@localhost/_converse.js-290918392',
...@@ -588,7 +588,7 @@ ...@@ -588,7 +588,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(5); expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(5);
expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered and left the room"); expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered and left the groupchat");
presence = $pres({ presence = $pres({
to: 'dummy@localhost/_converse.js-29092160', to: 'dummy@localhost/_converse.js-29092160',
...@@ -602,7 +602,7 @@ ...@@ -602,7 +602,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(5); expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(5);
expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the room"); expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the groupchat");
done(); done();
})); }));
...@@ -622,7 +622,7 @@ ...@@ -622,7 +622,7 @@
expect(indicator.querySelector('time').textContent).toEqual(moment().startOf('day').format("dddd MMM Do YYYY")); expect(indicator.querySelector('time').textContent).toEqual(moment().startOf('day').format("dddd MMM Do YYYY"));
expect(chat_content.querySelectorAll('div.chat-info').length).toBe(1); expect(chat_content.querySelectorAll('div.chat-info').length).toBe(1);
expect(chat_content.querySelector('div.chat-info').textContent).toBe( expect(chat_content.querySelector('div.chat-info').textContent).toBe(
"dummy has entered the room" "dummy has entered the groupchat"
); );
var baseTime = new Date(); var baseTime = new Date();
...@@ -659,7 +659,7 @@ ...@@ -659,7 +659,7 @@
expect(indicator.querySelector('time').textContent).toEqual(moment().startOf('day').format("dddd MMM Do YYYY")); expect(indicator.querySelector('time').textContent).toEqual(moment().startOf('day').format("dddd MMM Do YYYY"));
expect(chat_content.querySelectorAll('div.chat-info').length).toBe(2); expect(chat_content.querySelectorAll('div.chat-info').length).toBe(2);
expect(chat_content.querySelector('div.chat-info:last-child').textContent).toBe( expect(chat_content.querySelector('div.chat-info:last-child').textContent).toBe(
"some1 has entered the room" "some1 has entered the groupchat"
); );
jasmine.clock().tick(ONE_DAY_LATER); jasmine.clock().tick(ONE_DAY_LATER);
...@@ -688,7 +688,7 @@ ...@@ -688,7 +688,7 @@
expect(indicator.querySelector('time').textContent).toEqual(moment().startOf('day').format("dddd MMM Do YYYY")); expect(indicator.querySelector('time').textContent).toEqual(moment().startOf('day').format("dddd MMM Do YYYY"));
expect(chat_content.querySelectorAll('div.chat-info').length).toBe(3); expect(chat_content.querySelectorAll('div.chat-info').length).toBe(3);
expect($(chat_content).find('div.chat-info:last').html()).toBe( expect($(chat_content).find('div.chat-info:last').html()).toBe(
'some1 has left the room. '+ 'some1 has left the groupchat. '+
'"Disconnected: Replaced by new connection"'); '"Disconnected: Replaced by new connection"');
jasmine.clock().tick(ONE_DAY_LATER); jasmine.clock().tick(ONE_DAY_LATER);
...@@ -722,7 +722,7 @@ ...@@ -722,7 +722,7 @@
expect($indicator.data('isodate')).toEqual(moment().startOf('day').format()); expect($indicator.data('isodate')).toEqual(moment().startOf('day').format());
expect($indicator.find('time').text()).toEqual(moment().startOf('day').format("dddd MMM Do YYYY")); expect($indicator.find('time').text()).toEqual(moment().startOf('day').format("dddd MMM Do YYYY"));
expect(chat_content.querySelectorAll('div.chat-info').length).toBe(4); expect(chat_content.querySelectorAll('div.chat-info').length).toBe(4);
expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the room"); expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the groupchat");
jasmine.clock().tick(ONE_DAY_LATER); jasmine.clock().tick(ONE_DAY_LATER);
...@@ -763,7 +763,7 @@ ...@@ -763,7 +763,7 @@
expect($indicator.find('time').text()).toEqual(moment().startOf('day').format("dddd MMM Do YYYY")); expect($indicator.find('time').text()).toEqual(moment().startOf('day').format("dddd MMM Do YYYY"));
expect(chat_content.querySelectorAll('div.chat-info').length).toBe(5); expect(chat_content.querySelectorAll('div.chat-info').length).toBe(5);
expect($chat_content.find('div.chat-info:last').html()).toBe( expect($chat_content.find('div.chat-info:last').html()).toBe(
'newguy has left the room. '+ 'newguy has left the groupchat. '+
'"Disconnected: Replaced by new connection"'); '"Disconnected: Replaced by new connection"');
jasmine.clock().uninstall(); jasmine.clock().uninstall();
...@@ -811,7 +811,7 @@ ...@@ -811,7 +811,7 @@
.c('value').t('http://jabber.org/protocol/muc#roominfo').up().up() .c('value').t('http://jabber.org/protocol/muc#roominfo').up().up()
.c('field', {'type':'text-single', 'var':'muc#roominfo_description', 'label':'Description'}) .c('field', {'type':'text-single', 'var':'muc#roominfo_description', 'label':'Description'})
.c('value').t('This is the description').up().up() .c('value').t('This is the description').up().up()
.c('field', {'type':'text-single', 'var':'muc#roominfo_occupants', 'label':'Number of occupants'}) .c('field', {'type':'text-single', 'var':'muc#roominfo_occupants', 'label':'Number of participants'})
.c('value').t(0); .c('value').t(0);
_converse.connection._dataRecv(test_utils.createRequest(features_stanza)); _converse.connection._dataRecv(test_utils.createRequest(features_stanza));
test_utils.waitUntil(() => _.get(view.el.querySelector('.chatroom-description'), 'textContent')) test_utils.waitUntil(() => _.get(view.el.querySelector('.chatroom-description'), 'textContent'))
...@@ -1065,7 +1065,7 @@ ...@@ -1065,7 +1065,7 @@
'var': 'muc#roomconfig_passwordprotectedroom'}) 'var': 'muc#roomconfig_passwordprotectedroom'})
.c('value').t(1).up().up() .c('value').t(1).up().up()
.c('field', {'type': 'fixed'}) .c('field', {'type': 'fixed'})
.c('value').t('If a password is required to enter this room,'+ .c('value').t('If a password is required to enter this groupchat,'+
'you must specify the password below.').up().up() 'you must specify the password below.').up().up()
.c('field', { .c('field', {
'label': 'Password', 'label': 'Password',
...@@ -1113,7 +1113,7 @@ ...@@ -1113,7 +1113,7 @@
}).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL)); }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL));
})); }));
it("shows all members even if they're not currently present in the room", it("shows all members even if they're not currently present in the groupchat",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -1145,7 +1145,7 @@ ...@@ -1145,7 +1145,7 @@
expect(occupants.querySelectorAll('li .occupant-nick')[index].textContent.trim()).toBe(mock.chatroom_names[i]); expect(occupants.querySelectorAll('li .occupant-nick')[index].textContent.trim()).toBe(mock.chatroom_names[i]);
} }
// Test users leaving the room // Test users leaving the groupchat
// http://xmpp.org/extensions/xep-0045.html#exit // http://xmpp.org/extensions/xep-0045.html#exit
for (i=mock.chatroom_names.length-1; i>-1; i--) { for (i=mock.chatroom_names.length-1; i>-1; i--) {
name = mock.chatroom_names[i]; name = mock.chatroom_names[i];
...@@ -1168,7 +1168,7 @@ ...@@ -1168,7 +1168,7 @@
}).catch(_.partial(console.error, _)); }).catch(_.partial(console.error, _));
})); }));
it("shows users currently present in the room", it("shows users currently present in the groupchat",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -1200,7 +1200,7 @@ ...@@ -1200,7 +1200,7 @@
expect(occupants.querySelectorAll('li .occupant-nick')[index].textContent.trim()).toBe(mock.chatroom_names[i]); expect(occupants.querySelectorAll('li .occupant-nick')[index].textContent.trim()).toBe(mock.chatroom_names[i]);
} }
// Test users leaving the room // Test users leaving the groupchat
// http://xmpp.org/extensions/xep-0045.html#exit // http://xmpp.org/extensions/xep-0045.html#exit
for (i=mock.chatroom_names.length-1; i>-1; i--) { for (i=mock.chatroom_names.length-1; i>-1; i--) {
name = mock.chatroom_names[i]; name = mock.chatroom_names[i];
...@@ -1310,7 +1310,7 @@ ...@@ -1310,7 +1310,7 @@
expect($(occupants).last().find('.badge').length).toBe(1); expect($(occupants).last().find('.badge').length).toBe(1);
expect($(occupants).last().find('.badge').last().text()).toBe('Visitor'); expect($(occupants).last().find('.badge').last().text()).toBe('Visitor');
expect($(occupants).last().attr('title')).toBe( expect($(occupants).last().attr('title')).toBe(
contact_jid + ' This user can NOT send messages in this room. Click to mention visitorwoman in your message.' contact_jid + ' This user can NOT send messages in this groupchat. Click to mention visitorwoman in your message.'
); );
done(); done();
}).catch(_.partial(console.error, _)); }).catch(_.partial(console.error, _));
...@@ -1395,7 +1395,7 @@ ...@@ -1395,7 +1395,7 @@
expect(view.join).toHaveBeenCalled(); expect(view.join).toHaveBeenCalled();
// The user has just entered the room (because join was called) // The user has just entered the groupchat (because join was called)
// and receives their own presence from the server. // and receives their own presence from the server.
// See example 24: // See example 24:
// http://xmpp.org/extensions/xep-0045.html#enter-pres // http://xmpp.org/extensions/xep-0045.html#enter-pres
...@@ -1437,7 +1437,7 @@ ...@@ -1437,7 +1437,7 @@
var view = _converse.chatboxviews.get('lounge@localhost'); var view = _converse.chatboxviews.get('lounge@localhost');
// XXX: cheating a lttle bit, normally this'll be set after // XXX: cheating a lttle bit, normally this'll be set after
// receiving the features for the room. // receiving the features for the groupchat.
view.model.set('open', 'true'); view.model.set('open', 'true');
spyOn(view.model, 'directInvite').and.callThrough(); spyOn(view.model, 'directInvite').and.callThrough();
...@@ -1632,7 +1632,7 @@ ...@@ -1632,7 +1632,7 @@
}); });
})); }));
it("shows received chatroom subject messages", it("shows received groupchat subject messages",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -1724,7 +1724,7 @@ ...@@ -1724,7 +1724,7 @@
expect($occupants.children().first(0).find('.occupant-nick').text().trim()).toBe("oldnick"); expect($occupants.children().first(0).find('.occupant-nick').text().trim()).toBe("oldnick");
expect($chat_content.find('div.chat-info').length).toBe(1); expect($chat_content.find('div.chat-info').length).toBe(1);
expect($chat_content.find('div.chat-info:first').html()).toBe("oldnick has entered the room"); expect($chat_content.find('div.chat-info:first').html()).toBe("oldnick has entered the groupchat");
var presence = $pres().attrs({ var presence = $pres().attrs({
from:'lounge@localhost/oldnick', from:'lounge@localhost/oldnick',
...@@ -1765,7 +1765,7 @@ ...@@ -1765,7 +1765,7 @@
.c('status').attrs({code:'110'}).nodeTree; .c('status').attrs({code:'110'}).nodeTree;
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
// XXX: currently we still have an additional "has entered the room" // XXX: currently we still have an additional "has entered the groupchat"
// notification for the new nickname. Ideally we'd not have // notification for the new nickname. Ideally we'd not have
// that, but that's probably not possible without some // that, but that's probably not possible without some
// significant refactoring. // significant refactoring.
...@@ -1780,7 +1780,7 @@ ...@@ -1780,7 +1780,7 @@
}); });
})); }));
it("queries for the room information before attempting to join the user", it("queries for the groupchat information before attempting to join the user",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -1794,7 +1794,7 @@ ...@@ -1794,7 +1794,7 @@
_converse.api.rooms.open('coven@chat.shakespeare.lit', {'nick': 'some1'}); _converse.api.rooms.open('coven@chat.shakespeare.lit', {'nick': 'some1'});
// Check that the room queried for the feautures. // Check that the groupchat queried for the feautures.
expect(sent_IQ.toLocaleString()).toBe( expect(sent_IQ.toLocaleString()).toBe(
"<iq from='dummy@localhost/resource' to='coven@chat.shakespeare.lit' type='get' xmlns='jabber:client' id='"+IQ_id+"'>"+ "<iq from='dummy@localhost/resource' to='coven@chat.shakespeare.lit' type='get' xmlns='jabber:client' id='"+IQ_id+"'>"+
"<query xmlns='http://jabber.org/protocol/disco#info'/>"+ "<query xmlns='http://jabber.org/protocol/disco#info'/>"+
...@@ -1854,7 +1854,7 @@ ...@@ -1854,7 +1854,7 @@
}); });
})); }));
it("updates the shown features when the room configuration has changed", it("updates the shown features when the groupchat configuration has changed",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -1954,7 +1954,7 @@ ...@@ -1954,7 +1954,7 @@
.c('status', {code: '172'}); .c('status', {code: '172'});
_converse.connection._dataRecv(test_utils.createRequest(message)); _converse.connection._dataRecv(test_utils.createRequest(message));
var $chat_body = $(view.el.querySelector('.chatroom-body')); var $chat_body = $(view.el.querySelector('.chatroom-body'));
expect($chat_body.find('.message:last').text()).toBe('This room is now no longer anonymous'); expect($chat_body.find('.message:last').text()).toBe('This groupchat is now no longer anonymous');
done(); done();
}); });
})); }));
...@@ -2003,7 +2003,7 @@ ...@@ -2003,7 +2003,7 @@
const chat_body = view.el.querySelector('.chatroom-body'); const chat_body = view.el.querySelector('.chatroom-body');
expect(chat_body.querySelectorAll('.disconnect-msg').length).toBe(3); expect(chat_body.querySelectorAll('.disconnect-msg').length).toBe(3);
expect(chat_body.querySelector('.disconnect-msg:first-child').textContent).toBe( expect(chat_body.querySelector('.disconnect-msg:first-child').textContent).toBe(
'You have been kicked from this room'); 'You have been kicked from this groupchat');
expect(chat_body.querySelector('.disconnect-msg:nth-child(2)').textContent).toBe( expect(chat_body.querySelector('.disconnect-msg:nth-child(2)').textContent).toBe(
'This action was done by Fluellen.'); 'This action was done by Fluellen.');
expect(chat_body.querySelector('.disconnect-msg:nth-child(3)').textContent).toBe( expect(chat_body.querySelector('.disconnect-msg:nth-child(3)').textContent).toBe(
...@@ -2093,7 +2093,7 @@ ...@@ -2093,7 +2093,7 @@
}); });
describe("Each chat room can take special commands", function () { describe("Each chat groupchat can take special commands", function () {
it("/help to show the available commands", it("/help to show the available commands",
mock.initConverseWithPromises( mock.initConverseWithPromises(
...@@ -2104,7 +2104,7 @@ ...@@ -2104,7 +2104,7 @@
var view = _converse.chatboxviews.get('lounge@localhost'); var view = _converse.chatboxviews.get('lounge@localhost');
spyOn(view, 'onMessageSubmitted').and.callThrough(); spyOn(view, 'onMessageSubmitted').and.callThrough();
var textarea = view.el.querySelector('.chat-textarea'); var textarea = view.el.querySelector('.chat-textarea');
textarea.value = '/help This is the room subject'; textarea.value = '/help This is the groupchat subject';
view.keyPressed({ view.keyPressed({
target: textarea, target: textarea,
preventDefault: _.noop, preventDefault: _.noop,
...@@ -2115,26 +2115,26 @@ ...@@ -2115,26 +2115,26 @@
const info_messages = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info'), 0); const info_messages = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info'), 0);
expect(info_messages.length).toBe(17); expect(info_messages.length).toBe(17);
expect(info_messages.pop().textContent).toBe('/voice: Allow muted user to post messages'); expect(info_messages.pop().textContent).toBe('/voice: Allow muted user to post messages');
expect(info_messages.pop().textContent).toBe('/topic: Set room subject (alias for /subject)'); expect(info_messages.pop().textContent).toBe('/topic: Set groupchat subject (alias for /subject)');
expect(info_messages.pop().textContent).toBe('/subject: Set room subject'); expect(info_messages.pop().textContent).toBe('/subject: Set groupchat subject');
expect(info_messages.pop().textContent).toBe('/revoke: Revoke user\'s membership'); expect(info_messages.pop().textContent).toBe('/revoke: Revoke user\'s membership');
expect(info_messages.pop().textContent).toBe('/owner: Grant ownership of this room'); expect(info_messages.pop().textContent).toBe('/owner: Grant ownership of this groupchat');
expect(info_messages.pop().textContent).toBe('/op: Grant moderator role to user'); expect(info_messages.pop().textContent).toBe('/op: Grant moderator role to user');
expect(info_messages.pop().textContent).toBe('/nick: Change your nickname'); expect(info_messages.pop().textContent).toBe('/nick: Change your nickname');
expect(info_messages.pop().textContent).toBe('/mute: Remove user\'s ability to post messages'); expect(info_messages.pop().textContent).toBe('/mute: Remove user\'s ability to post messages');
expect(info_messages.pop().textContent).toBe('/member: Grant membership to a user'); expect(info_messages.pop().textContent).toBe('/member: Grant membership to a user');
expect(info_messages.pop().textContent).toBe('/me: Write in 3rd person'); expect(info_messages.pop().textContent).toBe('/me: Write in 3rd person');
expect(info_messages.pop().textContent).toBe('/kick: Kick user from room'); expect(info_messages.pop().textContent).toBe('/kick: Kick user from groupchat');
expect(info_messages.pop().textContent).toBe('/help: Show this menu'); expect(info_messages.pop().textContent).toBe('/help: Show this menu');
expect(info_messages.pop().textContent).toBe('/deop: Change user role to participant'); expect(info_messages.pop().textContent).toBe('/deop: Change user role to participant');
expect(info_messages.pop().textContent).toBe('/clear: Remove messages'); expect(info_messages.pop().textContent).toBe('/clear: Remove messages');
expect(info_messages.pop().textContent).toBe('/ban: Ban user from room'); expect(info_messages.pop().textContent).toBe('/ban: Ban user from groupchat');
expect(info_messages.pop().textContent).toBe('/admin: Change user\'s affiliation to admin'); expect(info_messages.pop().textContent).toBe('/admin: Change user\'s affiliation to admin');
done(); done();
}); });
})); }));
it("/topic to set the room topic", it("/topic to set the groupchat topic",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -2149,7 +2149,7 @@ ...@@ -2149,7 +2149,7 @@
}); });
// Check the alias /topic // Check the alias /topic
var textarea = view.el.querySelector('.chat-textarea'); var textarea = view.el.querySelector('.chat-textarea');
textarea.value = '/topic This is the room subject'; textarea.value = '/topic This is the groupchat subject';
view.keyPressed({ view.keyPressed({
target: textarea, target: textarea,
preventDefault: _.noop, preventDefault: _.noop,
...@@ -2157,7 +2157,7 @@ ...@@ -2157,7 +2157,7 @@
}); });
expect(view.onMessageSubmitted).toHaveBeenCalled(); expect(view.onMessageSubmitted).toHaveBeenCalled();
expect(_converse.connection.send).toHaveBeenCalled(); expect(_converse.connection.send).toHaveBeenCalled();
expect(sent_stanza.textContent).toBe('This is the room subject'); expect(sent_stanza.textContent).toBe('This is the groupchat subject');
// Check /subject // Check /subject
textarea.value = '/subject This is a new subject'; textarea.value = '/subject This is a new subject';
...@@ -2415,7 +2415,7 @@ ...@@ -2415,7 +2415,7 @@
spyOn(view, 'showChatEvent').and.callThrough(); spyOn(view, 'showChatEvent').and.callThrough();
spyOn(view, 'validateRoleChangeCommand').and.callThrough(); spyOn(view, 'validateRoleChangeCommand').and.callThrough();
// New user enters the room // New user enters the groupchat
/* <presence /* <presence
* from='coven@chat.shakespeare.lit/thirdwitch' * from='coven@chat.shakespeare.lit/thirdwitch'
* id='27C55F89-1C6A-459A-9EB5-77690145D624' * id='27C55F89-1C6A-459A-9EB5-77690145D624'
...@@ -2438,7 +2438,7 @@ ...@@ -2438,7 +2438,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
var info_msgs = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info'), 0); var info_msgs = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info'), 0);
expect(info_msgs.pop().textContent).toBe("trustworthyguy has entered the room"); expect(info_msgs.pop().textContent).toBe("trustworthyguy has entered the groupchat");
var textarea = view.el.querySelector('.chat-textarea') var textarea = view.el.querySelector('.chat-textarea')
textarea.value = '/op'; textarea.value = '/op';
...@@ -2555,7 +2555,7 @@ ...@@ -2555,7 +2555,7 @@
spyOn(view, 'showChatEvent').and.callThrough(); spyOn(view, 'showChatEvent').and.callThrough();
spyOn(view, 'validateRoleChangeCommand').and.callThrough(); spyOn(view, 'validateRoleChangeCommand').and.callThrough();
// New user enters the room // New user enters the groupchat
/* <presence /* <presence
* from='coven@chat.shakespeare.lit/thirdwitch' * from='coven@chat.shakespeare.lit/thirdwitch'
* id='27C55F89-1C6A-459A-9EB5-77690145D624' * id='27C55F89-1C6A-459A-9EB5-77690145D624'
...@@ -2578,7 +2578,7 @@ ...@@ -2578,7 +2578,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
var info_msgs = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info'), 0); var info_msgs = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info'), 0);
expect(info_msgs.pop().textContent).toBe("annoyingGuy has entered the room"); expect(info_msgs.pop().textContent).toBe("annoyingGuy has entered the groupchat");
var textarea = view.el.querySelector('.chat-textarea') var textarea = view.el.querySelector('.chat-textarea')
textarea.value = '/mute'; textarea.value = '/mute';
...@@ -2677,9 +2677,9 @@ ...@@ -2677,9 +2677,9 @@
})); }));
}); });
describe("When attempting to enter a chatroom", function () { describe("When attempting to enter a groupchat", function () {
it("will show an error message if the room requires a password", it("will show an error message if the groupchat requires a password",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched', 'chatBoxesFetched'], {}, null, ['rosterGroupsFetched', 'chatBoxesFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -2703,7 +2703,7 @@ ...@@ -2703,7 +2703,7 @@
var $chat_body = $(view.el).find('.chatroom-body'); var $chat_body = $(view.el).find('.chatroom-body');
expect(view.renderPasswordForm).toHaveBeenCalled(); expect(view.renderPasswordForm).toHaveBeenCalled();
expect($chat_body.find('form.chatroom-form').length).toBe(1); expect($chat_body.find('form.chatroom-form').length).toBe(1);
expect($chat_body.find('legend').text()).toBe('This chatroom requires a password'); expect($chat_body.find('legend').text()).toBe('This groupchat requires a password');
// Let's submit the form // Let's submit the form
spyOn(view, 'join'); spyOn(view, 'join');
...@@ -2715,7 +2715,7 @@ ...@@ -2715,7 +2715,7 @@
}).catch(_.partial(console.error, _)); }).catch(_.partial(console.error, _));
})); }));
it("will show an error message if the room is members-only and the user not included", it("will show an error message if the groupchat is members-only and the user not included",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -2734,7 +2734,7 @@ ...@@ -2734,7 +2734,7 @@
spyOn(view, 'showErrorMessage').and.callThrough(); spyOn(view, 'showErrorMessage').and.callThrough();
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent) expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent)
.toBe('You are not on the member list of this room.'); .toBe('You are not on the member list of this groupchat.');
done(); done();
}).catch(_.partial(console.error, _)); }).catch(_.partial(console.error, _));
})); }));
...@@ -2758,7 +2758,7 @@ ...@@ -2758,7 +2758,7 @@
spyOn(view, 'showErrorMessage').and.callThrough(); spyOn(view, 'showErrorMessage').and.callThrough();
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent) expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent)
.toBe('You have been banned from this room.'); .toBe('You have been banned from this groupchat.');
done(); done();
}).catch(_.partial(console.error, _)); }).catch(_.partial(console.error, _));
})); }));
...@@ -2825,7 +2825,7 @@ ...@@ -2825,7 +2825,7 @@
spyOn(view, 'showErrorMessage').and.callThrough(); spyOn(view, 'showErrorMessage').and.callThrough();
spyOn(view, 'join').and.callThrough(); spyOn(view, 'join').and.callThrough();
// Simulate repeatedly that there's already someone in the room // Simulate repeatedly that there's already someone in the groupchat
// with that nickname // with that nickname
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect(view.join).toHaveBeenCalledWith('dummy-2'); expect(view.join).toHaveBeenCalledWith('dummy-2');
...@@ -2852,7 +2852,7 @@ ...@@ -2852,7 +2852,7 @@
}).catch(_.partial(console.error, _)); }).catch(_.partial(console.error, _));
})); }));
it("will show an error message if the user is not allowed to have created the room", it("will show an error message if the user is not allowed to have created the groupchat",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -2895,12 +2895,12 @@ ...@@ -2895,12 +2895,12 @@
spyOn(view, 'showErrorMessage').and.callThrough(); spyOn(view, 'showErrorMessage').and.callThrough();
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent) expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent)
.toBe("Your nickname doesn't conform to this room's policies."); .toBe("Your nickname doesn't conform to this groupchat's policies.");
done(); done();
}).catch(_.partial(console.error, _)); }).catch(_.partial(console.error, _));
})); }));
it("will show an error message if the room doesn't yet exist", it("will show an error message if the groupchat doesn't yet exist",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -2919,12 +2919,12 @@ ...@@ -2919,12 +2919,12 @@
spyOn(view, 'showErrorMessage').and.callThrough(); spyOn(view, 'showErrorMessage').and.callThrough();
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent) expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent)
.toBe("This room does not (yet) exist."); .toBe("This groupchat does not (yet) exist.");
done(); done();
}).catch(_.partial(console.error, _)); }).catch(_.partial(console.error, _));
})); }));
it("will show an error message if the room has reached its maximum number of occupants", it("will show an error message if the groupchat has reached its maximum number of participants",
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
function (done, _converse) { function (done, _converse) {
...@@ -2943,7 +2943,7 @@ ...@@ -2943,7 +2943,7 @@
spyOn(view, 'showErrorMessage').and.callThrough(); spyOn(view, 'showErrorMessage').and.callThrough();
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent) expect(view.el.querySelector('.chatroom-body .disconnect-container .disconnect-msg:last-child').textContent)
.toBe("This room has reached its maximum number of occupants."); .toBe("This groupchat has reached its maximum number of participants.");
done(); done();
}).catch(_.partial(console.error, _)); }).catch(_.partial(console.error, _));
})); }));
...@@ -3272,7 +3272,7 @@ ...@@ -3272,7 +3272,7 @@
mock.initConverseWithPromises( mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], {'allow_bookmarks': false}, null, ['rosterGroupsFetched'], {'allow_bookmarks': false},
function (done, _converse) { function (done, _converse) {
// XXX: we set `allow_bookmarks` to false, so that the rooms // XXX: we set `allow_bookmarks` to false, so that the groupchats
// list gets rendered. Otherwise we would have to mock // list gets rendered. Otherwise we would have to mock
// the bookmark stanza exchange. // the bookmark stanza exchange.
...@@ -3360,7 +3360,7 @@ ...@@ -3360,7 +3360,7 @@
.c('status', {code: '110'}); .c('status', {code: '110'});
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(2); expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(2);
expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the room"); expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the groupchat");
expect($chat_content.find('div.chat-info:last').html()).toBe("some1 is now a moderator"); expect($chat_content.find('div.chat-info:last').html()).toBe("some1 is now a moderator");
presence = $pres({ presence = $pres({
...@@ -3375,7 +3375,7 @@ ...@@ -3375,7 +3375,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(3); expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(3);
expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the room"); expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the groupchat");
presence = $pres({ presence = $pres({
to: 'dummy@localhost/_converse.js-29092160', to: 'dummy@localhost/_converse.js-29092160',
...@@ -3389,7 +3389,7 @@ ...@@ -3389,7 +3389,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(4); expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(4);
expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the room"); expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the groupchat");
// See XEP-0085 http://xmpp.org/extensions/xep-0085.html#definitions // See XEP-0085 http://xmpp.org/extensions/xep-0085.html#definitions
...@@ -3406,10 +3406,10 @@ ...@@ -3406,10 +3406,10 @@
// Check that the notification appears inside the chatbox in the DOM // Check that the notification appears inside the chatbox in the DOM
var events = view.el.querySelectorAll('.chat-event'); var events = view.el.querySelectorAll('.chat-event');
expect(events.length).toBe(4); expect(events.length).toBe(4);
expect(events[0].textContent).toEqual('some1 has entered the room'); expect(events[0].textContent).toEqual('some1 has entered the groupchat');
expect(events[1].textContent).toEqual('some1 is now a moderator'); expect(events[1].textContent).toEqual('some1 is now a moderator');
expect(events[2].textContent).toEqual('newguy has entered the room'); expect(events[2].textContent).toEqual('newguy has entered the groupchat');
expect(events[3].textContent).toEqual('nomorenicks has entered the room'); expect(events[3].textContent).toEqual('nomorenicks has entered the groupchat');
var notifications = view.el.querySelectorAll('.chat-state-notification'); var notifications = view.el.querySelectorAll('.chat-state-notification');
expect(notifications.length).toBe(1); expect(notifications.length).toBe(1);
...@@ -3431,10 +3431,10 @@ ...@@ -3431,10 +3431,10 @@
events = view.el.querySelectorAll('.chat-event'); events = view.el.querySelectorAll('.chat-event');
expect(events.length).toBe(4); expect(events.length).toBe(4);
expect(events[0].textContent).toEqual('some1 has entered the room'); expect(events[0].textContent).toEqual('some1 has entered the groupchat');
expect(events[1].textContent).toEqual('some1 is now a moderator'); expect(events[1].textContent).toEqual('some1 is now a moderator');
expect(events[2].textContent).toEqual('newguy has entered the room'); expect(events[2].textContent).toEqual('newguy has entered the groupchat');
expect(events[3].textContent).toEqual('nomorenicks has entered the room'); expect(events[3].textContent).toEqual('nomorenicks has entered the groupchat');
notifications = view.el.querySelectorAll('.chat-state-notification'); notifications = view.el.querySelectorAll('.chat-state-notification');
expect(notifications.length).toBe(1); expect(notifications.length).toBe(1);
...@@ -3452,10 +3452,10 @@ ...@@ -3452,10 +3452,10 @@
view.model.onMessage(msg); view.model.onMessage(msg);
events = view.el.querySelectorAll('.chat-event'); events = view.el.querySelectorAll('.chat-event');
expect(events.length).toBe(4); expect(events.length).toBe(4);
expect(events[0].textContent).toEqual('some1 has entered the room'); expect(events[0].textContent).toEqual('some1 has entered the groupchat');
expect(events[1].textContent).toEqual('some1 is now a moderator'); expect(events[1].textContent).toEqual('some1 is now a moderator');
expect(events[2].textContent).toEqual('newguy has entered the room'); expect(events[2].textContent).toEqual('newguy has entered the groupchat');
expect(events[3].textContent).toEqual('nomorenicks has entered the room'); expect(events[3].textContent).toEqual('nomorenicks has entered the groupchat');
notifications = view.el.querySelectorAll('.chat-state-notification'); notifications = view.el.querySelectorAll('.chat-state-notification');
expect(notifications.length).toBe(2); expect(notifications.length).toBe(2);
...@@ -3483,10 +3483,10 @@ ...@@ -3483,10 +3483,10 @@
timeout_functions[0](); timeout_functions[0]();
events = view.el.querySelectorAll('.chat-event'); events = view.el.querySelectorAll('.chat-event');
expect(events.length).toBe(4); expect(events.length).toBe(4);
expect(events[0].textContent).toEqual('some1 has entered the room'); expect(events[0].textContent).toEqual('some1 has entered the groupchat');
expect(events[1].textContent).toEqual('some1 is now a moderator'); expect(events[1].textContent).toEqual('some1 is now a moderator');
expect(events[2].textContent).toEqual('newguy has entered the room'); expect(events[2].textContent).toEqual('newguy has entered the groupchat');
expect(events[3].textContent).toEqual('nomorenicks has entered the room'); expect(events[3].textContent).toEqual('nomorenicks has entered the groupchat');
notifications = view.el.querySelectorAll('.chat-state-notification'); notifications = view.el.querySelectorAll('.chat-state-notification');
expect(notifications.length).toBe(1); expect(notifications.length).toBe(1);
...@@ -3495,10 +3495,10 @@ ...@@ -3495,10 +3495,10 @@
timeout_functions[1](); timeout_functions[1]();
events = view.el.querySelectorAll('.chat-event'); events = view.el.querySelectorAll('.chat-event');
expect(events.length).toBe(4); expect(events.length).toBe(4);
expect(events[0].textContent).toEqual('some1 has entered the room'); expect(events[0].textContent).toEqual('some1 has entered the groupchat');
expect(events[1].textContent).toEqual('some1 is now a moderator'); expect(events[1].textContent).toEqual('some1 is now a moderator');
expect(events[2].textContent).toEqual('newguy has entered the room'); expect(events[2].textContent).toEqual('newguy has entered the groupchat');
expect(events[3].textContent).toEqual('nomorenicks has entered the room'); expect(events[3].textContent).toEqual('nomorenicks has entered the groupchat');
notifications = view.el.querySelectorAll('.chat-state-notification'); notifications = view.el.querySelectorAll('.chat-state-notification');
expect(notifications.length).toBe(0); expect(notifications.length).toBe(0);
...@@ -3537,7 +3537,7 @@ ...@@ -3537,7 +3537,7 @@
}).up() }).up()
.c('status', {code: '110'}); .c('status', {code: '110'});
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the room"); expect($chat_content.find('div.chat-info:first').html()).toBe("some1 has entered the groupchat");
presence = $pres({ presence = $pres({
to: 'dummy@localhost/_converse.js-29092160', to: 'dummy@localhost/_converse.js-29092160',
...@@ -3551,7 +3551,7 @@ ...@@ -3551,7 +3551,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(2); expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(2);
expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the room"); expect($chat_content.find('div.chat-info:last').html()).toBe("newguy has entered the groupchat");
presence = $pres({ presence = $pres({
to: 'dummy@localhost/_converse.js-29092160', to: 'dummy@localhost/_converse.js-29092160',
...@@ -3565,7 +3565,7 @@ ...@@ -3565,7 +3565,7 @@
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(3); expect($chat_content[0].querySelectorAll('div.chat-info').length).toBe(3);
expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the room"); expect($chat_content.find('div.chat-info:last').html()).toBe("nomorenicks has entered the groupchat");
// See XEP-0085 http://xmpp.org/extensions/xep-0085.html#definitions // See XEP-0085 http://xmpp.org/extensions/xep-0085.html#definitions
...@@ -3581,9 +3581,9 @@ ...@@ -3581,9 +3581,9 @@
// Check that the notification appears inside the chatbox in the DOM // Check that the notification appears inside the chatbox in the DOM
var events = view.el.querySelectorAll('.chat-event'); var events = view.el.querySelectorAll('.chat-event');
expect(events.length).toBe(3); expect(events.length).toBe(3);
expect(events[0].textContent).toEqual('some1 has entered the room'); expect(events[0].textContent).toEqual('some1 has entered the groupchat');
expect(events[1].textContent).toEqual('newguy has entered the room'); expect(events[1].textContent).toEqual('newguy has entered the groupchat');
expect(events[2].textContent).toEqual('nomorenicks has entered the room'); expect(events[2].textContent).toEqual('nomorenicks has entered the groupchat');
var notifications = view.el.querySelectorAll('.chat-state-notification'); var notifications = view.el.querySelectorAll('.chat-state-notification');
expect(notifications.length).toBe(1); expect(notifications.length).toBe(1);
...@@ -3600,9 +3600,9 @@ ...@@ -3600,9 +3600,9 @@
events = view.el.querySelectorAll('.chat-event'); events = view.el.querySelectorAll('.chat-event');
expect(events.length).toBe(3); expect(events.length).toBe(3);
expect(events[0].textContent).toEqual('some1 has entered the room'); expect(events[0].textContent).toEqual('some1 has entered the groupchat');
expect(events[1].textContent).toEqual('newguy has entered the room'); expect(events[1].textContent).toEqual('newguy has entered the groupchat');
expect(events[2].textContent).toEqual('nomorenicks has entered the room'); expect(events[2].textContent).toEqual('nomorenicks has entered the groupchat');
notifications = view.el.querySelectorAll('.chat-state-notification'); notifications = view.el.querySelectorAll('.chat-state-notification');
expect(notifications.length).toBe(1); expect(notifications.length).toBe(1);
...@@ -3618,9 +3618,9 @@ ...@@ -3618,9 +3618,9 @@
view.model.onMessage(msg); view.model.onMessage(msg);
events = view.el.querySelectorAll('.chat-event'); events = view.el.querySelectorAll('.chat-event');
expect(events.length).toBe(3); expect(events.length).toBe(3);
expect(events[0].textContent).toEqual('some1 has entered the room'); expect(events[0].textContent).toEqual('some1 has entered the groupchat');
expect(events[1].textContent).toEqual('newguy has entered the room'); expect(events[1].textContent).toEqual('newguy has entered the groupchat');
expect(events[2].textContent).toEqual('nomorenicks has entered the room'); expect(events[2].textContent).toEqual('nomorenicks has entered the groupchat');
notifications = view.el.querySelectorAll('.chat-state-notification'); notifications = view.el.querySelectorAll('.chat-state-notification');
expect(notifications.length).toBe(2); expect(notifications.length).toBe(2);
...@@ -3637,9 +3637,9 @@ ...@@ -3637,9 +3637,9 @@
view.model.onMessage(msg); view.model.onMessage(msg);
events = view.el.querySelectorAll('.chat-event'); events = view.el.querySelectorAll('.chat-event');
expect(events.length).toBe(3); expect(events.length).toBe(3);
expect(events[0].textContent).toEqual('some1 has entered the room'); expect(events[0].textContent).toEqual('some1 has entered the groupchat');
expect(events[1].textContent).toEqual('newguy has entered the room'); expect(events[1].textContent).toEqual('newguy has entered the groupchat');
expect(events[2].textContent).toEqual('nomorenicks has entered the room'); expect(events[2].textContent).toEqual('nomorenicks has entered the groupchat');
notifications = view.el.querySelectorAll('.chat-state-notification'); notifications = view.el.querySelectorAll('.chat-state-notification');
expect(notifications.length).toBe(2); expect(notifications.length).toBe(2);
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
)); ));
}); });
describe("A room shown in the rooms list", function () { describe("A room shown in the groupchats list", function () {
it("has an info icon which opens a details modal when clicked", mock.initConverseWithPromises( it("has an info icon which opens a details modal when clicked", mock.initConverseWithPromises(
null, ['rosterGroupsFetched'], null, ['rosterGroupsFetched'],
...@@ -182,7 +182,7 @@ ...@@ -182,7 +182,7 @@
var close_el = _converse.rooms_list_view.el.querySelector(".close-room"); var close_el = _converse.rooms_list_view.el.querySelector(".close-room");
close_el.click(); close_el.click();
expect(window.confirm).toHaveBeenCalledWith( expect(window.confirm).toHaveBeenCalledWith(
'Are you sure you want to leave the room lounge@conference.shakespeare.lit?'); 'Are you sure you want to leave the groupchat lounge@conference.shakespeare.lit?');
room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room"); room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
expect(room_els.length).toBe(0); expect(room_els.length).toBe(0);
expect(_converse.chatboxes.length).toBe(1); expect(_converse.chatboxes.length).toBe(1);
...@@ -215,7 +215,7 @@ ...@@ -215,7 +215,7 @@
type: 'groupchat' type: 'groupchat'
}).c('body').t('foo').tree()); }).c('body').t('foo').tree());
// If the user isn't mentioned, the counter doesn't get incremented, but the text of the room is bold // If the user isn't mentioned, the counter doesn't get incremented, but the text of the groupchat is bold
var room_el = _converse.rooms_list_view.el.querySelector( var room_el = _converse.rooms_list_view.el.querySelector(
".available-chatroom" ".available-chatroom"
); );
......
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
{ __ } = _converse; { __ } = _converse;
const bookmark_button = tpl_chatroom_bookmark_toggle( const bookmark_button = tpl_chatroom_bookmark_toggle(
_.assignIn(this.model.toJSON(), { _.assignIn(this.model.toJSON(), {
info_toggle_bookmark: __('Bookmark this room'), info_toggle_bookmark: __('Bookmark this groupchat'),
bookmarked: this.model.get('bookmarked') bookmarked: this.model.get('bookmarked')
})); }));
const close_button = this.el.querySelector('.close-chatbox-button'); const close_button = this.el.querySelector('.close-chatbox-button');
...@@ -143,10 +143,10 @@ ...@@ -143,10 +143,10 @@
body.insertAdjacentHTML( body.insertAdjacentHTML(
'beforeend', 'beforeend',
tpl_chatroom_bookmark_form({ tpl_chatroom_bookmark_form({
heading: __('Bookmark this room'), heading: __('Bookmark this groupchat'),
label_name: __('The name for this bookmark:'), label_name: __('The name for this bookmark:'),
label_autojoin: __('Would you like this room to be automatically joined upon startup?'), label_autojoin: __('Would you like this groupchat to be automatically joined upon startup?'),
label_nick: __('What should your nickname for this room be?'), label_nick: __('What should your nickname for this groupchat be?'),
default_nick: this.model.get('nick'), default_nick: this.model.get('nick'),
label_submit: __('Save'), label_submit: __('Save'),
label_cancel: __('Cancel') label_cancel: __('Cancel')
...@@ -410,13 +410,13 @@ ...@@ -410,13 +410,13 @@
'hidden': _converse.hide_open_bookmarks && 'hidden': _converse.hide_open_bookmarks &&
_converse.chatboxes.where({'jid': this.model.get('jid')}).length, _converse.chatboxes.where({'jid': this.model.get('jid')}).length,
'bookmarked': true, 'bookmarked': true,
'info_leave_room': __('Leave this room'), 'info_leave_room': __('Leave this groupchat'),
'info_remove': __('Remove this bookmark'), 'info_remove': __('Remove this bookmark'),
'info_remove_bookmark': __('Unbookmark this room'), 'info_remove_bookmark': __('Unbookmark this groupchat'),
'info_title': __('Show more information on this room'), 'info_title': __('Show more information on this groupchat'),
'jid': this.model.get('jid'), 'jid': this.model.get('jid'),
'name': Strophe.xmlunescape(this.model.get('name')), 'name': Strophe.xmlunescape(this.model.get('name')),
'open_title': __('Click to open this room') 'open_title': __('Click to open this groupchat')
}); });
} }
}); });
......
...@@ -196,24 +196,24 @@ ...@@ -196,24 +196,24 @@
*/ */
_converse.muc = { _converse.muc = {
info_messages: { info_messages: {
100: __('This room is not anonymous'), 100: __('This groupchat is not anonymous'),
102: __('This room now shows unavailable members'), 102: __('This groupchat now shows unavailable members'),
103: __('This room does not show unavailable members'), 103: __('This groupchat does not show unavailable members'),
104: __('The room configuration has changed'), 104: __('The groupchat configuration has changed'),
170: __('Room logging is now enabled'), 170: __('groupchat logging is now enabled'),
171: __('Room logging is now disabled'), 171: __('groupchat logging is now disabled'),
172: __('This room is now no longer anonymous'), 172: __('This groupchat is now no longer anonymous'),
173: __('This room is now semi-anonymous'), 173: __('This groupchat is now semi-anonymous'),
174: __('This room is now fully-anonymous'), 174: __('This groupchat is now fully-anonymous'),
201: __('A new room has been created') 201: __('A new groupchat has been created')
}, },
disconnect_messages: { disconnect_messages: {
301: __('You have been banned from this room'), 301: __('You have been banned from this groupchat'),
307: __('You have been kicked from this room'), 307: __('You have been kicked from this groupchat'),
321: __("You have been removed from this room because of an affiliation change"), 321: __("You have been removed from this groupchat because of an affiliation change"),
322: __("You have been removed from this room because the room has changed to members-only and you're not a member"), 322: __("You have been removed from this groupchat because the groupchat has changed to members-only and you're not a member"),
332: __("You have been removed from this room because the MUC (Multi-user chat) service is being shut down") 332: __("You have been removed from this groupchat because the MUC (Multi-user chat) service is being shut down")
}, },
action_info_messages: { action_info_messages: {
...@@ -271,19 +271,19 @@ ...@@ -271,19 +271,19 @@
'temporary': sizzle('feature[var="muc_temporary"]', stanza).length, 'temporary': sizzle('feature[var="muc_temporary"]', stanza).length,
'unmoderated': sizzle('feature[var="muc_unmoderated"]', stanza).length, 'unmoderated': sizzle('feature[var="muc_unmoderated"]', stanza).length,
'label_desc': __('Description:'), 'label_desc': __('Description:'),
'label_jid': __('Room Address (JID):'), 'label_jid': __('Groupchat Address (JID):'),
'label_occ': __('Occupants:'), 'label_occ': __('Participants:'),
'label_features': __('Features:'), 'label_features': __('Features:'),
'label_requires_auth': __('Requires authentication'), 'label_requires_auth': __('Requires authentication'),
'label_hidden': __('Hidden'), 'label_hidden': __('Hidden'),
'label_requires_invite': __('Requires an invitation'), 'label_requires_invite': __('Requires an invitation'),
'label_moderated': __('Moderated'), 'label_moderated': __('Moderated'),
'label_non_anon': __('Non-anonymous'), 'label_non_anon': __('Non-anonymous'),
'label_open_room': __('Open room'), 'label_open_room': __('Open'),
'label_permanent_room': __('Permanent room'), 'label_permanent_room': __('Permanent'),
'label_public': __('Public'), 'label_public': __('Public'),
'label_semi_anon': __('Semi-anonymous'), 'label_semi_anon': __('Semi-anonymous'),
'label_temp_room': __('Temporary room'), 'label_temp_room': __('Temporary'),
'label_unmoderated': __('Unmoderated') 'label_unmoderated': __('Unmoderated')
})); }));
} }
...@@ -321,7 +321,7 @@ ...@@ -321,7 +321,7 @@
toHTML () { toHTML () {
return tpl_list_chatrooms_modal(_.extend(this.model.toJSON(), { return tpl_list_chatrooms_modal(_.extend(this.model.toJSON(), {
'heading_list_chatrooms': __('Query for Chatrooms'), 'heading_list_chatrooms': __('Query for Groupchats'),
'label_server_address': __('Server address'), 'label_server_address': __('Server address'),
'label_query': __('Show rooms'), 'label_query': __('Show rooms'),
'server_placeholder': __('conference.example.org') 'server_placeholder': __('conference.example.org')
...@@ -362,8 +362,8 @@ ...@@ -362,8 +362,8 @@
div.innerHTML = tpl_room_item({ div.innerHTML = tpl_room_item({
'name': Strophe.xmlunescape(name), 'name': Strophe.xmlunescape(name),
'jid': room.getAttribute('jid'), 'jid': room.getAttribute('jid'),
'open_title': __('Click to open this room'), 'open_title': __('Click to open this groupchat'),
'info_title': __('Show more information on this room') 'info_title': __('Show more information on this groupchat')
}); });
return div.firstElementChild; return div.firstElementChild;
}, },
...@@ -447,8 +447,8 @@ ...@@ -447,8 +447,8 @@
toHTML () { toHTML () {
return tpl_add_chatroom_modal(_.extend(this.model.toJSON(), { return tpl_add_chatroom_modal(_.extend(this.model.toJSON(), {
'heading_new_chatroom': __('Enter a new Chatroom'), 'heading_new_chatroom': __('Enter a new Groupchat'),
'label_room_address': __('Room address'), 'label_room_address': __('Groupchat address'),
'label_nickname': __('Optional nickname'), 'label_nickname': __('Optional nickname'),
'chatroom_placeholder': __('name@conference.example.org'), 'chatroom_placeholder': __('name@conference.example.org'),
'label_join': __('Join'), 'label_join': __('Join'),
...@@ -663,9 +663,9 @@ ...@@ -663,9 +663,9 @@
return tpl_chatroom_head( return tpl_chatroom_head(
_.extend(this.model.toJSON(), { _.extend(this.model.toJSON(), {
'Strophe': Strophe, 'Strophe': Strophe,
'info_close': __('Close and leave this room'), 'info_close': __('Close and leave this groupchat'),
'info_configure': __('Configure this room'), 'info_configure': __('Configure this groupchat'),
'info_details': __('Show more details about this room'), 'info_details': __('Show more details about this groupchat'),
'description': this.model.get('description') || '' 'description': this.model.get('description') || ''
})); }));
}, },
...@@ -709,7 +709,7 @@ ...@@ -709,7 +709,7 @@
return _.extend( return _.extend(
_converse.ChatBoxView.prototype.getToolbarOptions.apply(this, arguments), _converse.ChatBoxView.prototype.getToolbarOptions.apply(this, arguments),
{ {
label_hide_occupants: __('Hide the list of occupants'), label_hide_occupants: __('Hide the list of participants'),
show_occupants_toggle: this.is_chatroom && _converse.visible_toolbar_buttons.toggle_occupants show_occupants_toggle: this.is_chatroom && _converse.visible_toolbar_buttons.toggle_occupants
} }
); );
...@@ -868,20 +868,20 @@ ...@@ -868,20 +868,20 @@
case 'help': case 'help':
this.showHelpMessages([ this.showHelpMessages([
`<strong>/admin</strong>: ${__("Change user's affiliation to admin")}`, `<strong>/admin</strong>: ${__("Change user's affiliation to admin")}`,
`<strong>/ban</strong>: ${__('Ban user from room')}`, `<strong>/ban</strong>: ${__('Ban user from groupchat')}`,
`<strong>/clear</strong>: ${__('Remove messages')}`, `<strong>/clear</strong>: ${__('Remove messages')}`,
`<strong>/deop</strong>: ${__('Change user role to participant')}`, `<strong>/deop</strong>: ${__('Change user role to participant')}`,
`<strong>/help</strong>: ${__('Show this menu')}`, `<strong>/help</strong>: ${__('Show this menu')}`,
`<strong>/kick</strong>: ${__('Kick user from room')}`, `<strong>/kick</strong>: ${__('Kick user from groupchat')}`,
`<strong>/me</strong>: ${__('Write in 3rd person')}`, `<strong>/me</strong>: ${__('Write in 3rd person')}`,
`<strong>/member</strong>: ${__('Grant membership to a user')}`, `<strong>/member</strong>: ${__('Grant membership to a user')}`,
`<strong>/mute</strong>: ${__("Remove user's ability to post messages")}`, `<strong>/mute</strong>: ${__("Remove user's ability to post messages")}`,
`<strong>/nick</strong>: ${__('Change your nickname')}`, `<strong>/nick</strong>: ${__('Change your nickname')}`,
`<strong>/op</strong>: ${__('Grant moderator role to user')}`, `<strong>/op</strong>: ${__('Grant moderator role to user')}`,
`<strong>/owner</strong>: ${__('Grant ownership of this room')}`, `<strong>/owner</strong>: ${__('Grant ownership of this groupchat')}`,
`<strong>/revoke</strong>: ${__("Revoke user's membership")}`, `<strong>/revoke</strong>: ${__("Revoke user's membership")}`,
`<strong>/subject</strong>: ${__('Set room subject')}`, `<strong>/subject</strong>: ${__('Set groupchat subject')}`,
`<strong>/topic</strong>: ${__('Set room subject (alias for /subject)')}`, `<strong>/topic</strong>: ${__('Set groupchat subject (alias for /subject)')}`,
`<strong>/voice</strong>: ${__('Allow muted user to post messages')}` `<strong>/voice</strong>: ${__('Allow muted user to post messages')}`
]); ]);
break; break;
...@@ -1227,7 +1227,7 @@ ...@@ -1227,7 +1227,7 @@
tpl_chatroom_nickname_form({ tpl_chatroom_nickname_form({
heading: __('Please choose your nickname'), heading: __('Please choose your nickname'),
label_nickname: __('Nickname'), label_nickname: __('Nickname'),
label_join: __('Enter room'), label_join: __('Enter groupchat'),
validation_message: message validation_message: message
})); }));
this.model.save('connection_status', converse.ROOMSTATUS.NICKNAME_REQUIRED); this.model.save('connection_status', converse.ROOMSTATUS.NICKNAME_REQUIRED);
...@@ -1250,7 +1250,7 @@ ...@@ -1250,7 +1250,7 @@
container_el.insertAdjacentHTML('beforeend', container_el.insertAdjacentHTML('beforeend',
tpl_chatroom_password_form({ tpl_chatroom_password_form({
heading: __('This chatroom requires a password'), heading: __('This groupchat requires a password'),
label_password: __('Password: '), label_password: __('Password: '),
label_submit: __('Submit') label_submit: __('Submit')
})); }));
...@@ -1395,14 +1395,14 @@ ...@@ -1395,14 +1395,14 @@
'data': `data-leavejoin="${nick}"`, 'data': `data-leavejoin="${nick}"`,
'isodate': moment().format(), 'isodate': moment().format(),
'extra_classes': 'chat-event', 'extra_classes': 'chat-event',
'message': __('%1$s has left and re-entered the room', nick) 'message': __('%1$s has left and re-entered the groupchat', nick)
}); });
} else { } else {
let message; let message;
if (_.isNil(stat)) { if (_.isNil(stat)) {
message = __('%1$s has entered the room', nick); message = __('%1$s has entered the groupchat', nick);
} else { } else {
message = __('%1$s has entered the room. "%2$s"', nick, stat); message = __('%1$s has entered the groupchat. "%2$s"', nick, stat);
} }
const data = { const data = {
'data': `data-join="${nick}"`, 'data': `data-join="${nick}"`,
...@@ -1435,9 +1435,9 @@ ...@@ -1435,9 +1435,9 @@
let message; let message;
if (_.isNil(stat)) { if (_.isNil(stat)) {
message = __('%1$s has entered and left the room', nick); message = __('%1$s has entered and left the groupchat', nick);
} else { } else {
message = __('%1$s has entered and left the room. "%2$s"', nick, stat); message = __('%1$s has entered and left the groupchat. "%2$s"', nick, stat);
} }
last_el.outerHTML = last_el.outerHTML =
tpl_info({ tpl_info({
...@@ -1449,9 +1449,9 @@ ...@@ -1449,9 +1449,9 @@
} else { } else {
let message; let message;
if (_.isNil(stat)) { if (_.isNil(stat)) {
message = __('%1$s has left the room', nick); message = __('%1$s has left the groupchat', nick);
} else { } else {
message = __('%1$s has left the room. "%2$s"', nick, stat); message = __('%1$s has left the groupchat. "%2$s"', nick, stat);
} }
const data = { const data = {
'message': message, 'message': message,
...@@ -1494,9 +1494,9 @@ ...@@ -1494,9 +1494,9 @@
if (!_.isNull(error.querySelector('not-authorized'))) { if (!_.isNull(error.querySelector('not-authorized'))) {
this.renderPasswordForm(); this.renderPasswordForm();
} else if (!_.isNull(error.querySelector('registration-required'))) { } else if (!_.isNull(error.querySelector('registration-required'))) {
this.showDisconnectMessages(__('You are not on the member list of this room.')); this.showDisconnectMessages(__('You are not on the member list of this groupchat.'));
} else if (!_.isNull(error.querySelector('forbidden'))) { } else if (!_.isNull(error.querySelector('forbidden'))) {
this.showDisconnectMessages(__('You have been banned from this room.')); this.showDisconnectMessages(__('You have been banned from this groupchat.'));
} }
} else if (error.getAttribute('type') === 'modify') { } else if (error.getAttribute('type') === 'modify') {
if (!_.isNull(error.querySelector('jid-malformed'))) { if (!_.isNull(error.querySelector('jid-malformed'))) {
...@@ -1506,13 +1506,13 @@ ...@@ -1506,13 +1506,13 @@
if (!_.isNull(error.querySelector('not-allowed'))) { if (!_.isNull(error.querySelector('not-allowed'))) {
this.showDisconnectMessages(__('You are not allowed to create new rooms.')); this.showDisconnectMessages(__('You are not allowed to create new rooms.'));
} else if (!_.isNull(error.querySelector('not-acceptable'))) { } else if (!_.isNull(error.querySelector('not-acceptable'))) {
this.showDisconnectMessages(__("Your nickname doesn't conform to this room's policies.")); this.showDisconnectMessages(__("Your nickname doesn't conform to this groupchat's policies."));
} else if (!_.isNull(error.querySelector('conflict'))) { } else if (!_.isNull(error.querySelector('conflict'))) {
this.onNicknameClash(presence); this.onNicknameClash(presence);
} else if (!_.isNull(error.querySelector('item-not-found'))) { } else if (!_.isNull(error.querySelector('item-not-found'))) {
this.showDisconnectMessages(__("This room does not (yet) exist.")); this.showDisconnectMessages(__("This groupchat does not (yet) exist."));
} else if (!_.isNull(error.querySelector('service-unavailable'))) { } else if (!_.isNull(error.querySelector('service-unavailable'))) {
this.showDisconnectMessages(__("This room has reached its maximum number of occupants.")); this.showDisconnectMessages(__("This groupchat has reached its maximum number of participants."));
} else if (!_.isNull(error.querySelector('remote-server-not-found'))) { } else if (!_.isNull(error.querySelector('remote-server-not-found'))) {
const messages = [__("Remote server not found")]; const messages = [__("Remote server not found")];
const reason = _.get(error.querySelector('text'), 'textContent'); const reason = _.get(error.querySelector('text'), 'textContent');
...@@ -1602,7 +1602,7 @@ ...@@ -1602,7 +1602,7 @@
render () { render () {
this.el.innerHTML = tpl_room_panel({ this.el.innerHTML = tpl_room_panel({
'heading_chatrooms': __('Chatrooms'), 'heading_chatrooms': __('Groupchats'),
'title_new_room': __('Add a new room'), 'title_new_room': __('Add a new room'),
'title_list_rooms': __('Query for rooms') 'title_list_rooms': __('Query for rooms')
}); });
...@@ -1643,8 +1643,8 @@ ...@@ -1643,8 +1643,8 @@
'hint_show': _converse.PRETTY_CHAT_STATUS[show], 'hint_show': _converse.PRETTY_CHAT_STATUS[show],
'hint_occupant': __('Click to mention %1$s in your message.', this.model.get('nick')), 'hint_occupant': __('Click to mention %1$s in your message.', this.model.get('nick')),
'desc_moderator': __('This user is a moderator.'), 'desc_moderator': __('This user is a moderator.'),
'desc_participant': __('This user can send messages in this room.'), 'desc_participant': __('This user can send messages in this groupchat.'),
'desc_visitor': __('This user can NOT send messages in this room.'), 'desc_visitor': __('This user can NOT send messages in this groupchat.'),
'label_moderator': __('Moderator'), 'label_moderator': __('Moderator'),
'label_visitor': __('Visitor'), 'label_visitor': __('Visitor'),
'label_owner': __('Owner'), 'label_owner': __('Owner'),
...@@ -1701,7 +1701,7 @@ ...@@ -1701,7 +1701,7 @@
this.el.innerHTML = tpl_chatroom_sidebar( this.el.innerHTML = tpl_chatroom_sidebar(
_.extend(this.chatroomview.model.toJSON(), { _.extend(this.chatroomview.model.toJSON(), {
'allow_muc_invitations': _converse.allow_muc_invitations, 'allow_muc_invitations': _converse.allow_muc_invitations,
'label_occupants': __('Occupants') 'label_occupants': __('Participants')
}) })
); );
if (_converse.allow_muc_invitations) { if (_converse.allow_muc_invitations) {
......
...@@ -118,12 +118,12 @@ ...@@ -118,12 +118,12 @@
// supported by the XMPP server. So we can use it // supported by the XMPP server. So we can use it
// as a check for support (other ways of checking are async). // as a check for support (other ways of checking are async).
'allow_bookmarks': _converse.allow_bookmarks && _converse.bookmarks, 'allow_bookmarks': _converse.allow_bookmarks && _converse.bookmarks,
'info_leave_room': __('Leave this room'), 'info_leave_room': __('Leave this groupchat'),
'info_remove_bookmark': __('Unbookmark this room'), 'info_remove_bookmark': __('Unbookmark this groupchat'),
'info_add_bookmark': __('Bookmark this room'), 'info_add_bookmark': __('Bookmark this groupchat'),
'info_title': __('Show more information on this room'), 'info_title': __('Show more information on this groupchat'),
'name': this.getRoomsListElementName(), 'name': this.getRoomsListElementName(),
'open_title': __('Click to open this room') 'open_title': __('Click to open this groupchat')
})); }));
}, },
...@@ -181,8 +181,8 @@ ...@@ -181,8 +181,8 @@
render () { render () {
this.el.innerHTML = tpl_rooms_list({ this.el.innerHTML = tpl_rooms_list({
'toggle_state': this.list_model.get('toggle-state'), 'toggle_state': this.list_model.get('toggle-state'),
'desc_rooms': __('Click to toggle the rooms list'), 'desc_rooms': __('Click to toggle the list of open groupchats'),
'label_rooms': __('Open Rooms'), 'label_rooms': __('Open Groupchats'),
'_converse': _converse '_converse': _converse
}); });
if (this.list_model.get('toggle-state') !== _converse.OPENED) { if (this.list_model.get('toggle-state') !== _converse.OPENED) {
...@@ -225,7 +225,7 @@ ...@@ -225,7 +225,7 @@
ev.preventDefault(); ev.preventDefault();
const name = ev.target.getAttribute('data-room-name'); const name = ev.target.getAttribute('data-room-name');
const jid = ev.target.getAttribute('data-room-jid'); const jid = ev.target.getAttribute('data-room-jid');
if (confirm(__("Are you sure you want to leave the room %1$s?", name))) { if (confirm(__("Are you sure you want to leave the groupchat %1$s?", name))) {
// TODO: replace with API call // TODO: replace with API call
_converse.chatboxviews.get(jid).close(); _converse.chatboxviews.get(jid).close();
} }
......
...@@ -3,40 +3,40 @@ ...@@ -3,40 +3,40 @@
{[ } ]} {[ } ]}
<ul class="features-list"> <ul class="features-list">
{[ if (o.passwordprotected) { ]} {[ if (o.passwordprotected) { ]}
<li class="feature" title="{{{ o.__('This room requires a password before entry') }}}"><span class="fa fa-lock"></span>{{{ o.__('Password protected') }}}</li> <li class="feature" title="{{{ o.__('This groupchat requires a password before entry') }}}"><span class="fa fa-lock"></span>{{{ o.__('Password protected') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.unsecured) { ]} {[ if (o.unsecured) { ]}
<li class="feature" title="{{{ o.__('This room does not require a password upon entry') }}}"><span class="fa fa-unlock"></span>{{{ o.__('No password') }}}</li> <li class="feature" title="{{{ o.__('This groupchat does not require a password upon entry') }}}"><span class="fa fa-unlock"></span>{{{ o.__('No password') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.hidden) { ]} {[ if (o.hidden) { ]}
<li class="feature" title="{{{ o.__('This room is not publicly searchable') }}}"><span class="fa fa-eye-slash"></span>{{{ o.__('Hidden') }}}</li> <li class="feature" title="{{{ o.__('This groupchat is not publicly searchable') }}}"><span class="fa fa-eye-slash"></span>{{{ o.__('Hidden') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.public_room) { ]} {[ if (o.public_room) { ]}
<li class="feature" title="{{{ o.__('This room is publicly searchable') }}}"><span class="fa fa-eye"></span>{{{ o.__('Public') }}}</li> <li class="feature" title="{{{ o.__('This groupchat is publicly searchable') }}}"><span class="fa fa-eye"></span>{{{ o.__('Public') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.membersonly) { ]} {[ if (o.membersonly) { ]}
<li class="feature" title="{{{ o.__('this room is restricted to members only') }}}"><span class="fa fa-address-book"></span>{{{ o.__('Members only') }}}</li> <li class="feature" title="{{{ o.__('this groupchat is restricted to members only') }}}"><span class="fa fa-address-book"></span>{{{ o.__('Members only') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.open) { ]} {[ if (o.open) { ]}
<li class="feature" title="{{{ o.__('Anyone can join this room') }}}"><span class="fa fa-globe"></span>{{{ o.__('Open') }}}</li> <li class="feature" title="{{{ o.__('Anyone can join this groupchat') }}}"><span class="fa fa-globe"></span>{{{ o.__('Open') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.persistent) { ]} {[ if (o.persistent) { ]}
<li class="feature" title="{{{ o.__('This room persists even if it\'s unoccupied') }}}"><span class="fa fa-save"></span>{{{ o.__('Persistent') }}}</li> <li class="feature" title="{{{ o.__('This groupchat persists even if it\'s unoccupied') }}}"><span class="fa fa-save"></span>{{{ o.__('Persistent') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.temporary) { ]} {[ if (o.temporary) { ]}
<li class="feature" title="{{{ o.__('This room will disappear once the last person leaves') }}}"><span class="fa fa-snowflake-o"></span>{{{ o.__('Temporary') }}}</li> <li class="feature" title="{{{ o.__('This groupchat will disappear once the last person leaves') }}}"><span class="fa fa-snowflake-o"></span>{{{ o.__('Temporary') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.nonanonymous) { ]} {[ if (o.nonanonymous) { ]}
<li class="feature" title="{{{ o.__('All other room occupants can see your XMPP username') }}}"><span class="fa fa-id-card"></span>{{{ o.__('Not anonymous') }}}</li> <li class="feature" title="{{{ o.__('All other groupchat participants can see your XMPP username') }}}"><span class="fa fa-id-card"></span>{{{ o.__('Not anonymous') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.semianonymous) { ]} {[ if (o.semianonymous) { ]}
<li class="feature" title="{{{ o.__('Only moderators can see your XMPP username') }}}"><span class="fa fa-user-secret"></span>{{{ o.__('Semi-anonymous') }}}</li> <li class="feature" title="{{{ o.__('Only moderators can see your XMPP username') }}}"><span class="fa fa-user-secret"></span>{{{ o.__('Semi-anonymous') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.moderated) { ]} {[ if (o.moderated) { ]}
<li class="feature" title="{{{ o.__('This room is being moderated') }}}"><span class="fa fa-gavel"></span>{{{ o.__('Moderated') }}}</li> <li class="feature" title="{{{ o.__('This groupchat is being moderated') }}}"><span class="fa fa-gavel"></span>{{{ o.__('Moderated') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.unmoderated) { ]} {[ if (o.unmoderated) { ]}
<li class="feature" title="{{{ o.__('This room is not being moderated') }}}"><span class="fa fa-info-circle"></span>{{{ o.__('Not moderated') }}}</li> <li class="feature" title="{{{ o.__('This groupchat is not being moderated') }}}"><span class="fa fa-info-circle"></span>{{{ o.__('Not moderated') }}}</li>
{[ } ]} {[ } ]}
{[ if (o.mam_enabled) { ]} {[ if (o.mam_enabled) { ]}
<li class="feature" title="{{{ o.__('Messages are archived on the server') }}}"><span class="fa fa-database"></span>{{{ o.__('Message archiving') }}}</li> <li class="feature" title="{{{ o.__('Messages are archived on the server') }}}"><span class="fa fa-database"></span>{{{ o.__('Message archiving') }}}</li>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment