Ver Fonte

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

Henry Oswald há 12 anos atrás
pai
commit
9a86f24bf7

+ 2 - 2
services/web/app/coffee/controllers/ProjectController.coffee

@@ -120,7 +120,7 @@ module.exports = class ProjectController
 									allowed: true
 							featureSwitches:
 								dropbox: false
-								longPolling: false
+								trackChanges: false
 					else
 						anonymous = false
 					SubscriptionLocator.getUsersSubscription user._id, (err, subscription)->
@@ -154,7 +154,7 @@ module.exports = class ProjectController
 										spellCheckLanguage: user.ace.spellCheckLanguage
 										pdfViewer : user.ace.pdfViewer
 										docPositions: {}
-										longPolling: user.featureSwitches.longPolling
+										trackChanges: user.featureSwitches.trackChanges
 									})
 									sharelatexObject : JSON.stringify({
 										siteUrl: Settings.siteUrl,

+ 1 - 1
services/web/app/coffee/models/User.coffee

@@ -32,7 +32,7 @@ UserSchema = new Schema
 						}
 	featureSwitches	  : {
 							dropbox: {type:Boolean, default:true},
-							longPolling: {type:Boolean, default:false}
+							trackChanges: {type:Boolean, default:false}
 						}
 	referal_id : {type:String, default:() -> uuid.v4().split("-")[0]}
 	refered_users: [ type:ObjectId, ref:'User' ]

+ 2 - 0
services/web/public/coffee/file-tree/EntityView.coffee

@@ -100,6 +100,8 @@ define [
 		showContextMenu: (position) ->
 			entries = @getContextMenuEntries()
 
+			@manager.trigger "contextmenu:beforeshow", @model, entries
+
 			@contextMenu = new ContextMenu(position, entries)
 			@contextMenu.on "destroy", () =>
 				delete @contextMenu

+ 2 - 3
services/web/public/coffee/ide.coffee

@@ -97,8 +97,6 @@ define [
 			ioOptions =
 				reconnect: false
 				"force new connection": true
-			if @userSettings.longPolling
-				ioOptions.transports = ["xhr-polling"]
 			@socket = socket = io.connect null, ioOptions
 
 			@messageManager = new MessageManager(@)
@@ -119,7 +117,8 @@ define [
 			@cursorManager = new CursorManager(@)
 			@fileViewManager = new FileViewManager(@)
 			@analyticsManager = new AnalyticsManager(@)
-			@trackChangesManager = new TrackChangesManager(@)
+			if @userSettings.trackChanges
+				@trackChangesManager = new TrackChangesManager(@)
 
 			@setLoadingMessage("Connecting")
 			firstConnect = true

+ 6 - 3
services/web/public/coffee/track-changes/DiffView.coffee

@@ -23,11 +23,14 @@ define [
 			@insertNameTag()
 			return @
 
+		destroy: () ->
+			@$editor?.remove()
+
 		createAceEditor: () ->
 			@$el.empty()
-			$editor = $("<div/>")
-			@$el.append($editor)
-			@aceEditor = Ace.edit($editor[0])
+			@$editor = $("<div/>")
+			@$el.append(@$editor)
+			@aceEditor = Ace.edit(@$editor[0])
 			@aceEditor.setTheme("ace/theme/#{window.userSettings.theme}")
 			@aceEditor.setReadOnly true
 			@aceEditor.setShowPrintMargin(false)

+ 29 - 7
services/web/public/coffee/track-changes/TrackChangesManager.coffee

@@ -4,26 +4,38 @@ define [
 	"track-changes/ChangeListView"
 	"track-changes/DiffView"
 	"utils/Modal"
+	"models/Doc"
 	"moment"
-], (ChangeList, Diff, ChangeListView, DiffView, Modal, moment) ->
+], (ChangeList, Diff, ChangeListView, DiffView, Modal, Doc, moment) ->
 	class TrackChangesManager
 		template: $("#trackChangesPanelTemplate").html()
 		
 		constructor: (@ide) ->
+			@project_id = window.userSettings.project_id
 			@$el = $(@template)
 			$("#editorWrapper").append(@$el)
-			@hide()
+			@hideEl()
 
 			@ide.editor.on "change:doc", () =>
-				@hide()
+				@hideEl()
 
 			@$el.find(".track-changes-close").on "click", (e) =>
 				e.preventDefault
 				@hide()
 
-		show: () ->
-			@project_id = window.userSettings.project_id
-			@doc_id = @ide.editor.current_doc_id
+			@ide.fileTreeManager.on "contextmenu:beforeshow", (entity, entries) =>
+				if entity instanceof Doc
+					entries.push {
+						divider: true
+					}, {
+						text: "History"
+						onClick: () =>
+							@show(entity.id)
+					}
+
+		show: (@doc_id) ->
+			@ide.fileTreeManager.selectEntity(@doc_id)
+
 			@changes = new ChangeList([], doc_id: @doc_id, project_id: @project_id)
 
 			@changeListView = new ChangeListView(
@@ -40,8 +52,15 @@ define [
 			@changeListView.on "restore", (change) =>
 				@restore(change)
 
+			if @diffView?
+				@diffView.destroy()
+
 			@showEl()
 
+		hide: () ->
+			@hideEl()
+			@ide.fileTreeManager.openDoc(@doc_id)
+
 		autoSelectDiff: () ->
 			if @changes.models.length == 0
 				return
@@ -69,6 +88,9 @@ define [
 				from: fromModel.get("fromVersion")
 				to:   toModel.get("toVersion")
 			})
+
+			if @diffView?
+				@diffView.destroy()
 			@diffView = new DiffView(
 				model: @diff
 				el:    @$el.find(".track-changes-diff")
@@ -79,7 +101,7 @@ define [
 			@ide.editor.hide()
 			@$el.show()
 
-		hide: () ->
+		hideEl: () ->
 			@ide.editor.show()
 			@$el.hide()