From 0e96d7120ae647e1efde7529a68dc33d4fdacede Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 14 Oct 2017 23:58:19 +0500 Subject: [PATCH 1/4] Automatically embed YouTube videos when a link is sent --- public/assests/js/message.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/public/assests/js/message.js b/public/assests/js/message.js index 83cc9ac..ac1cc46 100755 --- a/public/assests/js/message.js +++ b/public/assests/js/message.js @@ -7,7 +7,7 @@ $(document).ready(function(){ var heightFrom; // global variable // Websocket Connection Open -var conn = new WebSocket("ws://192.168.43.138:8080"); +var conn = new WebSocket("ws://192.168.1.5:8080"); // For send Message to Web Socket Server function sendTo(data) @@ -200,7 +200,17 @@ function updateConversation(data) { var divElement1 = $("
").addClass("row message-body"); var divElement2 = $("
").addClass("col-sm-12"); var divElement3 = $("
"); - var messageText = $("
").addClass("message-text").text(data[i].message); + var messageText = $("
").addClass("message-text"); + + // Embed YouTube video if link presents in message. + var youtube_link = data[i].message.indexOf('https://www.youtube.com'); + if(youtube_link !== -1) { + messageText.html(data[i].message + ''); + } + else { + messageText.text(data[i].message); + } var spanElement = $("").addClass("message-time pull-right").text(data[i].time); if (data[i]["sent_by"] !== data[i].start) From 4774d5cc054aee95e4a5852544e228eb15f8404f Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 14 Oct 2017 23:59:50 +0500 Subject: [PATCH 2/4] Automatically embed YouTube videos when a link is sent --- public/assests/js/message.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/assests/js/message.js b/public/assests/js/message.js index ac1cc46..8c0397f 100755 --- a/public/assests/js/message.js +++ b/public/assests/js/message.js @@ -7,7 +7,7 @@ $(document).ready(function(){ var heightFrom; // global variable // Websocket Connection Open -var conn = new WebSocket("ws://192.168.1.5:8080"); +var conn = new WebSocket("ws://192.168.43.138:8080"); // For send Message to Web Socket Server function sendTo(data) @@ -211,6 +211,7 @@ function updateConversation(data) { else { messageText.text(data[i].message); } + var spanElement = $("").addClass("message-time pull-right").text(data[i].time); if (data[i]["sent_by"] !== data[i].start) From 91c8c83448d51f75d1c95403ff57bb357d04c347 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 20 Oct 2017 23:40:41 +0500 Subject: [PATCH 3/4] Show 'typing...' while user writes some text to other #20 --- public/assests/js/message.js | 28 ++++++++++++++++++++++++++-- src/Chat.php | 8 ++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/public/assests/js/message.js b/public/assests/js/message.js index 8c0397f..73ab24b 100755 --- a/public/assests/js/message.js +++ b/public/assests/js/message.js @@ -174,7 +174,6 @@ function setConversationDetails(details) { // Update Current Conversation function updateConversation(data) { - var ele = document.getElementById("conversation"); ele.innerHTML = ""; @@ -235,6 +234,7 @@ function updateConversation(data) { ele.scrollTop = $("#conversation")[0].scrollHeight - heightFrom; } } + setConversationDetails(data[0]); } @@ -254,6 +254,16 @@ function reply() { } } +// Typing indication +function typing() { + var id = $("#text_reply").attr("name"); + var msg = { + "name": id, + "type": "typing" + }; + sendTo(msg); +} + function notFound(eleId) { eleId = "#" + eleId; $(eleId).text(""); @@ -357,7 +367,7 @@ function startDictation() { conn.onmessage = function(e) { var msg = JSON.parse(e.data); - // console.log(msg); + if (!width()) { SideBar(msg.sidebar); } else { @@ -388,6 +398,15 @@ conn.onmessage = function(e) if (typeof(msg.Compose) !== "undefined") { composeResult(msg.Compose); } + + if (typeof(msg.typing) !== "undefined") { + if($('#user_typing').length == 0) { + $('#conversation').append('
typing...
'); + var element = document.getElementById("conversation"); + element.scrollTop = element.scrollHeight; + setTimeout(function() { $('#user_typing').remove(); }, 1000); + } + } }; // Event Listeners @@ -402,6 +421,11 @@ conn.onmessage = function(e) function() { reply(); }); + + $("body").on("change keyup paste", "#text_reply", + function() { + typing(); + }); $("body").on("click", ".reply-recording", function() { diff --git a/src/Chat.php b/src/Chat.php index ea9be56..bdfd504 100755 --- a/src/Chat.php +++ b/src/Chat.php @@ -135,6 +135,14 @@ public function onMessage(ConnectionInterface $from, $msg) $msg->userId = $from->userId; $composeResult = $this->onCompose($msg); $from->send($composeResult); + } else if ($msg->type == 'typing') { + $msg->userId = $from->userId; + $msg->name = convert_uudecode(hex2bin($msg->name)); + foreach ($this->clients as $client) { + if ($client->userId == $msg->name) { + $client->send(json_encode(array('typing' => 'typing'))); + } + } } else { $msg->userId = $from->userId; $msg->name = convert_uudecode(hex2bin($msg->name)); From 28ca9247d46504a8eb98f761c76cfd81b970dc93 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 21 Oct 2017 00:57:17 +0500 Subject: [PATCH 4/4] New messages count in HTML title tag --- public/assests/js/message.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/public/assests/js/message.js b/public/assests/js/message.js index 73ab24b..ca6a3f0 100755 --- a/public/assests/js/message.js +++ b/public/assests/js/message.js @@ -8,6 +8,7 @@ $(document).ready(function(){ var heightFrom; // global variable // Websocket Connection Open var conn = new WebSocket("ws://192.168.43.138:8080"); +var new_messages = 0; // For send Message to Web Socket Server function sendTo(data) @@ -194,6 +195,14 @@ function updateConversation(data) { $("#conversation").append(divE1); } var noOfMessages = data.length - 1; + if (document.hidden) { + new_messages++; + document.title = '(' + new_messages + ') Messages'; + } + else { + new_messages = 0; + document.title = 'Messages'; + } for (var i = noOfMessages; i >= 1; i--) { // create element var divElement1 = $("
").addClass("row message-body"); @@ -426,6 +435,14 @@ conn.onmessage = function(e) function() { typing(); }); + + $("body").on("mousemove", + function() { + if(new_messages > 0) { + document.title = 'Messages'; + new_messages = 0; + } + }); $("body").on("click", ".reply-recording", function() {