From 26a310f01cf0150ef3db6bfe1cb277ff1bafee5f Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Sat, 12 Sep 2015 16:05:41 -0300 Subject: [PATCH] Add option to debug methods that mark room as read --- client/lib/readMessages.coffee | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/client/lib/readMessages.coffee b/client/lib/readMessages.coffee index a98525609b3..5dd3b704f48 100644 --- a/client/lib/readMessages.coffee +++ b/client/lib/readMessages.coffee @@ -12,34 +12,53 @@ # readMessage.refreshUnreadMark(undefined, true) @readMessage = new class + debug: false + constructor: -> @canReadMessage = false readNow: (force=false) -> + console.log '--------------' if @debug + console.log 'readMessage -> readNow init process force:', force if @debug self = @ - return if force isnt true and @canReadMessage is false + if force isnt true and @canReadMessage is false + console.log 'readMessage -> readNow canceled by canReadMessage: false' if @debug + return rid = Session.get 'openedRoom' if not rid? + console.log 'readMessage -> readNow canceled, no rid informed' if @debug return if force is true + console.log 'readMessage -> readNow via force rid:', rid if @debug return Meteor.call 'readMessages', rid, -> self.refreshUnreadMark() subscription = ChatSubscription.findOne rid: rid - if not subscription? or (subscription.alert is false and subscription.unread is 0) + if not subscription? + console.log 'readMessage -> readNow canceled, no subscription found for rid:', rid if @debug + return + + if subscription.alert is false and subscription.unread is 0 + console.log 'readMessage -> readNow canceled, alert', subscription.alert, 'and unread', subscription.unread if @debug return room = RoomManager.openedRooms[subscription.t + subscription.name] if not room? + console.log 'readMessage -> readNow canceled, no room found for typeName:', subscription.t + subscription.name if @debug return # Only read messages if user saw the first unread message position = $('.message.first-unread').position() - if (position? and position.top >= 0) or not room.unreadSince.get()? - Meteor.call 'readMessages', rid, -> - self.refreshUnreadMark() + visible = position?.top >= 0 + if not visible and room.unreadSince.get()? + console.log 'readMessage -> readNow canceled, unread mark visible:', visible, 'unread since exists', room.unreadSince.get()? if @debug + return + + console.log 'readMessage -> readNow rid:', rid if @debug + Meteor.call 'readMessages', rid, -> + self.refreshUnreadMark() read: _.debounce (force) -> @readNow(force)