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

Change subject: Implement simple methods from $.textSelection API
......................................................................

Implement simple methods from $.textSelection API

This should make it easier for some gadgets to work
with NWE.

Change-Id: Ic60440f345b8226fb5acaeb966e25eb003ad7866
---
M modules/ve-mw/ui/ve.ui.MWWikitextSurface.js
1 file changed, 47 insertions(+), 0 deletions(-)


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

diff --git a/modules/ve-mw/ui/ve.ui.MWWikitextSurface.js 
b/modules/ve-mw/ui/ve.ui.MWWikitextSurface.js
index 3d6ce6a..d826759 100644
--- a/modules/ve-mw/ui/ve.ui.MWWikitextSurface.js
+++ b/modules/ve-mw/ui/ve.ui.MWWikitextSurface.js
@@ -16,6 +16,8 @@
  * @param {Object} [config] Configuration options
  */
 ve.ui.MWWikitextSurface = function VeUiMWWikitextSurface() {
+       var surface = this;
+
        // Parent constructor
        ve.ui.MWWikitextSurface.super.apply( this, arguments );
 
@@ -27,6 +29,42 @@
        this.$element.addClass( 've-ui-mwWikitextSurface' );
        this.getView().$element.addClass( 'mw-editfont-' + mw.user.options.get( 
'editfont' ) );
        this.$placeholder.addClass( 'mw-editfont-' + mw.user.options.get( 
'editfont' ) );
+       this.$textbox = $( '#wpTextbox1' );
+
+       if ( !this.$textbox.length ) {
+               this.$textbox = $( '<textarea>' )
+                       .attr( 'id', 'wpTextbox1' )
+                       .addClass( 've-dummyTextbox oo-ui-element-hidden' );
+               // Append a dummy textbox to the surface, so it gets destroyed 
with it
+               this.$element.append( this.$textbox );
+       }
+
+       // Backwards support for the textSelection API
+       this.$textbox.textSelection( 'register', {
+               getContents: function () {
+                       return surface.getDom();
+               },
+               setContents: function ( content ) {
+                       surface.getModel().getLinearFragment( new ve.Range( 0, 
surface.getModel().getDocument().data.getLength() ), true )
+                               .insertContent( content );
+               },
+               getSelection: function () {
+                       var range = 
surface.getModel().getSelection().getCoveringRange();
+                       if ( !range ) {
+                               return '';
+                       }
+                       return 
surface.getModel().getDocument().data.getSourceText( range );
+               },
+               getCaretPosition: function () {
+                       // TODO
+               },
+               encapsulateSelection: function () {
+                       // TODO
+               },
+               scrollToCaretPosition: function () {
+                       surface.scrollCursorIntoView();
+               }
+       } );
 };
 
 /* Inheritance */
@@ -48,3 +86,12 @@
 ve.ui.MWWikitextSurface.prototype.createView = function ( model ) {
        return new ve.ce.MWWikitextSurface( model, this );
 };
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWWikitextSurface.prototype.destroy = function () {
+       this.$textbox.textSelection( 'unregister' );
+       // Parent method
+       return ve.ui.MWWikitextSurface.super.prototype.destroy.apply( this, 
arguments );
+};

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic60440f345b8226fb5acaeb966e25eb003ad7866
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

Reply via email to