Skip to content
Snippets Groups Projects
Select Git revision
  • 0a0bb18f4f82e8d8c6ec6c1c0d77d77b3bf226ff
  • master default protected
  • remove-event-tracking-fix-adblocker
  • ja-oss-test
  • sk-pin-chai-dependency
  • secure-headers
  • sk-add-csrf-acceptance-test
  • ja-handle-commands-in-arguments
  • ja-include-token-in-project-schema
  • sk-fix-project-feature-loading
  • ho-csrf-acceptence-tests
  • revert-580-ja-import-collaborators
  • ja-import-projects
  • ja-import-collaborators
  • sk-tc-toggle-access-control
  • ja-per-user-track-changes
  • ja-overleaf-oauth
  • ja-brand-prefix-config
  • ja-overleaf-styling
  • ho-overleaf-styling
  • ja-update-ace
  • v0.2.0
  • v0.1.4
  • v0.1.3
  • v0.1.2
  • v0.1.0
26 results

TrackChangesManager.coffee

  • user avatar
    James Allen authored
    0a0bb18f
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    TrackChangesManager.coffee 1.31 KiB
    define [
    	"track-changes/models/ChangeList"
    	"track-changes/models/Diff"
    	"track-changes/ChangeListView"
    	"track-changes/DiffView"
    ], (ChangeList, Diff, ChangeListView, DiffView) ->
    	class TrackChangesManager
    		template: $("#trackChangesPanelTemplate").html()
    		
    		constructor: (@ide) ->
    			@$el = $(@template)
    			$("#editorWrapper").append(@$el)
    			@hideEl()
    
    			@ide.editor.on "change:doc", () =>
    				@hideEl()
    
    			@$el.find(".track-changes-close").on "click", (e) =>
    				e.preventDefault
    				@hideEl()
    
    		show: () ->
    			@project_id = window.userSettings.project_id
    			@doc_id = @ide.editor.current_doc_id
    			@changes = new ChangeList([], doc_id: @doc_id, project_id: @project_id)
    
    			@changeListView = new ChangeListView(
    				collection : @changes,
    				el         : @$el.find(".change-list-area")
    			)
    			@changeListView.render()
    			@changeListView.loadUntilFull()
    
    			@changeListView.on "change_diff", (fromModel, toModel) =>
    				@diff = new Diff({
    					project_id: @project_id
    					doc_id: @doc_id
    					from: fromModel.get("version")
    					to:   toModel.get("version")
    				})
    				@diffView = new DiffView(
    					model: @diff
    					el:    @$el.find(".track-changes-diff")
    				)
    				@diff.fetch()
    
    			@showEl()
    
    		showEl: ->
    			@ide.editor.hide()
    			@$el.show()
    
    		hideEl: () ->
    			@ide.editor.show()
    			@$el.hide()
    
    	return TrackChangesManager