Made sure applyDelta is called in all cases

This commit is contained in:
Ruben Vereecken 2014-07-04 16:43:23 +02:00
parent 2855d2a402
commit 6e4170012f
2 changed files with 11 additions and 1 deletions

View file

@ -112,4 +112,4 @@ module.exports = class DeltaView extends CocoView
delta = @model.getDelta()
delta = deltasLib.pruneConflictsFromDelta delta, @conflicts if @conflicts
delta = deltasLib.pruneExpandedDeltasFromDelta delta, @skippedDeltas if @skippedDeltas
delta
delta

View file

@ -20,11 +20,17 @@ module.exports = class PatchModal extends ModalView
targetID = @patch.get('target').id
if targetID is @targetModel.id
@originalSource = @targetModel.clone(false)
@targetIsCurrent = true
else
@originalSource = new @targetModel.constructor({_id:targetID})
@supermodel.loadModel @originalSource, 'source_document'
@targetIsCurrent = false
onLoaded: ->
super()
@render()
applyDelta: ->
@headModel = null
if @targetModel.hasWriteAccess()
@headModel = @originalSource.clone(false)
@ -36,6 +42,10 @@ module.exports = class PatchModal extends ModalView
@pendingModel.markToRevert true
@deltaWorked = @pendingModel.applyDelta(@patch.get('delta'))
@pendingModel.loaded = true
render: ->
return @showLoading() if not (@targetIsCurrent or @supermodel.finished()) # finished() is true when no model is loaded
@applyDelta()
super()
getRenderData: ->