Esanders has uploaded a new change for review. https://gerrit.wikimedia.org/r/84749
Change subject: 'newFromDocumentInsertion' => 'newFromDocumentReplace' ...................................................................... 'newFromDocumentInsertion' => 'newFromDocumentReplace' Also rename 'nodeOrRange' to 'removeNodeOrRange' and document exception. Change-Id: Ia777896ee7bd4f31bf01058f12e26d817fdf42d4 --- M modules/ve-mw/test/dm/ve.dm.Transaction.test.js M modules/ve-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js M modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js M modules/ve/dm/ve.dm.Transaction.js M modules/ve/test/dm/ve.dm.Transaction.test.js 5 files changed, 17 insertions(+), 15 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor refs/changes/49/84749/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 79efb81..c38b7c1 100644 --- a/modules/ve-mw/test/dm/ve.dm.Transaction.test.js +++ b/modules/ve-mw/test/dm/ve.dm.Transaction.test.js @@ -8,7 +8,7 @@ QUnit.module( 've.dm.Transaction' ); // FIXME duplicates test runner; should be using a data provider -QUnit.test( 'newFromDocumentInsertion with references', function ( assert ) { +QUnit.test( 'newFromDocumentReplace with references', function ( assert ) { var i, j, doc2, tx, actualStoreItems, expectedStoreItems, doc = ve.dm.example.createExampleDocument( 'internalData' ), complexDoc = ve.dm.mwExample.createExampleDocument( 'complexInternalData' ), @@ -130,7 +130,7 @@ doc2 = doc.getDocumentSlice( cases[i].range ); cases[i].modify( doc2 ); } - tx = ve.dm.Transaction.newFromDocumentInsertion( doc, cases[i].range, doc2 ); + tx = ve.dm.Transaction.newFromDocumentReplace( doc, cases[i].range, doc2 ); assert.deepEqualWithDomElements( tx.getOperations(), cases[i].expectedOps, cases[i].msg + ': transaction' ); actualStoreItems = []; diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js b/modules/ve-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js index 284f940..956aada 100644 --- a/modules/ve-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js +++ b/modules/ve-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js @@ -132,12 +132,12 @@ if ( this.captionNode ) { // Replace the contents of the caption surfaceModel.change( - ve.dm.Transaction.newFromDocumentInsertion( doc, this.captionNode, newDoc ) + ve.dm.Transaction.newFromDocumentReplace( doc, this.captionNode, newDoc ) ); } else { // Insert a new caption at the beginning of the image node // FIXME this doesn't handle metadata and internal items the way - // newFromDocumentInsertion does + // newFromDocumentReplace does surfaceModel.getFragment() .adjustRange( 1 ) .collapseRangeToStart() diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js b/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js index 1c3d2b2..5aa1f6b 100644 --- a/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js +++ b/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js @@ -223,7 +223,7 @@ } // Update internal node content surfaceModel.change( - ve.dm.Transaction.newFromDocumentInsertion( + ve.dm.Transaction.newFromDocumentReplace( doc, internalList.getItemNode( this.ref.listIndex ), newDoc ) ); @@ -239,7 +239,7 @@ 'listGroup': listGroup, 'refGroup': refGroup }; - // FIXME this doesn't handle metadata and internal items the way newFromDocumentInsertion does + // FIXME this doesn't handle metadata and internal items the way newFromDocumentReplace does item = internalList.getItemInsertion( this.ref.listGroup, this.ref.listKey, doc.getData() ); surfaceModel.change( item.transaction ); this.ref.listIndex = item.index; diff --git a/modules/ve/dm/ve.dm.Transaction.js b/modules/ve/dm/ve.dm.Transaction.js index bf294db..0d610c3 100644 --- a/modules/ve/dm/ve.dm.Transaction.js +++ b/modules/ve/dm/ve.dm.Transaction.js @@ -161,11 +161,12 @@ * be resolved in newDoc's favor. * * @param {ve.dm.Document} doc Main document - * @param {ve.Range|ve.dm.Node} nodeOrRange Node or range to replace + * @param {ve.Range|ve.dm.Node} removeNodeOrRange Node or range to remove * @param {ve.dm.Document} newDoc Document to insert * @returns {ve.dm.Transaction} Transaction that replaces the node and updates the internal list + * @throws {Error} removeNodeOrRange must be a ve.dm.Node or a ve.Range */ -ve.dm.Transaction.newFromDocumentInsertion = function ( doc, nodeOrRange, newDoc ) { +ve.dm.Transaction.newFromDocumentReplace = function ( doc, removeNodeOrRange, newDoc ) { var i, len, range, merge, data, metadata, listData, listMetadata, oldEndOffset, newEndOffset, listNode = doc.internalList.getListNode(), listNodeRange = listNode.getRange(), @@ -173,12 +174,13 @@ newListNodeRange = newListNode.getRange(), newListNodeOuterRange = newListNode.getOuterRange(), tx = new ve.dm.Transaction(); - if ( nodeOrRange instanceof ve.dm.Node ) { - range = nodeOrRange.getRange(); - } else if ( nodeOrRange instanceof ve.Range ) { - range = nodeOrRange; + + if ( removeNodeOrRange instanceof ve.dm.Node ) { + range = removeNodeOrRange.getRange(); + } else if ( removeNodeOrRange instanceof ve.Range ) { + range = removeNodeOrRange; } else { - throw new Error( 'nodeOrRange must be a ve.dm.Node or a ve.Range' ); + throw new Error( 'removeNodeOrRange must be a ve.dm.Node or a ve.Range' ); } // Get the data and the metadata, but skip over the internal list diff --git a/modules/ve/test/dm/ve.dm.Transaction.test.js b/modules/ve/test/dm/ve.dm.Transaction.test.js index a82009a..19bd678 100644 --- a/modules/ve/test/dm/ve.dm.Transaction.test.js +++ b/modules/ve/test/dm/ve.dm.Transaction.test.js @@ -662,7 +662,7 @@ runConstructorTests( assert, ve.dm.Transaction.newFromRemoval, cases ); } ); -QUnit.test( 'newFromDocumentInsertion', function ( assert ) { +QUnit.test( 'newFromDocumentReplace', function ( assert ) { var i, j, doc2, tx, actualStoreItems, expectedStoreItems, doc = ve.dm.example.createExampleDocument( 'internalData' ), nextIndex = doc.store.valueStore.length, @@ -794,7 +794,7 @@ doc2 = doc.getDocumentSlice( cases[i].range ); cases[i].modify( doc2 ); } - tx = ve.dm.Transaction.newFromDocumentInsertion( doc, cases[i].range, doc2 ); + tx = ve.dm.Transaction.newFromDocumentReplace( doc, cases[i].range, doc2 ); assert.deepEqualWithDomElements( tx.getOperations(), cases[i].expectedOps, cases[i].msg + ': transaction' ); actualStoreItems = []; -- To view, visit https://gerrit.wikimedia.org/r/84749 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia777896ee7bd4f31bf01058f12e26d817fdf42d4 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/VisualEditor Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits