Fix updating last message when showing deleted status

Closes #9332
pull/9335/head
Diego Sampaio 8 years ago
parent 9dc9db347c
commit eddd352f67
No known key found for this signature in database
GPG Key ID: E060152B30502562
  1. 7
      packages/rocketchat-lib/server/functions/deleteMessage.js
  2. 7
      packages/rocketchat-lib/server/models/Messages.js

@ -31,8 +31,11 @@ RocketChat.deleteMessage = function(message, user) {
// update last message
if (RocketChat.settings.get('Store_Last_Message')) {
const lastMessage = RocketChat.models.Messages.getLastMessageSentWithNoTypeByRoomId(message.rid);
RocketChat.models.Rooms.setLastMessageById(message.rid, lastMessage);
const room = RocketChat.models.Rooms.findOneById(message.rid, { fields: { lastMessage: 1 } });
if (!room.lastMessage || room.lastMessage._id === message._id) {
const lastMessage = RocketChat.models.Messages.getLastVisibleMessageSentWithNoTypeByRoomId(message.rid, message._id);
RocketChat.models.Rooms.setLastMessageById(message.rid, lastMessage);
}
}
if (showDeletedStatus) {

@ -284,12 +284,17 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base {
return this.findOne(query);
}
getLastMessageSentWithNoTypeByRoomId(rid) {
getLastVisibleMessageSentWithNoTypeByRoomId(rid, messageId) {
const query = {
rid,
_hidden: { $ne: true },
t: { $exists: false }
};
if (messageId) {
query._id = { $ne: messageId };
}
const options = {
sort: {
ts: -1

Loading…
Cancel
Save