[MediaWiki-commits] [Gerrit] Store inner whitespace of the body and compare it on conversion - change (mediawiki...VisualEditor)

2013-11-20 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Store inner whitespace of the body and compare it on conversion
..


Store inner whitespace of the body and compare it on conversion

Calculate and store the two inner whitespace values of the body in the
dm.Document. When converting back, make sure the first/last nodes
pre/post outer whitespace matches the inner left/right whitespace
of the body.

Bug: 54964
Change-Id: I45f1ffd63669f25a6cae878400bfe21719ed58ee
---
M modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
M modules/ve/dm/ve.dm.Converter.js
M modules/ve/dm/ve.dm.Document.js
M modules/ve/test/dm/ve.dm.example.js
M modules/ve/test/ve.test.utils.js
5 files changed, 89 insertions(+), 31 deletions(-)

Approvals:
  Catrope: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js 
b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
index 0a59927..b775daa 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
@@ -736,11 +736,11 @@
if ( this.pageExists ) {
// Has no callback, handled via target.onShowChanges
this.showChanges(
-   ve.dm.converter.getDomFromData( 
doc.getFullData(), doc.getStore(), doc.getInternalList() )
+   ve.dm.converter.getDomFromData( 
doc.getFullData(), doc.getStore(), doc.getInternalList(), 
doc.getInnerWhitespace() )
);
} else {
this.serialize(
-   ve.dm.converter.getDomFromData( 
doc.getFullData(), doc.getStore(), doc.getInternalList() ),
+   ve.dm.converter.getDomFromData( 
doc.getFullData(), doc.getStore(), doc.getInternalList(), 
doc.getInnerWhitespace() ),
ve.bind( this.onSerialize, this )
);
}
@@ -786,7 +786,7 @@
this.saveDialog.saveButton.setDisabled( true );
this.saveDialog.$loadingIcon.show();
this.save(
-   ve.dm.converter.getDomFromData( doc.getFullData(), 
doc.getStore(), doc.getInternalList() ),
+   ve.dm.converter.getDomFromData( doc.getFullData(), 
doc.getStore(), doc.getInternalList(), doc.getInnerWhitespace() ),
saveOptions
);
}
@@ -856,10 +856,11 @@
// Build linmod
var store = new ve.dm.IndexValueStore(),
internalList = new ve.dm.InternalList(),
-   data = ve.dm.converter.getDataFromDom( doc, store, 
internalList );
+   innerWhitespace = new Array( 2 ),
+   data = ve.dm.converter.getDataFromDom( doc, store, 
internalList, innerWhitespace );
setTimeout( function () {
// Build DM tree
-   var dmDoc = new ve.dm.Document( data, doc, undefined, 
internalList );
+   var dmDoc = new ve.dm.Document( data, doc, undefined, 
internalList, innerWhitespace );
setTimeout( function () {
// Create ui.Surface (also creates ce.Surface 
and dm.Surface and builds CE tree)
target.surface = new ve.ui.Surface( dmDoc, 
target.surfaceOptions );
@@ -929,8 +930,8 @@
//  were ignored in the conversion. So compare each child 
separately.
var i,
len = oldDom.body.childNodes.length,
-   newDoc = new ve.dm.Document( data, oldDom, undefined, 
doc.getInternalList() ),
-   newDom = ve.dm.converter.getDomFromData( 
newDoc.getFullData(), newDoc.getStore(), newDoc.getInternalList() );
+   newDoc = new ve.dm.Document( data, oldDom, undefined, 
doc.getInternalList(), doc.getInnerWhitespace() ),
+   newDom = ve.dm.converter.getDomFromData( 
newDoc.getFullData(), newDoc.getStore(), newDoc.getInternalList(), 
newDoc.getInnerWhitespace() );
 
// Explicitly unlink our full copy of the original version of 
the document data
data = undefined;
diff --git a/modules/ve/dm/ve.dm.Converter.js b/modules/ve/dm/ve.dm.Converter.js
index c031de6..f61836e 100644
--- a/modules/ve/dm/ve.dm.Converter.js
+++ b/modules/ve/dm/ve.dm.Converter.js
@@ -385,9 +385,10 @@
  * @param {HTMLDocument} doc HTML document to convert
  * @param {ve.dm.IndexValueStore} store Index-value store
  * @param {ve.dm.InternalList} internalList Internal list
+ * @param {Array} innerWhitespace Inner whitespace
  * @returns {ve.dm.FlatLinearData} Linear model data
  */
-ve.dm.Converter.prototype.getDataFromDom = function ( doc, 

[MediaWiki-commits] [Gerrit] Store inner whitespace of the body and compare it on conversion - change (mediawiki...VisualEditor)

2013-10-31 Thread Esanders (Code Review)
Esanders has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/92885


Change subject: Store inner whitespace of the body and compare it on conversion
..

Store inner whitespace of the body and compare it on conversion

Calculate and store the two inner whitespace values of the body in the
dm.Document. When converting back, make sure the first/last nodes
pre/post outer whitespace matches the inner left/right whitespace
of the body.

Bug: 54964
Change-Id: I45f1ffd63669f25a6cae878400bfe21719ed58ee
---
M modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
M modules/ve/dm/ve.dm.Converter.js
M modules/ve/dm/ve.dm.Document.js
M modules/ve/test/dm/ve.dm.example.js
M modules/ve/test/ve.test.utils.js
5 files changed, 86 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/85/92885/1

diff --git a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js 
b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
index 0a59927..b775daa 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
@@ -736,11 +736,11 @@
if ( this.pageExists ) {
// Has no callback, handled via target.onShowChanges
this.showChanges(
-   ve.dm.converter.getDomFromData( 
doc.getFullData(), doc.getStore(), doc.getInternalList() )
+   ve.dm.converter.getDomFromData( 
doc.getFullData(), doc.getStore(), doc.getInternalList(), 
doc.getInnerWhitespace() )
);
} else {
this.serialize(
-   ve.dm.converter.getDomFromData( 
doc.getFullData(), doc.getStore(), doc.getInternalList() ),
+   ve.dm.converter.getDomFromData( 
doc.getFullData(), doc.getStore(), doc.getInternalList(), 
doc.getInnerWhitespace() ),
ve.bind( this.onSerialize, this )
);
}
@@ -786,7 +786,7 @@
this.saveDialog.saveButton.setDisabled( true );
this.saveDialog.$loadingIcon.show();
this.save(
-   ve.dm.converter.getDomFromData( doc.getFullData(), 
doc.getStore(), doc.getInternalList() ),
+   ve.dm.converter.getDomFromData( doc.getFullData(), 
doc.getStore(), doc.getInternalList(), doc.getInnerWhitespace() ),
saveOptions
);
}
@@ -856,10 +856,11 @@
// Build linmod
var store = new ve.dm.IndexValueStore(),
internalList = new ve.dm.InternalList(),
-   data = ve.dm.converter.getDataFromDom( doc, store, 
internalList );
+   innerWhitespace = new Array( 2 ),
+   data = ve.dm.converter.getDataFromDom( doc, store, 
internalList, innerWhitespace );
setTimeout( function () {
// Build DM tree
-   var dmDoc = new ve.dm.Document( data, doc, undefined, 
internalList );
+   var dmDoc = new ve.dm.Document( data, doc, undefined, 
internalList, innerWhitespace );
setTimeout( function () {
// Create ui.Surface (also creates ce.Surface 
and dm.Surface and builds CE tree)
target.surface = new ve.ui.Surface( dmDoc, 
target.surfaceOptions );
@@ -929,8 +930,8 @@
//  were ignored in the conversion. So compare each child 
separately.
var i,
len = oldDom.body.childNodes.length,
-   newDoc = new ve.dm.Document( data, oldDom, undefined, 
doc.getInternalList() ),
-   newDom = ve.dm.converter.getDomFromData( 
newDoc.getFullData(), newDoc.getStore(), newDoc.getInternalList() );
+   newDoc = new ve.dm.Document( data, oldDom, undefined, 
doc.getInternalList(), doc.getInnerWhitespace() ),
+   newDom = ve.dm.converter.getDomFromData( 
newDoc.getFullData(), newDoc.getStore(), newDoc.getInternalList(), 
newDoc.getInnerWhitespace() );
 
// Explicitly unlink our full copy of the original version of 
the document data
data = undefined;
diff --git a/modules/ve/dm/ve.dm.Converter.js b/modules/ve/dm/ve.dm.Converter.js
index c031de6..de792b9 100644
--- a/modules/ve/dm/ve.dm.Converter.js
+++ b/modules/ve/dm/ve.dm.Converter.js
@@ -385,9 +385,10 @@
  * @param {HTMLDocument} doc HTML document to convert
  * @param {ve.dm.IndexValueStore} store Index-value store
  * @param {ve.dm.InternalList} internalList Internal list
+ * @param {Array} innerWhitespace Inner whitespace
  * @returns {ve.dm.FlatLinearData} Linear model data
  */
-