summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2020-11-23 13:58:54 -0800
committerGitHub <noreply@github.com>2020-11-23 13:58:54 -0800
commite8419e660cf293e43ce70763d75408ed669bcd97 (patch)
tree730f7971e195ab57a2caf20470cb0c2ef829e910 /cli
parenta241bb555c056332e5cc67db1e857fafb9a40bb4 (diff)
parente7de93cd84c50aea4fe783abf19b4e15c812affd (diff)
downloadonionshare-e8419e660cf293e43ce70763d75408ed669bcd97.tar.gz
onionshare-e8419e660cf293e43ce70763d75408ed669bcd97.zip
Merge pull request #1216 from SaptakS/fix-username-session
Fix username updation to both the sessions
Diffstat (limited to 'cli')
-rw-r--r--cli/onionshare_cli/resources/static/js/chat.js14
-rw-r--r--cli/onionshare_cli/web/chat_mode.py20
2 files changed, 26 insertions, 8 deletions
diff --git a/cli/onionshare_cli/resources/static/js/chat.js b/cli/onionshare_cli/resources/static/js/chat.js
index 39547725..258b020b 100644
--- a/cli/onionshare_cli/resources/static/js/chat.js
+++ b/cli/onionshare_cli/resources/static/js/chat.js
@@ -1,7 +1,12 @@
$(function () {
$(document).ready(function () {
$('.chat-container').removeClass('no-js');
- var socket = io.connect('http://' + document.domain + ':' + location.port + '/chat');
+ var socket = io.connect(
+ 'http://' + document.domain + ':' + location.port + '/chat',
+ {
+ transports: ['websocket']
+ }
+ );
// Store current username received from app context
var current_username = $('#username').val();
@@ -45,7 +50,8 @@ $(function () {
// Keep buttons disabled unless changed or not empty
$('#username').on('keyup', function (event) {
if ($('#username').val() !== '' && $('#username').val() !== current_username) {
- if (event.keyCode == 13) {
+ if (event.keyCode == 13 || event.which == 13) {
+ this.blur();
current_username = updateUsername(socket) || current_username;
}
}
@@ -83,7 +89,6 @@ var emitMessage = function (socket) {
var updateUsername = function (socket) {
var username = $('#username').val();
if (!checkUsernameExists(username)) {
- socket.emit('update_username', { username: username });
$.ajax({
method: 'POST',
url: `http://${document.domain}:${location.port}/update-session-username`,
@@ -92,6 +97,9 @@ var updateUsername = function (socket) {
data: JSON.stringify({ 'username': username })
}).done(function (response) {
console.log(response);
+ if (response.success && response.username == username) {
+ socket.emit('update_username', { username: username });
+ }
});
return username;
}
diff --git a/cli/onionshare_cli/web/chat_mode.py b/cli/onionshare_cli/web/chat_mode.py
index 15e236d3..03843ee8 100644
--- a/cli/onionshare_cli/web/chat_mode.py
+++ b/cli/onionshare_cli/web/chat_mode.py
@@ -66,7 +66,8 @@ class ChatModeWeb:
)
session["room"] = self.web.settings.default_settings["chat"]["room"]
self.web.add_request(
- request.path, {"id": history_id, "status_code": 200},
+ request.path,
+ {"id": history_id, "status_code": 200},
)
self.web.add_request(self.web.REQUEST_LOAD, request.path)
@@ -83,14 +84,23 @@ class ChatModeWeb:
def update_session_username():
history_id = self.cur_history_id
data = request.get_json()
- if data.get("username", "") not in self.connected_users:
+ if (
+ data.get("username", "")
+ and data.get("username", "") not in self.connected_users
+ ):
session["name"] = data.get("username", session.get("name"))
self.web.add_request(
- request.path, {"id": history_id, "status_code": 200},
+ request.path,
+ {"id": history_id, "status_code": 200},
)
self.web.add_request(self.web.REQUEST_LOAD, request.path)
- r = make_response(jsonify(username=session.get("name"), success=True,))
+ r = make_response(
+ jsonify(
+ username=session.get("name"),
+ success=True,
+ )
+ )
return self.web.add_security_headers(r)
@self.web.socketio.on("joined", namespace="/chat")
@@ -125,7 +135,7 @@ class ChatModeWeb:
"""Sent by a client when the user updates their username.
The message is sent to all people in the room."""
current_name = session.get("name")
- if message["username"] not in self.connected_users:
+ if message.get("username", ""):
session["name"] = message["username"]
self.connected_users[
self.connected_users.index(current_name)