From da5e3d5c3405e11348f629e1fee9d7722f8cb1a7 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Sun, 31 May 2015 21:05:58 -0300 Subject: [PATCH] Prevent message removal and fix history load --- client/lib/RoomHistoryManager.coffee | 12 ++++++++++-- client/lib/collections.coffee | 5 +++++ server/methods/loadHistory.coffee | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/client/lib/RoomHistoryManager.coffee b/client/lib/RoomHistoryManager.coffee index 1b83e539b990..369ca8e4234a 100644 --- a/client/lib/RoomHistoryManager.coffee +++ b/client/lib/RoomHistoryManager.coffee @@ -1,5 +1,5 @@ @RoomHistoryManager = new class - defaultLimit = 30 + defaultLimit = 20 histories = {} @@ -27,7 +27,15 @@ $('.messages-box .wrapper').data('previous-height', $('.messages-box .wrapper').get(0)?.scrollHeight - $('.messages-box .wrapper').get(0)?.scrollTop) - Meteor.call 'loadHistory', roomId, room.from, limit, room.loaded, (err, result) -> + lastMessage = ChatMessageHistory.findOne({rid: roomId}, {sort: {ts: 1}}) + lastMessage ?= ChatMessage.findOne({rid: roomId}, {sort: {ts: 1}}) + + if lastMessage? + ts = lastMessage.ts + else + ts = new Date + + Meteor.call 'loadHistory', roomId, ts, limit, 0, (err, result) -> ChatMessageHistory.insert item for item in result room.isLoading.set false diff --git a/client/lib/collections.coffee b/client/lib/collections.coffee index c07dce3f47c9..852c02c85b50 100644 --- a/client/lib/collections.coffee +++ b/client/lib/collections.coffee @@ -1,2 +1,7 @@ @UserAndRoom = new Meteor.Collection null @ChatMessageHistory = new Meteor.Collection null + +Meteor.startup -> + ChatMessage.find().observe + removed: (record) -> + ChatMessageHistory.insert record \ No newline at end of file diff --git a/server/methods/loadHistory.coffee b/server/methods/loadHistory.coffee index 5618d805999e..7c1ec98b070d 100644 --- a/server/methods/loadHistory.coffee +++ b/server/methods/loadHistory.coffee @@ -6,7 +6,7 @@ Meteor.methods query = rid: rid ts: - $lte: end + $lt: end options = sort: