mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-25 02:00:10 +02:00
Automatically show a sensible diff to start
This commit is contained in:
@@ -7,7 +7,7 @@ define [
|
||||
template: $("#changeListTemplate").html()
|
||||
|
||||
events:
|
||||
"scroll" : "loadUntilFull"
|
||||
"scroll" : () -> @loadUntilFull()
|
||||
|
||||
initialize: () ->
|
||||
@itemViews = []
|
||||
@@ -39,20 +39,13 @@ define [
|
||||
view.$el.insertBefore(elementAtIndex)
|
||||
|
||||
view.on "click", (e, v) =>
|
||||
@selectedToIndex = index
|
||||
@selectedFromIndex = index
|
||||
@resetAllSelectors()
|
||||
@triggerChangeDiff()
|
||||
@setSelectionRange(index, index)
|
||||
|
||||
view.on "selected:to", (e, v) =>
|
||||
@selectedToIndex = index
|
||||
@resetAllSelectors()
|
||||
@triggerChangeDiff()
|
||||
@setSelectionRange(@selectedFromIndex, index)
|
||||
|
||||
view.on "selected:from", (e, v) =>
|
||||
@selectedFromIndex = index
|
||||
@resetAllSelectors()
|
||||
@triggerChangeDiff()
|
||||
@setSelectionRange(index, @selectedToIndex)
|
||||
|
||||
view.on "mouseenter:to", (e) =>
|
||||
@hoverToIndex = index
|
||||
@@ -75,6 +68,12 @@ define [
|
||||
|
||||
view.resetSelector(index, @selectedFromIndex, @selectedToIndex)
|
||||
|
||||
setSelectionRange: (fromIndex, toIndex) ->
|
||||
@selectedFromIndex = fromIndex
|
||||
@selectedToIndex = toIndex
|
||||
@resetAllSelectors()
|
||||
@triggerChangeDiff()
|
||||
|
||||
resetAllSelectors: () ->
|
||||
for view, i in @itemViews
|
||||
view.resetSelector(i, @selectedFromIndex, @selectedToIndex)
|
||||
@@ -102,23 +101,23 @@ define [
|
||||
atEndOfListView: ->
|
||||
@$el.scrollTop() + @$el.height() >= @$(".change-list").height() - 30
|
||||
|
||||
loadUntilFull: (e, callback) ->
|
||||
loadUntilFull: (callback = (error) ->) ->
|
||||
if (@listShorterThanContainer() or @atEndOfListView()) and not @atEndOfCollection and not @loading
|
||||
@showLoading()
|
||||
@hideEmptyMessage()
|
||||
@collection.fetchNextBatch
|
||||
error: =>
|
||||
error: (error) =>
|
||||
@hideLoading()
|
||||
@showEmptyMessageIfCollectionEmpty()
|
||||
callback() if callback?
|
||||
callback(error)
|
||||
success: (collection, response) =>
|
||||
@hideLoading()
|
||||
if response.updates.length == @collection.batchSize
|
||||
@loadUntilFull(e, callback)
|
||||
@loadUntilFull(callback)
|
||||
else
|
||||
@atEndOfCollection = true
|
||||
@showEmptyMessageIfCollectionEmpty()
|
||||
callback() if callback?
|
||||
callback()
|
||||
|
||||
else
|
||||
callback() if callback?
|
||||
|
||||
@@ -31,26 +31,50 @@ define [
|
||||
el : @$el.find(".change-list-area")
|
||||
)
|
||||
@changeListView.render()
|
||||
@changeListView.loadUntilFull()
|
||||
@changeListView.loadUntilFull (error) =>
|
||||
@autoSelectDiff()
|
||||
|
||||
@changeListView.on "change_diff", (fromModel, toModel) =>
|
||||
@diff = new Diff({
|
||||
project_id: @project_id
|
||||
doc_id: @doc_id
|
||||
from: fromModel.get("fromVersion")
|
||||
to: toModel.get("toVersion")
|
||||
})
|
||||
@diffView = new DiffView(
|
||||
model: @diff
|
||||
el: @$el.find(".track-changes-diff")
|
||||
)
|
||||
@diff.fetch()
|
||||
@showDiff(fromModel, toModel)
|
||||
|
||||
@changeListView.on "restore", (change) =>
|
||||
@restore(change)
|
||||
|
||||
@showEl()
|
||||
|
||||
autoSelectDiff: () ->
|
||||
if @changes.models.length == 0
|
||||
return
|
||||
|
||||
# Find all change until the last one we made
|
||||
fromIndex = null
|
||||
for change, i in @changes.models
|
||||
if ide.user in change.get("users")
|
||||
if i > 0
|
||||
fromIndex = i - 1
|
||||
else
|
||||
fromIndex = 0
|
||||
break
|
||||
fromIndex = 0 if !fromIndex
|
||||
|
||||
toChange = @changes.models[0]
|
||||
fromChange = @changes.models[fromIndex]
|
||||
@showDiff(fromChange, toChange)
|
||||
@changeListView.setSelectionRange(fromIndex, 0)
|
||||
|
||||
showDiff: (fromModel, toModel) ->
|
||||
@diff = new Diff({
|
||||
project_id: @project_id
|
||||
doc_id: @doc_id
|
||||
from: fromModel.get("fromVersion")
|
||||
to: toModel.get("toVersion")
|
||||
})
|
||||
@diffView = new DiffView(
|
||||
model: @diff
|
||||
el: @$el.find(".track-changes-diff")
|
||||
)
|
||||
@diff.fetch()
|
||||
|
||||
showEl: ->
|
||||
@ide.editor.hide()
|
||||
@$el.show()
|
||||
|
||||
Reference in New Issue
Block a user