From 24f44889a79b650d2ff683279098542f077cbd63 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 21 Sep 2017 13:25:19 +0100 Subject: [PATCH] First pass at decoding changes & comments in ranges --- .../public/coffee/ide/editor/Document.coffee | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/services/web/public/coffee/ide/editor/Document.coffee b/services/web/public/coffee/ide/editor/Document.coffee index 229e791c67..c22c6cd6b3 100644 --- a/services/web/public/coffee/ide/editor/Document.coffee +++ b/services/web/public/coffee/ide/editor/Document.coffee @@ -256,14 +256,36 @@ define [ return callback(error) if error? @joined = true @doc.catchUp( updates ) - @_catchUpRanges( ranges?.changes, ranges?.comments ) + + if ranges?.changes + changes = for change in ranges.changes + change.op.i = decodeURIComponent(escape(change.op.i)) if change.op.i + change.op.d = decodeURIComponent(escape(change.op.d)) if change.op.d + change + if ranges?.comments + comments = for comment in ranges.comments + comment.op.c = decodeURIComponent(escape(comment.op.c)) + comment + + @_catchUpRanges( changes, comments ) callback() else @ide.socket.emit 'joinDoc', @doc_id, (error, docLines, version, updates, ranges) => return callback(error) if error? @joined = true @doc = new ShareJsDoc @doc_id, docLines, version, @ide.socket - @ranges = new RangesTracker(ranges?.changes, ranges?.comments) + + if ranges?.changes + changes = for change in ranges.changes + change.op.i = decodeURIComponent(escape(change.op.i)) if change.op.i + change.op.d = decodeURIComponent(escape(change.op.d)) if change.op.d + change + if ranges?.comments + comments = for comment in ranges.comments + comment.op.c = decodeURIComponent(escape(comment.op.c)) + comment + + @ranges = new RangesTracker(changes, comments) @_bindToShareJsDocEvents() callback()