فهرست منبع

if chat errors don't keep trying to get more chat messages

causes loop which is why we have so many sentury errors
Henry Oswald 11 سال پیش
والد
کامیت
b06c9f509e
2فایلهای تغییر یافته به همراه10 افزوده شده و 6 حذف شده
  1. 1 1
      services/web/app/views/project/editor/chat.jade
  2. 9 5
      services/web/public/coffee/ide/chat/services/chatMessages.coffee

+ 1 - 1
services/web/app/views/project/editor/chat.jade

@@ -4,7 +4,7 @@ aside.chat(
 )
 )
 	.messages(
 	.messages(
 		infinite-scroll="loadMoreMessages()"
 		infinite-scroll="loadMoreMessages()"
-		infinite-scroll-disabled="chat.loading || chat.atEnd"
+		infinite-scroll-disabled="chat.loading || chat.atEnd || chat.errored"
 		infinite-scroll-initialize="ui.chatOpen"
 		infinite-scroll-initialize="ui.chatOpen"
 		infinite-scroll-upwards="true"
 		infinite-scroll-upwards="true"
 		update-scroll-bottom-on="updateScrollPosition"
 		update-scroll-bottom-on="updateScrollPosition"

+ 9 - 5
services/web/public/coffee/ide/chat/services/chatMessages.coffee

@@ -11,6 +11,7 @@ define [
 				messages: []
 				messages: []
 				loading: false
 				loading: false
 				atEnd: false
 				atEnd: false
+				errored:false
 				nextBeforeTimestamp: null
 				nextBeforeTimestamp: null
 				newMessage: null
 				newMessage: null
 		}
 		}
@@ -38,11 +39,10 @@ define [
 			
 			
 		chat.loadMoreMessages = () ->
 		chat.loadMoreMessages = () ->
 			return if chat.state.atEnd
 			return if chat.state.atEnd
-			
+			return if chat.state.errored
 			url = MESSAGES_URL + "?limit=#{MESSAGE_LIMIT}"
 			url = MESSAGES_URL + "?limit=#{MESSAGE_LIMIT}"
 			if chat.state.nextBeforeTimestamp?
 			if chat.state.nextBeforeTimestamp?
 				url += "&before=#{chat.state.nextBeforeTimestamp}"
 				url += "&before=#{chat.state.nextBeforeTimestamp}"
-			
 			chat.state.loading = true
 			chat.state.loading = true
 			return $http
 			return $http
 				.get(url)
 				.get(url)
@@ -52,9 +52,13 @@ define [
 						chat.state.atEnd = true
 						chat.state.atEnd = true
 					if !messages.reverse?
 					if !messages.reverse?
 						Raven?.captureException(new Error("messages has no reverse property #{JSON.stringify(messages)}"))
 						Raven?.captureException(new Error("messages has no reverse property #{JSON.stringify(messages)}"))
-					messages.reverse()
-					prependMessages(messages)
-					chat.state.nextBeforeTimestamp = chat.state.messages[0]?.timestamp
+					if typeof messages.reverse isnt 'function'
+						Raven?.captureException(new Error("messages.reverse not a function #{typeof(messages.reverse)} #{JSON.stringify(messages)}"))
+						chat.state.errored = true
+					else
+						messages.reverse()
+						prependMessages(messages)
+						chat.state.nextBeforeTimestamp = chat.state.messages[0]?.timestamp
 		
 		
 		TIMESTAMP_GROUP_SIZE = 5 * 60 * 1000 # 5 minutes
 		TIMESTAMP_GROUP_SIZE = 5 * 60 * 1000 # 5 minutes