Automatically show a sensible diff to start
This commit is contained in:
@@ -7,7 +7,7 @@ define [
|
|||||||
template: $("#changeListTemplate").html()
|
template: $("#changeListTemplate").html()
|
||||||
|
|
||||||
events:
|
events:
|
||||||
"scroll" : "loadUntilFull"
|
"scroll" : () -> @loadUntilFull()
|
||||||
|
|
||||||
initialize: () ->
|
initialize: () ->
|
||||||
@itemViews = []
|
@itemViews = []
|
||||||
@@ -39,20 +39,13 @@ define [
|
|||||||
view.$el.insertBefore(elementAtIndex)
|
view.$el.insertBefore(elementAtIndex)
|
||||||
|
|
||||||
view.on "click", (e, v) =>
|
view.on "click", (e, v) =>
|
||||||
@selectedToIndex = index
|
@setSelectionRange(index, index)
|
||||||
@selectedFromIndex = index
|
|
||||||
@resetAllSelectors()
|
|
||||||
@triggerChangeDiff()
|
|
||||||
|
|
||||||
view.on "selected:to", (e, v) =>
|
view.on "selected:to", (e, v) =>
|
||||||
@selectedToIndex = index
|
@setSelectionRange(@selectedFromIndex, index)
|
||||||
@resetAllSelectors()
|
|
||||||
@triggerChangeDiff()
|
|
||||||
|
|
||||||
view.on "selected:from", (e, v) =>
|
view.on "selected:from", (e, v) =>
|
||||||
@selectedFromIndex = index
|
@setSelectionRange(index, @selectedToIndex)
|
||||||
@resetAllSelectors()
|
|
||||||
@triggerChangeDiff()
|
|
||||||
|
|
||||||
view.on "mouseenter:to", (e) =>
|
view.on "mouseenter:to", (e) =>
|
||||||
@hoverToIndex = index
|
@hoverToIndex = index
|
||||||
@@ -75,6 +68,12 @@ define [
|
|||||||
|
|
||||||
view.resetSelector(index, @selectedFromIndex, @selectedToIndex)
|
view.resetSelector(index, @selectedFromIndex, @selectedToIndex)
|
||||||
|
|
||||||
|
setSelectionRange: (fromIndex, toIndex) ->
|
||||||
|
@selectedFromIndex = fromIndex
|
||||||
|
@selectedToIndex = toIndex
|
||||||
|
@resetAllSelectors()
|
||||||
|
@triggerChangeDiff()
|
||||||
|
|
||||||
resetAllSelectors: () ->
|
resetAllSelectors: () ->
|
||||||
for view, i in @itemViews
|
for view, i in @itemViews
|
||||||
view.resetSelector(i, @selectedFromIndex, @selectedToIndex)
|
view.resetSelector(i, @selectedFromIndex, @selectedToIndex)
|
||||||
@@ -102,23 +101,23 @@ define [
|
|||||||
atEndOfListView: ->
|
atEndOfListView: ->
|
||||||
@$el.scrollTop() + @$el.height() >= @$(".change-list").height() - 30
|
@$el.scrollTop() + @$el.height() >= @$(".change-list").height() - 30
|
||||||
|
|
||||||
loadUntilFull: (e, callback) ->
|
loadUntilFull: (callback = (error) ->) ->
|
||||||
if (@listShorterThanContainer() or @atEndOfListView()) and not @atEndOfCollection and not @loading
|
if (@listShorterThanContainer() or @atEndOfListView()) and not @atEndOfCollection and not @loading
|
||||||
@showLoading()
|
@showLoading()
|
||||||
@hideEmptyMessage()
|
@hideEmptyMessage()
|
||||||
@collection.fetchNextBatch
|
@collection.fetchNextBatch
|
||||||
error: =>
|
error: (error) =>
|
||||||
@hideLoading()
|
@hideLoading()
|
||||||
@showEmptyMessageIfCollectionEmpty()
|
@showEmptyMessageIfCollectionEmpty()
|
||||||
callback() if callback?
|
callback(error)
|
||||||
success: (collection, response) =>
|
success: (collection, response) =>
|
||||||
@hideLoading()
|
@hideLoading()
|
||||||
if response.updates.length == @collection.batchSize
|
if response.updates.length == @collection.batchSize
|
||||||
@loadUntilFull(e, callback)
|
@loadUntilFull(callback)
|
||||||
else
|
else
|
||||||
@atEndOfCollection = true
|
@atEndOfCollection = true
|
||||||
@showEmptyMessageIfCollectionEmpty()
|
@showEmptyMessageIfCollectionEmpty()
|
||||||
callback() if callback?
|
callback()
|
||||||
|
|
||||||
else
|
else
|
||||||
callback() if callback?
|
callback() if callback?
|
||||||
|
|||||||
@@ -31,26 +31,50 @@ define [
|
|||||||
el : @$el.find(".change-list-area")
|
el : @$el.find(".change-list-area")
|
||||||
)
|
)
|
||||||
@changeListView.render()
|
@changeListView.render()
|
||||||
@changeListView.loadUntilFull()
|
@changeListView.loadUntilFull (error) =>
|
||||||
|
@autoSelectDiff()
|
||||||
|
|
||||||
@changeListView.on "change_diff", (fromModel, toModel) =>
|
@changeListView.on "change_diff", (fromModel, toModel) =>
|
||||||
@diff = new Diff({
|
@showDiff(fromModel, toModel)
|
||||||
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()
|
|
||||||
|
|
||||||
@changeListView.on "restore", (change) =>
|
@changeListView.on "restore", (change) =>
|
||||||
@restore(change)
|
@restore(change)
|
||||||
|
|
||||||
@showEl()
|
@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: ->
|
showEl: ->
|
||||||
@ide.editor.hide()
|
@ide.editor.hide()
|
||||||
@$el.show()
|
@$el.show()
|
||||||
|
|||||||
Reference in New Issue
Block a user