Procházet zdrojové kódy

Merge branch 'master' of github.com:sharelatex/web-sharelatex

Henry Oswald před 12 roky
rodič
revize
6f4c2a409c
1 změnil soubory, kde provedl 26 přidání a 6 odebrání
  1. 26 6
      services/web/public/coffee/models/Project.coffee

+ 26 - 6
services/web/public/coffee/models/Project.coffee

@@ -42,38 +42,58 @@ define [
 			return attributes
 	
 		bindToRootDocId: ->
+			remoteChange = false
 			@on "change:rootDoc_id", (project, docId) =>
-				@get("ide").socket.emit "setRootDoc", docId
+				if !remoteChange
+					@get("ide").socket.emit "setRootDoc", docId
 			@get("ide").socket.on "rootDocUpdated", (docId) =>
+				remoteChange = true
 				@set("rootDoc_id", docId)
+				remoteChange = false
 
 		bindToProjectName: ->
+			remoteChange = false
 			@on "change:name", (project, name) =>
-				@get("ide").socket.emit "setProjectName", window.window_id, name
+				if !remoteChange
+					@get("ide").socket.emit "setProjectName", window.window_id, name
 			@get("ide").socket.on "projectNameUpdated", (senderWindowId, name) =>
+				remoteChange = true
 				@set("name", name)
+				remoteChange = false
 
 		bindToCompiler: ->
+			remoteChange = false
 			@on "change:compiler", (project, name) =>
-				@get("ide").socket.emit "setCompiler", name
+				if !remoteChange
+					@get("ide").socket.emit "setCompiler", name
 			@get("ide").socket.on "compilerUpdated", (compiler) =>
-			 	@set("compiler", compiler)
+				remoteChange = true
+				@set("compiler", compiler)
+				remoteChange = false
 
 		bindToSpellingPreference: ->
 			@on "change:spellCheckLanguage", (project, languageCode) =>
 				@get("ide").socket.emit "setSpellCheckLanguage", languageCode
 
 		bindToPublicAccessLevel: ->
+			remoteChange = false
 			@on "change:publicAccesLevel", (project, level) =>
-				@get("ide").socket.emit "setPublicAccessLevel", level
+				if !remoteChange
+					@get("ide").socket.emit "setPublicAccessLevel", level
 			@get("ide").socket.on 'publicAccessLevelUpdated', (level) =>
+				remoteChange = true
 				@set("publicAccesLevel", level)
+				remoteChange = false
 
 		bindToProjectDescription: ->
+			remoteChange = false
 			@on "change:description", (project, description) =>
-				@get("ide").socket.emit "updateProjectDescription", description
+				if !remoteChange
+					@get("ide").socket.emit "updateProjectDescription", description
 			@get("ide").socket.on 'projectDescriptionUpdated', (description) =>
+				remoteChange = true
 				@set("description", description)
+				remoteChange = false
 
 		getRootDocumentsList: (callback) ->
 			@get("ide").socket.emit "getRootDocumentsList", (err, listOfDocs) ->