aboutsummaryrefslogtreecommitdiff
path: root/cli/onionshare_cli/resources/static/js/chat.js
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2022-01-17 09:51:25 -0800
committerMicah Lee <micah@micahflee.com>2022-01-17 09:51:25 -0800
commitc8ea7702232d68c81521f0755d9e55c5211807bd (patch)
tree0a3038a61a45a1716d74c75c9a07d98374deacb7 /cli/onionshare_cli/resources/static/js/chat.js
parent4729af55984abfaba494e31862f69f35494467e9 (diff)
parent9e99ad8b8d6f0eb0a2162191ec31a68e7c3acee5 (diff)
downloadonionshare-c8ea7702232d68c81521f0755d9e55c5211807bd.tar.gz
onionshare-c8ea7702232d68c81521f0755d9e55c5211807bd.zip
Merge branch 'ros-fixes' into release-2.5
Diffstat (limited to 'cli/onionshare_cli/resources/static/js/chat.js')
-rw-r--r--cli/onionshare_cli/resources/static/js/chat.js32
1 files changed, 19 insertions, 13 deletions
diff --git a/cli/onionshare_cli/resources/static/js/chat.js b/cli/onionshare_cli/resources/static/js/chat.js
index b4ef30df..88abf4f4 100644
--- a/cli/onionshare_cli/resources/static/js/chat.js
+++ b/cli/onionshare_cli/resources/static/js/chat.js
@@ -9,31 +9,25 @@ $(function () {
);
// Store current username received from app context
- var current_username = $('#username').val();
-
- // On browser connect, emit a socket event to be added to
- // room and assigned random username
- socket.on('connect', function () {
- socket.emit('joined', {});
- });
+ var current_username = $('#username').val().trim();
// Triggered on any status change by any user, such as some
// user joined, or changed username, or left, etc.
socket.on('status', function (data) {
- addMessageToRoom(data, current_username, 'status');
+ addMessageToPanel(data, current_username, 'status');
console.log(data, current_username);
});
// Triggered when message is received from a user. Even when sent
// by self, it get triggered after the server sends back the emit.
- socket.on('message', function (data) {
- addMessageToRoom(data, current_username, 'chat');
+ socket.on('chat_message', function (data) {
+ addMessageToPanel(data, current_username, 'chat');
console.log(data, current_username);
});
// Triggered when disconnected either by server stop or timeout
socket.on('disconnect', function (data) {
- addMessageToRoom({ 'msg': 'The chat server is disconnected.' }, current_username, 'status');
+ addMessageToPanel({ 'msg': 'The chat server is disconnected.' }, current_username, 'status');
})
socket.on('connect_error', function (error) {
console.log("error");
@@ -66,7 +60,7 @@ $(function () {
});
});
-var addMessageToRoom = function (data, current_username, messageType) {
+var addMessageToPanel = function (data, current_username, messageType) {
var scrollDiff = getScrollDiffBefore();
if (messageType === 'status') {
addStatusMessage(data.msg);
@@ -88,7 +82,7 @@ var emitMessage = function (socket) {
var updateUsername = function (socket) {
var username = $('#username').val();
- if (!checkUsernameExists(username) && !checkUsernameTooLong(username)) {
+ if (!checkUsernameExists(username) && !checkUsernameTooLong(username) && !checkUsernameAscii(username)) {
$.ajax({
method: 'POST',
url: `http://${document.domain}:${location.port}/update-session-username`,
@@ -99,6 +93,8 @@ var updateUsername = function (socket) {
console.log(response);
if (response.success && response.username == username) {
socket.emit('update_username', { username: username });
+ } else {
+ addStatusMessage("Failed to update username.")
}
});
return username;
@@ -121,6 +117,16 @@ var createUserListHTML = function (connected_users, current_user) {
return userListHTML;
}
+var checkUsernameAscii = function (username) {
+ // ASCII characters have code points in the range U+0000-U+007F.
+ $('#username-error').text('');
+ if (!/^[\u0000-\u007f]*$/.test(username)) {
+ $('#username-error').text('Non-ASCII usernames are not supported.');
+ return true;
+ }
+ return false;
+}
+
var checkUsernameExists = function (username) {
$('#username-error').text('');
var userMatches = $('#user-list li').filter(function () {