Catrope has uploaded a new change for review.
https://gerrit.wikimedia.org/r/92819
Change subject: Fix metadata issues in newFromDocumentReplace
......................................................................
Fix metadata issues in newFromDocumentReplace
* Our metadata insertions now need to be the same length as the data
insertion, not one more, so:
** Remove the +1 in the listMetadata splice
** Shorten the metadata variable by dropping the merging of the
metadata right before and right after the internal list; it was
also including the metadata right after the internal list twice
*** We still need to deal with this in some way though, left a TODO
** Fix the metadata insertion test for these changes
* Fix null reference keys in the test data; we made all references
keyed a while ago, but this test data was never updated for that
** The remapping of reference data doesn't remap auto/N keys yet,
left a FIXME for that
Change-Id: I8ef4e6ee7c1808574d81d0b83294848afd400cd7
---
M modules/ve-mw/test/dm/ve.dm.Transaction.test.js
M modules/ve-mw/test/dm/ve.dm.mwExample.js
M modules/ve/dm/ve.dm.Transaction.js
3 files changed, 10 insertions(+), 12 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/19/92819/1
diff --git a/modules/ve-mw/test/dm/ve.dm.Transaction.test.js
b/modules/ve-mw/test/dm/ve.dm.Transaction.test.js
index abfc924..279be32 100644
--- a/modules/ve-mw/test/dm/ve.dm.Transaction.test.js
+++ b/modules/ve-mw/test/dm/ve.dm.Transaction.test.js
@@ -21,7 +21,7 @@
'about': '#mwt4',
'listIndex': 0,
'listGroup': 'mwReference/',
- 'listKey': null,
+ 'listKey': 'auto/1', // FIXME reference
insertions should be renumbered correctly
'refGroup': '',
'contentsUsed': true
} },
@@ -55,7 +55,7 @@
'removeMetadata':
complexDoc.getMetadata( new ve.Range( 0, 7 ) ),
'insertMetadata':
complexDoc.getMetadata( new ve.Range( 0, 5 ) )
.concat( [ [ comment ]
] )
- .concat(
complexDoc.getMetadata( new ve.Range( 6, 8 ) ) )
+ .concat(
complexDoc.getMetadata( new ve.Range( 6, 7 ) ) )
},
{ 'type': 'retain', 'length': 1 },
{
diff --git a/modules/ve-mw/test/dm/ve.dm.mwExample.js
b/modules/ve-mw/test/dm/ve.dm.mwExample.js
index 3030abf..dceb573 100644
--- a/modules/ve-mw/test/dm/ve.dm.mwExample.js
+++ b/modules/ve-mw/test/dm/ve.dm.mwExample.js
@@ -675,7 +675,7 @@
'about': '#mwt1',
'listIndex': 0,
'listGroup': 'mwReference/',
- 'listKey': null,
+ 'listKey': 'auto/0',
'refGroup': '',
'contentsUsed': true
} },
diff --git a/modules/ve/dm/ve.dm.Transaction.js
b/modules/ve/dm/ve.dm.Transaction.js
index 80bef8c..3571dca 100644
--- a/modules/ve/dm/ve.dm.Transaction.js
+++ b/modules/ve/dm/ve.dm.Transaction.js
@@ -190,15 +190,13 @@
);
metadata = new ve.dm.MetaLinearData( doc.getStore(),
newDoc.getMetadata( new ve.Range( 0,
newListNodeOuterRange.start ), true ).concat(
- // Merge the metadata immediately before and
immediately after the internal list
- ve.copy( ve.dm.MetaLinearData.static.merge( [
- newDoc.metadata.getData(
newListNodeOuterRange.start ),
- newDoc.metadata.getData(
newListNodeOuterRange.end )
- ] ) )
- ).concat( newDoc.getMetadata(
- new ve.Range( newListNodeOuterRange.end,
newDoc.data.getLength() ), true
- ) )
+ newListNodeOuterRange.end < newDoc.data.getLength() ?
newDoc.getMetadata(
+ new ve.Range( newListNodeOuterRange.end + 1,
newDoc.data.getLength() ), true
+ ) : []
+ )
);
+ // TODO deal with metadata right before and right after the internal
list
+
// Merge the stores
merge = doc.getStore().merge( newDoc.getStore() );
// Remap the store indexes in the data
@@ -261,7 +259,7 @@
ve.batchSplice( listData, range.start - listNodeRange.start,
range.end - range.start, data.data );
ve.batchSplice( listMetadata, range.start - listNodeRange.start,
- range.end - range.start + 1, metadata.data );
+ range.end - range.start, metadata.data );
tx.pushRetain( listNodeRange.start );
tx.pushReplace( doc, listNodeRange.start, listNodeRange.end -
listNodeRange.start,
listData, listMetadata
--
To view, visit https://gerrit.wikimedia.org/r/92819
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8ef4e6ee7c1808574d81d0b83294848afd400cd7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits