diff --git a/client/lib/RoomHistoryManager.coffee b/client/lib/RoomHistoryManager.coffee index 98167aa290f..82ffa99697a 100644 --- a/client/lib/RoomHistoryManager.coffee +++ b/client/lib/RoomHistoryManager.coffee @@ -39,12 +39,14 @@ room.unreadNotLoaded.set result?.unreadNotLoaded wrapper = $('.messages-box .wrapper').get(0) - previousHeight = wrapper.scrollHeight + if wrapper? + previousHeight = wrapper.scrollHeight ChatMessage.insert item for item in result?.messages or [] - heightDiff = wrapper.scrollHeight - previousHeight - wrapper.scrollTop += heightDiff + if wrapper? + heightDiff = wrapper.scrollHeight - previousHeight + wrapper.scrollTop += heightDiff Meteor.defer -> readMessage.refreshUnreadMark(rid, true) diff --git a/client/lib/RoomManager.coffee b/client/lib/RoomManager.coffee index baa9fff7da3..7c1707fd444 100644 --- a/client/lib/RoomManager.coffee +++ b/client/lib/RoomManager.coffee @@ -71,13 +71,11 @@ onDeleteMessageStream = (msg) -> do (typeName, record) -> record.sub = [ Meteor.subscribe 'room', typeName - # Meteor.subscribe 'messages', typeName ] - record.ready = record.sub[0].ready() - # record.ready = record.sub[0].ready() and record.sub[1].ready() + ready = record.sub[0].ready() and subscription.ready() - if record.ready is true + if ready is true type = typeName.substr(0, 1) name = typeName.substr(1) @@ -94,6 +92,10 @@ onDeleteMessageStream = (msg) -> if room? openedRooms[typeName].rid = room._id + RoomHistoryManager.getMoreIfIsEmpty room._id + record.ready = RoomHistoryManager.isLoading(room._id) is false + Dep.changed() + msgStream.on openedRooms[typeName].rid, (msg) -> ChatMessage.upsert { _id: msg._id }, msg diff --git a/client/routes/roomRoute.coffee b/client/routes/roomRoute.coffee index 38aed550c50..77bda4a3d00 100644 --- a/client/routes/roomRoute.coffee +++ b/client/routes/roomRoute.coffee @@ -1,11 +1,10 @@ openRoom = (type, name) -> Session.set 'openedRoom', null - BlazeLayout.render 'main', {center: 'loading'} - Meteor.defer -> Tracker.autorun (c) -> if RoomManager.open(type + name).ready() isnt true + BlazeLayout.render 'main', {center: 'loading'} return c.stop() diff --git a/client/views/app/room.coffee b/client/views/app/room.coffee index e399d5682ef..29712c677b1 100644 --- a/client/views/app/room.coffee +++ b/client/views/app/room.coffee @@ -641,7 +641,6 @@ Template.room.onRendered -> RocketChat.TabBar.openFlex() Session.set('selfVideoUrl', url) - RoomHistoryManager.getMoreIfIsEmpty this.data._id renameRoom = (rid, name) -> name = name?.toLowerCase().trim()