James Allen 10 лет назад
Родитель
Сommit
12168b2ae8

+ 100 - 10
services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee

@@ -24,6 +24,95 @@ define [
 
 		$scope.reviewPanelEventsBridge = new EventEmitter()
 
+		changesTrackers = {}
+
+		# TODO Just for prototyping purposes; remove afterwards.
+		mockedUserId = 'mock_user_id_1'
+		mockedUserId2 = 'mock_user_id_2'
+
+		if window.location.search.match /mocktc=true/
+			mock_changes = {
+				"main.tex":
+					changes: [{
+						op: { i: "Habitat loss and conflicts with humans are the greatest causes of concern.", p: 925 - 38 }
+						metadata: { user_id: mockedUserId, ts: new Date(Date.now() - 30 * 60 * 1000) }
+					}, {
+						op: { d: "The lion is now a vulnerable species. ", p: 778 }
+						metadata: { user_id: mockedUserId, ts: new Date(Date.now() - 31 * 60 * 1000) }
+					}]
+					comments: [{
+						offset: 1375 - 38
+						length: 79
+						metadata:
+							thread: [{
+								content: "Do we have a source for this?"
+								user_id: mockedUserId
+								ts: new Date(Date.now() - 45 * 60 * 1000) 
+							}]
+					}]
+				"chapter_1.tex":
+					changes: [{
+						"op":{"p":740,"d":", to take down large animals"},
+						"metadata":{"user_id":mockedUserId, ts: new Date(Date.now() - 15 * 60 * 1000)}
+					}, {
+						"op":{"i":", to keep hold of the prey","p":920},
+						"metadata":{"user_id":mockedUserId, ts: new Date(Date.now() - 130 * 60 * 1000)}
+					}, {
+						"op":{"i":" being","p":1057},
+						"metadata":{"user_id":mockedUserId2, ts: new Date(Date.now() - 72 * 60 * 1000)}
+					}]
+					comments:[{
+						"offset":111,"length":5,
+						"metadata":{
+							"thread": [
+								{"content":"Have we used 'pride' too much here?","user_id":mockedUserId, ts: new Date(Date.now() - 12 * 60 * 1000)},
+								{"content":"No, I think this is OK","user_id":mockedUserId2, ts: new Date(Date.now() - 9 * 60 * 1000)}
+							]
+						}
+					},{
+						"offset":452,"length":21,
+						"metadata":{
+							"thread":[
+								{"content":"TODO: Don't use as many parentheses!","user_id":mockedUserId2, ts: new Date(Date.now() - 99 * 60 * 1000)}
+							]
+						}
+					}]
+				"chapter_2.tex":
+					changes: [{
+						"op":{"p":458,"d":"other"},
+						"metadata":{"user_id":mockedUserId, ts: new Date(Date.now() - 133 * 60 * 1000)}
+					},{
+						"op":{"i":"usually 2-3, ","p":928},
+						"metadata":{"user_id":mockedUserId, ts: new Date(Date.now() - 27 * 60 * 1000)}
+					},{
+						"op":{"i":"If the parents are a male lion and a female tiger, it is called a liger. A tigon comes from a male tiger and a female lion.","p":1126},
+						"metadata":{"user_id":mockedUserId, ts: new Date(Date.now() - 152 * 60 * 1000)}
+					}]
+					comments: [{
+						"offset":299,"length":10,
+						"metadata":{
+							"thread":[{
+								"content":"Should we use a different word here if 'den' needs clarifying?","user_id":mockedUserId,"ts": new Date(Date.now() - 430 * 60 * 1000)
+							}]
+						}
+					},{
+						"offset":843,"length":66,
+						"metadata":{
+							"thread":[{
+								"content":"This sentence is a little ambiguous","user_id":mockedUserId,"ts": new Date(Date.now() - 430 * 60 * 1000)
+							}]
+						}
+					}]
+			}
+			ide.$scope.$on "file-tree:initialized", () ->
+				ide.fileTreeManager.forEachEntity (entity) ->
+					if mock_changes[entity.name]?
+						changesTrackers[entity.id] ?= new ChangesTracker()
+						for change in mock_changes[entity.name].changes
+							changesTrackers[entity.id]._addOp change.op, change.metadata 
+						for comment in mock_changes[entity.name].comments
+							changesTrackers[entity.id].addComment comment.offset, comment.length, comment.metadata 
+
 		scrollbar = {}
 		$scope.reviewPanelEventsBridge.on "aceScrollbarVisibilityChanged", (isVisible, scrollbarWidth) ->
 			scrollbar = {isVisible, scrollbarWidth}
@@ -48,18 +137,12 @@ define [
 			else
 				# Reset back to what we had when previously open
 				$scope.reviewPanel.subView = $scope.reviewPanel.openSubView
-			
-
-		changesTrackers = {}
 
 		$scope.$watch "editor.open_doc_id", (open_doc_id) ->
 			return if !open_doc_id?
 			changesTrackers[open_doc_id] ?= new ChangesTracker()
 			$scope.reviewPanel.changesTracker = changesTrackers[open_doc_id]
 
-		# TODO Just for prototyping purposes; remove afterwards.
-		mockedUserId = '12345abc'
-
 		$scope.$watch (() ->
 			entries = $scope.reviewPanel.entries[$scope.editor.open_doc_id] or {}
 			Object.keys(entries).length
@@ -127,7 +210,7 @@ define [
 		# TODO Just for prototyping purposes; remove afterwards.
 		submitMockedReply = (entry) ->
 			entry.thread.push {
-				content: 'Lorem ipsum dolor sit amet'
+				content: 'Sounds good!'
 				ts: new Date()
 				user_id: mockedUserId
 			}
@@ -184,11 +267,18 @@ define [
 			$scope.users = {}
 			# TODO Just for prototyping purposes; remove afterwards.
 			$scope.users[mockedUserId] = {
-				email: "gerald.butler@gmail.com"
-				name: "Gerald Butler"
+				email: "paulo@sharelatex.com"
+				name: "Paulo Reis"
 				isSelf: false
 				hue: 70
-				avatar_text: "G"
+				avatar_text: "PR"
+			}
+			$scope.users[mockedUserId2] = {
+				email: "james@sharelatex.com"
+				name: "James Allen"
+				isSelf: false
+				hue: 320
+				avatar_text: "JA"
 			}
 
 			for member in $scope.project.members.concat($scope.project.owner)