aboutsummaryrefslogtreecommitdiffhomepage
path: root/main
diff options
context:
space:
mode:
authorMarvin Borner2018-04-28 19:15:27 +0200
committerMarvin Borner2018-04-28 19:15:27 +0200
commit486382cb347e05cfef842ffa3489f35619bb23f5 (patch)
tree59d76a29a8137f5c7f9e444d9c900079133d828e /main
parent0753a7fa8cb82205504b4e6365e6770648d4bffb (diff)
Finished type recognition
Diffstat (limited to 'main')
-rw-r--r--main/app/sprinkles/core/assets/SiteAssets/php/Chatserver/src/ChatProcessor.php4
-rw-r--r--main/app/sprinkles/core/templates/pages/partials/chat.js.twig56
2 files changed, 35 insertions, 25 deletions
diff --git a/main/app/sprinkles/core/assets/SiteAssets/php/Chatserver/src/ChatProcessor.php b/main/app/sprinkles/core/assets/SiteAssets/php/Chatserver/src/ChatProcessor.php
index ab306b6..f3793e2 100644
--- a/main/app/sprinkles/core/assets/SiteAssets/php/Chatserver/src/ChatProcessor.php
+++ b/main/app/sprinkles/core/assets/SiteAssets/php/Chatserver/src/ChatProcessor.php
@@ -86,6 +86,7 @@ class ChatProcessor implements MessageComponentInterface
}
}
}
+ break;
case "TypingState":
if (isset($this->subscriptions[$conn->resourceId])) {
$target = $this->subscriptions[$conn->resourceId];
@@ -96,7 +97,7 @@ class ChatProcessor implements MessageComponentInterface
$MessageObject->ServerMessageType = "TypingState";
$MessageObject->GroupName = $channel;
$MessageObject->Username = $this->connectedUsersNames[$conn->resourceId];
- $MessageObject->State = htmlspecialchars($data->State);
+ $MessageObject->State = $data->State;
if ($id === $conn->resourceId) {
$MessageObject->WasHimself = true;
} else {
@@ -107,6 +108,7 @@ class ChatProcessor implements MessageComponentInterface
}
}
}
+ break;
}
}
diff --git a/main/app/sprinkles/core/templates/pages/partials/chat.js.twig b/main/app/sprinkles/core/templates/pages/partials/chat.js.twig
index ed30475..8837183 100644
--- a/main/app/sprinkles/core/templates/pages/partials/chat.js.twig
+++ b/main/app/sprinkles/core/templates/pages/partials/chat.js.twig
@@ -95,16 +95,19 @@ function InitializeChatServer() {
var TranslatedDisconnectMessage = "{{ translate("CHAT_MESSAGES.USER_DISCONNECT", {user: "ConvertTranslatedMessageWithUsername"}) }}".replace("ConvertTranslatedMessageWithUsername", MessageObject.Username);
ChatMessages.append("<div class='ServerChatMessage'>" + TranslatedDisconnectMessage + ".</div><br><br>");
} else if (MessageObject.ServerMessageType === "TypingState") {
+ console.log("received typing");
if (MessageObject.State === true) {
if (MessageObject.WasHimself === true) {
- console.log("[SERVER REPORT] YOU STARTED TYPING");
+ // YOU STARTED TYPING
} else if (MessageObject.WasHimself === false) {
- console.log("[SERVER REPORT] " + MessageObject.Username + " STARTED TYPING");
+ // OTHER STARTED TYPING
+ console.log("[SERVER REPORT] " + MessageObject.Username + " STOPPED TYPING");
}
} else if (MessageObject.State === false) {
if (MessageObject.WasHimself === true) {
- console.log("[SERVER REPORT] YOU STOPPED TYPING");
+ // YOU STOPPED TYPING
} else if (MessageObject.WasHimself === false) {
+ // OTHER STOPPED TYPING
console.log("[SERVER REPORT] " + MessageObject.Username + " STOPPED TYPING");
}
}
@@ -119,29 +122,20 @@ function InitializeChatServer() {
}
});
- ChatTextInput.keyup(function (e) {
- // USER TYPES
- var IsTyping = true;
+
+ var typingTimer;
+ var doneTypingInterval = 2500;
+ var isTyping = false;
+
+ ChatTextInput.keydown(function () {
sendStartTyping();
- var ChatTypeTimeout;
- if (ChatTypeTimeout != undefined) clearTimeout(ChatTypeTimeout);
- ChatTypeTimeout = setTimeout(sendStopTyping, 2500);
-
- function sendStartTyping() {
- if (IsTyping !== true) {
- console.log("[TYPE LOGGER] USER STARTED TYPING");
- sendTypingState(true);
- }
- IsTyping = true;
- }
+ clearTimeout(typingTimer);
+ });
- function sendStopTyping() {
- if (IsTyping !== false) {
- console.log("[TYPE LOGGER] USER STOPPED TYPING");
- sendTypingState(false);
- }
- IsTyping = false;
- }
+ ChatTextInput.keyup(function (e) {
+ // TYPING RECOGNITION
+ clearTimeout(typingTimer);
+ typingTimer = setTimeout(sendStopTyping, doneTypingInterval);
// USER PRESSED ENTER
if (e.keyCode === 13 && ChatTextInput.val().length > 0) {
@@ -150,6 +144,20 @@ function InitializeChatServer() {
}
});
+ function sendStartTyping() {
+ if (isTyping === false) {
+ sendTypingState(true);
+ isTyping = true;
+ }
+ }
+
+ function sendStopTyping() {
+ if (isTyping === true) {
+ sendTypingState(false);
+ isTyping = false;
+ }
+ }
+
function subscribe(channel) {
ChatSocket.send(JSON.stringify({ClientMessageType: "Subscribe", Channel: channel}));
SubscribeTextInput.hide();