From 54ddb784531c5dc8ae57cba6bf8cc6cf2416bc4f Mon Sep 17 00:00:00 2001 From: Lars van Hijfte Date: Mon, 30 Jan 2017 13:59:02 +0100 Subject: [PATCH] Chat receive messages is now better --- website/public/js/chat.js | 36 +++++++++++++++++++------------ website/public/styles/main.css | 1 - website/public/styles/profile.css | 3 --- website/queries/friendship.php | 6 ++++++ website/views/menu.php | 2 +- 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/website/public/js/chat.js b/website/public/js/chat.js index 773a819..0f32fa6 100644 --- a/website/public/js/chat.js +++ b/website/public/js/chat.js @@ -1,25 +1,30 @@ var previousDate = new Date("1970-01-01 00:00:00"); +var gettingMessages = false; + $(document).ready(function() { - loadMessages(); + setInterval(loadMessages, 2000); sayEmpty(); $(".chat-field").hide(); }); function loadMessages() { - $.post( - "API/loadMessages.php", - $("#lastIDForm").serialize() - ).done(function(data) { - if (data && data != "[]") { - messages = JSON.parse(data); - addMessages(messages); - $("#lastID").val(messages[messages.length - 1].messageID); - $("#chat-history").scrollTop($("#chat-history")[0].scrollHeight); - } - }); - - setTimeout(loadMessages, 1000); + if (!gettingMessages) { + gettingMessages = true; + $.post( + "API/loadMessages.php", + $("#lastIDForm").serialize() + ).done(function (data) { + if (data && data != "[]") { + messages = JSON.parse(data); + addMessages(messages); + $("#lastID").val(messages[messages.length - 1].messageID); + } + gettingMessages = false; + }); + } else { + setTimeout(loadMessages, 500); + } } @@ -30,6 +35,7 @@ function sendMessage() { ); $("#newContent").val(""); + loadMessages(); } function addMessages(messages) { @@ -59,6 +65,8 @@ function addMessages(messages) { \ '); } + + $("#chat-history").scrollTop($("#chat-history")[0].scrollHeight); } function switchUser(userID) { diff --git a/website/public/styles/main.css b/website/public/styles/main.css index be2f4f7..3eb0bb3 100644 --- a/website/public/styles/main.css +++ b/website/public/styles/main.css @@ -97,7 +97,6 @@ p { } .item-box, .item-box-full-width { - margin: 20px 0 0 0; padding: 25px; background-color: #FFFFFF; } diff --git a/website/public/styles/profile.css b/website/public/styles/profile.css index 2fe819a..03ab19f 100644 --- a/website/public/styles/profile.css +++ b/website/public/styles/profile.css @@ -2,7 +2,6 @@ .user-box { text-align: center; - margin-bottom: 50px; } .status-buttons-container { @@ -64,14 +63,12 @@ } div.posts { - padding-top: 20px; width: calc(100% + 20px); display: inline-flex; } div.posts div.post { display: block; - margin: 20px 0 0 0; padding: 10px; width: calc(100% - 40px); cursor: pointer; diff --git a/website/queries/friendship.php b/website/queries/friendship.php index a1a23d8..01e3d8a 100644 --- a/website/queries/friendship.php +++ b/website/queries/friendship.php @@ -29,6 +29,12 @@ function selectLimitedFriends($userID, $limit) { `friendship`.`user1ID` = `user`.`userID`) AND `user`.`role` != 'banned' AND `friendship`.`status` = 'confirmed' + ORDER BY + CASE + WHEN `friendship`.`user2ID` = `user`.`userID` THEN `friendship`.`chatLastVisted1` + WHEN `friendship`.`user1ID` = `user`.`userID` THEN `friendship`.`chatLastVisted2` + END + DESC LIMIT :limitCount "); diff --git a/website/views/menu.php b/website/views/menu.php index 0444384..f3f3cde 100644 --- a/website/views/menu.php +++ b/website/views/menu.php @@ -1,7 +1,7 @@