jenkins-bot has submitted this change and it was merged.

Change subject: Ensure text version of counter is written to external links 
when copying
......................................................................


Ensure text version of counter is written to external links when copying

Bug: T137503
Change-Id: Iae791253ea272847984fee5d0586dc302027f1bd
---
M modules/ve-mw/dm/nodes/ve.dm.MWNumberedExternalLinkNode.js
M modules/ve-mw/tests/dm/ve.dm.mwExample.js
2 files changed, 23 insertions(+), 3 deletions(-)

Approvals:
  DLynch: Looks good to me, approved
  Jforrester: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWNumberedExternalLinkNode.js 
b/modules/ve-mw/dm/nodes/ve.dm.MWNumberedExternalLinkNode.js
index 9011b9a..a8cc125 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWNumberedExternalLinkNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWNumberedExternalLinkNode.js
@@ -55,8 +55,27 @@
        };
 };
 
-ve.dm.MWNumberedExternalLinkNode.static.toDomElements = function ( 
dataElement, doc ) {
-       var domElement = doc.createElement( 'a' );
+ve.dm.MWNumberedExternalLinkNode.static.toDomElements = function ( 
dataElement, doc, converter ) {
+       var counter, offset,
+               node = this,
+               domElement = doc.createElement( 'a' );
+
+       // Ensure there is a text version of the counter in the clipboard
+       // as external documents may not have the same stylesheet - and Firefox
+       // discards empty tags on copy.
+       if ( converter.isForClipboard() ) {
+               counter = 1;
+               offset = converter.documentData.indexOf( dataElement );
+
+               if ( offset !== -1 ) {
+                       converter.documentData.slice( 0, offset ).forEach( 
function ( el ) {
+                               if ( el.type && el.type === node.name ) {
+                                       counter++;
+                               }
+                       } );
+               }
+               domElement.appendChild( doc.createTextNode( '[' + counter + ']' 
) );
+       }
        domElement.setAttribute( 'href', dataElement.attributes.href );
        domElement.setAttribute( 'rel', 'mw:ExtLink' );
        return [ domElement ];
diff --git a/modules/ve-mw/tests/dm/ve.dm.mwExample.js 
b/modules/ve-mw/tests/dm/ve.dm.mwExample.js
index 73d8c43..e87cf58 100644
--- a/modules/ve-mw/tests/dm/ve.dm.mwExample.js
+++ b/modules/ve-mw/tests/dm/ve.dm.mwExample.js
@@ -1106,7 +1106,8 @@
                        { type: '/paragraph' },
                        { type: 'internalList' },
                        { type: '/internalList' }
-               ]
+               ],
+               clipboardBody: '<p>Foo<a rel="mw:ExtLink" 
href="http://www.example.com";>[1]</a>Bar</p>'
        },
        'URL link': {
                body: '<p><a rel="mw:ExtLink" 
href="http://www.mediawiki.org/";>mw</a></p>',

-- 
To view, visit https://gerrit.wikimedia.org/r/296233
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Iae791253ea272847984fee5d0586dc302027f1bd
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: DLynch <[email protected]>
Gerrit-Reviewer: Divec <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to