mediawiki-extensions-Visual.../modules/ve-mw/ui/inspectors/ve.ui.MWCommentInspector.js
David Lynch 60866eade2 Override ui.CommentInspector so that copying from it sets text/x-wiki
Bug: T154837
Change-Id: I3413c955aa23d34683e1a028a581b1ea34d55d49
2017-01-27 01:13:41 -06:00

59 lines
1.5 KiB
JavaScript

/*!
* 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 clipboardData = e.originalEvent.clipboardData,
selection = ( e.target.value ).substring( e.target.selectionStart, e.target.selectionEnd );
if ( ve.isClipboardDataFormatsSupported( e, true ) ) {
// We are in an environment where setting text/x-wiki will work
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 );