Inez has uploaded a new change for review.
https://gerrit.wikimedia.org/r/69268
Change subject: (WIP) Re-create DOM element for MWBlockImageNode only when
necessary
......................................................................
(WIP) Re-create DOM element for MWBlockImageNode only when necessary
Change-Id: I2119d5fa1d705728bdf0f8f6a9196adf2b38020e
---
M modules/ve/dm/nodes/ve.dm.MWBlockImageNode.js
1 file changed, 31 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/68/69268/1
diff --git a/modules/ve/dm/nodes/ve.dm.MWBlockImageNode.js
b/modules/ve/dm/nodes/ve.dm.MWBlockImageNode.js
index 1aa2d50..33c75ea 100644
--- a/modules/ve/dm/nodes/ve.dm.MWBlockImageNode.js
+++ b/modules/ve/dm/nodes/ve.dm.MWBlockImageNode.js
@@ -16,6 +16,14 @@
*/
ve.dm.MWBlockImageNode = function VeDmMWBlockImageNode( length, element ) {
ve.dm.BranchNode.call( this, 0, element );
+
+ /*
+ // Properties
+ this.dirty = false;
+
+ // Events
+ this.connect( this, { 'attributeChange': 'onAttributeChange' } );
+ */
};
/* Inheritance */
@@ -50,7 +58,8 @@
width: $img.attr( 'width' ),
height: $img.attr( 'height' ),
resource: $img.attr( 'resource' )
- };
+ },
+ dataElement;
// Extract individual classes
classes = typeof classes === 'string' ?
@@ -85,17 +94,24 @@
}
if ( $caption.length === 0 ) {
- return [
+ dataElement = [
{ 'type': 'mwBlockImage', 'attributes': attributes },
{ 'type': 'mwImageCaption' },
{ 'type': '/mwImageCaption' },
{ 'type': '/mwBlockImage' }
];
} else {
- return [ { 'type': 'mwBlockImage', 'attributes': attributes } ].
+ dataElement = [ { 'type': 'mwBlockImage', 'attributes':
attributes } ].
concat( converter.getDataFromDomRecursionClean(
$caption[0], { 'type': 'mwImageCaption' } ) ).
concat( [ { 'type': '/mwBlockImage' } ] );
}
+
+ converter.getStore().index(
+ domElements,
+ ve.getHash( this.getHashObject( dataElement[0] ) )
+ );
+
+ return dataElement;
};
// TODO: Consider using jQuery instead of pure JS.
@@ -107,6 +123,11 @@
a = doc.createElement( 'a' ),
img = doc.createElement( 'img' ),
wrapper = doc.createElement( 'div' );
+
+ var index = converter.getStore().indexOfHash( ve.getHash(
this.getHashObject( dataElement ) ) );
+ if ( index ) {
+ return ve.copyArray( converter.getStore().value( index ) );
+ }
// Type
if ( dataElement.attributes.type === 'thumb' ) {
@@ -152,6 +173,13 @@
return [ figure ];
};
+/* Methods */
+/*
+ve.dm.MWBlockImageNode.prototype.onAttributeChange = function () {
+ this.dirty = true;
+};
+*/
+
/* Registration */
ve.dm.modelRegistry.register( ve.dm.MWBlockImageNode );
--
To view, visit https://gerrit.wikimedia.org/r/69268
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I2119d5fa1d705728bdf0f8f6a9196adf2b38020e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Inez <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits