From be34205871b77cffc013c8aaa50bf74f924d2fcd Mon Sep 17 00:00:00 2001 From: Gabriel Delavald Date: Mon, 16 Apr 2018 17:35:46 -0300 Subject: [PATCH 1/3] Test if message is temp before grouping --- packages/rocketchat-ui-message/client/message.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rocketchat-ui-message/client/message.js b/packages/rocketchat-ui-message/client/message.js index 3b42c51c3880d..6a828e13bed7d 100644 --- a/packages/rocketchat-ui-message/client/message.js +++ b/packages/rocketchat-ui-message/client/message.js @@ -372,7 +372,7 @@ Template.message.onViewRendered = function(context) { if (nextDataset.groupable !== 'false') { if (nextDataset.username !== currentDataset.username || parseInt(nextDataset.timestamp) - parseInt(currentDataset.timestamp) > RocketChat.settings.get('Message_GroupingPeriod') * 1000) { $nextNode.removeClass('sequential'); - } else if (!$nextNode.hasClass('new-day')) { + } else if (!$nextNode.hasClass('new-day') && !$currentNode.hasClass('temp')) { $nextNode.addClass('sequential'); } } From 29215e5300f50a17ba53b50065e6e13dbdb72aed Mon Sep 17 00:00:00 2001 From: Gabriel Delavald Date: Mon, 16 Apr 2018 19:04:46 -0300 Subject: [PATCH 2/3] Fixes grouping for multiple temp messages --- packages/rocketchat-ui-message/client/message.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/rocketchat-ui-message/client/message.js b/packages/rocketchat-ui-message/client/message.js index 6a828e13bed7d..ae6b68cd9328a 100644 --- a/packages/rocketchat-ui-message/client/message.js +++ b/packages/rocketchat-ui-message/client/message.js @@ -339,7 +339,20 @@ Template.message.onViewRendered = function(context) { return this._domrange.onAttached(function(domRange) { const currentNode = domRange.lastNode(); const currentDataset = currentNode.dataset; - const previousNode = currentNode.previousElementSibling; + const getPreviousSentMessage = (currentNode) => { + if ($(currentNode).hasClass('temp')) { + return currentNode.previousElementSibling; + } else if (currentNode.previousElementSibling != null) { + let previousValid = currentNode.previousElementSibling; + while (previousValid != null && $(previousValid).hasClass('temp')) { + previousValid = previousValid.previousElementSibling; + } + return previousValid; + } else { + return null; + } + }; + const previousNode = getPreviousSentMessage(currentNode);//currentNode.previousElementSibling; //getPreviousSentMessage(currentNode); const nextNode = currentNode.nextElementSibling; const $currentNode = $(currentNode); const $nextNode = $(nextNode); From c1ee40a4943ffe343fd5c087409cb4567bef1045 Mon Sep 17 00:00:00 2001 From: Gabriel Delavald Date: Mon, 16 Apr 2018 19:05:12 -0300 Subject: [PATCH 3/3] Fixes messages lost on offline chatting --- packages/rocketchat-ui-message/client/message.js | 7 +++---- packages/rocketchat-ui/client/lib/RoomManager.js | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/rocketchat-ui-message/client/message.js b/packages/rocketchat-ui-message/client/message.js index ae6b68cd9328a..220ff95b5c90a 100644 --- a/packages/rocketchat-ui-message/client/message.js +++ b/packages/rocketchat-ui-message/client/message.js @@ -342,17 +342,16 @@ Template.message.onViewRendered = function(context) { const getPreviousSentMessage = (currentNode) => { if ($(currentNode).hasClass('temp')) { return currentNode.previousElementSibling; - } else if (currentNode.previousElementSibling != null) { + } + if (currentNode.previousElementSibling != null) { let previousValid = currentNode.previousElementSibling; while (previousValid != null && $(previousValid).hasClass('temp')) { previousValid = previousValid.previousElementSibling; } return previousValid; - } else { - return null; } }; - const previousNode = getPreviousSentMessage(currentNode);//currentNode.previousElementSibling; //getPreviousSentMessage(currentNode); + const previousNode = getPreviousSentMessage(currentNode); const nextNode = currentNode.nextElementSibling; const $currentNode = $(currentNode); const $nextNode = $(nextNode); diff --git a/packages/rocketchat-ui/client/lib/RoomManager.js b/packages/rocketchat-ui/client/lib/RoomManager.js index c50521198617b..89348ba0a0221 100644 --- a/packages/rocketchat-ui/client/lib/RoomManager.js +++ b/packages/rocketchat-ui/client/lib/RoomManager.js @@ -223,7 +223,7 @@ const RoomManager = new function() { }; const loadMissedMessages = function(rid) { - const lastMessage = ChatMessage.findOne({rid}, {sort: {ts: -1}, limit: 1}); + const lastMessage = ChatMessage.findOne({rid, temp: { $exists: false } }, {sort: {ts: -1}, limit: 1}); if (lastMessage == null) { return; }