DLynch has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/331535 )

Change subject: Override ui.CommentInspector so that copying from it sets 
text/x-wiki
......................................................................

Override ui.CommentInspector so that copying from it sets text/x-wiki

Also, register text/x-wiki as a paste string type, so that pasting content
from a comment will result in it being parsed as wikitext.

Bug: T154837
Change-Id: I3413c955aa23d34683e1a028a581b1ea34d55d49
Depends-On: Ibd458859b01de982487fefeabb901cbb61996800
---
M extension.json
M modules/ve-mw/init/ve.init.mw.Target.js
A modules/ve-mw/ui/inspectors/ve.ui.MWCommentInspector.js
3 files changed, 74 insertions(+), 1 deletion(-)


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

diff --git a/extension.json b/extension.json
index 6ff0ace..210dcc3 100644
--- a/extension.json
+++ b/extension.json
@@ -1784,7 +1784,8 @@
                                
"modules/ve-mw/ui/ve.ui.MWWikitextDataTransferHandlerFactory.js",
                                
"modules/ve-mw/ui/ve.ui.MWDesktopWikitextSurface.js",
                                
"modules/ve-mw/ui/actions/ve.ui.MWWikitextAction.js",
-                               
"modules/ve-mw/ui/inspectors/ve.ui.MWWikitextLinkAnnotationInspector.js"
+                               
"modules/ve-mw/ui/inspectors/ve.ui.MWWikitextLinkAnnotationInspector.js",
+                               
"modules/ve-mw/ui/inspectors/ve.ui.MWCommentInspector.js"
                        ],
                        "styles": [
                                
"modules/ve-mw/ui/styles/ve.ui.MWDesktopWikitextSurface.css"
diff --git a/modules/ve-mw/init/ve.init.mw.Target.js 
b/modules/ve-mw/init/ve.init.mw.Target.js
index ff1b4e6..6d8e5d8 100644
--- a/modules/ve-mw/init/ve.init.mw.Target.js
+++ b/modules/ve-mw/init/ve.init.mw.Target.js
@@ -132,6 +132,11 @@
  */
 ve.init.mw.Target.static.platformType = null;
 
+/**
+ * @inheritdoc
+ */
+ve.init.mw.Target.static.pasteStringTypes = [ 'text/x-moz-url', 
'text/uri-list', 'text/x-uri', 'text/x-wiki', 'text/html', 'text/plain' ];
+
 /* Static Methods */
 
 /**
diff --git a/modules/ve-mw/ui/inspectors/ve.ui.MWCommentInspector.js 
b/modules/ve-mw/ui/inspectors/ve.ui.MWCommentInspector.js
new file mode 100644
index 0000000..2062efa
--- /dev/null
+++ b/modules/ve-mw/ui/inspectors/ve.ui.MWCommentInspector.js
@@ -0,0 +1,67 @@
+/*!
+ * VisualEditor UserInterface MWCommentInspector class.
+ *
+ * @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * Inspector for editing Mediawiki comments.
+ *
+ * @class
+ * @extends ve.ui.CommentInspector
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWCommentInspector = function VeUiMWCommentInspector() {
+       // Parent constructor
+       ve.ui.MWCommentInspector.super.apply( this, arguments );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWCommentInspector, ve.ui.CommentInspector );
+
+/* Static properties */
+
+ve.ui.MWCommentInspector.static.name = 'comment';
+
+ve.ui.MWCommentInspector.static.modelClasses = [ ve.dm.CommentNode ];
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWCommentInspector.prototype.initialize = function () {
+       // Parent method
+       ve.ui.MWCommentInspector.super.prototype.initialize.apply( this, 
arguments );
+
+       this.textWidget.$input.on( 'copy', this.onCopy.bind( this ) );
+};
+
+ve.ui.MWCommentInspector.prototype.onCopy = function ( e ) {
+       var profile = $.client.profile(),
+               clipboardData = e.originalEvent.clipboardData,
+               selection = ( e.target.value ).substring( 
e.target.selectionStart, e.target.selectionEnd ),
+               supportsCustomMimeType = !!clipboardData &&
+                       // Support: Edge
+                       // Despite having the clipboard API, Edge only supports 
Text and URL types.
+                       profile.name !== 'edge' && (
+                               // Chrome
+                               clipboardData.items ||
+                               // Firefox >= 48 (but not Firefox Android, 
which has name='android' and doesn't support this feature)
+                               ( profile.name === 'firefox' && 
profile.versionNumber >= 48 )
+                       );
+       if ( supportsCustomMimeType ) {
+               e.preventDefault();
+
+               clipboardData.setData( 'text/x-wiki', selection );
+               clipboardData.setData( 'text/plain', selection ); // If you're 
pasting to not-VE
+       }
+};
+
+/* Registration */
+
+ve.ui.windowFactory.register( ve.ui.MWCommentInspector );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3413c955aa23d34683e1a028a581b1ea34d55d49
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: DLynch <dly...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to